diff --git a/src/app/editor/editor_manager.cc b/src/app/editor/editor_manager.cc index ee9e3e4b..5058f66d 100644 --- a/src/app/editor/editor_manager.cc +++ b/src/app/editor/editor_manager.cc @@ -713,7 +713,7 @@ void EditorManager::Initialize(gfx::IRenderer* renderer, std::vector{ImGuiKey_O, ImGuiMod_Ctrl, ImGuiMod_Shift}, [this]() { LoadWorkspaceLayout(); }); context_.shortcut_manager.RegisterShortcut( - "Maximize Window", ImGuiKey_F11, [this]() { MaximizeCurrentWindow(); }); + "Maximize Window", ImGuiKey_F11, [this]() { workspace_manager_.MaximizeCurrentWindow(); }); } void EditorManager::OpenEditorAndCardsFromFlags(const std::string& editor_name, @@ -2365,51 +2365,7 @@ std::string EditorManager::GenerateUniqueEditorTitle( return std::string(base_name); } -void EditorManager::ResetWorkspaceLayout() { - // Show confirmation popup first, then delegate to WindowDelegate - popup_manager_->Show("Layout Reset Confirm"); - window_delegate_.ResetWorkspaceLayout(); -} - -void EditorManager::SaveWorkspaceLayout() { - window_delegate_.SaveWorkspaceLayout(); - toast_manager_.Show("Workspace layout saved", editor::ToastType::kSuccess); -} - -void EditorManager::LoadWorkspaceLayout() { - window_delegate_.LoadWorkspaceLayout(); - toast_manager_.Show("Workspace layout loaded", editor::ToastType::kSuccess); -} - -void EditorManager::ShowAllWindows() { - // Delegate to UICoordinator for clean separation of concerns - if (ui_coordinator_) { - ui_coordinator_->ShowAllWindows(); - } -} - -void EditorManager::HideAllWindows() { - // Delegate to UICoordinator for clean separation of concerns - if (ui_coordinator_) { - ui_coordinator_->HideAllWindows(); - } -} - -void EditorManager::MaximizeCurrentWindow() { - // Delegate to WindowDelegate - // Note: This requires tracking the current focused window - toast_manager_.Show("Current window maximized", editor::ToastType::kInfo); -} - -void EditorManager::RestoreAllWindows() { - // Restore all windows to normal size - toast_manager_.Show("All windows restored", editor::ToastType::kInfo); -} - -void EditorManager::CloseAllFloatingWindows() { - // Close all floating (undocked) windows - toast_manager_.Show("All floating windows closed", editor::ToastType::kInfo); -} +// Window management methods removed - now inline in header for reduced bloat void EditorManager::LoadDeveloperLayout() { if (!current_editor_set_) diff --git a/src/app/editor/editor_manager.h b/src/app/editor/editor_manager.h index b1e8ff48..0f885178 100644 --- a/src/app/editor/editor_manager.h +++ b/src/app/editor/editor_manager.h @@ -208,14 +208,12 @@ class EditorManager { size_t GetActiveSessionCount() const; // Workspace layout management - void SaveWorkspaceLayout(); - void LoadWorkspaceLayout(); - void ResetWorkspaceLayout(); - void ShowAllWindows(); - void HideAllWindows(); - void MaximizeCurrentWindow(); - void RestoreAllWindows(); - void CloseAllFloatingWindows(); + // Window management - inline delegation (reduces EditorManager bloat) + void SaveWorkspaceLayout() { window_delegate_.SaveWorkspaceLayout(); } + void LoadWorkspaceLayout() { window_delegate_.LoadWorkspaceLayout(); } + void ResetWorkspaceLayout() { window_delegate_.ResetWorkspaceLayout(); } + void ShowAllWindows() { if (ui_coordinator_) ui_coordinator_->ShowAllWindows(); } + void HideAllWindows() { if (ui_coordinator_) ui_coordinator_->HideAllWindows(); } // Layout presets void LoadDeveloperLayout(); @@ -229,26 +227,23 @@ class EditorManager { void Quit() { quit_ = true; } // UI visibility controls (public for MenuOrchestrator) - void ShowGlobalSearch() { - if (ui_coordinator_) ui_coordinator_->ShowGlobalSearch(); - } - void ShowPerformanceDashboard() { - if (ui_coordinator_) ui_coordinator_->SetPerformanceDashboardVisible(true); - } - void ShowImGuiDemo() { - if (ui_coordinator_) ui_coordinator_->SetImGuiDemoVisible(true); - } - void ShowImGuiMetrics() { - if (ui_coordinator_) ui_coordinator_->SetImGuiMetricsVisible(true); - } + // UI visibility controls - inline for performance (single-line wrappers delegating to UICoordinator) + void ShowGlobalSearch() { if (ui_coordinator_) ui_coordinator_->ShowGlobalSearch(); } + void ShowCommandPalette() { if (ui_coordinator_) ui_coordinator_->ShowCommandPalette(); } + void ShowPerformanceDashboard() { if (ui_coordinator_) ui_coordinator_->SetPerformanceDashboardVisible(true); } + void ShowImGuiDemo() { if (ui_coordinator_) ui_coordinator_->SetImGuiDemoVisible(true); } + void ShowImGuiMetrics() { if (ui_coordinator_) ui_coordinator_->SetImGuiMetricsVisible(true); } void ShowHexEditor(); void ShowEmulator() { show_emulator_ = true; } - void ShowCardBrowser() { - if (ui_coordinator_) ui_coordinator_->ShowCardBrowser(); - } - void ShowWelcomeScreen() { - if (ui_coordinator_) ui_coordinator_->SetWelcomeScreenVisible(true); - } + void ShowMemoryEditor() { show_memory_editor_ = true; } + void ShowResourceLabelManager() { show_resource_label_manager = true; } + void ShowCardBrowser() { if (ui_coordinator_) ui_coordinator_->ShowCardBrowser(); } + void ShowWelcomeScreen() { if (ui_coordinator_) ui_coordinator_->SetWelcomeScreenVisible(true); } + +#ifdef YAZE_ENABLE_TESTING + void ShowTestDashboard() { show_test_dashboard_ = true; } +#endif + #ifdef YAZE_WITH_GRPC void ShowAIAgent(); void ShowChatHistory(); diff --git a/src/app/editor/system/menu_orchestrator.cc b/src/app/editor/system/menu_orchestrator.cc index 87ba766c..7efa95e5 100644 --- a/src/app/editor/system/menu_orchestrator.cc +++ b/src/app/editor/system/menu_orchestrator.cc @@ -224,16 +224,56 @@ void MenuOrchestrator::AddToolsMenuItems() { menu_builder_ .Item("Global Search", ICON_MD_SEARCH, [this]() { OnShowGlobalSearch(); }, "Ctrl+Shift+F") + .Item("Command Palette", ICON_MD_SEARCH, + [this]() { OnShowCommandPalette(); }, "Ctrl+Shift+P") .Item("Performance Dashboard", ICON_MD_SPEED, [this]() { OnShowPerformanceDashboard(); }) .Separator(); + // Testing Tools (only when tests are enabled) +#ifdef YAZE_ENABLE_TESTING + menu_builder_ + .BeginSubMenu("Testing", ICON_MD_SCIENCE) + .Item("Test Dashboard", ICON_MD_DASHBOARD, + [this]() { OnShowTestDashboard(); }, "Ctrl+T") + .Item("Run All Tests", ICON_MD_PLAY_ARROW, + [this]() { OnRunAllTests(); }) + .Item("Run Unit Tests", ICON_MD_CHECK_BOX, + [this]() { OnRunUnitTests(); }) + .Item("Run Integration Tests", ICON_MD_INTEGRATION_INSTRUCTIONS, + [this]() { OnRunIntegrationTests(); }) + .Item("Run E2E Tests", ICON_MD_VISIBILITY, + [this]() { OnRunE2ETests(); }) + .EndMenu() + .Separator(); +#endif + // Debug Tools menu_builder_ - .Item("ImGui Demo", ICON_MD_BUG_REPORT, + .BeginSubMenu("Debug", ICON_MD_BUG_REPORT) + .Item("ImGui Demo", ICON_MD_WIDGETS, [this]() { OnShowImGuiDemo(); }) .Item("ImGui Metrics", ICON_MD_ANALYTICS, - [this]() { OnShowImGuiMetrics(); }); + [this]() { OnShowImGuiMetrics(); }) + .Item("Memory Editor", ICON_MD_MEMORY, + [this]() { OnShowMemoryEditor(); }) + .Item("Resource Label Manager", ICON_MD_LABEL, + [this]() { OnShowResourceLabelManager(); }) + .EndMenu(); + + // Collaboration (GRPC builds only) +#ifdef YAZE_WITH_GRPC + menu_builder_ + .Separator() + .BeginSubMenu("Collaborate", ICON_MD_PEOPLE) + .Item("Start Collaboration Session", ICON_MD_PLAY_CIRCLE, + [this]() { OnStartCollaboration(); }) + .Item("Join Collaboration Session", ICON_MD_GROUP_ADD, + [this]() { OnJoinCollaboration(); }) + .Item("Network Status", ICON_MD_CLOUD, + [this]() { OnShowNetworkStatus(); }) + .EndMenu(); +#endif } void MenuOrchestrator::BuildWindowMenu() { @@ -660,6 +700,12 @@ void MenuOrchestrator::OnShowGlobalSearch() { } } +void MenuOrchestrator::OnShowCommandPalette() { + if (editor_manager_) { + editor_manager_->ShowCommandPalette(); + } +} + void MenuOrchestrator::OnShowPerformanceDashboard() { if (editor_manager_) { editor_manager_->ShowPerformanceDashboard(); @@ -678,6 +724,63 @@ void MenuOrchestrator::OnShowImGuiMetrics() { } } +void MenuOrchestrator::OnShowMemoryEditor() { + if (editor_manager_) { + editor_manager_->ShowMemoryEditor(); + } +} + +void MenuOrchestrator::OnShowResourceLabelManager() { + if (editor_manager_) { + editor_manager_->ShowResourceLabelManager(); + } +} + +#ifdef YAZE_ENABLE_TESTING +void MenuOrchestrator::OnShowTestDashboard() { + if (editor_manager_) { + editor_manager_->ShowTestDashboard(); + } +} + +void MenuOrchestrator::OnRunAllTests() { + toast_manager_.Show("Running all tests...", ToastType::kInfo); + // TODO: Implement test runner integration +} + +void MenuOrchestrator::OnRunUnitTests() { + toast_manager_.Show("Running unit tests...", ToastType::kInfo); + // TODO: Implement unit test runner +} + +void MenuOrchestrator::OnRunIntegrationTests() { + toast_manager_.Show("Running integration tests...", ToastType::kInfo); + // TODO: Implement integration test runner +} + +void MenuOrchestrator::OnRunE2ETests() { + toast_manager_.Show("Running E2E tests...", ToastType::kInfo); + // TODO: Implement E2E test runner +} +#endif + +#ifdef YAZE_WITH_GRPC +void MenuOrchestrator::OnStartCollaboration() { + toast_manager_.Show("Starting collaboration session...", ToastType::kInfo); + // TODO: Implement collaboration session start +} + +void MenuOrchestrator::OnJoinCollaboration() { + toast_manager_.Show("Joining collaboration session...", ToastType::kInfo); + // TODO: Implement collaboration session join +} + +void MenuOrchestrator::OnShowNetworkStatus() { + toast_manager_.Show("Network Status", ToastType::kInfo); + // TODO: Show network status dialog +} +#endif + // Help menu actions void MenuOrchestrator::OnShowAbout() { popup_manager_.Show("About"); diff --git a/src/app/editor/system/menu_orchestrator.h b/src/app/editor/system/menu_orchestrator.h index 70d68118..83def148 100644 --- a/src/app/editor/system/menu_orchestrator.h +++ b/src/app/editor/system/menu_orchestrator.h @@ -119,9 +119,26 @@ class MenuOrchestrator { // Tool menu actions void OnShowGlobalSearch(); + void OnShowCommandPalette(); void OnShowPerformanceDashboard(); void OnShowImGuiDemo(); void OnShowImGuiMetrics(); + void OnShowMemoryEditor(); + void OnShowResourceLabelManager(); + +#ifdef YAZE_ENABLE_TESTING + void OnShowTestDashboard(); + void OnRunAllTests(); + void OnRunUnitTests(); + void OnRunIntegrationTests(); + void OnRunE2ETests(); +#endif + +#ifdef YAZE_WITH_GRPC + void OnStartCollaboration(); + void OnJoinCollaboration(); + void OnShowNetworkStatus(); +#endif // Help menu actions void OnShowAbout();