Files
atom/src/title-bar.js
Antonio Scandurra 9e8f07b926 Convert src/title-bar.coffee to js
Signed-off-by: Jason Rudolph <jasonrudolph@github.com>
2017-06-26 16:34:33 +02:00

48 lines
1.5 KiB
JavaScript

module.exports =
class TitleBar {
constructor ({workspace, themes, applicationDelegate}) {
this.dblclickHandler = this.dblclickHandler.bind(this)
this.workspace = workspace
this.themes = themes
this.applicationDelegate = applicationDelegate
this.element = document.createElement('div')
this.element.classList.add('title-bar')
this.titleElement = document.createElement('div')
this.titleElement.classList.add('title')
this.element.appendChild(this.titleElement)
this.element.addEventListener('dblclick', this.dblclickHandler)
this.workspace.onDidChangeWindowTitle(() => this.updateTitle())
this.themes.onDidChangeActiveThemes(() => this.updateWindowSheetOffset())
this.updateTitle()
this.updateWindowSheetOffset()
}
dblclickHandler () {
// User preference deciding which action to take on a title bar double-click
switch (this.applicationDelegate.getUserDefault('AppleActionOnDoubleClick', 'string')) {
case 'Minimize':
this.applicationDelegate.minimizeWindow()
break
case 'Maximize':
if (this.applicationDelegate.isWindowMaximized()) {
this.applicationDelegate.unmaximizeWindow()
} else {
this.applicationDelegate.maximizeWindow()
}
break
}
}
updateTitle () {
this.titleElement.textContent = document.title
}
updateWindowSheetOffset () {
this.applicationDelegate.getCurrentWindow().setSheetOffset(this.element.offsetHeight)
}
}