Code: Select all
; savegadgets prototype
; returns name now… maybe may be useful to save or restore/replace gadgets later…
Procedure.s getGType(g)
Select g
Case #PB_GadgetType_Unknown ; 0
ProcedureReturn "Unknown"
Case #PB_GadgetType_Button ; 1
ProcedureReturn "Button"
Case #PB_GadgetType_String ; 2
ProcedureReturn "String"
Case #PB_GadgetType_Text ; 3
ProcedureReturn "Text"
Case #PB_GadgetType_CheckBox ; 4
ProcedureReturn "CheckBox"
Case #PB_GadgetType_Option ; 5
ProcedureReturn "Option"
Case #PB_GadgetType_ListView ; 6
ProcedureReturn "ListView"
Case #PB_GadgetType_Frame ; 7
ProcedureReturn "Frame"
Case #PB_GadgetType_ComboBox ; 8
ProcedureReturn "ComboBox"
Case #PB_GadgetType_Image ; 9
ProcedureReturn "Image"
Case #PB_GadgetType_HyperLink ; 10
ProcedureReturn "HyperLink"
Case #PB_GadgetType_Container ; 11
ProcedureReturn "Container"
Case #PB_GadgetType_ListIcon ; 12
ProcedureReturn "ListIcon"
Case #PB_GadgetType_IPAddress ; 13
ProcedureReturn "IPAddress"
Case #PB_GadgetType_ProgressBar ; 14
ProcedureReturn "ProgressBar"
Case #PB_GadgetType_ScrollBar ; 15
ProcedureReturn "ScrollBar"
Case #PB_GadgetType_ScrollArea ; 16
ProcedureReturn "ScrollArea"
Case #PB_GadgetType_TrackBar ; 17
ProcedureReturn "TrackBar"
Case #PB_GadgetType_Web ; 18
ProcedureReturn "Web"
Case #PB_GadgetType_ButtonImage ; 19
ProcedureReturn "ButtonImage"
Case #PB_GadgetType_Calendar ; 20
ProcedureReturn "Calendar"
Case #PB_GadgetType_Date ; 21
ProcedureReturn "Date"
Case #PB_GadgetType_Editor ; 22
ProcedureReturn "Editor"
Case #PB_GadgetType_ExplorerList ; 23
ProcedureReturn "ExplorerList"
Case #PB_GadgetType_ExplorerTree ; 24
ProcedureReturn "ExplorerTree"
Case #PB_GadgetType_ExplorerCombo ; 25
ProcedureReturn "ExplorerCombo"
Case #PB_GadgetType_Spin ; 26
ProcedureReturn "Spin"
Case #PB_GadgetType_Tree ; 27
ProcedureReturn "Tree"
Case #PB_GadgetType_Panel ; 28
ProcedureReturn "Panel"
Case #PB_GadgetType_Splitter ; 29
ProcedureReturn "Splitter"
Case #PB_GadgetType_MDI ; 30
ProcedureReturn "MDI"
Case #PB_GadgetType_Scintilla ; 31
ProcedureReturn "Scintilla"
Case #PB_GadgetType_Shortcut ; 32
ProcedureReturn "Shortcut"
Case #PB_GadgetType_Canvas ; 33
ProcedureReturn "Canvas"
Case #PB_GadgetType_OpenGL ; 34
ProcedureReturn "OpenGL"
Case #PB_GadgetType_WebView ; 35
ProcedureReturn "WebView"
EndSelect
EndProcedure
CompilerIf #PB_Compiler_OS = #PB_OS_MacOS
; PB Internal Structure Gadget MacOS from PureBasic.app/Contents/Resources/sdk/c/PureLibraries/Gadget/Gadget.h
Structure sdkGadget
*Gadget ; thanks mk-soft!
*Container
*Functions ; ref-ed (released when the view is destroyed)
UserData.i ; integer
Window.i ; integer
Type.l ; int
Flags.l ; int
EndStructure
If OpenWindow(10,0,0,270,270,"Gadgets' Flags Test",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
CheckBoxGadget(0,10,10,250,20,"Standard 0")
CheckBoxGadget(1,10,40,250,20,"Right 1",#PB_CheckBox_Right)
CheckBoxGadget(2,10,70,250,20,"Center 2",#PB_CheckBox_Center)
CheckBoxGadget(4,10,100,250,20,"3S 4",#PB_CheckBox_ThreeState):SetGadgetState(4,#PB_Checkbox_Inbetween)
CheckBoxGadget(5,10,130,250,20,"3S+Right 4+1",#PB_CheckBox_ThreeState|#PB_CheckBox_Right)
CheckBoxGadget(16,10,160,250,20,"Test 16",16) ; test (8,16,32…)
StringGadget(128,10,190,250,20,"String 0")
StringGadget(129,10,230,250,20,"Hidden 1",#PB_String_Password)
Repeat
ev=WaitWindowEvent()
If ev=#PB_Event_Gadget And IsGadget(EventGadget())
if EventType() = #PB_EventType_Change or GadgetType(EventGadget()) = #PB_GadgetType_CheckBox
*Gadget.sdkGadget = IsGadget(EventGadget()) ; thanks mk-soft!
Debug "Gadget Type: "+ getGType(*Gadget\Type) +"Gadget"
state= GetGadgetState(EventGadget())
;SetGadgetState(EventGadget(),state) ; bad for strings (but good for almost all gadgets)
Debug "Gadget State: "+ state
Debug "Gadget Flags: "+ *Gadget\Flags
Debug ""
EndIf
EndIf
Until ev=#PB_Event_CloseWindow
EndIf
CompilerEndIf