WebGadget (gtk-Befehle)

In dieser Linux-Ecke dürfen nur Themen rund um Linux geschrieben werden.
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
Benutzeravatar
Ausprobieren
Beiträge: 23
Registriert: 18.04.2016 15:26

WebGadget (gtk-Befehle)

Beitrag von Ausprobieren »

Hallo zusammen,

habe ein Webgadget unter Windows entwickelt, was mir eine URL aufruft und daraus Info's extrahiert.
Nun muss ich feststellen, auch anhand der Hilfe in Purebasic, dass die ganzen Kommando's für Windows oder OSx sind. Nun gibt es ja zum Glück die GTK-Befehle, wie ich mittlerweile festgestellt habe.

Ich kann zwar die Befehle mittels eingebautem Autovervollständigen aufrufen, habe aber keinerlei Ahnung, was die Kommandos bedeuten. Gibt es irgendwo dazu Unterlagen, wenn ja wo und möglichst in Deutsch?!.

Ich bin für alle Tipps offen. :-)

Gruß IH
Purebasic V 5.62 x64 - Linux Mint Sylvia Mate x64 - Win 7 Pro x86
Benutzeravatar
Kukulkan
Beiträge: 1066
Registriert: 09.09.2004 07:07
Wohnort: Süddeutschland
Kontaktdaten:

Re: WebGadget (gtk-Befehle)

Beitrag von Kukulkan »

Benutzeravatar
Ausprobieren
Beiträge: 23
Registriert: 18.04.2016 15:26

Re: WebGadget (gtk-Befehle)

Beitrag von Ausprobieren »

Kukulkan hat geschrieben:I suggest to start here:

https://developer.gnome.org/gtk3/stable/gtkobjects.html
Danke für die Info, aber ich fand dort keine Kommandos zum Auswerten von Info im Webgadget.

Vor allem, sind diese Kommandos schon in Purebasic implemtiert bzw. gibt es Unterlagen über die Interfaces???
Purebasic V 5.62 x64 - Linux Mint Sylvia Mate x64 - Win 7 Pro x86
Omi
Beiträge: 143
Registriert: 25.03.2013 09:59

Re: WebGadget (gtk-Befehle)

Beitrag von Omi »

Hallo.

Ich glaube, dass für Linux noch immer das WebKit1 gültig ist. Info wäre hier zu finden ...
http://webkitgtk.org/reference/webkitgt ... index.html
bzw. die Hauptseite ...
http://webkitgtk.org/

Weiter möglich wäre die Installation von DevHelp unter Linux das generell eine 'Onboard'-Hilfe zur gtk-API bietet ...
Im Terminal: sudo apt-get install devhelp
Kann sein, dass hier die WebKit-Hilfe nachinstalliert werden muss. Falls das der Fall ist müßte ich mal versuchen die Nachinstallation der Hilfefiles rauszuknobeln :wink:

Gruß, Charly
PureBasic Linux-API-Library: http://www.chabba.de
Benutzeravatar
Ausprobieren
Beiträge: 23
Registriert: 18.04.2016 15:26

Re: WebGadget (gtk-Befehle)

Beitrag von Ausprobieren »

Ich weiß nicht, in WebKit habe ich nicht die Unterstützung, die ich brauche. Ich habe zwar das DevHelp und kann dort die Hilfe zum Webkit aufrufen, aber ich finde dort nicht so richtig den Einstieg.

Ich bräuchte da analog zum Windows das Kommando zum Auslesen des HTML-Codes: GetGadgetItemText(#PB_Web_HtmlCode)

und das Ende der Übertragung von Server zum Webgadget:
GetGadgetAttribute(#PB_EventType_DownloadEnd)

Könnte mir da jemand auf die Sprünge helfen?

Gruß IH
Purebasic V 5.62 x64 - Linux Mint Sylvia Mate x64 - Win 7 Pro x86
Benutzeravatar
Shardik
Beiträge: 738
Registriert: 25.01.2005 12:19

Re: WebGadget (gtk-Befehle)

Beitrag von Shardik »

Ausprobieren hat geschrieben:Ich bräuchte da analog zum Windows das Kommando zum Auslesen des HTML-Codes: GetGadgetItemText(#PB_Web_HtmlCode)

und das Ende der Übertragung von Server zum Webgadget:
GetGadgetAttribute(#PB_EventType_DownloadEnd)

Könnte mir da jemand auf die Sprünge helfen?
Das folgende Beispiel liest in Ubuntu x86 oder einer davon abgeleiteten Distro den HTML-Inhalt einer Website aus, sobald die Website fertig aufgebaut ist. Ich habe es erfolgreich mit PB 5.43 x86 unter Kubuntu 14.04 x86 mit KDE und Linux Mint 18 Sarah x86 mit Cinnamon sowohl mit GTK2 als auch mit GTK3 und im ASCII- und Unicode-Modus getestet. Welche webkitgtk-Bibliotheken wie installiert werden müssen und die Importpfade für von Ubuntu abgeleiteteten x86 und x64 Distributionen (Debian-Paketformat) sowie Fedora (Red Hat Paketformat) habe ich bereits in diesem Beitrag im englischen Forum ausführlich beschrieben.

Code: Alles auswählen

EnableExplicit

CompilerIf Subsystem("gtk2")
  ImportC "/usr/lib/i386-linux-gnu/libwebkitgtk-1.0.so.0"
CompilerElse
  ImportC "/usr/lib/i386-linux-gnu/libwebkitgtk-3.0.so.0"
CompilerEndIf
  webkit_web_data_source_get_data(*WebDataSource)
  webkit_web_frame_get_data_source(*WebFrame)
EndImport

#URL = "http://www.purebasic.com"

ProcedureC DocumentLoadCompleted(WebView.I, WebFrame.I, UserData.I)
  Protected WebData.I
  Protected *WebPageContent.GString

  WebData = webkit_web_frame_get_data_source(WebFrame)
  *WebPageContent = webkit_web_data_source_get_data(WebData)
  Debug "Length = " + *WebPageContent\len
  Debug "Allocated length = " + *WebPageContent\allocated_len
  Debug PeekS(*WebPageContent\str, -1, #PB_Ascii)
EndProcedure

OpenWindow(0, 100, 100, 1000, 800, "HTML content")
WebGadget(0, 5, 5, WindowWidth(0) - 10, WindowHeight(0) - 10, #URL)

g_signal_connect_(GadgetID(0), "document-load-finished",
  @DocumentLoadCompleted(), 0)

Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow
Benutzeravatar
Ausprobieren
Beiträge: 23
Registriert: 18.04.2016 15:26

Re: WebGadget (gtk-Befehle)

Beitrag von Ausprobieren »

Shardik hat geschrieben:
Ausprobieren hat geschrieben:Ich bräuchte da analog zum Windows das Kommando zum Auslesen des HTML-Codes: GetGadgetItemText(#PB_Web_HtmlCode)

und das Ende der Übertragung von Server zum Webgadget:
GetGadgetAttribute(#PB_EventType_DownloadEnd)

Könnte mir da jemand auf die Sprünge helfen?
Das folgende Beispiel liest in Ubuntu x86 oder einer davon abgeleiteten Distro den HTML-Inhalt einer Website aus, sobald die Website fertig aufgebaut ist. Ich habe es erfolgreich mit PB 5.43 x86 unter Kubuntu 14.04 x86 mit KDE und Linux Mint 18 Sarah x86 mit Cinnamon sowohl mit GTK2 als auch mit GTK3 und im ASCII- und Unicode-Modus getestet. Welche webkitgtk-Bibliotheken wie installiert werden müssen und die Importpfade für von Ubuntu abgeleiteteten x86 und x64 Distributionen (Debian-Paketformat) sowie Fedora (Red Hat Paketformat) habe ich bereits in diesem Beitrag im englischen Forum ausführlich beschrieben.

Code: Alles auswählen

EnableExplicit

CompilerIf Subsystem("gtk2")
  ImportC "/usr/lib/i386-linux-gnu/libwebkitgtk-1.0.so.0"
CompilerElse
  ImportC "/usr/lib/i386-linux-gnu/libwebkitgtk-3.0.so.0"
CompilerEndIf
  webkit_web_data_source_get_data(*WebDataSource)
  webkit_web_frame_get_data_source(*WebFrame)
EndImport

#URL = "http://www.purebasic.com"

ProcedureC DocumentLoadCompleted(WebView.I, WebFrame.I, UserData.I)
  Protected WebData.I
  Protected *WebPageContent.GString

  WebData = webkit_web_frame_get_data_source(WebFrame)
  *WebPageContent = webkit_web_data_source_get_data(WebData)
  Debug "Length = " + *WebPageContent\len
  Debug "Allocated length = " + *WebPageContent\allocated_len
  Debug PeekS(*WebPageContent\str, -1, #PB_Ascii)
EndProcedure

OpenWindow(0, 100, 100, 1000, 800, "HTML content")
WebGadget(0, 5, 5, WindowWidth(0) - 10, WindowHeight(0) - 10, #URL)

g_signal_connect_(GadgetID(0), "document-load-finished",
  @DocumentLoadCompleted(), 0)

Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow

Danke für die Info: Da ich jetzt Linux 64 Bit habe, wie heißen die Compilerdirektiva dann ???
Purebasic V 5.62 x64 - Linux Mint Sylvia Mate x64 - Win 7 Pro x86
Benutzeravatar
Shardik
Beiträge: 738
Registriert: 25.01.2005 12:19

Re: WebGadget (gtk-Befehle)

Beitrag von Shardik »

Ausprobieren hat geschrieben:Da ich jetzt Linux 64 Bit habe, wie heißen die Compilerdirektiva dann ???
Dafür hatte ich eigentlich auf meinen verlinkten Beitrag im englischen Forum verwiesen, denn wenn Du Dir den kompletten Block aus dem englischen Beitrag herauskopiert hättest, hätte es auf jeder von Debian/Ubuntu abgeleiteter Distribution mit 32 Bit, 64 Bit, GTK 2 und GTK 3 funktioniert. Ich habe Dir daraus den Teil für 64 Bit Distros für GTK 2 und GTK 3 einmal extrahiert:

Code: Alles auswählen

CompilerIf (#PB_Compiler_Version < 540 And Subsystem("gtk3") = #False) Or
  (#PB_Compiler_Version >= 540 And Subsystem("gtk2") = #True)
  ImportC "/usr/lib/x86_64-linux-gnu/libwebkitgtk-1.0.so.0" ; Ubuntu/Kubuntu/Xubuntu x64 with GTK2
CompilerElse
  ImportC "/usr/lib/x86_64-linux-gnu/libwebkitgtk-3.0.so.0" ; Ubuntu/Kubuntu/Xubuntu x64 with GTK3
CompilerEndIf
EndImport
Benutzeravatar
Ausprobieren
Beiträge: 23
Registriert: 18.04.2016 15:26

Re: WebGadget (gtk-Befehle)

Beitrag von Ausprobieren »

Sorry, ich habe da nur deinen Code aus der Antwort rauskopiert und dann geschaut, was denn auf dem Link für Erklärungen vorhanden sind. Den Codeschnipsel habe ich gar nicht beachtet. Wird mir nicht wieder passieren.

Danke für die Unterstützung :-)
Purebasic V 5.62 x64 - Linux Mint Sylvia Mate x64 - Win 7 Pro x86
Antworten