use super::KeybindingField;

impl KeybindingField {
    pub fn label(&self) -> &'static str {
        match self {
            Self::Exit => "Exit",
            Self::EnterTextMode => "Enter text mode",
            Self::EnterStickyNoteMode => "Enter sticky note mode",
            Self::ClearCanvas => "Clear canvas",
            Self::Undo => "Undo",
            Self::Redo => "Redo",
            Self::UndoAll => "Undo all",
            Self::RedoAll => "Redo all",
            Self::UndoAllDelayed => "Undo all (delayed)",
            Self::RedoAllDelayed => "Redo all (delayed)",
            Self::DuplicateSelection => "Duplicate selection",
            Self::CopySelection => "Copy selection",
            Self::PasteSelection => "Paste selection",
            Self::SelectAll => "Select all",
            Self::MoveSelectionToFront => "Move selection to front",
            Self::MoveSelectionToBack => "Move selection to back",
            Self::NudgeSelectionUp => "Nudge selection up",
            Self::NudgeSelectionDown => "Nudge selection down",
            Self::NudgeSelectionLeft => "Nudge selection left",
            Self::NudgeSelectionRight => "Nudge selection right",
            Self::NudgeSelectionUpLarge => "Nudge selection up (large)",
            Self::NudgeSelectionDownLarge => "Nudge selection down (large)",
            Self::MoveSelectionToStart => "Move selection to start",
            Self::MoveSelectionToEnd => "Move selection to end",
            Self::MoveSelectionToTop => "Move selection to top",
            Self::MoveSelectionToBottom => "Move selection to bottom",
            Self::DeleteSelection => "Delete selection",
            Self::IncreaseThickness => "Increase thickness",
            Self::DecreaseThickness => "Decrease thickness",
            Self::IncreaseMarkerOpacity => "Increase marker opacity",
            Self::DecreaseMarkerOpacity => "Decrease marker opacity",
            Self::SelectSelectionTool => "Select selection tool",
            Self::SelectPenTool => "Select pen tool",
            Self::SelectEraserTool => "Select eraser tool",
            Self::ToggleEraserMode => "Toggle eraser mode",
            Self::SelectMarkerTool => "Select marker tool",
            Self::SelectLineTool => "Select line tool",
            Self::SelectRectTool => "Select rectangle tool",
            Self::SelectEllipseTool => "Select ellipse tool",
            Self::SelectArrowTool => "Select arrow tool",
            Self::SelectHighlightTool => "Select highlight tool",
            Self::IncreaseFontSize => "Increase font size",
            Self::DecreaseFontSize => "Decrease font size",
            Self::ToggleWhiteboard => "Toggle whiteboard",
            Self::ToggleBlackboard => "Toggle blackboard",
            Self::ReturnToTransparent => "Return to transparent",
            Self::PagePrev => "Page: previous",
            Self::PageNext => "Page: next",
            Self::PageNew => "Page: new",
            Self::PageDuplicate => "Page: duplicate",
            Self::PageDelete => "Page: delete",
            Self::Board1 => "Board: 1",
            Self::Board2 => "Board: 2",
            Self::Board3 => "Board: 3",
            Self::Board4 => "Board: 4",
            Self::Board5 => "Board: 5",
            Self::Board6 => "Board: 6",
            Self::Board7 => "Board: 7",
            Self::Board8 => "Board: 8",
            Self::Board9 => "Board: 9",
            Self::BoardNext => "Board: next",
            Self::BoardPrev => "Board: previous",
            Self::BoardNew => "Board: new",
            Self::BoardDuplicate => "Board: duplicate",
            Self::BoardDelete => "Board: delete",
            Self::BoardPicker => "Board: picker",
            Self::ToggleHelp => "Toggle help",
            Self::ToggleQuickHelp => "Toggle quick help",
            Self::ToggleStatusBar => "Toggle status bar",
            Self::ToggleClickHighlight => "Toggle click highlight",
            Self::ToggleToolbar => "Toggle toolbar",
            Self::TogglePresenterMode => "Toggle presenter mode",
            Self::ToggleFill => "Toggle fill",
            Self::ToggleHighlightTool => "Toggle highlight tool",
            Self::ToggleSelectionProperties => "Toggle selection properties",
            Self::OpenContextMenu => "Open context menu",
            Self::OpenConfigurator => "Open configurator",
            Self::ToggleCommandPalette => "Toggle command palette",
            Self::SetColorRed => "Color: red",
            Self::SetColorGreen => "Color: green",
            Self::SetColorBlue => "Color: blue",
            Self::SetColorYellow => "Color: yellow",
            Self::SetColorOrange => "Color: orange",
            Self::SetColorPink => "Color: pink",
            Self::SetColorWhite => "Color: white",
            Self::SetColorBlack => "Color: black",
            Self::CaptureFullScreen => "Capture full screen",
            Self::CaptureActiveWindow => "Capture active window",
            Self::CaptureSelection => "Capture selection",
            Self::CaptureClipboardFull => "Clipboard full screen",
            Self::CaptureFileFull => "File full screen",
            Self::CaptureClipboardSelection => "Clipboard selection",
            Self::CaptureFileSelection => "File selection",
            Self::CaptureClipboardRegion => "Clipboard region",
            Self::CaptureFileRegion => "File region",
            Self::OpenCaptureFolder => "Open capture folder",
            Self::ToggleFrozenMode => "Toggle freeze",
            Self::ZoomIn => "Zoom in",
            Self::ZoomOut => "Zoom out",
            Self::ResetZoom => "Reset zoom",
            Self::ToggleZoomLock => "Toggle zoom lock",
            Self::RefreshZoomCapture => "Refresh zoom snapshot",
            Self::ResetArrowLabels => "Reset arrow labels",
            Self::ApplyPreset1 => "Apply preset 1",
            Self::ApplyPreset2 => "Apply preset 2",
            Self::ApplyPreset3 => "Apply preset 3",
            Self::ApplyPreset4 => "Apply preset 4",
            Self::ApplyPreset5 => "Apply preset 5",
            Self::SavePreset1 => "Save preset 1",
            Self::SavePreset2 => "Save preset 2",
            Self::SavePreset3 => "Save preset 3",
            Self::SavePreset4 => "Save preset 4",
            Self::SavePreset5 => "Save preset 5",
            Self::ClearPreset1 => "Clear preset 1",
            Self::ClearPreset2 => "Clear preset 2",
            Self::ClearPreset3 => "Clear preset 3",
            Self::ClearPreset4 => "Clear preset 4",
            Self::ClearPreset5 => "Clear preset 5",
        }
    }

    pub fn field_key(&self) -> &'static str {
        match self {
            Self::Exit => "exit",
            Self::EnterTextMode => "enter_text_mode",
            Self::EnterStickyNoteMode => "enter_sticky_note_mode",
            Self::ClearCanvas => "clear_canvas",
            Self::Undo => "undo",
            Self::Redo => "redo",
            Self::UndoAll => "undo_all",
            Self::RedoAll => "redo_all",
            Self::UndoAllDelayed => "undo_all_delayed",
            Self::RedoAllDelayed => "redo_all_delayed",
            Self::DuplicateSelection => "duplicate_selection",
            Self::CopySelection => "copy_selection",
            Self::PasteSelection => "paste_selection",
            Self::SelectAll => "select_all",
            Self::MoveSelectionToFront => "move_selection_to_front",
            Self::MoveSelectionToBack => "move_selection_to_back",
            Self::NudgeSelectionUp => "nudge_selection_up",
            Self::NudgeSelectionDown => "nudge_selection_down",
            Self::NudgeSelectionLeft => "nudge_selection_left",
            Self::NudgeSelectionRight => "nudge_selection_right",
            Self::NudgeSelectionUpLarge => "nudge_selection_up_large",
            Self::NudgeSelectionDownLarge => "nudge_selection_down_large",
            Self::MoveSelectionToStart => "move_selection_to_start",
            Self::MoveSelectionToEnd => "move_selection_to_end",
            Self::MoveSelectionToTop => "move_selection_to_top",
            Self::MoveSelectionToBottom => "move_selection_to_bottom",
            Self::DeleteSelection => "delete_selection",
            Self::IncreaseThickness => "increase_thickness",
            Self::DecreaseThickness => "decrease_thickness",
            Self::IncreaseMarkerOpacity => "increase_marker_opacity",
            Self::DecreaseMarkerOpacity => "decrease_marker_opacity",
            Self::SelectSelectionTool => "select_selection_tool",
            Self::SelectPenTool => "select_pen_tool",
            Self::SelectEraserTool => "select_eraser_tool",
            Self::ToggleEraserMode => "toggle_eraser_mode",
            Self::SelectMarkerTool => "select_marker_tool",
            Self::SelectLineTool => "select_line_tool",
            Self::SelectRectTool => "select_rect_tool",
            Self::SelectEllipseTool => "select_ellipse_tool",
            Self::SelectArrowTool => "select_arrow_tool",
            Self::SelectHighlightTool => "select_highlight_tool",
            Self::IncreaseFontSize => "increase_font_size",
            Self::DecreaseFontSize => "decrease_font_size",
            Self::ToggleWhiteboard => "toggle_whiteboard",
            Self::ToggleBlackboard => "toggle_blackboard",
            Self::ReturnToTransparent => "return_to_transparent",
            Self::PagePrev => "page_prev",
            Self::PageNext => "page_next",
            Self::PageNew => "page_new",
            Self::PageDuplicate => "page_duplicate",
            Self::PageDelete => "page_delete",
            Self::Board1 => "board_1",
            Self::Board2 => "board_2",
            Self::Board3 => "board_3",
            Self::Board4 => "board_4",
            Self::Board5 => "board_5",
            Self::Board6 => "board_6",
            Self::Board7 => "board_7",
            Self::Board8 => "board_8",
            Self::Board9 => "board_9",
            Self::BoardNext => "board_next",
            Self::BoardPrev => "board_prev",
            Self::BoardNew => "board_new",
            Self::BoardDuplicate => "board_duplicate",
            Self::BoardDelete => "board_delete",
            Self::BoardPicker => "board_picker",
            Self::ToggleHelp => "toggle_help",
            Self::ToggleQuickHelp => "toggle_quick_help",
            Self::ToggleStatusBar => "toggle_status_bar",
            Self::ToggleClickHighlight => "toggle_click_highlight",
            Self::ToggleToolbar => "toggle_toolbar",
            Self::TogglePresenterMode => "toggle_presenter_mode",
            Self::ToggleFill => "toggle_fill",
            Self::ToggleHighlightTool => "toggle_highlight_tool",
            Self::ToggleSelectionProperties => "toggle_selection_properties",
            Self::OpenContextMenu => "open_context_menu",
            Self::OpenConfigurator => "open_configurator",
            Self::ToggleCommandPalette => "toggle_command_palette",
            Self::SetColorRed => "set_color_red",
            Self::SetColorGreen => "set_color_green",
            Self::SetColorBlue => "set_color_blue",
            Self::SetColorYellow => "set_color_yellow",
            Self::SetColorOrange => "set_color_orange",
            Self::SetColorPink => "set_color_pink",
            Self::SetColorWhite => "set_color_white",
            Self::SetColorBlack => "set_color_black",
            Self::CaptureFullScreen => "capture_full_screen",
            Self::CaptureActiveWindow => "capture_active_window",
            Self::CaptureSelection => "capture_selection",
            Self::CaptureClipboardFull => "capture_clipboard_full",
            Self::CaptureFileFull => "capture_file_full",
            Self::CaptureClipboardSelection => "capture_clipboard_selection",
            Self::CaptureFileSelection => "capture_file_selection",
            Self::CaptureClipboardRegion => "capture_clipboard_region",
            Self::CaptureFileRegion => "capture_file_region",
            Self::OpenCaptureFolder => "open_capture_folder",
            Self::ToggleFrozenMode => "toggle_frozen_mode",
            Self::ZoomIn => "zoom_in",
            Self::ZoomOut => "zoom_out",
            Self::ResetZoom => "reset_zoom",
            Self::ToggleZoomLock => "toggle_zoom_lock",
            Self::RefreshZoomCapture => "refresh_zoom_capture",
            Self::ResetArrowLabels => "reset_arrow_labels",
            Self::ApplyPreset1 => "apply_preset_1",
            Self::ApplyPreset2 => "apply_preset_2",
            Self::ApplyPreset3 => "apply_preset_3",
            Self::ApplyPreset4 => "apply_preset_4",
            Self::ApplyPreset5 => "apply_preset_5",
            Self::SavePreset1 => "save_preset_1",
            Self::SavePreset2 => "save_preset_2",
            Self::SavePreset3 => "save_preset_3",
            Self::SavePreset4 => "save_preset_4",
            Self::SavePreset5 => "save_preset_5",
            Self::ClearPreset1 => "clear_preset_1",
            Self::ClearPreset2 => "clear_preset_2",
            Self::ClearPreset3 => "clear_preset_3",
            Self::ClearPreset4 => "clear_preset_4",
            Self::ClearPreset5 => "clear_preset_5",
        }
    }
}
