|
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 PanedExample {
|
|
Packit |
1470ea |
|
|
Packit |
1470ea |
// Create the application itself
|
|
Packit |
1470ea |
constructor() {
|
|
Packit |
1470ea |
this.application = new Gtk.Application({ application_id: 'org.example.panedexample' });
|
|
Packit |
1470ea |
|
|
Packit |
1470ea |
// Connect 'activate' and 'startup' signals to the callback functions
|
|
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 |
// Callback function for 'activate' signal presents windows when active
|
|
Packit |
1470ea |
_onActivate() {
|
|
Packit |
1470ea |
this.window.present();
|
|
Packit |
1470ea |
}
|
|
Packit |
1470ea |
|
|
Packit |
1470ea |
// Callback function for 'startup' signal builds the UI
|
|
Packit |
1470ea |
_onStartup() {
|
|
Packit |
1470ea |
this._buildUI();
|
|
Packit |
1470ea |
}
|
|
Packit |
1470ea |
|
|
Packit |
1470ea |
// Build the application's UI
|
|
Packit |
1470ea |
_buildUI() {
|
|
Packit |
1470ea |
// Create the application window
|
|
Packit |
1470ea |
this.window = new Gtk.ApplicationWindow ({ application: this.application,
|
|
Packit |
1470ea |
window_position: Gtk.WindowPosition.CENTER,
|
|
Packit |
1470ea |
title: "Paned Window Example",
|
|
Packit |
1470ea |
default_width: 450,
|
|
Packit |
1470ea |
default_height: 350,
|
|
Packit |
1470ea |
border_width: 10 });
|
|
Packit |
1470ea |
|
|
Packit |
1470ea |
// a new widget with two adjustable panes,
|
|
Packit |
1470ea |
// one on the left and one on the right
|
|
Packit |
1470ea |
this.paned = Gtk.Paned.new(Gtk.Orientation.HORIZONTAL);
|
|
Packit |
1470ea |
|
|
Packit |
1470ea |
// two images
|
|
Packit |
1470ea |
this.image1 = new Gtk.Image();
|
|
Packit |
1470ea |
this.image1.set_from_file("gnome-image.png");
|
|
Packit |
1470ea |
this.image2 = new Gtk.Image();
|
|
Packit |
1470ea |
this.image2.set_from_file("tux.png");
|
|
Packit |
1470ea |
|
|
Packit |
1470ea |
// add the first image to the left pane
|
|
Packit |
1470ea |
this.paned.add1(this.image1);
|
|
Packit |
1470ea |
// add the second image to the right pane
|
|
Packit |
1470ea |
this.paned.add2(this.image2)
|
|
Packit |
1470ea |
|
|
Packit |
1470ea |
// add the panes to the window
|
|
Packit |
1470ea |
this.window.add(this.paned)
|
|
Packit |
1470ea |
this.window.show_all();
|
|
Packit |
1470ea |
}
|
|
Packit |
1470ea |
};
|
|
Packit |
1470ea |
|
|
Packit |
1470ea |
// Run the application
|
|
Packit |
1470ea |
let app = new PanedExample();
|
|
Packit |
1470ea |
app.application.run (ARGV);
|