forked from AuroraMiddleware/gtk
Merge branch 'js-example' into 'master'
Add a simple Javascript example See merge request GNOME/gtk!3731
This commit is contained in:
commit
6f86b4d220
50
examples/labels.js
Executable file
50
examples/labels.js
Executable file
@ -0,0 +1,50 @@
|
|||||||
|
#!/usr/bin/env -S GI_TYPELIB_PATH=${PWD}/build/gtk:${GI_TYPELIB_PATH} LD_PRELOAD=${LD_PRELOAD}:${PWD}/build/gtk/libgtk-4.so gjs
|
||||||
|
|
||||||
|
imports.gi.versions['Gtk'] = '4.0';
|
||||||
|
|
||||||
|
const GObject = imports.gi.GObject;
|
||||||
|
const Gtk = imports.gi.Gtk;
|
||||||
|
|
||||||
|
const DemoWidget = GObject.registerClass({
|
||||||
|
GTypeName: 'DemoWidget',
|
||||||
|
}, class DemoWidget extends Gtk.Widget {
|
||||||
|
|
||||||
|
_init(params = {}) {
|
||||||
|
super._init(params);
|
||||||
|
|
||||||
|
let layout_manager = new Gtk.GridLayout ();
|
||||||
|
this.set_layout_manager (layout_manager);
|
||||||
|
this.label1 = new Gtk.Label({ label: "Red",
|
||||||
|
hexpand: true,
|
||||||
|
vexpand: true });
|
||||||
|
this.label1.set_parent (this);
|
||||||
|
let child1 = layout_manager.get_layout_child (this.label1);
|
||||||
|
child1.set_row (0);
|
||||||
|
child1.set_column (0);
|
||||||
|
|
||||||
|
this.label2 = new Gtk.Label({ label: "Green",
|
||||||
|
hexpand: true,
|
||||||
|
vexpand: true });
|
||||||
|
this.label2.set_parent (this);
|
||||||
|
let child2 = layout_manager.get_layout_child (this.label2);
|
||||||
|
child2.set_row (0);
|
||||||
|
child2.set_column (1);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// Create a new application
|
||||||
|
let app = new Gtk.Application({ application_id: 'org.gtk.exampleapp' });
|
||||||
|
|
||||||
|
// When the application is launched…
|
||||||
|
app.connect('activate', () => {
|
||||||
|
// … create a new window …
|
||||||
|
let win = new Gtk.ApplicationWindow({ application: app });
|
||||||
|
// … with a button in it …
|
||||||
|
let widget = new DemoWidget();
|
||||||
|
win.set_child(widget);
|
||||||
|
win.present();
|
||||||
|
});
|
||||||
|
|
||||||
|
// Run the application
|
||||||
|
app.run([]);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user