mirror of
https://github.com/atom/atom.git
synced 2026-02-07 05:05:02 -05:00
89 lines
2.2 KiB
JavaScript
89 lines
2.2 KiB
JavaScript
const root = document.documentElement
|
|
const themeName = 'one-dark-ui'
|
|
|
|
module.exports = {
|
|
activate (state) {
|
|
atom.config.observe(`${themeName}.fontSize`, setFontSize)
|
|
atom.config.observe(`${themeName}.tabSizing`, setTabSizing)
|
|
atom.config.observe(`${themeName}.tabCloseButton`, setTabCloseButton)
|
|
atom.config.observe(`${themeName}.hideDockButtons`, setHideDockButtons)
|
|
atom.config.observe(`${themeName}.stickyHeaders`, setStickyHeaders)
|
|
|
|
// DEPRECATED: This can be removed at some point (added in Atom 1.17/1.18ish)
|
|
// It removes `layoutMode`
|
|
if (atom.config.get(`${themeName}.layoutMode`)) {
|
|
atom.config.unset(`${themeName}.layoutMode`)
|
|
}
|
|
},
|
|
|
|
deactivate () {
|
|
unsetFontSize()
|
|
unsetTabSizing()
|
|
unsetTabCloseButton()
|
|
unsetHideDockButtons()
|
|
unsetStickyHeaders()
|
|
}
|
|
}
|
|
|
|
// Font Size -----------------------
|
|
|
|
function setFontSize (currentFontSize) {
|
|
root.style.fontSize = `${currentFontSize}px`
|
|
}
|
|
|
|
function unsetFontSize () {
|
|
root.style.fontSize = ''
|
|
}
|
|
|
|
// Tab Sizing -----------------------
|
|
|
|
function setTabSizing (tabSizing) {
|
|
root.setAttribute(`theme-${themeName}-tabsizing`, tabSizing.toLowerCase())
|
|
}
|
|
|
|
function unsetTabSizing () {
|
|
root.removeAttribute(`theme-${themeName}-tabsizing`)
|
|
}
|
|
|
|
// Tab Close Button -----------------------
|
|
|
|
function setTabCloseButton (tabCloseButton) {
|
|
if (tabCloseButton === 'Left') {
|
|
root.setAttribute(`theme-${themeName}-tab-close-button`, 'left')
|
|
} else {
|
|
unsetTabCloseButton()
|
|
}
|
|
}
|
|
|
|
function unsetTabCloseButton () {
|
|
root.removeAttribute(`theme-${themeName}-tab-close-button`)
|
|
}
|
|
|
|
// Dock Buttons -----------------------
|
|
|
|
function setHideDockButtons (hideDockButtons) {
|
|
if (hideDockButtons) {
|
|
root.setAttribute(`theme-${themeName}-dock-buttons`, 'hidden')
|
|
} else {
|
|
unsetHideDockButtons()
|
|
}
|
|
}
|
|
|
|
function unsetHideDockButtons () {
|
|
root.removeAttribute(`theme-${themeName}-dock-buttons`)
|
|
}
|
|
|
|
// Sticky Headers -----------------------
|
|
|
|
function setStickyHeaders (stickyHeaders) {
|
|
if (stickyHeaders) {
|
|
root.setAttribute(`theme-${themeName}-sticky-headers`, 'sticky')
|
|
} else {
|
|
unsetStickyHeaders()
|
|
}
|
|
}
|
|
|
|
function unsetStickyHeaders () {
|
|
root.removeAttribute(`theme-${themeName}-sticky-headers`)
|
|
}
|