in the below piece of code cannot get checkbox event change in event handler.
Only by checking all checkbox status to get changed ones.
Code: Select all
Procedure AddCheckedTab(GadgetNo, TabTitle.s, TabPos = -1, ChkPos = -1, SpacePadding = 3)
Protected r.RECT, cbtrim, chkXPos, chkYPos
If SpacePadding < 0
SpacePadding = 3
EndIf
If ChkPos = -1
TabTitle = Space(SpacePadding) + TabTitle
Else
TabTitle = TabTitle + Space(SpacePadding)
EndIf
OpenGadgetList(GadgetNo)
AddGadgetItem(GadgetNo, TabPos, TabTitle)
CloseGadgetList()
If TabPos = -1
TabPos = CountGadgetItems(GadgetNo) - 1
EndIf
SendMessage_(GadgetID(GadgetNo),#TCM_GETITEMRECT,TabPos,r.RECT)
If ChkPos = -1
chkXPos = r\left+5
Else
chkXPos = r\right-20
EndIf
cbtrim = (r\bottom-r\top -15)/2
chkYPos = GadgetY(GadgetNo)+r\top+cbtrim
Protected chkBoxGadgetID = CheckBoxGadget(#PB_Any, chkXPos,chkYPos,15,15,"")
BringWindowToTop_(GadgetID(chkBoxGadgetID))
DisableGadget(chkBoxGadgetID,1)
ProcedureReturn chkBoxGadgetID
EndProcedure
LoadFont(0,"Tahoma",12)
OpenWindow(0, 0, 0, 400, 300, "Check to Tab", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
PanelGadget(1,5,5,390,290)
SetGadgetFont(1,FontID(0))
chkTab1 = AddCheckedTab(1, "Tab1", -1, -1, 3)
chkTab2 = AddCheckedTab(1, "Tab2", -1, -1, 3)
chkTab3 = AddCheckedTab(1, "Tab3", -1, 1, 3)
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Quit = 1
Case #PB_Event_Gadget
Debug "____TrapEveryGadgetEventToGetCheckBoxState____"
Debug GetGadgetState(chkTab1)
Debug GetGadgetState(chkTab2)
Debug GetGadgetState(chkTab3)
Debug "------------"
Select EventGadget()
Case chkTab1
Debug "____NeverCaught_____"
Debug GetGadgetState(chkTab1)
Debug "------------"
Case chkTab2
Debug "____NeverCaught_____"
Debug GetGadgetState(chkTab2)
Debug "------------"
Case chkTab3
Debug "____NeverCaught_____"
Debug GetGadgetState(chkTab3)
Debug "------------"
Case 1
Select EventType()
Case #PB_EventType_Change
state = GetGadgetState(1)
Debug state
If state = 0
DisableGadget(chkTab1,0)
DisableGadget(chkTab2,1)
DisableGadget(chkTab2,1)
EndIf
If state = 1
DisableGadget(chkTab1,1)
DisableGadget(chkTab2,0)
DisableGadget(chkTab3,1)
EndIf
If state = 2
DisableGadget(chkTab1,1)
DisableGadget(chkTab2,1)
DisableGadget(chkTab3,0)
EndIf
EndSelect
EndSelect
EndSelect
Until Quit = 1
End