Official WebGadget example and Google

Just starting out? Need help? Post your questions and find answers here.
firace
Addict
Addict
Posts: 902
Joined: Wed Nov 09, 2011 8:58 am

Official WebGadget example and Google

Post by firace »

The AddKeyboardShortcut seems to interfere with the Google search field (as it will reload the page instead of performing the query)...
Any ideas on how to fix the issue?

Code: Select all

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, 40, 1000, 500, "PureBasic MiniBrowser v1.0", #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget)

  CreateStatusBar(0, WindowID(0))
    AddStatusBarField(#PB_Ignore)
    StatusBarText(0, 0, "Welcome to the world's smallest Browser ! :)", 0)
      
  ButtonGadget(1,   0, 0, 50, 25, "Back")
  ButtonGadget(2,  50, 0, 50, 25, "Next")
  ButtonGadget(3, 100, 0, 50, 25, "Stop")

  StringGadget(4, 155, 5, 0, 20, "http://www.google.com")
  
  ButtonGadget(5, 0, 0, 25, 25, "Go")
  
  Frame3DGadget(6, 0, 30, 0, 2, "", 2) ; Nice little separator

  If WebGadget(10, 0, 31, 0, 0, "http://www.google.com") = 0 : MessageRequester("Error", "ATL.dll not found", 0) : End : EndIf
  
  AddKeyboardShortcut(0, #PB_Shortcut_Return, 0)
  
  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 ; We only have one shortcut
        SetGadgetText(10, GetGadgetText(4))

      Case #PB_Event_SizeWindow
        ResizeWebWindow()
      
    EndSelect
      
  Until Event = #PB_Event_CloseWindow
   
EndIf
User avatar
RSBasic
Moderator
Moderator
Posts: 1218
Joined: Thu Dec 31, 2009 11:05 pm
Location: Gernsbach (Germany)
Contact:

Re: Official WebGadget example and Google

Post by RSBasic »

Code: Select all

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, 40, 1000, 500, "PureBasic MiniBrowser v1.0", #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget)
  
  CreateStatusBar(0, WindowID(0))
  AddStatusBarField(#PB_Ignore)
  StatusBarText(0, 0, "Welcome to the world's smallest Browser ! :)", 0)
  
  ButtonGadget(1,   0, 0, 50, 25, "Back")
  ButtonGadget(2,  50, 0, 50, 25, "Next")
  ButtonGadget(3, 100, 0, 50, 25, "Stop")
  
  StringGadget(4, 155, 5, 0, 20, "http://www.google.com")
  
  ButtonGadget(5, 0, 0, 25, 25, "Go")
  
  Frame3DGadget(6, 0, 30, 0, 2, "", 2) ; Nice little separator
  
  If WebGadget(10, 0, 31, 0, 0, "http://www.google.com") = 0 : MessageRequester("Error", "ATL.dll not found", 0) : End : EndIf
  
  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 4
            Select EventType() 
              Case #PB_EventType_Focus
                AddKeyboardShortcut(0, #PB_Shortcut_Return, 0)
              Case #PB_EventType_LostFocus
                RemoveKeyboardShortcut(0, #PB_Shortcut_Return)
            EndSelect
            
          Case 5
            SetGadgetText(10, GetGadgetText(4))
            
          Case 10
            
        EndSelect     
        
      Case #PB_Event_Menu ; We only have one shortcut
        SetGadgetText(10, GetGadgetText(4))
      Case #PB_Event_SizeWindow
        ResizeWebWindow()
        
    EndSelect
    
  Until Event = #PB_Event_CloseWindow
  
EndIf
Image
Image
firace
Addict
Addict
Posts: 902
Joined: Wed Nov 09, 2011 8:58 am

Re: Official WebGadget example and Google

Post by firace »

Ah, good! I was looking for focus-related events, but did not look at the #PB_EventType_* ones...
Thanks again.
Post Reply