Seite 1 von 1
Webgadget NavigationCallback abschalten?
Verfasst: 22.12.2014 14:44
von Velindos
Hallo Leute,
mir ist nicht klar wie man den NavigationCallback abschaltet. Versuchte schon einiges ging aber nicht, vielleicht hat jemanden einen Tip.
Code: Alles auswählen
Procedure NavigationCallback(Gadget, Url$)
If Url$= "http://www.purebasic.com/news.php"
MessageRequester("", "No news today!")
ProcedureReturn #False
Else
ProcedureReturn #True
EndIf
EndProcedure
If OpenWindow(0, 0, 0, 600, 300, "WebGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
WebGadget(0, 10, 10, 580, 280, "http://www.purebasic.com")
SetGadgetAttribute(0, #PB_Web_NavigationCallback, @NavigationCallback())
Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
Gruss ... Velindos
Verfasst: 22.12.2014 14:54
von CodeCommander
~ DELETE ~
Re: Webgadget NavigationCallback abschalten?
Verfasst: 22.12.2014 15:06
von Kiffi
Code: Alles auswählen
SetGadgetAttribute(0, #PB_Web_NavigationCallback, #Null)
Grüße ... Peter
Re: Webgadget NavigationCallback abschalten?
Verfasst: 22.12.2014 15:37
von Velindos
Hallo, Danke für den TIP. Geht, aber... wenn ich die neue Seite geladen habe bringe ich das Ding nich zum laufen.
Code: Alles auswählen
Enumeration
#PurbasicSeite
#WebDeSeite
EndEnumeration
Procedure NavigationCallback(Gadget, Url$)
Static start = 0
If Not start ; ersten aufruf durchlassen
start = 1
SetGadgetText(1,Url$)
ProcedureReturn #False
ElseIf start; jeden weiteren aufruf an das 2 Webgaget leiten
SetGadgetText(1,Url$)
ProcedureReturn #False
Else
ProcedureReturn #True
EndIf
EndProcedure
If OpenWindow(0, 0, 0, 600, 300, "WebGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
WebGadget(0, 10, 10, 200, 280, "http://www.purebasic.com")
WebGadget(1, 210, 10, 380, 280, "")
SetGadgetAttribute(0, #PB_Web_NavigationCallback, @NavigationCallback())
AddKeyboardShortcut (0, #PB_Shortcut_Control | #PB_Shortcut_B, #PurbasicSeite) ; Shortcut einschalten
AddKeyboardShortcut (0, #PB_Shortcut_Control | #PB_Shortcut_N, #WebDeSeite) ; Shortcut einschalten
Repeat
EventID = WaitWindowEvent() ; Wartet bis ein Ereignis auftritt am Fenster(Window)
Select EventID
Case #PB_Event_Menu ; <<< Ereigniss am Menu
Select EventMenu()
Case #PurbasicSeite
SetGadgetAttribute(0, #PB_Web_NavigationCallback, #Null)
SetGadgetText(0,"http://www.purebasic.com")
SetGadgetAttribute(0, #PB_Web_NavigationCallback, #True)
Case #WebDeSeite
SetGadgetAttribute(0, #PB_Web_NavigationCallback, #Null)
SetGadgetText(0,"http://www.web.de")
SetGadgetAttribute(0, #PB_Web_NavigationCallback, #True)
EndSelect
EndSelect
Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
Hab versucht es mit True wieder einzuschalten aber will und will nicht! Was mache ich Falsch oder wo stehe ich auf der Leitung!
Gruss ... Velindos
Re: Webgadget NavigationCallback abschalten?
Verfasst: 22.12.2014 15:47
von NicTheQuick
Du musst dann natürlich wieder 'SetGadgetAttribute(0, #PB_Web_NavigationCallback, @NavigationCallback())' aufrufen.
Re: Webgadget NavigationCallback abschalten?
Verfasst: 22.12.2014 16:26
von Velindos
Hallo Leute,
habe mal was zusammengeboot was läuft. Wenn Ihr noch Tips oder Verbesserungen habt wäre ich Dankbar.
Code: Alles auswählen
Enumeration
#PurbasicSeite
#WebDeSeite
EndEnumeration
Global start
Global SiteLoaded = 0
Procedure.i WebGadgetBusy(pbnr)
Protected event
While WindowEvent()
Wend
While GetGadgetAttribute(pbnr, #PB_Web_Busy)
event = WindowEvent()
If event = #WM_KEYDOWN
If EventwParam() = #VK_ESCAPE
ProcedureReturn #S_FALSE
EndIf
EndIf
Delay(1)
Wend
ProcedureReturn #S_OK
EndProcedure
Procedure NavigationCallback(Gadget, Url$)
; Static start = 0
If Not start ; ersten aufruf durchlassen
start = 1
SetGadgetText(1,Url$)
ProcedureReturn #False
ElseIf start; jeden weiteren aufruf an das 2 Webgaget leiten
SetGadgetText(1,Url$)
ProcedureReturn #False
Else
ProcedureReturn #True
EndIf
EndProcedure
If OpenWindow(0, 0, 0, 600, 300, "WebGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
WebGadget(0, 10, 10, 200, 280, "http://www.purebasic.com")
WebGadget(1, 210, 10, 380, 280, "")
SetGadgetAttribute(0, #PB_Web_NavigationCallback, @NavigationCallback())
AddKeyboardShortcut (0, #PB_Shortcut_Control | #PB_Shortcut_B, #PurbasicSeite) ; Shortcut einschalten
AddKeyboardShortcut (0, #PB_Shortcut_Control | #PB_Shortcut_N, #WebDeSeite) ; Shortcut einschalten
Repeat
EventID = WaitWindowEvent() ; Wartet bis ein Ereignis auftritt am Fenster(Window)
Select EventID
Case #PB_Event_Menu ; <<< Ereigniss am Menu
Select EventMenu()
Case #PurbasicSeite
SetGadgetAttribute(0, #PB_Web_NavigationCallback, #Null)
SetGadgetText(0,"http://www.purebasic.com")
If WebGadgetBusy(0) = #S_OK ; Webgadget Status zurücksetzen!
start = 0
SetGadgetAttribute(0, #PB_Web_NavigationCallback, @NavigationCallback())
EndIf
Case #WebDeSeite
SetGadgetAttribute(0, #PB_Web_NavigationCallback, #Null)
SetGadgetText(0,"http://www.web.de")
If WebGadgetBusy(0) = #S_OK ; Webgadget Status zurücksetzen!
start = 0
SetGadgetAttribute(0, #PB_Web_NavigationCallback, @NavigationCallback())
EndIf
EndSelect
EndSelect
Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
Gruss ... Velindos