Initial commit
Dieser Commit ist enthalten in:
79
renderer.js
Normale Datei
79
renderer.js
Normale Datei
@ -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();
|
||||
});
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren