From 2d171732a0898447e9098c745ad9ab35699f01e3 Mon Sep 17 00:00:00 2001 From: Twan van Laarhoven Date: Fri, 8 May 2020 01:54:51 +0200 Subject: [PATCH] Add Select All functionality, closes #19 --- CHANGES.txt | 1 + data/en.mse-locale/locale | 2 + src/gui/control/card_editor.cpp | 2 + src/gui/control/card_editor.hpp | 7 +- src/gui/control/item_list.cpp | 9 + src/gui/control/item_list.hpp | 4 + src/gui/set/cards_panel.cpp | 10 + src/gui/set/cards_panel.hpp | 5 + src/gui/set/keywords_panel.cpp | 10 + src/gui/set/keywords_panel.hpp | 5 +- src/gui/set/panel.hpp | 6 +- src/gui/set/set_info_panel.cpp | 2 + src/gui/set/set_info_panel.hpp | 6 +- src/gui/set/style_panel.cpp | 2 + src/gui/set/style_panel.hpp | 2 + src/gui/set/window.cpp | 8 + src/gui/set/window.hpp | 1 + src/gui/value/editor.hpp | 3 + src/gui/value/text.cpp | 9 + src/gui/value/text.hpp | 4 +- src/util/window_id.hpp | 402 ++++++++++++++++---------------- 21 files changed, 291 insertions(+), 209 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index 83ce3056..2b7ca71c 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -9,6 +9,7 @@ Features: * In the quick search box you can specify which field to search in, for example `type:Wizard` searches for cards with Wizard in the type. + * Added "Select All" function (#19) Bug fixes: * card variable in console panel now refers to the selected card diff --git a/data/en.mse-locale/locale b/data/en.mse-locale/locale index f89ec865..5c7d246f 100644 --- a/data/en.mse-locale/locale +++ b/data/en.mse-locale/locale @@ -36,6 +36,7 @@ menu: paste: &Paste Ctrl+V paste card: &Paste Ctrl+V paste keyword: &Paste Ctrl+V + select all: Select &All Ctrl+A find: &Find Ctrl+F find next: Find &Next F3 replace: R&eplace Ctrl+H @@ -148,6 +149,7 @@ help: paste: Inserts the text from the clipboard paste card: Inserts the card from the clipboard paste keyword: Inserts the keyword from the clipboard + select all: Select all text find: Search the card texts find next: Find the next match replace: Replace in the card texts diff --git a/src/gui/control/card_editor.cpp b/src/gui/control/card_editor.cpp index 5acb64e3..4c46f3dd 100644 --- a/src/gui/control/card_editor.cpp +++ b/src/gui/control/card_editor.cpp @@ -250,11 +250,13 @@ bool DataEditor::canCopy() const { return current_editor && current_ed bool DataEditor::canPaste() const { return current_editor && current_editor->canPaste(); } bool DataEditor::canFormat(int type) const { return current_editor && current_editor->canFormat(type); } bool DataEditor::hasFormat(int type) const { return current_editor && current_editor->hasFormat(type); } +bool DataEditor::canSelectAll() const { return current_editor && current_editor->canSelectAll(); } void DataEditor::doCut() { if (current_editor) current_editor->doCut(); } void DataEditor::doCopy() { if (current_editor) current_editor->doCopy(); } void DataEditor::doPaste() { if (current_editor) current_editor->doPaste(); } void DataEditor::doFormat(int type) { if (current_editor) current_editor->doFormat(type); } +void DataEditor::doSelectAll() { if (current_editor) current_editor->doSelectAll(); } wxMenu* DataEditor::getMenu(int type) const { diff --git a/src/gui/control/card_editor.hpp b/src/gui/control/card_editor.hpp index ee0426ec..79f803d2 100644 --- a/src/gui/control/card_editor.hpp +++ b/src/gui/control/card_editor.hpp @@ -65,7 +65,12 @@ class DataEditor : public CardViewer { wxMenu* getMenu(int type) const; /// A menu item from getMenu was selected void onCommand(int id); - + + // --------------------------------------------------- : Text selection + + bool canSelectAll() const; + void doSelectAll(); + // --------------------------------------------------- : Search/replace /// Do a search or replace action for the given FindInfo diff --git a/src/gui/control/item_list.cpp b/src/gui/control/item_list.cpp index 555d2e69..0af0921e 100644 --- a/src/gui/control/item_list.cpp +++ b/src/gui/control/item_list.cpp @@ -40,6 +40,9 @@ bool ItemList::canSelectPrevious() const { bool ItemList::canSelectNext() const { return selected_item_pos >= 0 && static_cast(selected_item_pos + 1) < sorted_list.size(); } +bool ItemList::canSelectAll() const { + return sorted_list.size() > 0 && !(GetWindowStyle() & wxLC_SINGLE_SEL); +} void ItemList::selectPrevious() { assert(selected_item_pos >= 1); focusNone(); @@ -54,6 +57,12 @@ void ItemList::selectFirst() { if (sorted_list.empty()) return; selectItemPos(0, true); } +void ItemList::doSelectAll() { + long count = GetItemCount(); + for (long pos = 0; pos < count; ++pos) { + Select(pos,true); + } +} bool ItemList::doCut() { // cut = copy + delete diff --git a/src/gui/control/item_list.hpp b/src/gui/control/item_list.hpp index 01b4f982..39215222 100644 --- a/src/gui/control/item_list.hpp +++ b/src/gui/control/item_list.hpp @@ -32,12 +32,16 @@ class ItemList : public wxListView { bool canSelectPrevious() const; /// Is there a next item to select? bool canSelectNext() const; + /// Can we select all? + bool canSelectAll() const; /// Move the selection to the previous item (if possible) void selectPrevious(); /// Move the selection to the next item (if possible) void selectNext(); /// Move the selection to the first item (if possible) void selectFirst(); + /// Select all items + void doSelectAll(); // --------------------------------------------------- : Clipboard diff --git a/src/gui/set/cards_panel.cpp b/src/gui/set/cards_panel.cpp index a3945418..c16b4458 100644 --- a/src/gui/set/cards_panel.cpp +++ b/src/gui/set/cards_panel.cpp @@ -399,6 +399,16 @@ void CardsPanel::doPaste() { } } +// ----------------------------------------------------------------------------- : Text selection + +bool CardsPanel::canSelectAll() const { + CUT_COPY_PASTE(canSelectAll, return) +} + +void CardsPanel::doSelectAll() { + CUT_COPY_PASTE(doSelectAll, return (void)) +} + // ----------------------------------------------------------------------------- : Searching class CardsPanel::SearchFindInfo : public FindInfo { diff --git a/src/gui/set/cards_panel.hpp b/src/gui/set/cards_panel.hpp index 7e51cc42..04a4ba5f 100644 --- a/src/gui/set/cards_panel.hpp +++ b/src/gui/set/cards_panel.hpp @@ -49,6 +49,11 @@ class CardsPanel : public SetWindowPanel { virtual void doCopy(); virtual void doPaste(); + // --------------------------------------------------- : Text selection + + bool canSelectAll() const override; + void doSelectAll() override; + // --------------------------------------------------- : Searching (find/replace) virtual bool canFind() const { return true; } diff --git a/src/gui/set/keywords_panel.cpp b/src/gui/set/keywords_panel.cpp index bcca3a10..a9b20408 100644 --- a/src/gui/set/keywords_panel.cpp +++ b/src/gui/set/keywords_panel.cpp @@ -273,6 +273,16 @@ void KeywordsPanel::doCopy() { CUT_COPY_PASTE(doCopy, return (void), f void KeywordsPanel::doCut() { CUT_COPY_PASTE(doCut, return (void), !list->getKeyword() || list->getKeyword()->fixed) } void KeywordsPanel::doPaste() { CUT_COPY_PASTE(doPaste, return (void), !list->getKeyword() || list->getKeyword()->fixed) } +// ----------------------------------------------------------------------------- : Text selection + +bool KeywordsPanel::canSelectAll() const { + CUT_COPY_PASTE(canSelectAll, return, false) +} + +void KeywordsPanel::doSelectAll() { + CUT_COPY_PASTE(doSelectAll, return (void), false) +} + // ----------------------------------------------------------------------------- : Events void KeywordsPanel::onChangeSet() { diff --git a/src/gui/set/keywords_panel.hpp b/src/gui/set/keywords_panel.hpp index 22b571cc..7f1dd673 100644 --- a/src/gui/set/keywords_panel.hpp +++ b/src/gui/set/keywords_panel.hpp @@ -43,7 +43,10 @@ class KeywordsPanel : public SetWindowPanel { virtual void doCut(); virtual void doCopy(); virtual void doPaste(); - + + virtual bool canSelectAll() const; + virtual void doSelectAll(); + private: DECLARE_EVENT_TABLE(); diff --git a/src/gui/set/panel.hpp b/src/gui/set/panel.hpp index c3a4dba8..d16263a0 100644 --- a/src/gui/set/panel.hpp +++ b/src/gui/set/panel.hpp @@ -60,7 +60,11 @@ class SetWindowPanel : public wxPanel, public SetView { virtual void doPaste() {} ///< Paste the contents of the clipboard virtual void doCopy() {} ///< Copy the selection to the clipboard virtual void doCut() {} ///< Cut the selection to the clipboard - + + // --------------------------------------------------- : Selecting + virtual bool canSelectAll() const { return false; } + virtual void doSelectAll() {} + // --------------------------------------------------- : Searching (find/replace) virtual bool canFind() const { return false; } ///< Is finding possible? virtual bool canReplace() const { return false; } ///< Is replacing possible? diff --git a/src/gui/set/set_info_panel.cpp b/src/gui/set/set_info_panel.cpp index a391aa26..d421e0f3 100644 --- a/src/gui/set/set_info_panel.cpp +++ b/src/gui/set/set_info_panel.cpp @@ -87,3 +87,5 @@ bool SetInfoPanel::canPaste() const { return editor->canPaste(); } void SetInfoPanel::doCut() { editor->doCut(); } void SetInfoPanel::doCopy() { editor->doCopy(); } void SetInfoPanel::doPaste() { editor->doPaste(); } +bool SetInfoPanel::canSelectAll() const { return editor->canSelectAll(); } +void SetInfoPanel::doSelectAll() { editor->doSelectAll(); } diff --git a/src/gui/set/set_info_panel.hpp b/src/gui/set/set_info_panel.hpp index f370a30a..ff230fe3 100644 --- a/src/gui/set/set_info_panel.hpp +++ b/src/gui/set/set_info_panel.hpp @@ -28,12 +28,14 @@ class SetInfoPanel : public SetWindowPanel { // --------------------------------------------------- : Clipboard - virtual bool canCut() const; - virtual bool canCopy() const; + virtual bool canCut() const; + virtual bool canCopy() const; virtual bool canPaste() const; + virtual bool canSelectAll() const; virtual void doCut(); virtual void doCopy(); virtual void doPaste(); + virtual void doSelectAll(); protected: virtual void onChangeSet(); diff --git a/src/gui/set/style_panel.cpp b/src/gui/set/style_panel.cpp index 6ec2755e..df2607c1 100644 --- a/src/gui/set/style_panel.cpp +++ b/src/gui/set/style_panel.cpp @@ -156,6 +156,8 @@ bool StylePanel::canPaste() const { CUT_COPY_PASTE(canPaste, return) } void StylePanel::doCopy() { CUT_COPY_PASTE(doCopy, return (void)) } void StylePanel::doCut() { CUT_COPY_PASTE(doCut, return (void)) } void StylePanel::doPaste() { CUT_COPY_PASTE(doPaste, return (void)) } +bool StylePanel::canSelectAll() const { CUT_COPY_PASTE(canSelectAll, return) } +void StylePanel::doSelectAll() { CUT_COPY_PASTE(doSelectAll, return (void)) } // ----------------------------------------------------------------------------- : Events diff --git a/src/gui/set/style_panel.hpp b/src/gui/set/style_panel.hpp index 522004f3..d2e8f52a 100644 --- a/src/gui/set/style_panel.hpp +++ b/src/gui/set/style_panel.hpp @@ -33,9 +33,11 @@ class StylePanel : public SetWindowPanel { virtual bool canCut() const; virtual bool canCopy() const; virtual bool canPaste() const; + virtual bool canSelectAll() const; virtual void doCut(); virtual void doCopy(); virtual void doPaste(); + virtual void doSelectAll(); // --------------------------------------------------- : Selection virtual void selectCard(const CardP& card); diff --git a/src/gui/set/window.cpp b/src/gui/set/window.cpp index f3a9cd8f..2f078430 100644 --- a/src/gui/set/window.cpp +++ b/src/gui/set/window.cpp @@ -82,6 +82,8 @@ SetWindow::SetWindow(Window* parent, const SetP& set) add_menu_item_tr(menuEdit, ID_EDIT_COPY, "copy", "copy"); add_menu_item_tr(menuEdit, ID_EDIT_PASTE, "paste", "paste"); menuEdit->AppendSeparator(); + add_menu_item_tr(menuEdit, ID_EDIT_SELECT_ALL, nullptr, "select_all"); + menuEdit->AppendSeparator(); add_menu_item_tr(menuEdit, ID_EDIT_FIND, "find", "find"); add_menu_item_tr(menuEdit, ID_EDIT_FIND_NEXT, nullptr, "find_next"); add_menu_item_tr(menuEdit, ID_EDIT_REPLACE, nullptr, "replace"); @@ -510,6 +512,7 @@ void SetWindow::onUpdateUI(wxUpdateUIEvent& ev) { case ID_EDIT_CUT : ev.Enable(current_panel->canCut()); break; case ID_EDIT_COPY : ev.Enable(current_panel->canCopy()); break; case ID_EDIT_PASTE : ev.Enable(current_panel->canPaste()); break; + case ID_EDIT_SELECT_ALL: ev.Enable(current_panel->canSelectAll()); break; case ID_EDIT_FIND : ev.Enable(current_panel->canFind()); break; case ID_EDIT_FIND_NEXT : ev.Enable(current_panel->canFind()); break; case ID_EDIT_REPLACE : ev.Enable(current_panel->canReplace());break; @@ -736,6 +739,10 @@ void SetWindow::onEditPaste(wxCommandEvent&) { current_panel->doPaste(); } +void SetWindow::onEditSelectAll(wxCommandEvent&) { + current_panel->doSelectAll(); +} + void SetWindow::onEditFind(wxCommandEvent&) { find_dialog = make_unique(this, &find_data, _("Find")); find_dialog->Show(); @@ -849,6 +856,7 @@ BEGIN_EVENT_TABLE(SetWindow, wxFrame) EVT_MENU (ID_EDIT_CUT, SetWindow::onEditCut) EVT_MENU (ID_EDIT_COPY, SetWindow::onEditCopy) EVT_MENU (ID_EDIT_PASTE, SetWindow::onEditPaste) + EVT_MENU (ID_EDIT_SELECT_ALL, SetWindow::onEditSelectAll) EVT_MENU (ID_EDIT_FIND, SetWindow::onEditFind) EVT_MENU (ID_EDIT_FIND_NEXT, SetWindow::onEditFindNext) EVT_MENU (ID_EDIT_REPLACE, SetWindow::onEditReplace) diff --git a/src/gui/set/window.hpp b/src/gui/set/window.hpp index 6a466161..59a65ad5 100644 --- a/src/gui/set/window.hpp +++ b/src/gui/set/window.hpp @@ -141,6 +141,7 @@ private: void onEditCut (wxCommandEvent&); void onEditCopy (wxCommandEvent&); void onEditPaste (wxCommandEvent&); + void onEditSelectAll (wxCommandEvent&); void onEditFind (wxCommandEvent&); void onEditFindNext (wxCommandEvent&); void onEditReplace (wxCommandEvent&); diff --git a/src/gui/value/editor.hpp b/src/gui/value/editor.hpp index c723cee7..068fc20f 100644 --- a/src/gui/value/editor.hpp +++ b/src/gui/value/editor.hpp @@ -91,6 +91,9 @@ class ValueEditor { // --------------------------------------------------- : Selection + virtual bool canSelectAll() const { return false; } + virtual void doSelectAll() {} + /// Select the specified range (if it makes sense) virtual void select(size_t start, size_t end) {} /// Determine the selected range diff --git a/src/gui/value/text.cpp b/src/gui/value/text.cpp index cbfe3680..3ccd9779 100644 --- a/src/gui/value/text.cpp +++ b/src/gui/value/text.cpp @@ -1165,6 +1165,15 @@ bool TextValueEditor::isWordBoundary(size_t pos_i) const { } } +void TextValueEditor::doSelectAll() { + size_t old_selection_start_i = selection_start_i; + size_t old_selection_end_i = selection_end_i; + selection_start_i = 0; + selection_end_i = value().value().size(); + fixSelection(TYPE_INDEX); + redrawSelection(old_selection_start_i, old_selection_end_i, dropDownShown()); +} + void TextValueEditor::select(size_t start, size_t end) { selection_start = start; selection_end = end; diff --git a/src/gui/value/text.hpp b/src/gui/value/text.hpp index 3d210003..eecb86c9 100644 --- a/src/gui/value/text.hpp +++ b/src/gui/value/text.hpp @@ -71,7 +71,9 @@ class TextValueEditor : public TextValueViewer, public ValueEditor { virtual void doFormat(int type); // --------------------------------------------------- : Selection - + + virtual bool canSelectAll() const { return true; } + virtual void doSelectAll(); virtual void select(size_t start, size_t end); virtual size_t selectionStart() const { return selection_start; } virtual size_t selectionEnd() const { return selection_end; } diff --git a/src/util/window_id.hpp b/src/util/window_id.hpp index 289671d7..f987d6d8 100644 --- a/src/util/window_id.hpp +++ b/src/util/window_id.hpp @@ -11,77 +11,75 @@ * @brief Enumerations of all window ids used. */ -// ----------------------------------------------------------------------------- : Includes - // ----------------------------------------------------------------------------- : Menu ids /// Window ids for menus and toolbars enum MenuID { - - ID_MENU_MIN = 0 -, ID_MENU_MAX = 999 + ID_MENU_MIN = 0, + ID_MENU_MAX = 999, // File menu -, ID_FILE_NEW = wxID_NEW -, ID_FILE_OPEN = wxID_OPEN -, ID_FILE_SAVE = wxID_SAVE -, ID_FILE_SAVE_AS = wxID_SAVEAS -, ID_FILE_STORE = 1 -, ID_FILE_EXIT = wxID_EXIT -, ID_FILE_EXPORT = 2 -, ID_FILE_EXPORT_HTML = 3 -, ID_FILE_EXPORT_IMAGE = 4 -, ID_FILE_EXPORT_IMAGES = 5 -, ID_FILE_EXPORT_APPR = 6 -, ID_FILE_EXPORT_MWS = 7 -, ID_FILE_PRINT = wxID_PRINT -, ID_FILE_PRINT_PREVIEW = wxID_PREVIEW -, ID_FILE_INSPECT = 8 -, ID_FILE_RELOAD = 9 -, ID_FILE_RECENT = wxID_FILE1 -, ID_FILE_RECENT_MAX = wxID_FILE9 -, ID_FILE_CHECK_UPDATES = 10 -, ID_FILE_PROFILER = 11 + ID_FILE_NEW = wxID_NEW, + ID_FILE_OPEN = wxID_OPEN, + ID_FILE_SAVE = wxID_SAVE, + ID_FILE_SAVE_AS = wxID_SAVEAS, + ID_FILE_STORE = 1, + ID_FILE_EXIT = wxID_EXIT, + ID_FILE_EXPORT = 2, + ID_FILE_EXPORT_HTML = 3, + ID_FILE_EXPORT_IMAGE = 4, + ID_FILE_EXPORT_IMAGES = 5, + ID_FILE_EXPORT_APPR = 6, + ID_FILE_EXPORT_MWS = 7, + ID_FILE_PRINT = wxID_PRINT, + ID_FILE_PRINT_PREVIEW = wxID_PREVIEW, + ID_FILE_INSPECT = 8, + ID_FILE_RELOAD = 9, + ID_FILE_RECENT = wxID_FILE1, + ID_FILE_RECENT_MAX = wxID_FILE9, + ID_FILE_CHECK_UPDATES = 10, + ID_FILE_PROFILER = 11, // Edit menu -, ID_EDIT_UNDO = wxID_UNDO -, ID_EDIT_REDO = wxID_REDO -, ID_EDIT_CUT = wxID_CUT -, ID_EDIT_COPY = wxID_COPY -, ID_EDIT_PASTE = wxID_PASTE -, ID_EDIT_DELETE = 101 -, ID_EDIT_FIND = wxID_FIND -, ID_EDIT_FIND_NEXT = 103 -, ID_EDIT_REPLACE = wxID_REPLACE -, ID_EDIT_AUTO_REPLACE = 104 -, ID_EDIT_PREFERENCES = 105 + ID_EDIT_UNDO = wxID_UNDO, + ID_EDIT_REDO = wxID_REDO, + ID_EDIT_CUT = wxID_CUT, + ID_EDIT_COPY = wxID_COPY, + ID_EDIT_PASTE = wxID_PASTE, + ID_EDIT_SELECT_ALL = wxID_SELECTALL, + ID_EDIT_DELETE = wxID_DELETE, + ID_EDIT_FIND = wxID_FIND, + ID_EDIT_FIND_NEXT = 103, + ID_EDIT_REPLACE = wxID_REPLACE, + ID_EDIT_AUTO_REPLACE = 104, + ID_EDIT_PREFERENCES = 105, // Window menu (MainWindow) -, ID_WINDOW_NEW = 201 -, ID_WINDOW_MIN = 202 -, ID_WINDOW_CARDS = ID_WINDOW_MIN + 0 -, ID_WINDOW_SET = ID_WINDOW_MIN + 1 -, ID_WINDOW_STYLE = ID_WINDOW_MIN + 2 -, ID_WINDOW_KEYWORDS = ID_WINDOW_MIN + 3 -, ID_WINDOW_STATS = ID_WINDOW_MIN + 4 -, ID_WINDOW_RANDOM_PACK = ID_WINDOW_MIN + 5 -, ID_WINDOW_MAX = 220 + ID_WINDOW_NEW = 201, + ID_WINDOW_MIN = 202, + ID_WINDOW_CARDS = ID_WINDOW_MIN + 0, + ID_WINDOW_SET = ID_WINDOW_MIN + 1, + ID_WINDOW_STYLE = ID_WINDOW_MIN + 2, + ID_WINDOW_KEYWORDS = ID_WINDOW_MIN + 3, + ID_WINDOW_STATS = ID_WINDOW_MIN + 4, + ID_WINDOW_RANDOM_PACK = ID_WINDOW_MIN + 5, + ID_WINDOW_MAX = 220, // Help menu (MainWindow) -, ID_HELP_INDEX = wxID_HELP_CONTENTS -, ID_HELP_WEBSITE = 301 -, ID_HELP_DOCUMENTATION -, ID_HELP_ABOUT = wxID_ABOUT + ID_HELP_INDEX = wxID_HELP_CONTENTS, + ID_HELP_WEBSITE = 301, + ID_HELP_DOCUMENTATION, + ID_HELP_ABOUT = wxID_ABOUT, // Mode menu (SymbolWindow) -, ID_MODE_MIN = 401 -, ID_MODE_SELECT = ID_MODE_MIN -, ID_MODE_ROTATE -, ID_MODE_POINTS -, ID_MODE_SHAPES -, ID_MODE_SYMMETRY -, ID_MODE_PAINT -, ID_MODE_MAX + ID_MODE_MIN= 401, + ID_MODE_SELECT= ID_MODE_MIN, + ID_MODE_ROTATE, + ID_MODE_POINTS, + ID_MODE_SHAPES, + ID_MODE_SYMMETRY, + ID_MODE_PAINT, + ID_MODE_MAX, }; @@ -89,133 +87,132 @@ enum MenuID { /// Ids for menus on child panels (MainWindowPanel / SymbolEditorBase) enum ChildMenuID { - - ID_CHILD_MIN = 6000 -, ID_CHILD_MAX = 16999 + ID_CHILD_MIN = 6000, + ID_CHILD_MAX = 16999, // Cards menu -, ID_CARD_ADD = 6001 -, ID_CARD_ADD_MULT -, ID_CARD_REMOVE -, ID_CARD_PREV -, ID_CARD_NEXT -, ID_CARD_ROTATE -, ID_CARD_ROTATE_0 -, ID_CARD_ROTATE_90 -, ID_CARD_ROTATE_180 -, ID_CARD_ROTATE_270 + ID_CARD_ADD = 6001, + ID_CARD_ADD_MULT, + ID_CARD_REMOVE, + ID_CARD_PREV, + ID_CARD_NEXT, + ID_CARD_ROTATE, + ID_CARD_ROTATE_0, + ID_CARD_ROTATE_90, + ID_CARD_ROTATE_180, + ID_CARD_ROTATE_270, // CardList -, ID_SELECT_COLUMNS + ID_SELECT_COLUMNS, // Keyword menu -, ID_KEYWORD_ADD = 6101 -, ID_KEYWORD_REMOVE -, ID_KEYWORD_PREV -, ID_KEYWORD_NEXT + ID_KEYWORD_ADD = 6101, + ID_KEYWORD_REMOVE, + ID_KEYWORD_PREV, + ID_KEYWORD_NEXT, // Format menu -, ID_FORMAT_BOLD = 6201 -, ID_FORMAT_ITALIC -, ID_FORMAT_SYMBOL -, ID_FORMAT_REMINDER -, ID_INSERT_SYMBOL + ID_FORMAT_BOLD = 6201, + ID_FORMAT_ITALIC, + ID_FORMAT_SYMBOL, + ID_FORMAT_REMINDER, + ID_INSERT_SYMBOL, // Spelling errors -, ID_SPELLING_ADD_TO_DICT = 6301 -, ID_SPELLING_NO_SUGGEST -, ID_SPELLING_SUGGEST -, ID_SPELLING_SUGGEST_MAX = 6399 + ID_SPELLING_ADD_TO_DICT = 6301, + ID_SPELLING_NO_SUGGEST, + ID_SPELLING_SUGGEST, + ID_SPELLING_SUGGEST_MAX = 6399, // Graph menu -, ID_GRAPH_PIE = 6401 // corresponds to GraphType -, ID_GRAPH_BAR -, ID_GRAPH_STACK -, ID_GRAPH_SCATTER -, ID_GRAPH_SCATTER_PIE + ID_GRAPH_PIE = 6401, // corresponds to GraphType + ID_GRAPH_BAR, + ID_GRAPH_STACK, + ID_GRAPH_SCATTER, + ID_GRAPH_SCATTER_PIE, // SymbolSelectEditor toolbar/menu -, ID_SYMBOL_COMBINE = 7001 -, ID_SYMBOL_COMBINE_MERGE = ID_SYMBOL_COMBINE + 0 //SYMBOL_COMBINE_MERGE -, ID_SYMBOL_COMBINE_SUBTRACT = ID_SYMBOL_COMBINE + 1 //SYMBOL_COMBINE_SUBTRACT -, ID_SYMBOL_COMBINE_INTERSECTION = ID_SYMBOL_COMBINE + 2 //SYMBOL_COMBINE_INTERSECTION -, ID_SYMBOL_COMBINE_DIFFERENCE = ID_SYMBOL_COMBINE + 3 //SYMBOL_COMBINE_DIFFERENCE -, ID_SYMBOL_COMBINE_OVERLAP = ID_SYMBOL_COMBINE + 4 //SYMBOL_COMBINE_OVERLAP -, ID_SYMBOL_COMBINE_BORDER = ID_SYMBOL_COMBINE + 5 //SYMBOL_COMBINE_BORDER -, ID_SYMBOL_COMBINE_MAX -, ID_EDIT_DUPLICATE // duplicating symbol parts -, ID_EDIT_GROUP -, ID_EDIT_UNGROUP -, ID_VIEW_GRID -, ID_VIEW_GRID_SNAP + ID_SYMBOL_COMBINE = 7001, + ID_SYMBOL_COMBINE_MERGE = ID_SYMBOL_COMBINE + 0, //SYMBOL_COMBINE_MERGE + ID_SYMBOL_COMBINE_SUBTRACT = ID_SYMBOL_COMBINE + 1, //SYMBOL_COMBINE_SUBTRACT + ID_SYMBOL_COMBINE_INTERSECTION = ID_SYMBOL_COMBINE + 2, //SYMBOL_COMBINE_INTERSECTION + ID_SYMBOL_COMBINE_DIFFERENCE = ID_SYMBOL_COMBINE + 3, //SYMBOL_COMBINE_DIFFERENCE + ID_SYMBOL_COMBINE_OVERLAP = ID_SYMBOL_COMBINE + 4, //SYMBOL_COMBINE_OVERLAP + ID_SYMBOL_COMBINE_BORDER = ID_SYMBOL_COMBINE + 5, //SYMBOL_COMBINE_BORDER + ID_SYMBOL_COMBINE_MAX, + ID_EDIT_DUPLICATE, // duplicating symbol parts + ID_EDIT_GROUP, + ID_EDIT_UNGROUP, + ID_VIEW_GRID, + ID_VIEW_GRID_SNAP, // SymbolPointEditor toolbar/menu -, ID_SEGMENT = 7101 -, ID_SEGMENT_LINE = ID_SEGMENT + 0//SEGMENT_LINE -, ID_SEGMENT_CURVE = ID_SEGMENT + 1//SEGMENT_CURVE -, ID_SEGMENT_MAX -, ID_LOCK = 7151 -, ID_LOCK_FREE = ID_LOCK + 0//LOCK_FREE -, ID_LOCK_DIR = ID_LOCK + 1//LOCK_DIR -, ID_LOCK_SIZE = ID_LOCK + 2//LOCK_SIZE -, ID_LOCK_MAX + ID_SEGMENT = 7101, + ID_SEGMENT_LINE = ID_SEGMENT + 0, //SEGMENT_LINE + ID_SEGMENT_CURVE = ID_SEGMENT + 1, //SEGMENT_CURVE + ID_SEGMENT_MAX, + ID_LOCK = 7151, + ID_LOCK_FREE = ID_LOCK + 0, //LOCK_FREE + ID_LOCK_DIR = ID_LOCK + 1, //LOCK_DIR + ID_LOCK_SIZE = ID_LOCK + 2, //LOCK_SIZE + ID_LOCK_MAX, // SymbolBasicShapeEditor toolbar/menu -, ID_SHAPE = 7201 -, ID_SHAPE_CIRCLE = ID_SHAPE -, ID_SHAPE_RECTANGLE -, ID_SHAPE_POLYGON -, ID_SHAPE_STAR -, ID_SHAPE_MAX -, ID_SIDES + ID_SHAPE = 7201, + ID_SHAPE_CIRCLE = ID_SHAPE, + ID_SHAPE_RECTANGLE, + ID_SHAPE_POLYGON, + ID_SHAPE_STAR, + ID_SHAPE_MAX, + ID_SIDES, // SymbolSymmetryEditor toolbar/menu -, ID_SYMMETRY = 7301 -, ID_SYMMETRY_ROTATION = ID_SYMMETRY -, ID_SYMMETRY_REFLECTION -, ID_SYMMETRY_MAX -, ID_ADD_SYMMETRY -, ID_REMOVE_SYMMETRY -, ID_COPIES + ID_SYMMETRY = 7301, + ID_SYMMETRY_ROTATION = ID_SYMMETRY, + ID_SYMMETRY_REFLECTION, + ID_SYMMETRY_MAX, + ID_ADD_SYMMETRY, + ID_REMOVE_SYMMETRY, + ID_COPIES, // On cards panel -, ID_COLLAPSE_NOTES = 8001 -, ID_CARD_FILTER + ID_COLLAPSE_NOTES = 8001, + ID_CARD_FILTER, // Style panel -, ID_STYLE_USE_FOR_ALL = 8011 -, ID_STYLE_USE_CUSTOM + ID_STYLE_USE_FOR_ALL = 8011, + ID_STYLE_USE_CUSTOM, // Keywords panel -, ID_KEYWORD_ADD_PARAM = 8021 -, ID_KEYWORD_REF_PARAM -, ID_KEYWORD_MODE -, ID_KEYWORD_FILTER -, ID_PARAM_TYPE_MIN = 8101 -, ID_PARAM_TYPE_MAX = 8200 -, ID_PARAM_REF_MIN = 8201 -, ID_PARAM_REF_MAX = 8300 + ID_KEYWORD_ADD_PARAM = 8021, + ID_KEYWORD_REF_PARAM, + ID_KEYWORD_MODE, + ID_KEYWORD_FILTER, + ID_PARAM_TYPE_MIN = 8101, + ID_PARAM_TYPE_MAX = 8200, + ID_PARAM_REF_MIN = 8201, + ID_PARAM_REF_MAX = 8300, // Statistics panel -, ID_FIELD_LIST = 8301 + ID_FIELD_LIST = 8301, // Random pack panel -, ID_PACK_AMOUNT = 8111 -, ID_PACK_TYPE -, ID_SEED_RANDOM -, ID_SEED_FIXED -, ID_GENERATE_PACK -, ID_CUSTOM_PACK + ID_PACK_AMOUNT = 8111, + ID_PACK_TYPE, + ID_SEED_RANDOM, + ID_SEED_FIXED, + ID_GENERATE_PACK, + ID_CUSTOM_PACK, // Console panel -, ID_EVALUATE + ID_EVALUATE, // SymbolFont (Format menu) -, ID_INSERT_SYMBOL_MENU_MIN = 9001 -, ID_INSERT_SYMBOL_MENU_MAX = 10000 + ID_INSERT_SYMBOL_MENU_MIN = 9001, + ID_INSERT_SYMBOL_MENU_MAX = 10000, // AddCardsScript (Card menu) -, ID_ADD_CARDS_MENU_MIN = 10001 -, ID_ADD_CARDS_MENU_MAX = 11000 + ID_ADD_CARDS_MENU_MIN = 10001, + ID_ADD_CARDS_MENU_MAX = 11000, }; @@ -223,67 +220,66 @@ enum ChildMenuID { /// Window ids for controls enum ControlID { - - ID_CONTROL_MIN = 1000 -, ID_CONTROL_MAX = 1999 + ID_CONTROL_MIN = 1000, + ID_CONTROL_MAX = 1999, // Controls -, ID_VIEWER = 1001 -, ID_EDITOR -, ID_CONTROL -, ID_TAB_BAR -, ID_CARD_LIST -, ID_PART_LIST -, ID_GAME_LIST -, ID_STYLESHEET_LIST -, ID_KEYWORD_LIST -, ID_EXPORT_LIST -, ID_NOTES -, ID_KEYWORD -, ID_MATCH -, ID_REMINDER -, ID_RULES -, ID_MESSAGE_LIST + ID_VIEWER = 1001, + ID_EDITOR, + ID_CONTROL, + ID_TAB_BAR, + ID_CARD_LIST, + ID_PART_LIST, + ID_GAME_LIST, + ID_STYLESHEET_LIST, + ID_KEYWORD_LIST, + ID_EXPORT_LIST, + ID_NOTES, + ID_KEYWORD, + ID_MATCH, + ID_REMINDER, + ID_RULES, + ID_MESSAGE_LIST, // Card list column select -, ID_MOVE_UP -, ID_MOVE_DOWN -, ID_SHOW -, ID_HIDE + ID_MOVE_UP, + ID_MOVE_DOWN, + ID_SHOW, + ID_HIDE, // Card select -, ID_SELECT_CARDS -, ID_SELECTION_CHOICE -, ID_SELECTION_CHOICE_MAX = ID_SELECTION_CHOICE + 100 -, ID_SELECT_ALL -, ID_SELECT_NONE + ID_SELECT_CARDS, + ID_SELECTION_CHOICE, + ID_SELECTION_CHOICE_MAX = ID_SELECTION_CHOICE + 100, + ID_SELECT_ALL, + ID_SELECT_NONE, // Settings -, ID_NOTEBOOK -, ID_APPRENTICE_BROWSE -, ID_CHECK_UPDATES_NOW + ID_NOTEBOOK, + ID_APPRENTICE_BROWSE, + ID_CHECK_UPDATES_NOW, // Image slicer -, ID_PREVIEW -, ID_SELECTOR -, ID_SIZE -, ID_LEFT -, ID_TOP -, ID_WIDTH -, ID_HEIGHT -, ID_FIX_ASPECT -, ID_ZOOM -, ID_ZOOM_X -, ID_ZOOM_Y -, ID_SHARPEN -, ID_SHARPEN_AMOUNT + ID_PREVIEW, + ID_SELECTOR, + ID_SIZE, + ID_LEFT, + ID_TOP, + ID_WIDTH, + ID_HEIGHT, + ID_FIX_ASPECT, + ID_ZOOM, + ID_ZOOM_X, + ID_ZOOM_Y, + ID_SHARPEN, + ID_SHARPEN_AMOUNT, // Updates window -, ID_PACKAGE_LIST -, ID_KEEP -, ID_INSTALL -, ID_UPGRADE -, ID_REMOVE + ID_PACKAGE_LIST, + ID_KEEP, + ID_INSTALL, + ID_UPGRADE, + ID_REMOVE, // Auto replace window -, ID_USE_AUTO_REPLACE -, ID_ITEM_VALUE -, ID_ADD_ITEM -, ID_REMOVE_ITEM -, ID_DEFAULTS + ID_USE_AUTO_REPLACE, + ID_ITEM_VALUE, + ID_ADD_ITEM, + ID_REMOVE_ITEM, + ID_DEFAULTS, };