Blame platform-demos/C/samples/hello-in-js/hello-world

Packit 1470ea
#!/usr/bin/gjs
Packit 1470ea
Packit 1470ea
imports.gi.versions.Gtk = '3.0'
Packit 1470ea
const Gtk = imports.gi.Gtk;
Packit 1470ea
Packit 1470ea
class Application {
Packit 1470ea
Packit 1470ea
    //create the application
Packit 1470ea
    constructor() {
Packit 1470ea
        this.application = new Gtk.Application();
Packit 1470ea
Packit 1470ea
       //connect to 'activate' and 'startup' signals to handlers.
Packit 1470ea
       this.application.connect('activate', this._onActivate.bind(this));
Packit 1470ea
       this.application.connect('startup', this._onStartup.bind(this));
Packit 1470ea
    }
Packit 1470ea
Packit 1470ea
    //create the UI
Packit 1470ea
    _buildUI() {
Packit 1470ea
        this._window = new Gtk.ApplicationWindow({ application: this.application,
Packit 1470ea
                                                   title: "Hello World!" });
Packit 1470ea
        this._window.set_default_size(200, 200);
Packit 1470ea
        this.label = new Gtk.Label({ label: "Hello World" });
Packit 1470ea
        this._window.add(this.label);
Packit 1470ea
    }
Packit 1470ea
Packit 1470ea
    //handler for 'activate' signal
Packit 1470ea
    _onActivate() {
Packit 1470ea
        //show the window and all child widgets
Packit 1470ea
        this._window.show_all();
Packit 1470ea
    }
Packit 1470ea
Packit 1470ea
    //handler for 'startup' signal
Packit 1470ea
    _onStartup() {
Packit 1470ea
        this._buildUI();
Packit 1470ea
    }
Packit 1470ea
};
Packit 1470ea
Packit 1470ea
//run the application
Packit 1470ea
let app = new Application();
Packit 1470ea
app.application.run(ARGV);