Move GtkWindow logic to separate file

This commit is contained in:
Rafostar
2020-09-01 10:50:30 +02:00
parent e35d18505e
commit 80ac01706d
2 changed files with 71 additions and 37 deletions

48
clapper_src/window.js Normal file
View File

@@ -0,0 +1,48 @@
const { Gdk, GObject, Gtk } = imports.gi;
var Window = GObject.registerClass({
Signals: {
'fullscreen-changed': {
param_types: [GObject.TYPE_BOOLEAN]
},
}
}, class ClapperWindow extends Gtk.ApplicationWindow
{
_init(application, title)
{
super._init({
application: application,
title: title || 'Clapper',
border_width: 0,
resizable: true,
window_position: Gtk.WindowPosition.CENTER,
width_request: 960,
height_request: 642
});
this.isFullscreen = false;
this.connect(
'window-state-event', this._onWindowStateEvent.bind(this)
);
}
toggleFullscreen()
{
let un = (this.isFullscreen) ? 'un' : '';
this[`${un}fullscreen`]();
}
_onWindowStateEvent(self, event)
{
let window = event.get_window();
let state = window.get_state();
let isFullscreen = Boolean(state & Gdk.WindowState.FULLSCREEN);
if(this.isFullscreen === isFullscreen)
return;
this.isFullscreen = isFullscreen;
this.emit('fullscreen-changed', this.isFullscreen);
}
});