Set/GetGadgetItemData for Panel (crossplattform)
Posted: Sun Dec 19, 2010 7:16 pm
The tip is simple but i hope it is useful
Greetings - Thomas
Code: Select all
;======= Set/GetGadgetItemData for Panel ==================
; Author: Thomas Schulz (ts-soft)
; Date: December 19, 2010
; Target OS: All
; Target Compiler: Requires PureBasic 4.50
;==========================================================
EnableExplicit
Structure _PanelGadgetItem_
Map Item.i()
EndStructure
Global NewMap _PanelItemData_._PanelGadgetItem_()
Procedure SetPanelItemData(Gadget, Item, Value)
_PanelItemData_(Str(Gadget))\Item(Str(Item)) = Value
EndProcedure
Procedure GetPanelItemData(Gadget, Item)
ProcedureReturn _PanelItemData_(Str(Gadget))\Item(Str(Item))
EndProcedure
;=================== END =================================
; example (portions stolen from PureBasic.chm)
Define evGadget
If OpenWindow(0, 0, 0, 322, 220, "PanelGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
PanelGadget(0, 8, 8, 306, 203)
AddGadgetItem (0, 0, "Panel 1")
SetPanelItemData(0, 0, 100)
PanelGadget (1, 5, 5, 290, 166)
AddGadgetItem(1, 0, "Sub-Panel 1")
SetPanelItemData(1, 0, 1000)
AddGadgetItem(1, 1, "Sub-Panel 2")
SetPanelItemData(1, 1, 2000)
AddGadgetItem(1, 2, "Sub-Panel 3")
SetPanelItemData(1, 2, 3000)
CloseGadgetList()
AddGadgetItem (0, 1, "Panel 2")
SetPanelItemData(0, 1, 200)
ButtonGadget(2, 10, 15, 80, 24,"Button 1")
ButtonGadget(3, 95, 15, 80, 24,"Button 2")
CloseGadgetList()
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow : Break
Case #PB_Event_Gadget
evGadget = EventGadget()
Select evGadget
Case 0, 1
If EventType() = #PB_EventType_LeftClick
Debug GetPanelItemData(evGadget, GetGadgetState(evGadget))
EndIf
EndSelect
EndSelect
ForEver
EndIf