Update v1.09
- Fix Support C-BackEnd (Windows PB v6.0 Alpha 2)
Module System (PB-Internals)
Re: Module System (PB-Internals)
My Projects ThreadToGUI / OOP-BaseClass / EventDesigner V3
PB v3.30 / v5.75 - OS Mac Mini OSX 10.xx - VM Window Pro / Linux Ubuntu
Downloads on my Webspace / OneDrive
PB v3.30 / v5.75 - OS Mac Mini OSX 10.xx - VM Window Pro / Linux Ubuntu
Downloads on my Webspace / OneDrive
Re: Module System (PB-Internals)
Thanks, very useful info. IMHO this should be officially included in PB. There is use to know the parent window of a control or the PB ID from a hwnd. Especially when one tries to create a custom control. If mr. dictator is willing..
Re: Module System (PB-Internals)
Update v1.09.2
- Remove Fix Support C-BackEnd (Windows PB v6.0 Alpha 2)
Works now without fix c-backend
- Remove Fix Support C-BackEnd (Windows PB v6.0 Alpha 2)
Works now without fix c-backend
My Projects ThreadToGUI / OOP-BaseClass / EventDesigner V3
PB v3.30 / v5.75 - OS Mac Mini OSX 10.xx - VM Window Pro / Linux Ubuntu
Downloads on my Webspace / OneDrive
PB v3.30 / v5.75 - OS Mac Mini OSX 10.xx - VM Window Pro / Linux Ubuntu
Downloads on my Webspace / OneDrive
Re: Module System (PB-Internals)
Hmm. gadget enumeration did not want to work in runtime,
After extracting parts, it does.
In any case - this tiny version of the original source does enumerate gadgets at runtime.
Thank you poster for the knowledge!
After extracting parts, it does.
In any case - this tiny version of the original source does enumerate gadgets at runtime.
Thank you poster for the knowledge!
Code: Select all
DeclareModule GadgetEnum
Declare GetGadgetList(WindowNo.i, List gadgets())
EndDeclareModule
Module GadgetEnum
DisableExplicit
Declare GetParentWindowID(Gadget)
CompilerIf #PB_Compiler_OS = #PB_OS_Windows
Import ""
CompilerElse
ImportC ""
CompilerEndIf
PB_Object_EnumerateStart(*object)
PB_Object_EnumerateNext(*object,*id.Integer)
PB_Object_EnumerateAbort(*object)
PB_Gadget_Objects.i
PB_Image_Objects.i
EndImport
Procedure GetParentWindowID(Gadget) ; Retval handle
Protected WindowID
If IsGadget(Gadget)
CompilerSelect #PB_Compiler_OS
CompilerCase #PB_OS_MacOS
Protected *Gadget.sdkGadget = IsGadget(Gadget)
WindowID = WindowID(*Gadget\Window)
CompilerCase #PB_OS_Linux
WindowID = gtk_widget_get_toplevel_(GadgetID(Gadget))
CompilerCase #PB_OS_Windows
WindowID = GetAncestor_(GadgetID(Gadget), #GA_ROOT)
CompilerEndSelect
EndIf
ProcedureReturn WindowID
EndProcedure
Procedure GetGadgetList(WindowNo.i, List Gadgets()) ; Retval count of gadgets
Protected object
Protected WindowID = WindowID(WindowNo)
ClearList(Gadgets())
PB_Object_EnumerateStart(PB_Gadget_Objects)
If WindowID = 0
While PB_Object_EnumerateNext(PB_Gadget_Objects, @object)
AddElement(Gadgets())
Gadgets() = object
Wend
Else
While PB_Object_EnumerateNext(PB_Gadget_Objects, @object)
If GetParentWindowID(object) = WindowID
AddElement(Gadgets())
Gadgets() = object
EndIf
Wend
EndIf
ProcedureReturn ListSize(Gadgets())
EndProcedure
EndModule
S.T.V.B.E.E.V.