PureBasic
;
; ------------------------------------------------------------
;
;   PureBasic - MiniBrowser
;
;    (c) Fantaisie Software
;
; ------------------------------------------------------------
;

Procedure ResizeWebWindow()
  ResizeGadget(10, #PB_Ignore, #PB_Ignore, WindowWidth(0), WindowHeight(0)-52)
  ResizeGadget(4, #PB_Ignore, #PB_Ignore, WindowWidth(0)-185, #PB_Ignore)
  ResizeGadget(5, WindowWidth(0)-25, #PB_Ignore, #PB_Ignore, #PB_Ignore)
  ResizeGadget(6, #PB_Ignore, #PB_Ignore, WindowWidth(0), #PB_Ignore)
EndProcedure


If OpenWindow(0, 100, 200, 500, 300, "PureBasic МиниБраузер v1.0", #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget)

  CreateStatusBar(0, WindowID(0))
    AddStatusBarField(#PB_Ignore)
    StatusBarText(0, 0, "Добро пожаловать в самый маленький в мире браузер! :)", 0)
      
  ButtonGadget(1,   0, 3, 55, 25, "Назад")
  ButtonGadget(2,  50, 3, 55, 25, "Вперёд")
  ButtonGadget(3, 100, 3, 50, 25, "Стоп")

  StringGadget(4, 155, 5, 0, 20, "http://www.purebasic.com")
  
  ButtonGadget(5, 0, 3, 20, 25, ">")
  
  FrameGadget(6, 0, 30, 0, 2, "", 2) ; Хороший маленький сепаратор

  If WebGadget(10, 0, 31, 0, 0, "http://www.purebasic.com") = 0
    
    CompilerIf #PB_Compiler_OS <> #PB_OS_Windows
      ; Linux и OX использует Webkit
      MessageRequester("Ошибка", "Webkit библиотека не найдена", 0)
    CompilerEndIf
    
    End ; Выход
  EndIf
  
  AddKeyboardShortcut(0, #PB_Shortcut_Return, 0)
  
  ; Используем bindevent() для изменения размера окна в реальном времени
  ;
  BindEvent(#PB_Event_SizeWindow, @ResizeWebWindow())
  ResizeWebWindow() ; Настройка Гаджета на текущий размер окна
    
  Repeat
    Event = WaitWindowEvent()
    
    Select Event
      Case #PB_Event_Gadget
      
        Select EventGadget()
          Case 1
            SetGadgetState(10, #PB_Web_Back)
          
          Case 2
            SetGadgetState(10, #PB_Web_Forward)
          
          Case 3
            SetGadgetState(10, #PB_Web_Stop)
          
          Case 5
            SetGadgetText(10, GetGadgetText(4))
            
        EndSelect      
      
      Case #PB_Event_Menu ; У нас есть только один ярлык
        SetGadgetText(10, GetGadgetText(4))
     
    EndSelect
      
  Until Event = #PB_Event_CloseWindow
   
EndIf