Aktuelle Zeit: 16.07.2018 16:48

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 10 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Linux & WebGadget & Monaco Editor
BeitragVerfasst: 11.04.2018 21:41 
Offline
Benutzeravatar

Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9
ich werd hier noch bekloppt. :freak:

Ich möchte gerne den Monaco-Editor im WebGadget laufen lassen (simpler Beispielcode s.u.). Unter Windows mit dem Sorgenkind IE gibt es witzigerweise überhaupt keine Probleme damit.

Naiv, wie ich bin, dachte ich, dass es dann unter Linux (mit WebKit) erst recht funktionieren würde. Aber Pustekuchen! Da funktioniert so gut wie gar nichts. Und im PB-Log-Fenster knattern nur so die Warnungen und Fehlermeldungen durch. Wenn man Glück hat, gibt es noch einen Invalid Memory Access obendrauf.

Wer wissen möchte, wie Monaco korrekt funktioniert, ruft einfach https://microsoft.github.io/monaco-editor/playground.html mit einem vernünftigen Browser auf und tippt beispielsweise console. in eines der Textboxen ein. Da erscheint dann ein schickes Intellisense-Menü.

Bild

Code:
CompilerIf #PB_Compiler_OS = #PB_OS_Linux
 
  ImportC "-lwebkitgtk-3.0"
    webkit_web_settings_new()
    webkit_web_view_set_settings(*WebkitWebView, *WebkitSettings)
  EndImport
 
  Procedure EnableJSforWebGadget(WebgadgetID.i)
    Protected WebkitSettings.i
    WebkitSettings = webkit_web_settings_new()
    webkit_web_view_set_settings(GadgetID(WebgadgetID.i), WebkitSettings)
  EndProcedure
 
CompilerEndIf

If OpenWindow(0, 0, 0, 1000, 800, "WebGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  WebGadget(0, 0, 0, 1000, 800, "")
  CompilerIf #PB_Compiler_OS = #PB_OS_Linux
    EnableJSforWebGadget(0)
  CompilerEndIf
  SetGadgetText(0, "https://microsoft.github.io/monaco-editor/playground.html")
  Repeat
  Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf


Gibt es da vielleicht irgendwelche Schrauben, an denen man noch drehen könnte, damit Monaco auch unter Linux funktioniert?

Danke im Voraus & Grüße ... Peter (Linux Mint 18.3 Cinnamon 64-bit)

_________________
einfach ist schwierig


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Linux & WebGadget & Monaco Editor
BeitragVerfasst: 12.04.2018 18:30 
Offline

Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge
Hallo Kiffi,

also so läuft es bei mir stabil ohne Absturz:

Code:
CompilerIf #PB_Compiler_OS = #PB_OS_Linux
 
  ImportC ""
    g_object_set(*object, *name, *para1, *para2)
  EndImport
 
  ImportC "libwebkit2gtk-4.0.so.37.24.9";"-lwebkitgtk-3.0"
    webkit_web_settings_new()
    webkit_web_view_set_settings(*WebkitWebView, *WebkitSettings)
  EndImport
 
  Procedure EnableJSforWebGadget(WebgadgetID.i)
    Protected WebkitSettings.i
    WebkitSettings = webkit_web_settings_new()
    webkit_web_view_set_settings(GadgetID(WebgadgetID.i), WebkitSettings)
   
    g_object_set(WebkitSettings, "enable-developer-extras", #True, #Null)
    g_object_set(WebkitSettings, "enable-java-applet", #True, #Null)
    g_object_set(WebkitSettings, "enable-plugins", #True, #Null)
    g_object_set(WebkitSettings, "enable-scripts", #True, #Null)
    g_object_set(WebkitSettings, "enable-file-access-from-file-uris", #True, #Null)
    g_object_set(WebkitSettings, "enable-private-browsing", #True, #Null)
    g_object_set(WebkitSettings, "enable-spell-checking", #True, #Null)
    g_object_set(WebkitSettings, "enable-universal-access-from-file-uris", #True, #Null)
    g_object_set(WebkitSettings, "enable-dns-prefetching", #True, #Null)
    g_object_set(WebkitSettings, "enable-webaudio", #True, #Null)
    g_object_set(WebkitSettings, "enable-webgl", #True, #Null)
    g_object_set(WebkitSettings, "enable-fullscreen", #True, #Null)
    g_object_set(WebkitSettings, "enable-xss-auditor", #True, #Null)
    g_object_set(WebkitSettings, "javascript-can-access-clipboard", #True, #Null)
    g_object_set(WebkitSettings, "javascript-can-open-windows-automatically", #True, #Null)
    webkit_web_view_set_settings(GadgetID(0), WebkitSettings)
  EndProcedure
 
CompilerEndIf

If OpenWindow(0, 0, 0, 1000, 800, "WebGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  WebGadget(0, 0, 0, 1000, 800, "")
  CompilerIf #PB_Compiler_OS = #PB_OS_Linux
    EnableJSforWebGadget(0)
  CompilerEndIf
  SetGadgetText(0, "https://microsoft.github.io/monaco-editor/playground.html")
  Repeat
  Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf


Aber sehr viel Funktionalität existiert nicht.

Zitat:
Da erscheint dann ein schickes Intellisense-Menü.


Leider nein!

Der Cursor wird auch immer nur an den Anfang gesetzt
,... und weitere unschöne Kleinigkeiten

.....
Leider steht ja auch auf der "Microsoft"-Seite folgendes:

Zitat:
About

The Monaco Editor is the code editor that powers VS Code. A good page describing the code editor's features is here.

It is licensed under the MIT License and supports IE 11, Edge, Chrome, Firefox, Safari and Opera.

The Monaco editor is not supported in mobile browsers or mobile web frameworks.

Find more information at the Monaco Editor repo.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Linux & WebGadget & Monaco Editor
BeitragVerfasst: 12.04.2018 21:07 
Offline
Benutzeravatar

Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9
@ccode_new: Erstmal :allright:, dass Du Dich der Sache angenommen hast!

Leider stürzt Dein Code beim mir auch ab. Ich muss nur mit der Maus über 'language' fahren, dann kracht es.

ccode_new hat geschrieben:
Leider steht ja auch auf der "Microsoft"-Seite folgendes:
Zitat:
About

The Monaco Editor is the code editor that powers VS Code. A good page describing the code editor's features is here.

It is licensed under the MIT License and supports IE 11, Edge, Chrome, Firefox, Safari and Opera.

The Monaco editor is not supported in mobile browsers or mobile web frameworks.

Find more information at the Monaco Editor repo.


ich könnte ja noch verstehen, dass es nicht klappt, wenn ich mit meinem Handy die Seite ansurfe. Ich sitze allerdings an einem Desktop-Linux.

Nochmals Danke & Grüße ... Peter

_________________
einfach ist schwierig


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Linux & WebGadget & Monaco Editor
BeitragVerfasst: 15.04.2018 14:55 
Offline
Benutzeravatar

Registriert: 28.07.2005 12:39
Wenn man das Webkit Widget selber erstellt funktioniert es

Code:
ImportC "/usr/lib/x86_64-linux-gnu/libwebkit2gtk-4.0.so"
  webkit_web_view_new()
  webkit_web_view_load_uri(webView, url.p-ascii)
EndImport 

EnableExplicit

Define window  = OpenWindow(0, 0, 0, 1000, 800, "WebGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
Define webView = webkit_web_view_new()

Define parent  = g_list_nth_data_(gtk_container_get_children_(WindowID(0)), 0)
parent = g_list_nth_data_(gtk_container_get_children_(parent), 0)

webkit_web_view_load_uri(webView, "https://microsoft.github.io/monaco-editor/playground.html");

gtk_widget_set_size_request_(webView, 1000, 800)

gtk_container_add_(parent, webView)
gtk_widget_grab_focus_(webView)
gtk_widget_show_all_(Window)

Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow

_________________
Suche


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Linux & WebGadget & Monaco Editor
BeitragVerfasst: 15.04.2018 15:43 
Offline
Benutzeravatar

Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9
:allright:

Bild

Dafür gebe ich Dir ein SchniBrö aus! :D

_________________
einfach ist schwierig


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Linux & WebGadget & Monaco Editor
BeitragVerfasst: 15.04.2018 21:11 
Offline

Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge
Hallo edel!

Sehr komisch!

Bei mir stürzt dein Code ständig ab.

Es ist dabei egal welche Lib (ob über deinen Pfad /direkt /etc.) angebe. (Die Lib findet Purebasic ja auch.)

Die einzige Meldung ist:

[WARNING] webtest.pb (Zeile: 18)
[WARNING] Gtk (CRITICAL): gtk_scrolled_window_add: assertion 'child_widget == NULL' failed
Die Programmausführung ist abgeschlossen.

Weiter passiert bei mir da nichts.

System: Linux Mint 18.3 Cinnamon


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Linux & WebGadget & Monaco Editor
BeitragVerfasst: 16.04.2018 05:43 
Offline
Benutzeravatar

Registriert: 28.07.2005 12:39
Ist Parent bei dir leer? Hast du vielleicht irgendwelche Shell plugins laufen (ist das überhaupt noch gnome?)?

_________________
Suche


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Linux & WebGadget & Monaco Editor
BeitragVerfasst: 16.04.2018 18:19 
Offline

Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge
edel hat geschrieben:
Ist Parent bei dir leer? Hast du vielleicht irgendwelche Shell plugins laufen (ist das überhaupt noch gnome?)?


Nichts von alledem.

Parent ist nicht leer!

Was für "shell plugins" ?

ist das überhaupt noch gnome?

Jein!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Linux & WebGadget & Monaco Editor
BeitragVerfasst: 17.04.2018 19:08 
Offline
Benutzeravatar

Registriert: 28.07.2005 12:39
Bau einfach mal ein weiteres

Code:
parent = g_list_nth_data_(gtk_container_get_children_(parent), 0)


ein. Bis es null ist, dann das letzte loeschen.

_________________
Suche


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Linux & WebGadget & Monaco Editor
BeitragVerfasst: 17.04.2018 20:07 
Offline

Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge
:allright:

+1

Passt!

Bild


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 10 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  
cron

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye