Hi there, I'm struggling to get things working in a very small test application I'm creating. Using the base code I found here : https://developer.gnome.org/gnome-devel-demos/unstable/beginner.js.html.en#tutorials, I created the following :
#!/usr/bin/gjs // Importing libraries const GLib = imports.gi.GLib , Gio = imports.gi.Gio , Gtk = imports.gi.Gtk , Lang = imports.lang , Vte = imports.gi.Vte ; // Application code const HelloMe = new Lang.Class({ // Properties Name: "Hello Me" // Application initialization , _init: function() { this.application = new Gtk.Application(); // Declaring event listeners this.application.connect('activate', Lang.bind(this, this.activate)); this.application.connect('startup', Lang.bind(this, this.startup)); } // Application callbacks , activate: function() { this._window.present(); } , startup: function() { this.render(); } , render: function() { var term = new Vte.Terminal() , testArray = new Array() , anotherTestArray = new Array() , pid ; anotherTestArray.push('test'); testArray.push('/bin/bash'); pid = term.fork_command_full( Vte.PtyFlags.DEFAULT , '/home/me/' , testArray , anotherTestArray , null , null , GLib.SpawnFlags.DO_NOT_REAP_CHILD , null , null ); term.set_emulation('xterm'); term.show(); // Creating application's main window this._window = new Gtk.ApplicationWindow({ application: this.application , title: "Welcome to me" , default_height: 200 , default_width: 400 , window_position: Gtk.WindowPosition.CENTER }); // Adding the webview to the app and showing this._window.add(term); this._window.show_all(); } }); let app = new HelloMe(); app.application.run(ARGV); --------------------------------------------- I've been using two things to try and tackle the problem : The Vte-2.90.gir file on my Ubuntu, located in /usr/lib/gir-1.0 where an automatically generated documentation from the Vte C code source is presented in xml format. The following site : http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/index.html. Where those xml files are presented in a html format, like a regular api. Nevertheless, I get the following error : gjs embed-term.js GLib-GIO-Message: Using the 'memory' GSettings backend. Your settings will not be saved or shared with other applications. JS ERROR: !!! Exception was: Error: Unhandled array element type 14 JS ERROR: !!! lineNumber = '0' JS ERROR: !!! fileName = '"gjs_throw"' JS ERROR: !!! stack = '"("Unhandled array element type 14")@gjs_throw:0 ()@embed-term.js:55 wrapper()@/usr/share/gjs-1.0/lang.js:204 ([object _private_Gtk_Application])@embed-term.js:31 wrapper([object _private_Gtk_Application])@/usr/share/gjs-1.0/lang.js:204 @embed-term.js:77 "' JS ERROR: !!! message = '"Unhandled array element type 14"' JS ERROR: !!! Exception was: TypeError: this._window is undefined JS ERROR: !!! lineNumber = '27' JS ERROR: !!! fileName = '"embed-term.js"' JS ERROR: !!! stack = '"([object _private_Gtk_Application])@embed-term.js:27 wrapper([object _private_Gtk_Application])@/usr/share/gjs-1.0/lang.js:204 @embed-term.js:77 "' JS ERROR: !!! message = '"this._window is undefined"' ----------------------------------------------- I gathered that both array I'm using aren't of the expected type. I tried to look into the source code of Gtk itself, but I couldn't go further than locating the problem to the gjs_array_to_array function in the following file https://git.gnome.org/browse/gjs/tree/gi/arg.c?h=gnome-3-8 at line 876, where the element_type is deduced. I couldn't find the place where the function g_type_info_get_tag was. any help would be appreciated ! Thanks in advance Léonard Messier --
_______________________________________________ javascript-list mailing list javascript-list@gnome.org https://mail.gnome.org/mailman/listinfo/javascript-list