;
; ------------------------------------------------------------
;
;   SpiderBasic - Gadget example file
;
;    (c) Fantaisie Software
;
; ------------------------------------------------------------
;

#WindowWidth  = 390
#WindowHeight = 350


Procedure CloseWindowEvent()
  CloseWindow(EventWindow())
EndProcedure


Procedure GadgetEvents()
  
  Select EventGadget()
      
    Case 1 ; Play
      ClearGadgetItems(4)
      DisableGadget(2,0)  ; Enable the 'Stop' gadget
      DisableGadget(1,1)  ; Disable the 'Play' Gadget
  
    Case 2 ; Stop
      DisableGadget(1,0)  ; Enable the 'Play' gadget
      DisableGadget(2,1)  ; Disable the 'Stop' Gadget
    
    Case 4
      If EventType() = 2
        SetGadgetText(0, GetGadgetText(4)) ; Get the current item from the ListView..
      EndIf

    Case 5 ; Add
      AddGadgetItem(4, -1, "New Item Added...")

    Case 6 ; Remove
      RemoveGadgetItem(4, GetGadgetState(4)) ; Remove the current element of the ListView

    Case 7 ; Select
      SetGadgetText(0, GetGadgetText(4)) ; Get the current item from the ListView..

    Case 8 ; Quit...
      Event = #PB_Event_CloseWindow

    Case 11 ; Enable PlugIn..
      DisableGadget(12, 1-GetGadgetState(11))
      
    Case 16 ;
      If GetGadgetState(13) : Result$ = GetGadgetText(13) : EndIf
      If GetGadgetState(14) : Result$ = GetGadgetText(14) : EndIf
      If GetGadgetState(15) : Result$ = GetGadgetText(15) : EndIf
     
      Debug "Selected screen mode: "+Result$
    
    Case 17
      SetGadgetText(0, Str(GetGadgetState(17)))
      
  EndSelect
  
EndProcedure


If OpenWindow(0, 100, 200, #WindowWidth, #WindowHeight, "Gadget Demonstration", #PB_Window_TitleBar)
    
  Top = 10
  GadgetHeight = 24

  StringGadget(0,  20, Top, 200, GadgetHeight, "")
  ButtonGadget(1, 223, Top,  72, GadgetHeight, "Play")
  ButtonGadget(2, 295, Top,  72, GadgetHeight, "Stop")  : Top+35
  DisableGadget(2,1)
  
  GadgetToolTip(1,"Play the current song")
  
  PanelGadget(3, 20, Top, #WindowWidth-50, #WindowHeight-Top-60)
    AddGadgetItem(3, 0, "MP3 PlayList")
      ListViewGadget(4, 6, 10, 230, 148)

      For k=0 To 30
        AddGadgetItem(4, -1, "Music Song "+Str(k))
      Next

      ButtonGadget(5,  250, 10, 80, GadgetHeight, "Add")
      ButtonGadget(6,  250, 38, 80, GadgetHeight, "Remove")
      ButtonGadget(7,  250, 66, 80, GadgetHeight, "Select")
      GadgetToolTip(7, "Select the current song")
      
      TrackBarGadget(17, 10, 168, 310, 25, 0, 100)

    AddGadgetItem(3, 1, "Options")
      Top = 10
      CheckBoxGadget(10, 10, Top, 250, GadgetHeight, "Enable low-pass filter") : Top+30
      CheckBoxGadget(11, 10, Top, 250, GadgetHeight, "Enable visual plug-in")  : Top+30
      ComboBoxGadget(12, 10, Top, 250, 21) : Top+30
        AddGadgetItem(12, -1, "FireWorks")
        AddGadgetItem(12, -1, "OpenGL spectrum")
        AddGadgetItem(12, -1, "Bump bass")
      SetGadgetState(12,0)
      DisableGadget(12,1)
      
      OptionGadget(13, 10, Top, 80, GadgetHeight, "640*480") : Top+20
      OptionGadget(14, 10, Top, 80, GadgetHeight, "800*600") : Top+20
      OptionGadget(15, 10, Top, 80, GadgetHeight, "1024*768")
      SetGadgetState(13, 1)
      
      ButtonGadget(16, 150, Top, 80, GadgetHeight, "Info")
  CloseGadgetList()

  TextGadget  (9, 10, #WindowHeight-30, 250, 24, "Gadget demonstration")
  ButtonGadget(8, #WindowWidth-100, #WindowHeight-36, 80, 24, "Quit")

  SetGadgetState(3, 0)
  
  BindEvent(#PB_Event_Gadget, @GadgetEvents())
  BindEvent(#PB_Event_CloseWindow, @CloseWindowEvent())
  
  CompilerIf #PB_Compiler_OS <> #PB_OS_Web
    Repeat
      Event = WaitWindowEvent()
    Until Event = #PB_Event_CloseWindow
  CompilerEndIf
EndIf