using System; using System.Collections.Generic; using Avalonia.Controls; using Avalonia.Input; using Cogwheel; using SessionZero.Cogwheel; using SessionZero.Data.Sztl; using SessionZero.Pages; namespace SessionZero; public partial class MainWindow : Window { private Dictionary _pages = new(); private ContentControl? _mainContentControl; private ContentControl? _overlayContentControl; private Button? _homeButton; private Button? _sessionsButton; private Button? _libraryButton; private Button? _settingsButton; public MainWindow() { InitializeComponent(); InitControls(); InitPages(); KeyDownEvent.AddClassHandler(OnKeyDown, handledEventsToo: true); ChangePage("Home"); AppManager.Settings.AddSetting(new AppSetting("test", typeof(int))); AppManager.Settings.SetSettingValue("test", 1); } public void ChangePage(string pageName) { if (_pages.TryGetValue(pageName.ToLower(), out var page)) { _mainContentControl?.Content = page; page.Refresh(); } else { COGWHEEL.LogError($"Page '{pageName}' does not exist"); } } public void ToggleOverlay(bool visible) { _overlayContentControl?.IsVisible = visible; _overlayContentControl?.IsHitTestVisible = visible; } public void ToggleConsole(bool visible) { ToggleOverlay(visible); _overlayContentControl?.Content = visible ? AppManager.ConsoleControl : null; } private void OnKeyDown(TopLevel topLevel, KeyEventArgs keyEventArgs) { if (keyEventArgs.Key == Key.OemTilde && keyEventArgs.KeyModifiers.HasFlag(KeyModifiers.Control)) { ToggleConsole(!_overlayContentControl.IsVisible); } } private void InitControls() { _mainContentControl = this.FindControl("MainContentControl"); _overlayContentControl = this.FindControl("Overlay"); _homeButton = this.FindControl