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

#WindowWidth  = 390
#WindowHeight = 350

If OpenWindow(0, 100, 200, #WindowWidth, #WindowHeight, "PureBasic - Демонстрация Гаджетов", #PB_Window_MinimizeGadget)
    
  Top = 10
  GadgetHeight = 24

  FrameGadget(#PB_Any, 10, Top, 370, 290, "Проигрыватель...") : Top+20

  StringGadget(0,  20, Top, 200, GadgetHeight, "")
  ButtonGadget(1, 223, Top,  72, GadgetHeight, "Воспр.")
  ButtonGadget(2, 295, Top,  72, GadgetHeight, "Стоп")  : Top+35
  DisableGadget(2,1)
  
  GadgetToolTip(1,"Воспроизвести текущую композицию")
  
  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 n° "+Str(k))
      Next

      ButtonGadget(5,  250, 10, 80, GadgetHeight, "Добавить")
      ButtonGadget(6,  250, 38, 80, GadgetHeight, "Удалить")
      ButtonGadget(7,  250, 66, 80, GadgetHeight, "Выбрать")
      GadgetToolTip(7, "Выбрать текущую композицию")
      
      TrackBarGadget(17, 10, 168, 310, 25, 0, 100)

    AddGadgetItem(3, 1, "Опции")
      Top = 10
      CheckBoxGadget(10, 10, Top, 250, GadgetHeight, "Включить фильтр нижних частот") : Top+30
      CheckBoxGadget(11, 10, Top, 250, GadgetHeight, "Включить визуальный плагин")  : Top+30
      ComboBoxGadget(12, 10, Top, 250, 21) : Top+30
        AddGadgetItem(12, -1, "Фейерверк")
        AddGadgetItem(12, -1, "OpenGL спектр")
        AddGadgetItem(12, -1, "Бамп бас")
      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, "PureBasic - Демонстрация Гаджетов")
  ButtonGadget(8, #WindowWidth-100, #WindowHeight-36, 80, 24, "Выход")

  SetGadgetState(3, 0)

  Repeat
    Event = WaitWindowEvent()
    
    If Event = #PB_Event_Gadget

      Select EventGadget()
        Case 0
          If EventType() = #PB_EventType_ReturnKey
            MessageRequester("Инфо", "Возврат нажатой клавиши", 0)
            SetActiveGadget(0)
          EndIf
          
        Case 1 ; Воспроизведение
          DisableGadget(2,0)  ; Включить 'стоп' Гаджет
          DisableGadget(1,1)  ; Выключить 'воспроизвести' Гаджет
      
        Case 2 ; Стоп
          DisableGadget(1,0)  ; Включить 'воспроизвести' Гаджет
          DisableGadget(2,1)  ; Выключить 'стоп' Гаджет
        
        Case 4
          If EventType() = 2
            SetGadgetText(0, GetGadgetText(4)) ; Получить текущий элемент из ListView..
          EndIf

        Case 5 ; Добавить
          AddGadgetItem(4, -1, "Добавить новый элемент...")

        Case 6 ; Удалить
          RemoveGadgetItem(4, GetGadgetState(4)) ; Удалить текущий элемент из ListView

        Case 7 ; Выбрать
          SetGadgetText(0, GetGadgetText(4)) ; Получить текущий элемент из ListView..
  
        Case 8 ; Выход...
          Event = #PB_Event_CloseWindow

        Case 11 ; Включить Плагин..
          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
         
          MessageRequester("Инфо", "Выбор режима экрана: "+Result$, 0)
        
        Case 17
          SetGadgetText(0, Str(GetGadgetState(17)))
          
      EndSelect

    EndIf

  Until Event = #PB_Event_CloseWindow

EndIf

End