234 if (!shortcut_manager) {
243 if (editor_manager) {
245 [editor_manager]() -> std::optional<EditorType> {
246 auto* current_editor = editor_manager->GetCurrentEditor();
247 if (!current_editor) {
250 return current_editor->
type();
256 shortcut_manager,
"view.toggle_activity_bar", {ImGuiMod_Ctrl, ImGuiKey_B},
258 if (window_manager) {
259 window_manager->ToggleSidebarVisibility();
266 shortcut_manager,
"view.toggle_side_panel",
267 {ImGuiMod_Ctrl, ImGuiMod_Alt, ImGuiKey_E},
269 if (window_manager) {
270 window_manager->ToggleSidebarExpanded();
277 shortcut_manager,
"ui.font_scale_increase",
278 {ImGuiMod_Ctrl, ImGuiKey_Equal},
280 AdjustUiFontScaleBy(editor_manager, kUiFontScaleStep);
285 shortcut_manager,
"ui.font_scale_increase_keypad",
286 {ImGuiMod_Ctrl, ImGuiKey_KeypadAdd},
288 AdjustUiFontScaleBy(editor_manager, kUiFontScaleStep);
293 shortcut_manager,
"ui.font_scale_decrease",
294 {ImGuiMod_Ctrl, ImGuiKey_Minus},
296 AdjustUiFontScaleBy(editor_manager, -kUiFontScaleStep);
301 shortcut_manager,
"ui.font_scale_decrease_keypad",
302 {ImGuiMod_Ctrl, ImGuiKey_KeypadSubtract},
304 AdjustUiFontScaleBy(editor_manager, -kUiFontScaleStep);
309 shortcut_manager,
"ui.font_scale_reset", {ImGuiMod_Ctrl, ImGuiKey_0},
311 if (!editor_manager || ImGui::GetIO().WantTextInput) {
314 editor_manager->SetFontGlobalScale(1.0f);
319 shortcut_manager,
"Open", {ImGuiMod_Ctrl, ImGuiKey_O},
321 if (editor_manager) {
322 editor_manager->LoadRom();
328 shortcut_manager,
"Save", {ImGuiMod_Ctrl, ImGuiKey_S},
330 if (editor_manager) {
331 const auto status = editor_manager->SaveCurrentSession();
332 if (!status.ok() && !absl::IsCancelled(status)) {
333 editor_manager->toast_manager()->Show(
334 absl::StrFormat(
"Failed to save: %s", status.message()),
341 shortcut_manager,
"Save As", {ImGuiMod_Ctrl, ImGuiMod_Shift, ImGuiKey_S},
343 if (editor_manager) {
344 const auto status = editor_manager->SaveCurrentSessionAs();
345 if (!status.ok() && !absl::IsCancelled(status)) {
346 editor_manager->toast_manager()->Show(
347 absl::StrFormat(
"Failed to save a copy: %s", status.message()),
355 shortcut_manager,
"Close ROM", {ImGuiMod_Ctrl, ImGuiKey_W},
359 if (editor_manager) {
360 editor_manager->CloseRom();
366 shortcut_manager,
"Quit", {ImGuiMod_Ctrl, ImGuiKey_Q},
368 if (editor_manager) {
369 editor_manager->Quit();
375 shortcut_manager,
"Undo", {ImGuiMod_Ctrl, ImGuiKey_Z},
377 if (editor_manager && editor_manager->GetCurrentEditor()) {
378 editor_manager->GetCurrentEditor()->Undo();
384 shortcut_manager,
"Redo", {ImGuiMod_Ctrl, ImGuiMod_Shift, ImGuiKey_Z},
386 if (editor_manager && editor_manager->GetCurrentEditor()) {
387 editor_manager->GetCurrentEditor()->Redo();
394 shortcut_manager,
"Redo (Alt)", {ImGuiMod_Ctrl, ImGuiKey_Y},
396 if (editor_manager && editor_manager->GetCurrentEditor()) {
397 editor_manager->GetCurrentEditor()->Redo();
403 shortcut_manager,
"Cut", {ImGuiMod_Ctrl, ImGuiKey_X},
405 if (editor_manager && editor_manager->GetCurrentEditor()) {
406 editor_manager->GetCurrentEditor()->Cut();
412 shortcut_manager,
"Copy", {ImGuiMod_Ctrl, ImGuiKey_C},
414 if (editor_manager && editor_manager->GetCurrentEditor()) {
415 editor_manager->GetCurrentEditor()->Copy();
421 shortcut_manager,
"Paste", {ImGuiMod_Ctrl, ImGuiKey_V},
423 if (editor_manager && editor_manager->GetCurrentEditor()) {
424 editor_manager->GetCurrentEditor()->Paste();
430 shortcut_manager,
"Find", {ImGuiMod_Ctrl, ImGuiKey_F},
432 if (editor_manager && editor_manager->GetCurrentEditor()) {
433 editor_manager->GetCurrentEditor()->Find();
439 shortcut_manager,
"Command Palette",
440 {ImGuiMod_Ctrl, ImGuiMod_Shift, ImGuiKey_P},
442 if (ui_coordinator) {
443 ui_coordinator->ShowCommandPalette();
449 shortcut_manager,
"Window Finder", {ImGuiMod_Ctrl, ImGuiKey_P},
451 if (ui_coordinator) {
452 ui_coordinator->ShowPanelFinder();
458 shortcut_manager,
"Keyboard Shortcuts",
459 {ImGuiMod_Ctrl, ImGuiMod_Shift, ImGuiKey_Slash},
461 if (ui_coordinator) {
462 ui_coordinator->ShowShortcutsBrowser();
468 shortcut_manager,
"Global Search",
469 {ImGuiMod_Ctrl, ImGuiMod_Shift, ImGuiKey_K},
471 if (ui_coordinator) {
472 ui_coordinator->ShowGlobalSearch();
478 shortcut_manager,
"Load Last ROM", {ImGuiMod_Ctrl, ImGuiKey_R},
481 if (!recent.GetRecentFiles().empty() && editor_manager) {
482 editor_manager->OpenRomOrProject(recent.GetRecentFiles().front());
488 shortcut_manager,
"Show About", ImGuiKey_F1,
491 popup_manager->Show(
"About");
496 auto register_editor_shortcut = [&](
EditorType type, ImGuiKey key) {
497 RegisterIfValid(shortcut_manager,
498 absl::StrFormat(
"switch.%d",
static_cast<int>(type)),
499 {ImGuiMod_Ctrl, key}, [editor_manager, type]() {
500 if (editor_manager) {
501 editor_manager->SwitchToEditor(type);
522 auto register_editor_command = [&](
EditorType type,
const std::string& name) {
524 absl::StrFormat(
"Switch to %s Editor", name), [editor_manager, type]() {
525 if (editor_manager) {
526 editor_manager->SwitchToEditor(type);
544 if (editor_manager) {
545 for (
const auto& def : kMusicEditorShortcuts) {
546 RegisterEditorIfValid(
547 shortcut_manager, def.id, def.keys,
548 [editor_manager,
id = def.id]() {
551 auto* editor_set = editor_manager->GetCurrentEditorSet();
553 editor_set ? editor_set->GetMusicEditor() : nullptr;
557 if (id ==
"music.play_pause") {
558 music_editor->TogglePlayPause();
559 }
else if (
id ==
"music.stop") {
560 music_editor->StopPlayback();
561 }
else if (
id ==
"music.speed_up" ||
562 id ==
"music.speed_up_keypad") {
563 music_editor->SpeedUp();
564 }
else if (
id ==
"music.speed_down" ||
565 id ==
"music.speed_down_keypad") {
566 music_editor->SlowDown();
574 if (editor_manager) {
575 for (
const auto& def : kDungeonEditorShortcuts) {
576 RegisterEditorIfValid(
577 shortcut_manager, def.id, def.keys,
578 [editor_manager,
id = def.id]() {
581 auto* editor_set = editor_manager->GetCurrentEditorSet();
582 auto* dungeon_editor =
583 editor_set ? editor_set->GetDungeonEditor() : nullptr;
587 if (id ==
"dungeon.room.navigate_up") {
588 dungeon_editor->NavigateToAdjacentRoom(
589 DungeonRoomNavigationDirection::kUp);
590 }
else if (
id ==
"dungeon.room.navigate_down") {
591 dungeon_editor->NavigateToAdjacentRoom(
593 }
else if (
id ==
"dungeon.room.navigate_left") {
594 dungeon_editor->NavigateToAdjacentRoom(
596 }
else if (
id ==
"dungeon.room.navigate_right") {
597 dungeon_editor->NavigateToAdjacentRoom(
599 }
else if (
id ==
"dungeon.room.previous") {
600 dungeon_editor->CycleRoomSelection(-1);
601 }
else if (
id ==
"dungeon.room.next") {
602 dungeon_editor->CycleRoomSelection(1);
603 }
else if (
id ==
"dungeon.open_room_list") {
605 }
else if (
id ==
"dungeon.open_entrances") {
606 dungeon_editor->OpenWindow(
"dungeon.entrance_properties");
607 }
else if (
id ==
"dungeon.open_matrix") {
609 }
else if (
id ==
"dungeon.open_room_graphics") {
611 }
else if (
id ==
"dungeon.open_palette") {
613 }
else if (
id ==
"dungeon.object.select_tool") {
615 if (
auto* selector = dungeon_editor->object_editor_panel())
616 selector->CancelPlacement();
617 }
else if (
id ==
"dungeon.object.next_object") {
618 (void)dungeon_editor->CycleObjectSelection(1);
619 }
else if (
id ==
"dungeon.object.prev_object") {
620 (void)dungeon_editor->CycleObjectSelection(-1);
621 }
else if (
id ==
"dungeon.object.delete_tool" ||
622 id ==
"dungeon.object.delete") {
623 dungeon_editor->QueueRoomCanvasDeleteShortcut();
627 if (def.id.starts_with(
"dungeon.room.")) {
629 if (!editor_manager) {
632 auto* editor_set = editor_manager->GetCurrentEditorSet();
633 auto* dungeon_editor =
634 editor_set ? editor_set->GetDungeonEditor() :
nullptr;
635 return dungeon_editor !=
nullptr &&
636 dungeon_editor->CanHandleDungeonNavigationShortcut();
643 if (editor_manager) {
646 shortcut_manager, def.id, def.keys,
647 [editor_manager,
id = def.id]() {
650 auto* editor_set = editor_manager->GetCurrentEditorSet();
651 auto* overworld_editor =
652 editor_set ? editor_set->GetOverworldEditor() : nullptr;
653 if (!overworld_editor)
656 if (id ==
"overworld.brush_toggle") {
657 overworld_editor->ToggleBrushTool();
658 }
else if (
id ==
"overworld.fill") {
659 overworld_editor->ActivateFillTool();
660 }
else if (
id ==
"overworld.next_tile") {
661 overworld_editor->CycleTileSelection(1);
662 }
else if (
id ==
"overworld.prev_tile") {
663 overworld_editor->CycleTileSelection(-1);
664 }
else if (
id ==
"overworld.toggle_fullscreen") {
665 overworld_editor->ToggleCanvasFullscreen();
666 }
else if (
id ==
"overworld.toggle_lock") {
667 overworld_editor->ToggleMapLock();
668 }
else if (
id ==
"overworld.toggle_map_properties") {
669 overworld_editor->OpenMapPropertiesWindow();
670 }
else if (
id ==
"overworld.toggle_tile16_editor") {
671 overworld_editor->ToggleTile16EditorWindow();
672 }
else if (
id ==
"overworld.toggle_item_list") {
673 overworld_editor->ToggleItemListWindow();
674 }
else if (
id ==
"overworld.world_light") {
675 overworld_editor->SwitchToWorld(0);
676 }
else if (
id ==
"overworld.world_dark") {
677 overworld_editor->SwitchToWorld(1);
678 }
else if (
id ==
"overworld.world_special") {
679 overworld_editor->SwitchToWorld(2);
680 }
else if (
id ==
"overworld.map_left") {
681 overworld_editor->SelectAdjacentMap(-1, 0);
682 }
else if (
id ==
"overworld.map_right") {
683 overworld_editor->SelectAdjacentMap(1, 0);
684 }
else if (
id ==
"overworld.map_up") {
685 overworld_editor->SelectAdjacentMap(0, -1);
686 }
else if (
id ==
"overworld.map_down") {
687 overworld_editor->SelectAdjacentMap(0, 1);
688 }
else if (
id ==
"overworld.zoom_in" ||
689 id ==
"overworld.zoom_in_keypad") {
690 overworld_editor->ZoomIn();
691 }
else if (
id ==
"overworld.zoom_out" ||
692 id ==
"overworld.zoom_out_keypad") {
693 overworld_editor->ZoomOut();
694 }
else if (
id ==
"overworld.zoom_fit") {
695 overworld_editor->ZoomToFit();
696 }
else if (
id ==
"overworld.center_map") {
697 overworld_editor->CenterOverworldView();
698 }
else if (
id ==
"overworld.toggle_entities") {
699 overworld_editor->ToggleEntityVisibility();
700 }
else if (
id ==
"overworld.toggle_grid") {
701 overworld_editor->ToggleGrid();
704 EditorType::kOverworld);
709 if (editor_manager) {
712 shortcut_manager, def.id, def.keys,
713 [editor_manager,
id = def.id]() {
716 auto* editor_set = editor_manager->GetCurrentEditorSet();
717 auto* graphics_editor =
718 editor_set ? editor_set->GetGraphicsEditor() : nullptr;
719 if (!graphics_editor)
722 static const std::map<std::string, PixelTool> kTools = {
723 {
"graphics.tool.select", PixelTool::kSelect},
724 {
"graphics.tool.hand", PixelTool::kHand},
725 {
"graphics.tool.pencil", PixelTool::kPencil},
726 {
"graphics.tool.brush", PixelTool::kBrush},
727 {
"graphics.tool.eraser", PixelTool::kEraser},
728 {
"graphics.tool.fill", PixelTool::kFill},
729 {
"graphics.tool.line", PixelTool::kLine},
730 {
"graphics.tool.rectangle", PixelTool::kRectangle},
731 {
"graphics.tool.eyedropper", PixelTool::kEyedropper},
733 if (
id ==
"graphics.next_sheet") {
734 graphics_editor->NextSheet();
735 }
else if (
id ==
"graphics.prev_sheet") {
736 graphics_editor->PrevSheet();
737 }
else if (
auto tool = kTools.find(
id); tool != kTools.end()) {
738 graphics_editor->SetPixelTool(tool->second);
739 }
else if (
id ==
"graphics.zoom_in" ||
740 id ==
"graphics.zoom_in_keypad") {
741 graphics_editor->ZoomIn();
742 }
else if (
id ==
"graphics.zoom_out" ||
743 id ==
"graphics.zoom_out_keypad") {
744 graphics_editor->ZoomOut();
745 }
else if (
id ==
"graphics.toggle_grid") {
746 graphics_editor->ToggleGrid();
749 EditorType::kGraphics);
754 shortcut_manager,
"Editor Selection", {ImGuiMod_Ctrl, ImGuiKey_E},
756 if (ui_coordinator) {
757 ui_coordinator->ShowEditorSelection();
760 Shortcut::Scope::kGlobal);
763 shortcut_manager,
"Window Browser",
764 {ImGuiMod_Ctrl, ImGuiMod_Shift, ImGuiKey_B},
766 if (ui_coordinator) {
767 ui_coordinator->ShowWindowBrowser();
770 Shortcut::Scope::kGlobal);
772 shortcut_manager,
"Window Browser (Alt)",
773 {ImGuiMod_Ctrl, ImGuiMod_Alt, ImGuiKey_P},
775 if (ui_coordinator) {
776 ui_coordinator->ShowWindowBrowser();
779 Shortcut::Scope::kGlobal);
780 RegisterAlias(shortcut_manager,
"Panel Browser",
"Window Browser");
782 "Window Browser (Alt)");
785 shortcut_manager,
"View: Previous Right Drawer",
786 {ImGuiMod_Ctrl, ImGuiMod_Alt, ImGuiKey_LeftBracket},
788 if (!editor_manager) {
791 if (
auto* right_drawer = editor_manager->right_drawer_manager()) {
792 right_drawer->CycleToPreviousDrawer();
795 Shortcut::Scope::kGlobal);
798 shortcut_manager,
"View: Next Right Drawer",
799 {ImGuiMod_Ctrl, ImGuiMod_Alt, ImGuiKey_RightBracket},
801 if (!editor_manager) {
804 if (
auto* right_drawer = editor_manager->right_drawer_manager()) {
805 right_drawer->CycleToNextDrawer();
808 Shortcut::Scope::kGlobal);
809 RegisterAlias(shortcut_manager,
"View: Previous Right Panel",
810 "View: Previous Right Drawer");
812 "View: Next Right Drawer");
814 if (window_manager) {
818 shortcut_manager,
"Show Dungeon Windows",
819 {ImGuiMod_Ctrl, ImGuiMod_Alt, ImGuiKey_D},
821 window_manager->ShowAllWindowsInCategory(
822 window_manager->GetActiveSessionId(),
"Dungeon");
824 Shortcut::Scope::kEditor);
826 "Show Dungeon Windows");
828 shortcut_manager,
"Show Graphics Windows",
829 {ImGuiMod_Ctrl, ImGuiMod_Alt, ImGuiKey_G},
831 window_manager->ShowAllWindowsInCategory(
832 window_manager->GetActiveSessionId(),
"Graphics");
834 Shortcut::Scope::kEditor);
836 "Show Graphics Windows");
838 shortcut_manager,
"Show Screen Windows",
839 {ImGuiMod_Ctrl, ImGuiMod_Alt, ImGuiKey_S},
841 window_manager->ShowAllWindowsInCategory(
842 window_manager->GetActiveSessionId(),
"Screen");
844 Shortcut::Scope::kEditor);
846 "Show Screen Windows");
849#ifdef YAZE_BUILD_AGENT_UI
851 {ImGuiMod_Ctrl, ImGuiMod_Shift, ImGuiKey_A},
853 if (editor_manager) {
854 editor_manager->ShowAIAgent();
859 {ImGuiMod_Ctrl, ImGuiKey_H}, [editor_manager]() {
860 if (editor_manager) {
861 editor_manager->ShowChatHistory();
866 {ImGuiMod_Ctrl, ImGuiMod_Shift,
869 if (editor_manager) {
870 editor_manager->ShowProposalDrawer();
878 shortcut_manager->
RegisterCommand(
"Layout Profile: Code", [editor_manager]() {
879 if (editor_manager) {
880 editor_manager->ApplyLayoutProfile(
"code");
884 "Layout Profile: Debug", [editor_manager]() {
885 if (editor_manager) {
886 editor_manager->ApplyLayoutProfile(
"debug");
890 "Layout Profile: Mapping", [editor_manager]() {
891 if (editor_manager) {
892 editor_manager->ApplyLayoutProfile(
"mapping");
895 shortcut_manager->
RegisterCommand(
"Layout Profile: Chat", [editor_manager]() {
896 if (editor_manager) {
897 editor_manager->ApplyLayoutProfile(
"chat");
901 "Layout Snapshot: Capture", [editor_manager]() {
902 if (editor_manager) {
903 editor_manager->CaptureTemporaryLayoutSnapshot();
907 "Layout Snapshot: Restore", [editor_manager]() {
908 if (editor_manager) {
909 editor_manager->RestoreTemporaryLayoutSnapshot();
913 "Layout Snapshot: Clear", [editor_manager]() {
914 if (editor_manager) {
915 editor_manager->ClearTemporaryLayoutSnapshot();
920 "Layout: Apply Minimal Preset", [editor_manager]() {
921 if (editor_manager) {
922 editor_manager->ApplyLayoutPreset(
"Minimal");
926 "Layout: Apply Developer Preset", [editor_manager]() {
927 if (editor_manager) {
928 editor_manager->ApplyLayoutPreset(
"Developer");
932 "Layout: Apply Designer Preset", [editor_manager]() {
933 if (editor_manager) {
934 editor_manager->ApplyLayoutPreset(
"Designer");
938 "Layout: Apply Modder Preset", [editor_manager]() {
939 if (editor_manager) {
940 editor_manager->ApplyLayoutPreset(
"Modder");
944 "Layout: Apply Overworld Expert Preset", [editor_manager]() {
945 if (editor_manager) {
946 editor_manager->ApplyLayoutPreset(
"Overworld Expert");
950 "Layout: Apply Dungeon Expert Preset", [editor_manager]() {
951 if (editor_manager) {
952 editor_manager->ApplyLayoutPreset(
"Dungeon Expert");
956 "Layout: Apply Testing Preset", [editor_manager]() {
957 if (editor_manager) {
958 editor_manager->ApplyLayoutPreset(
"Testing");
962 "Layout: Apply Audio Preset", [editor_manager]() {
963 if (editor_manager) {
964 editor_manager->ApplyLayoutPreset(
"Audio");
968 "Layout: Reset Current Editor", [editor_manager]() {
969 if (editor_manager) {
970 editor_manager->ResetCurrentEditorLayout();
977 if (editor_manager) {
978 using DrawerType = RightDrawerManager::DrawerType;
979 auto* right_drawer_manager = editor_manager->right_drawer_manager();
980 if (right_drawer_manager) {
985 DrawerCmd drawer_cmds[] = {
986 {
"View: Toggle AI Agent Panel", DrawerType::kAgentChat},
987 {
"View: Toggle AI Agent Drawer", DrawerType::kAgentChat},
988 {
"View: Toggle Proposals Panel", DrawerType::kProposals},
989 {
"View: Toggle Proposals Drawer", DrawerType::kProposals},
990 {
"View: Toggle Settings Panel", DrawerType::kSettings},
991 {
"View: Toggle Settings Drawer", DrawerType::kSettings},
992 {
"View: Toggle Help Panel", DrawerType::kHelp},
993 {
"View: Toggle Help Drawer", DrawerType::kHelp},
994 {
"View: Toggle Notifications", DrawerType::kNotifications},
995 {
"View: Toggle Notifications Drawer", DrawerType::kNotifications},
996 {
"View: Toggle Properties Panel", DrawerType::kProperties},
997 {
"View: Toggle Properties Drawer", DrawerType::kProperties},
998 {
"View: Toggle Project Panel", DrawerType::kProject},
999 {
"View: Toggle Project Drawer", DrawerType::kProject},
1001 for (
const auto& cmd : drawer_cmds) {
1003 cmd.label, [right_drawer_manager, drawer_type = cmd.type]() {
1004 right_drawer_manager->ToggleDrawer(drawer_type);
1016 if (window_manager) {
1017 auto categories = window_manager->GetAllCategories();
1018 const size_t registration_session_id = window_manager->GetActiveSessionId();
1021 "View: Show Panel Browser",
1022 [window_manager]() { window_manager->TriggerShowWindowBrowser(); });
1024 "View: Show Window Browser",
1025 [window_manager]() { window_manager->TriggerShowWindowBrowser(); });
1027 for (
const auto& category : categories) {
1028 auto windows = window_manager->GetWindowsInCategory(
1029 registration_session_id, category);
1030 for (
const auto& window : windows) {
1031 const std::string window_id = window.card_id;
1032 const std::string display_name = window.display_name;
1035 absl::StrFormat(
"View: Show %s", display_name),
1036 [window_manager, window_id]() {
1037 if (window_manager) {
1038 window_manager->OpenWindow(window_manager->GetActiveSessionId(),
1043 absl::StrFormat(
"View: Hide %s", display_name),
1044 [window_manager, window_id]() {
1045 if (window_manager) {
1046 window_manager->CloseWindow(
1047 window_manager->GetActiveSessionId(), window_id);
1051 absl::StrFormat(
"View: Toggle %s", display_name),
1052 [window_manager, window_id]() {
1053 if (window_manager) {
1054 window_manager->ToggleWindow(
1055 window_manager->GetActiveSessionId(), window_id);
1060 absl::StrFormat(
"View: Open %s Window", display_name),
1061 [window_manager, window_id]() {
1062 if (window_manager) {
1063 window_manager->OpenWindow(window_manager->GetActiveSessionId(),
1068 absl::StrFormat(
"View: Close %s Window", display_name),
1069 [window_manager, window_id]() {
1070 if (window_manager) {
1071 window_manager->CloseWindow(
1072 window_manager->GetActiveSessionId(), window_id);
1076 absl::StrFormat(
"View: Toggle %s Window", display_name),
1077 [window_manager, window_id]() {
1078 if (window_manager) {
1079 window_manager->ToggleWindow(
1080 window_manager->GetActiveSessionId(), window_id);
1086 absl::StrFormat(
"View: Show All %s Panels", category),
1088 if (window_manager) {
1089 window_manager->ShowAllWindowsInCategory(
1090 window_manager->GetActiveSessionId(),
category);
1094 absl::StrFormat(
"View: Hide All %s Panels", category),
1096 if (window_manager) {
1097 window_manager->HideAllWindowsInCategory(
1098 window_manager->GetActiveSessionId(),
category);
1102 absl::StrFormat(
"View: Show All %s Windows", category),
1104 if (window_manager) {
1105 window_manager->ShowAllWindowsInCategory(
1106 window_manager->GetActiveSessionId(),
category);
1110 absl::StrFormat(
"View: Hide All %s Windows", category),
1112 if (window_manager) {
1113 window_manager->HideAllWindowsInCategory(
1114 window_manager->GetActiveSessionId(),
category);