Main application window for security validation.
export function addThemeEventListeners(mainWindow: BrowserWindow) {
// Return current theme source
secureHandle(
THEME_MODE_CURRENT_CHANNEL,
() => nativeTheme.themeSource,
mainWindow,
);
// Toggle between dark and light modes
secureHandle(
THEME_MODE_TOGGLE_CHANNEL,
() => {
if (nativeTheme.shouldUseDarkColors) {
nativeTheme.themeSource = "light";
} else {
nativeTheme.themeSource = "dark";
}
return nativeTheme.shouldUseDarkColors;
},
mainWindow,
);
// Force dark mode
secureHandle(
THEME_MODE_DARK_CHANNEL,
() => (nativeTheme.themeSource = "dark"),
mainWindow,
);
// Force light mode
secureHandle(
THEME_MODE_LIGHT_CHANNEL,
() => (nativeTheme.themeSource = "light"),
mainWindow,
);
// Use system theme preference
secureHandle(
THEME_MODE_SYSTEM_CHANNEL,
() => {
nativeTheme.themeSource = "system";
return nativeTheme.shouldUseDarkColors;
},
mainWindow,
);
}
Registers IPC handlers for theme mode operations.