Irgendwie scheint mir der Code etwas älter zu sein oder muß er unter älteren Versionen von PB laufen?
- Api-Timer ersetzt. TimerProcedure war fehlerhaft und API unnötig.
- andere, aber nicht alle Funktionen aktualisiert.
(nicht mehr notwendige ATL-DLL bitte selber rausnehmen und anpassen).
Code: Alles auswählen
; PureBasic MiniBrowser
EnableExplicit
Enumeration
#MiniBrowser
#Windows_StatusBar
#Windows_ProgressBar
#WebButtonBack
#WebButtonNext
#WebButtonStop
#WebButtonRefresh
#WebButtonGo
#WebBrowserGadget
#WebGadgetFrame
#WebStringGadgetLink
#WebButtonTesstLink
#WebButtonReturn
EndEnumeration
Procedure Timer()
Protected State
State = GetGadgetState(#Windows_ProgressBar) + 5
If State > 100 : State = 0 : EndIf
SetGadgetState(#Windows_ProgressBar, State)
EndProcedure
Procedure ResizeWebWindow()
ResizeGadget(#WebBrowserGadget, #PB_Ignore, #PB_Ignore, WindowWidth(0), WindowHeight(0)-52)
ResizeGadget(#WebStringGadgetLink, #PB_Ignore, #PB_Ignore, WindowWidth(0)-260, #PB_Ignore)
ResizeGadget(#WebButtonGo, WindowWidth(0)-25, #PB_Ignore, #PB_Ignore, #PB_Ignore)
ResizeGadget(#WebButtonTesstLink, WindowWidth(0)-50, #PB_Ignore, #PB_Ignore, #PB_Ignore)
ResizeGadget(#Windows_ProgressBar, WindowWidth(0)-100, #PB_Ignore,#PB_Ignore , #PB_Ignore)
EndProcedure
If OpenWindow(#MiniBrowser, 100, 200, 500, 300, "PureBasic MiniBrowser Version 2.6", #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget)
; If CreateGadgetList(WindowID(#MiniBrowser))
ProgressBarGadget(#Windows_ProgressBar, WindowWidth(0)-100, 2, 100, 20, 0, 100)
CreateStatusBar(#Windows_StatusBar, WindowID(#MiniBrowser))
SetParent_(GadgetID(#Windows_ProgressBar), StatusBarID(#Windows_StatusBar))
AddStatusBarField(290)
StatusBarText(#Windows_StatusBar, 0, "Welcome to the world's smallest Browser ! :)", 0)
; EndIf
ButtonGadget(#WebButtonBack, 0, 0, 50, 25, "Back")
ButtonGadget(#WebButtonNext, 50, 0, 50, 25, "Next")
ButtonGadget(#WebButtonStop, 100, 0, 50, 25, "Stop")
ButtonGadget(#WebButtonRefresh, 150, 0, 50, 25, "Refresh")
StringGadget(#WebStringGadgetLink, 205, 5, 0, 20, "http://www.google.com")
ButtonGadget(#WebButtonTesstLink, 0, 0, 25, 25, "TS")
ButtonGadget(#WebButtonGo, 0, 0, 25, 25, "Go")
FrameGadget(#WebGadgetFrame, 0, 30, 0, 2, "", 2)
; Prüfen auf ATL.dll
If WebGadget(#WebBrowserGadget, 0, 31, 0, 0, "http://www.google.com") = 0 : MessageRequester("Error", "ATL.dll not found", 0) : End : EndIf
SetGadgetAttribute(#Windows_ProgressBar, #PB_Web_BlockPopupMenu, 1)
AddKeyboardShortcut(0, #PB_Shortcut_Return, #WebButtonReturn)
ResizeWebWindow()
BindEvent(#PB_Event_SizeWindow, @ResizeWebWindow())
; Skriptfehler ausschalten
Define browser.IWebBrowser2
browser = GetWindowLongPtr_(GadgetID(#WebBrowserGadget), #GWL_USERDATA)
If browser: browser\put_Silent(#True): EndIf
; SetTimer_(WindowID(#MiniBrowser), 0, 100, @Timer())
AddWindowTimer(#MiniBrowser, 0, 100)
BindEvent(#PB_Event_Timer, @Timer())
Define Event,EventGadget,EventType
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_Event_Gadget
EventGadget = EventGadget()
EventType = EventType()
If EventGadget = #WebBrowserGadget
If EventType = #PB_EventType_DownloadStart
Debug "DownloadStart"
HideGadget(#Windows_ProgressBar,0)
Debug "DownloadProgressMax: " + Str(GetGadgetAttribute(#WebBrowserGadget, #PB_Web_ProgressMax))
;SetGadgetAttribute(#Windows_ProgressBar, #PB_ProgressBar_Maximum, GetGadgetAttribute(#WebBrowserGadget, #PB_Web_ProgressMax))
EndIf
If EventType = #PB_EventType_DownloadProgress
Debug "DownloadProgress: " + Str(GetGadgetAttribute(#WebBrowserGadget, #PB_Web_Progress))
Debug "DownloadProgressMax: " + Str(GetGadgetAttribute(#WebBrowserGadget, #PB_Web_ProgressMax))
SetGadgetState(#Windows_ProgressBar,GetGadgetAttribute(#WebBrowserGadget,#PB_Web_Progress))
EndIf
If EventType = #PB_EventType_PopupMenu
; SetGadgetAttribute(#Windows_ProgressBar, #PB_Web_BlockPopupMenu, 1)
; ; SetGadgetAttribute(#Windows_ProgressBar, #PB_Web_BlockPopupMenu, GetGadgetAttribute(#WebBrowserGadget, #PB_Web_BlockPopupMenu))
Debug "#PB_EventType_PopupMenu : " + Str(GetGadgetAttribute(#WebBrowserGadget, #PB_Web_BlockPopupMenu ))
EndIf
If EventType = #PB_EventType_TitleChange
StatusBarText(#Windows_StatusBar, 0,GetGadgetItemText(#WebBrowserGadget, #PB_Web_PageTitle), 0)
EndIf
If EventType = #PB_EventType_DownloadEnd
Debug "DownloadEnd"
HideGadget(#Windows_ProgressBar,1)
EndIf
EndIf
Select EventGadget
Case #WebButtonBack
SetGadgetState(#WebBrowserGadget, #PB_Web_Back)
Case #WebButtonNext
SetGadgetState(#WebBrowserGadget, #PB_Web_Forward)
Case #WebButtonStop
SetGadgetState(#WebBrowserGadget, #PB_Web_Stop)
Case #WebButtonGo
SetGadgetText(#WebBrowserGadget, GetGadgetText(#WebStringGadgetLink))
Case #WebButtonRefresh
SetGadgetText(#WebBrowserGadget, GetGadgetText(#WebBrowserGadget))
Case #WebButtonTesstLink
SetGadgetText(#WebBrowserGadget, "http://www.oe24.at")
EndSelect
Case #PB_Event_Menu
Select EventMenu()
Case #WebButtonReturn
SetGadgetText(#WebBrowserGadget, GetGadgetText(#WebStringGadgetLink))
EndSelect
Case #PB_Event_SizeWindow
ResizeWebWindow()
EndSelect
Until Event = #PB_Event_CloseWindow
EndIf