keeweb/app/scripts/views/titlebar-buttons-view.js

61 lines
1.3 KiB
JavaScript

import { View } from 'framework/views/view';
import { Events } from 'framework/events';
import { Launcher } from 'comp/launcher';
import template from 'templates/titlebar-buttons.hbs';
class TitlebarButtonsView extends View {
parent = '.app__titlebar';
template = template;
events = {
'click .titlebar-buttons-minimize': 'clickMinimize',
'click .titlebar-buttons-maximize': 'clickMaximize',
'click .titlebar-buttons-restore': 'clickRestore',
'click .titlebar-buttons-close': 'clickClose'
};
constructor() {
super();
this.maximized = Launcher.mainWindowMaximized();
this.listenTo(Events, 'app-maximized', this.appMaximized);
this.listenTo(Events, 'app-unmaximized', this.appUnmaximized);
}
render() {
super.render({
maximized: this.maximized
});
}
clickMinimize() {
Launcher.minimizeMainWindow();
}
clickMaximize() {
Launcher.maximizeMainWindow();
}
clickRestore() {
Launcher.restoreMainWindow();
}
clickClose() {
window.close();
}
appMaximized() {
this.maximized = true;
this.render();
}
appUnmaximized() {
this.maximized = false;
this.render();
}
}
export { TitlebarButtonsView };