TreeGadget Event

Linux specific forum
User avatar
rndrei
Enthusiast
Enthusiast
Posts: 153
Joined: Thu Dec 28, 2023 9:04 pm

TreeGadget Event

Post by rndrei »

Why does the debugger message that the menu item so-and-so is selected every other time?

Code: Select all

#TREE=100
If OpenWindow(0, 0, 0, 355, 180, "TreeGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
       TreeGadget(#TREE, 10, 10, 160, 160)                                        
       AddGadgetItem (#TREE, -1, "Sub1 ", 0,0)       
         AddGadgetItem(#TREE, -1, "Sub-Item 1", 0, 1)   
         AddGadgetItem(#TREE, -1, "Sub-Item 2", 0, 1)
         AddGadgetItem(#TREE, -1, "Sub-Item 3", 0, 1)
         AddGadgetItem(#TREE, -1, "Sub-Item 4", 0, 1)
       AddGadgetItem (#TREE, -1, "Sub2 ", 0, 0) 
         AddGadgetItem(#TREE, -1, "Sub-Item 1", 0, 1)   
         AddGadgetItem(#TREE, -1, "Sub-Item 2", 0, 1)
         AddGadgetItem(#TREE, -1, "Sub-Item 3", 0, 1)
         AddGadgetItem(#TREE, -1, "Sub-Item 4", 0, 1)
         AddGadgetItem (#TREE, -1, "Sub 3 ",0,1)
         AddGadgetItem(#TREE, -1, "Sub-Item 1", 0, 1)    
         AddGadgetItem(#TREE, -1, "Sub-Item 2", 0, 1)
         AddGadgetItem(#TREE, -1, "Sub-Item 3", 0, 1)
         AddGadgetItem(#TREE, -1, "Sub-Item 4", 0, 1)
       AddGadgetItem (#TREE, -1, "Sub 4 ", 0, 0) 
         AddGadgetItem(#TREE, -1, "Sub-Item 1", 0, 1)   
         AddGadgetItem(#TREE, -1, "Sub-Item 2", 0, 1)
         AddGadgetItem(#TREE, -1, "Sub-Item 3", 0, 1)
         AddGadgetItem(#TREE, -1, "Sub-Item 4", 0, 1)       
       Repeat : 
         EventID=WaitWindowEvent()  
           Select Eventid 
             Case #PB_Event_CloseWindow      
                  End
             Case #PB_Event_Gadget
              If EventGadget()=#TREE And EventType()=#PB_EventType_Change 
                Debug "#PB_EventType_change"
                SelectedItem=GetGadgetState(#TREE)
                Debug("select "+  GetGadgetItemText(#TREE,SelectedItem))
              EndIf
           EndSelect                                    
         Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
User avatar
TI-994A
Addict
Addict
Posts: 2740
Joined: Sat Feb 19, 2011 3:47 am
Location: Singapore
Contact:

Re: TreeGadget Event

Post by TI-994A »

rndrei wrote: Sat Oct 12, 2024 7:21 pmWhy does the debugger message that the menu item so-and-so is selected every other time?

Because WaitWindowEvent() is being called twice in the loop. Fixed here:

Code: Select all

#TREE=100
If OpenWindow(0, 0, 0, 355, 180, "TreeGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  TreeGadget(#TREE, 10, 10, 160, 160)     
  
  AddGadgetItem(#TREE, -1, "Sub1 ", 0, 0)       
  AddGadgetItem(#TREE, -1, "Sub-Item 1", 0, 1)   
  AddGadgetItem(#TREE, -1, "Sub-Item 2", 0, 1)
  AddGadgetItem(#TREE, -1, "Sub-Item 3", 0, 1)
  AddGadgetItem(#TREE, -1, "Sub-Item 4", 0, 1)
  
  AddGadgetItem(#TREE, -1, "Sub2 ", 0, 0) 
  AddGadgetItem(#TREE, -1, "Sub-Item 1", 0, 1)   
  AddGadgetItem(#TREE, -1, "Sub-Item 2", 0, 1)
  AddGadgetItem(#TREE, -1, "Sub-Item 3", 0, 1)
  AddGadgetItem(#TREE, -1, "Sub-Item 4", 0, 1)
  
  AddGadgetItem(#TREE, -1, "Sub 3 ",0,1)
  AddGadgetItem(#TREE, -1, "Sub-Item 1", 0, 1)    
  AddGadgetItem(#TREE, -1, "Sub-Item 2", 0, 1)
  AddGadgetItem(#TREE, -1, "Sub-Item 3", 0, 1)
  AddGadgetItem(#TREE, -1, "Sub-Item 4", 0, 1)
  
  AddGadgetItem(#TREE, -1, "Sub 4 ", 0, 0) 
  AddGadgetItem(#TREE, -1, "Sub-Item 1", 0, 1)   
  AddGadgetItem(#TREE, -1, "Sub-Item 2", 0, 1)
  AddGadgetItem(#TREE, -1, "Sub-Item 3", 0, 1)
  AddGadgetItem(#TREE, -1, "Sub-Item 4", 0, 1)   
  
  Repeat
    EventID=WaitWindowEvent()  
    Select EventID 
      Case #PB_Event_CloseWindow      
        End
      Case #PB_Event_Gadget
        If EventGadget()=#TREE And EventType()=#PB_EventType_Change 
          Debug "#PB_EventType_change"
          SelectedItem=GetGadgetState(#TREE)
          Debug("select "+  GetGadgetItemText(#TREE,SelectedItem))
        EndIf
    EndSelect                                    
  Until EventID = #PB_Event_CloseWindow
EndIf
Texas Instruments TI-99/4A Home Computer: the first home computer with a 16bit processor, crammed into an 8bit architecture. Great hardware - Poor design - Wonderful BASIC engine. And it could talk too! Please visit my YouTube Channel :D
User avatar
rndrei
Enthusiast
Enthusiast
Posts: 153
Joined: Thu Dec 28, 2023 9:04 pm

Re: TreeGadget Event

Post by rndrei »

Got it! Everything works!
Post Reply