Dieser Commit ist enthalten in:
Claude Project Manager
2025-07-10 19:36:09 +02:00
Commit 3f2a2fc4dc
16 geänderte Dateien mit 6621 neuen und 0 gelöschten Zeilen

79
renderer.js Normale Datei
Datei anzeigen

@ -0,0 +1,79 @@
// 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');
document.getElementById('darkTheme').checked = true;
} else {
document.body.classList.add('light-mode');
document.getElementById('lightTheme').checked = true;
}
}
// 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();
});
// Settings dialog
const settingsDialog = document.getElementById('settingsDialog');
const settingsBtn = document.getElementById('settingsBtn');
const settingsCloseBtn = document.getElementById('settingsCloseBtn');
settingsBtn.addEventListener('click', () => {
settingsDialog.classList.add('show');
});
settingsCloseBtn.addEventListener('click', () => {
settingsDialog.classList.remove('show');
});
settingsDialog.addEventListener('click', (e) => {
if (e.target === settingsDialog) {
settingsDialog.classList.remove('show');
}
});
// Theme radio buttons
document.getElementById('darkTheme').addEventListener('change', () => {
applyTheme(true);
});
document.getElementById('lightTheme').addEventListener('change', () => {
applyTheme(false);
});
// 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();
});