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

#WindowWidth  = 450
#WindowHeight = 305

; Загрузим наши изображения.. 
;
LoadImage(0, #PB_Compiler_Home + "examples/sources/Data/Drive.bmp")
LoadImage(1, #PB_Compiler_Home + "examples/sources/Data/File.bmp")
LoadImage(2, #PB_Compiler_Home + "examples/sources/Data/PureBasic.bmp")

CompilerIf #PB_Compiler_OS = #PB_OS_Windows
  ; формат файлов .ico поддерживается только в Windows.
  LoadImage(3, #PB_Compiler_Home + "examples/sources/Data/CdPlayer.ico")
CompilerElse
  LoadImage(3, #PB_Compiler_Home + "examples/sources/Data/Drive.bmp")
CompilerEndIf

CreatePopupMenu(0)
  MenuItem(0, "Выскакивание!")

If OpenWindow(0, 100, 200, #WindowWidth, #WindowHeight, "PureBasic - Продвинутая Демонстрация Гаджетов", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget)

  ListIconGadget(5, 170, 50, 265, 200, "Столбец 1", 131)
  AddGadgetColumn(5, 1, "Столбец 2", 300)
  AddGadgetColumn(5, 2, "Столбец 3", 80)
  
  TextGadget(4, 10, 16, 180, 35, "Подождите инициализации...")
  
  ProgressBarGadget(3, 10, 260, #WindowWidth-25, 20, 0, 100)
  
  ; Обновление ProgressBar, просто для удовольствия!
  ;
  For k=0 To 100
    SetGadgetState(3, k)
    Delay(10)
  Next
  
  ImageGadget      (0, 200, 5, 0, 0, ImageID(2))
  ButtonImageGadget(1, 384, 5, 50, 36, ImageID(3))
  
  TreeGadget    (2,  10, 50, 150, 200)
    
  SetGadgetText(4, "Инициализация Ok... Welcome !")
  
  ; Заполните Гаджет дерева большим количеством записей (включая изображение)
  ;
  
  For k=0 To 10
    AddGadgetItem(2, -1, "Главное "+Str(k), ImageID(1))
    AddGadgetItem(2, -1, "Режим экрана", ImageID(1))
      AddGadgetItem(2, -1, "640*480", ImageID(1), 1)
      AddGadgetItem(2, -1, "800*600", ImageID(3), 1)
      AddGadgetItem(2, -1, "1024*768", ImageID(1), 1)
      AddGadgetItem(2, -1, "1600*1200", ImageID(1), 1)
    AddGadgetItem(2, -1, "Джойстик", ImageID(1))
  Next
    
  ; Заполните Гаджет ListIcon. Обратите внимание, что столбец разделен символом Chr (10) (конец строки)
  ;
  For k=0 To 100
    AddGadgetItem(5, -1, "Элемент "+Str(k)+Chr(10)+"C 2"+Chr(10)+"Комментарий 3", ImageID(3))
  Next
  
  SetGadgetState(5, 8)
  
  Repeat
    Event = WaitWindowEvent()

    If Event = #PB_Event_Gadget
      
      Select EventGadget()
        Case 1
          MessageRequester("Инфо", "Ты сделал это!", 0)
      
        Case 2
          SetGadgetText(4, "TreeGadget. Выбор элемента: "+Str(GetGadgetState(2)))
          
          If EventType() = 2
            MessageRequester("Инфо", "Двойной клик: элемент"+Str(GetGadgetState(2))+", Текст: "+GetGadgetText(2), 0)
          ElseIf EventType() = 1
            DisplayPopupMenu(0, WindowID(0))
          EndIf
          
        Case 5
          SetGadgetText(4, "ListIconGadget. Выбор элемента: "+Str(GetGadgetState(5)))
          
          If EventType() = 2
            MessageRequester("Инфо", "Двойной клик: элемент"+Str(GetGadgetState(5))+", Текст: "+GetGadgetText(5), 0)
          ElseIf EventType() = 1
            DisplayPopupMenu(0, WindowID(0))
          EndIf
          
     EndSelect

    EndIf
    
  Until Event = #PB_Event_CloseWindow
EndIf

End