76 Zeilen
1.8 KiB
JavaScript
76 Zeilen
1.8 KiB
JavaScript
// Theme management
|
|
let isDarkMode = true;
|
|
|
|
// Initialize theme
|
|
async function initializeTheme() {
|
|
if (window.electronAPI) {
|
|
isDarkMode = await window.electronAPI.getTheme();
|
|
applyTheme(isDarkMode);
|
|
}
|
|
}
|
|
|
|
// Apply theme
|
|
function applyTheme(darkMode) {
|
|
isDarkMode = darkMode;
|
|
if (darkMode) {
|
|
document.body.classList.remove('light-mode');
|
|
} else {
|
|
document.body.classList.add('light-mode');
|
|
}
|
|
// Save theme preference
|
|
if (window.electronAPI) {
|
|
window.electronAPI.setTheme(darkMode);
|
|
}
|
|
}
|
|
|
|
// Window controls
|
|
document.getElementById('minimizeBtn').addEventListener('click', () => {
|
|
if (window.electronAPI) window.electronAPI.minimizeWindow();
|
|
});
|
|
|
|
document.getElementById('maximizeBtn').addEventListener('click', () => {
|
|
if (window.electronAPI) window.electronAPI.maximizeWindow();
|
|
});
|
|
|
|
document.getElementById('closeBtn').addEventListener('click', () => {
|
|
if (window.electronAPI) window.electronAPI.closeWindow();
|
|
});
|
|
|
|
// Theme toggle button
|
|
const themeToggleBtn = document.getElementById('themeToggleBtn');
|
|
|
|
themeToggleBtn.addEventListener('click', () => {
|
|
applyTheme(!isDarkMode);
|
|
});
|
|
|
|
// Listen for theme changes from menu
|
|
if (window.electronAPI) {
|
|
window.electronAPI.onToggleTheme((event, darkMode) => {
|
|
applyTheme(darkMode);
|
|
});
|
|
|
|
window.electronAPI.onNewFile(() => {
|
|
clearMetadata();
|
|
});
|
|
}
|
|
|
|
// Initialize on load
|
|
window.addEventListener('DOMContentLoaded', () => {
|
|
initializeTheme();
|
|
});
|
|
|
|
// Store theme preference
|
|
function setTheme(darkMode) {
|
|
localStorage.setItem('theme', darkMode ? 'dark' : 'light');
|
|
}
|
|
|
|
// Get theme preference
|
|
function getStoredTheme() {
|
|
const storedTheme = localStorage.getItem('theme');
|
|
return storedTheme !== 'light';
|
|
}
|
|
|
|
// Initialize theme from stored preference
|
|
if (!window.electronAPI) {
|
|
applyTheme(getStoredTheme());
|
|
} |