Perhaps some of the more experienced out there may be able to improve and/or expand on it.
Code: Select all
; My example multiselect checkboxes
Enumeration
#Window_0
EndEnumeration
Enumeration
#ListIcon_1
#Text_1
#Button_1
#Button_2
EndEnumeration
Procedure SelectedPages()
NumSelected=0
For a=0 To CountGadgetItems(#ListIcon_1)-1
Selected=GetGadgetItemState(#ListIcon_1, a)
If Selected=#PB_ListIcon_Selected
NumSelected=NumSelected+1
EndIf
Next
ProcedureReturn NumSelected
EndProcedure
Procedure OpenWindow_Window_0()
If OpenWindow(#Window_0, 249, 116, 450, 350, "Multiselect Checkboxes in ListIconGadget", #PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_TitleBar|#PB_Window_ScreenCentered)
If CreateGadgetList(WindowID(#Window_0)) ;sorry still using PB ver 4.02
;Note: I think you need to remove the CreateGadgetList entry (above) for PB ver 4.30
ListIconGadget(#ListIcon_1,0,0,200,WindowHeight(#Window_0)-50,"Data To Extract",150,#PB_ListIcon_CheckBoxes|#PB_ListIcon_MultiSelect)
TextGadget(#Text_1,220,50,200,200,"Example: Select Data 3 with mouse"+Chr(10)+"then use Shift mouse click on Data 12."+Chr(10)+"Note:Checkboxes Data 3 to Data 12 are now checked")
ButtonGadget(#Button_1,5,WindowHeight(#Window_0)-35,150,25,"Process Selected")
ButtonGadget(#Button_2,200,WindowHeight(#Window_0)-35,150,25,"Clear All Checkboxes")
; load some example data
AddGadgetItem(#ListIcon_1,-1," Data 1")
AddGadgetItem(#ListIcon_1,-1," Data 2")
AddGadgetItem(#ListIcon_1,-1," Data 3")
AddGadgetItem(#ListIcon_1,-1," Data 4")
AddGadgetItem(#ListIcon_1,-1," Data 5")
AddGadgetItem(#ListIcon_1,-1," Data 6")
AddGadgetItem(#ListIcon_1,-1," Data 7")
AddGadgetItem(#ListIcon_1,-1," Data 8")
AddGadgetItem(#ListIcon_1,-1," Data 9")
AddGadgetItem(#ListIcon_1,-1," Data 10")
AddGadgetItem(#ListIcon_1,-1," Data 11")
AddGadgetItem(#ListIcon_1,-1," Data 12")
AddGadgetItem(#ListIcon_1,-1," Data 13")
AddGadgetItem(#ListIcon_1,-1," Data 14")
EndIf
EndIf
EndProcedure
OpenWindow_Window_0()
Repeat
Select WaitWindowEvent()
Case #PB_Event_Gadget
Select EventGadget ()
Case #ListIcon_1
Select EventType ()
Case #PB_EventType_Change
If SelectedPages()=1
Tag=1
EndIf
EndSelect
Case #Button_1
Mess.s=""
For a=0 To CountGadgetItems(#ListIcon_1)-1
Selected=GetGadgetItemState(#ListIcon_1, a)
If Selected=#PB_ListIcon_Checked
If Mess=""
Mess=Mess+GetGadgetItemText(#ListIcon_1,a,0)
Else
Mess=Mess+","+GetGadgetItemText(#ListIcon_1,a,0)
EndIf
EndIf
Next
MessageRequester("You selected the following",Mess)
Case #Button_2
For a=0 To CountGadgetItems(#ListIcon_1)-1
SetGadgetItemState(#ListIcon_1,a,0)
Next
EndSelect
Case #PB_Event_CloseWindow
EventWindow = EventWindow()
If EventWindow = #Window_0
CloseWindow(#Window_0)
Break
EndIf
EndSelect
If SelectedPages()>1 And Tag=1 ; Multiselect checkboxes
Tag=0
For a=0 To CountGadgetItems(#ListIcon_1)-1
Selected=GetGadgetItemState(#ListIcon_1, a)
If Selected=#PB_ListIcon_Selected
SetGadgetItemState(#ListIcon_1,a,#PB_ListIcon_Checked)
EndIf
Next
EndIf
ForEver
I think you need to remove this for PB ver 4.30