diff --git a/data/en.mse-locale/locale b/data/en.mse-locale/locale index b6ee60c3..e8df250a 100644 --- a/data/en.mse-locale/locale +++ b/data/en.mse-locale/locale @@ -37,14 +37,17 @@ menu cards tab: &Cards help: &Help + about: &About Magic Set Editor... ############################################################## Menu help texts help: file: new: Create a new set - open: Open a set + open: Open an existing set save: Save the set save as: Save the set with a new name + print preview: Shows cards as they will be printed + print: Print cards from this set exit: Quits Magic Set Editor; prompts to save the set edit: @@ -52,8 +55,13 @@ help: redo: Redoes the last action format: - bold: Makes the selected text bold - italic: Makes the selected text italic + bold: Makes the selected text bold + italic: Makes the selected text italic + + window: + new window: Creates another window to edit the same set + + help: ############################################################## Toolbar tool: @@ -70,11 +78,79 @@ tool: ############################################################## Labels in the GUI label: - card notes: Card notes: + card notes: Card notes: + + # Preferences + zoom: &Zoom: + external programs: External programs + apprentice: &Apprentice: + check at startup: Check for new versions at startup + checking requires internet: + Checking for updates requires an internet connection. + When no internet connection is found upates are not checked. + + No information is collected when checking for updates. + + # Column select + select columns: Select the columns you want to display + columns: Columns: + + # Card select + select cards print: Select the cards you want to print + + # Image slicer + original: Original: + result: Result: + size: Size + selection: Selection + zoom: Zoom + filter: Filter -############################################################## Buttons in the GUI +############################################################## Buttons/checkboxes/choices in the GUI button: + # Set window use for all cards: Use for &all cards + + # Welcome + new set: New set + open set: Open set + last opened set: Last opened set + + # Preferences + select: &Select... + browse: &Browse... + high quality: &High quality rendering + show lines: Show &lines around fields + zoom export: Use zoom and rotation settings when e&xporting + check now: Check &Now + always: Always + if internet connection exists: If internet connection exists + never: Never + + # Column select + move up: Move &Up + move down: Move &Down + show: &Show + hide: &Hide + + # Card select + select all: Select &All + select none: Select &None + +############################################################## Titles in the GUI +title: + magic set editor: Magic Set Editor + about: About Magic Set Editor + preferences: Preferences + display: Display + directories: Directories + updates: Updates + update check: Update Check + locate apprentice: Locate Apprentice + select columns: Select Columns + select cards: Select Cards + slice image: Slice Image + print preview: Print Preview ############################################################## Action (undo/redo) names action: @@ -126,6 +202,10 @@ error: When you open it, some aspects of the file may be lost. It is recommended that you upgrade to the latest version. Visit http:://magicseteditor.sourceforge.net/ + + # Update checking + checking updates failed: Checking updates failed. + no updates: There are no available updates. ############################################################## Types used in scripts type: diff --git a/src/data/locale.cpp b/src/data/locale.cpp index acd065aa..2d99dda3 100644 --- a/src/data/locale.cpp +++ b/src/data/locale.cpp @@ -27,6 +27,7 @@ IMPLEMENT_REFLECTION(Locale) { REFLECT_N("tool", translations[LOCALE_CAT_TOOL]); REFLECT_N("label", translations[LOCALE_CAT_LABEL]); REFLECT_N("button", translations[LOCALE_CAT_BUTTON]); + REFLECT_N("title", translations[LOCALE_CAT_TITLE]); REFLECT_N("action", translations[LOCALE_CAT_ACTION]); REFLECT_N("error", translations[LOCALE_CAT_ERROR]); REFLECT_N("type", translations[LOCALE_CAT_TYPE]); diff --git a/src/gui/about_window.cpp b/src/gui/about_window.cpp index 840409fe..c156a088 100644 --- a/src/gui/about_window.cpp +++ b/src/gui/about_window.cpp @@ -14,7 +14,7 @@ // ----------------------------------------------------------------------------- : About window AboutWindow::AboutWindow(Window* parent) - : wxDialog(parent, wxID_ANY, _("About Magic Set Editor"), wxDefaultPosition, wxSize(510,340), wxCLIP_CHILDREN | wxDEFAULT_DIALOG_STYLE) + : wxDialog(parent, wxID_ANY, _TITLE_("about"), wxDefaultPosition, wxSize(510,340), wxCLIP_CHILDREN | wxDEFAULT_DIALOG_STYLE) , logo (load_resource_image(_("ABOUT"))) , logo2(load_resource_image(_("TWO"))) { @@ -55,7 +55,7 @@ void AboutWindow::draw(DC& dc) { dc.DrawText(_(" don't use it for anything important"), 34, 181); dc.DrawText(_("Copyright \xA9 2006 Twan van Laarhoven"), 34, 214); } - + BEGIN_EVENT_TABLE(AboutWindow, wxDialog) EVT_PAINT (AboutWindow::onPaint) END_EVENT_TABLE () diff --git a/src/gui/control/card_list.cpp b/src/gui/control/card_list.cpp index 52b250f1..24736dc0 100644 --- a/src/gui/control/card_list.cpp +++ b/src/gui/control/card_list.cpp @@ -178,7 +178,7 @@ void CardListBase::selectCurrentCard() { bool CardListBase::canCopy() const { return !!selected_card; } bool CardListBase::canCut() const { return canCopy() && allowModify(); } bool CardListBase::canPaste() const { - return wxTheClipboard->IsSupported(CardDataObject::format); + return allowModify() && wxTheClipboard->IsSupported(CardDataObject::format); } bool CardListBase::doCopy() { @@ -417,6 +417,7 @@ void CardListBase::onChar(wxKeyEvent& ev) { } void CardListBase::onDrag(wxMouseEvent& ev) { + if (!allowModify()) return; if (ev.Dragging() && selected_card && !sort_criterium) { // reorder card list int flags; diff --git a/src/gui/control/card_list.hpp b/src/gui/control/card_list.hpp index c95ff633..d043663b 100644 --- a/src/gui/control/card_list.hpp +++ b/src/gui/control/card_list.hpp @@ -103,9 +103,10 @@ class CardListBase : public wxListView, public SetView { virtual wxListItemAttr* OnGetItemAttr(long pos) const; // --------------------------------------------------- : Data - private: + protected: CardP selected_card; ///< The currently selected card, or -1 if no card is selected long selected_card_pos;///< Position of the selected card in the sorted_card_list + private: // display stuff ChoiceStyleP color_style; ///< Style (and field) to use for text color (optional) vector column_fields; ///< The field to use for each column (by column index) diff --git a/src/gui/control/card_list_column_select.cpp b/src/gui/control/card_list_column_select.cpp index 3e849b0a..fe0ae5e2 100644 --- a/src/gui/control/card_list_column_select.cpp +++ b/src/gui/control/card_list_column_select.cpp @@ -17,22 +17,22 @@ DECLARE_TYPEOF_COLLECTION(CardListColumnSelectDialog::ColumnSettingsF); // ----------------------------------------------------------------------------- : CardListColumnSelectDialog CardListColumnSelectDialog::CardListColumnSelectDialog(Window* parent, const GameP& game) - : wxDialog(parent, wxID_ANY,_("Select Columns"), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER) + : wxDialog(parent, wxID_ANY, _TITLE_("select columns"), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER) , game(game) { // Create controls list = new wxCheckListBox(this, wxID_ANY); // Create sizer wxSizer* s = new wxBoxSizer(wxVERTICAL); - s->Add(new wxStaticText(this, wxID_ANY, _("Select the columns you want to display")), 0, wxALL, 8); - s->Add(new wxStaticText(this, wxID_ANY, _("Columns:") ), 0, wxALL & ~wxBOTTOM, 8); + s->Add(new wxStaticText(this, wxID_ANY, _LABEL_("select columns")), 0, wxALL, 8); + s->Add(new wxStaticText(this, wxID_ANY, _LABEL_("columns") ), 0, wxALL & ~wxBOTTOM, 8); wxSizer* s2 = new wxBoxSizer(wxHORIZONTAL); s2->Add(list, 1, wxEXPAND | wxLEFT | wxRIGHT, 4); wxSizer* s3 = new wxBoxSizer(wxVERTICAL); - s3->Add(new wxButton(this, ID_MOVE_UP, _("Move &Up")), 0, wxEXPAND, 2); - s3->Add(new wxButton(this, ID_MOVE_DOWN, _("Move &Down")), 0, wxEXPAND | wxTOP, 2); - s3->Add(new wxButton(this, ID_SHOW, _("&Show")), 0, wxEXPAND | wxTOP, 2); - s3->Add(new wxButton(this, ID_HIDE, _("&Hide")), 0, wxEXPAND | wxTOP, 2); + s3->Add(new wxButton(this, ID_MOVE_UP, _BUTTON_("move up")), 0, wxEXPAND, 2); + s3->Add(new wxButton(this, ID_MOVE_DOWN, _BUTTON_("move down")), 0, wxEXPAND | wxTOP, 2); + s3->Add(new wxButton(this, ID_SHOW, _BUTTON_("show")), 0, wxEXPAND | wxTOP, 2); + s3->Add(new wxButton(this, ID_HIDE, _BUTTON_("hide")), 0, wxEXPAND | wxTOP, 2); s2->Add(s3, 0, wxEXPAND | wxALL & ~wxTOP, 4); s->Add(s2 , 1, wxEXPAND | wxALL, 4); s->Add(CreateButtonSizer(wxOK | wxCANCEL) , 0, wxEXPAND | wxALL, 8); diff --git a/src/gui/image_slice_window.cpp b/src/gui/image_slice_window.cpp index 6be115d7..f78ec582 100644 --- a/src/gui/image_slice_window.cpp +++ b/src/gui/image_slice_window.cpp @@ -73,7 +73,7 @@ DEFINE_EVENT_TYPE(EVENT_SLICE_CHANGED); // ----------------------------------------------------------------------------- : ImageSliceWindow ImageSliceWindow::ImageSliceWindow(Window* parent, const Image& source, const wxSize& target_size) - : wxDialog(parent,wxID_ANY,_("Slice image"), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER | wxFULL_REPAINT_ON_RESIZE) + : wxDialog(parent,wxID_ANY,_TITLE_("slice image"), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER | wxFULL_REPAINT_ON_RESIZE) , slice(source, target_size) { // init controls @@ -86,7 +86,7 @@ ImageSliceWindow::ImageSliceWindow(Window* parent, const Image& source, const wx , _("Size to &Fit") , _("F&orce to Fit") , _("&Custom Size") }; - size = new wxRadioBox(this, ID_SIZE, _("Size"), defPos, wxDefaultSize, 4, sizes, 1); + size = new wxRadioBox(this, ID_SIZE, _LABEL_("size"), defPos, wxDefaultSize, 4, sizes, 1); left = new wxSpinCtrl(this, ID_LEFT, _(""), defPos, spinSize); top = new wxSpinCtrl(this, ID_TOP, _(""), defPos, spinSize); @@ -115,11 +115,11 @@ ImageSliceWindow::ImageSliceWindow(Window* parent, const Image& source, const wx // top row: image editors wxSizer* s2 = new wxBoxSizer(wxHORIZONTAL); wxSizer* s3 = new wxBoxSizer(wxVERTICAL); - s3->Add(new wxStaticText(this, wxID_ANY, _("Original:"))); + s3->Add(new wxStaticText(this, wxID_ANY, _LABEL_("original"))); s3->Add(selector, 1, wxEXPAND | wxTOP, 4); s2->Add(s3, 1, wxEXPAND | wxALL, 4); wxSizer* s4 = new wxBoxSizer(wxVERTICAL); - s4->Add(new wxStaticText(this, wxID_ANY, _("Result:"))); + s4->Add(new wxStaticText(this, wxID_ANY, _LABEL_("result"))); s4->Add(preview, 0, wxTOP, 4); s2->Add(s4, 0, wxALL, 4); s->Add(s2, 1, wxEXPAND); @@ -128,7 +128,7 @@ ImageSliceWindow::ImageSliceWindow(Window* parent, const Image& source, const wx s5->AddStretchSpacer(1); s5->Add(size, 0, wxEXPAND | wxALL, 4); s5->AddStretchSpacer(1); - wxSizer* s6 = new wxStaticBoxSizer(wxVERTICAL, this, _("Selection")); + wxSizer* s6 = new wxStaticBoxSizer(wxVERTICAL, this, _LABEL_("selection")); wxSizer* s7 = new wxFlexGridSizer(0, 2, 4, 5); s7->Add(new wxStaticText(this, wxID_ANY, _("&Left")), 0, wxALIGN_CENTER_VERTICAL); s7->Add(left, 0, wxEXPAND); @@ -141,7 +141,7 @@ ImageSliceWindow::ImageSliceWindow(Window* parent, const Image& source, const wx s6->Add(s7, 1, wxEXPAND | wxALL, 4); s5->Add(s6, 0, wxEXPAND | wxALL, 4); s5->AddStretchSpacer(1); - wxSizer* s8 = zoom_sizer = new wxStaticBoxSizer(wxVERTICAL, this, _("Zoom")); + wxSizer* s8 = zoom_sizer = new wxStaticBoxSizer(wxVERTICAL, this, _LABEL_("zoom")); s8->Add(fix_aspect, 0, wxEXPAND | wxALL & ~wxBOTTOM, 4); wxSizer* s9 = zoom_fixed = new wxFlexGridSizer(0, 3, 4, 5); s9->Add(new wxStaticText(this, wxID_ANY, _("&Zoom")), 0, wxALIGN_CENTER_VERTICAL); @@ -158,7 +158,7 @@ ImageSliceWindow::ImageSliceWindow(Window* parent, const Image& source, const wx s8->Add(sA, 0, wxEXPAND | wxALL, 4); s5->Add(s8, 0, wxEXPAND | wxALL, 4); s5->AddStretchSpacer(1); - wxSizer* sB = new wxStaticBoxSizer(wxVERTICAL, this, _("Filter")); + wxSizer* sB = new wxStaticBoxSizer(wxVERTICAL, this, _LABEL_("filter")); sB->Add(sharpen, 0, wxEXPAND | wxALL & ~wxBOTTOM, 4); sB->Add(sharpen_amount, 0, wxEXPAND | wxALL, 4); s5->Add(sB, 0, wxEXPAND | wxALL, 4); diff --git a/src/gui/preferences_window.cpp b/src/gui/preferences_window.cpp index 86774bcd..62859c3c 100644 --- a/src/gui/preferences_window.cpp +++ b/src/gui/preferences_window.cpp @@ -77,13 +77,13 @@ class UpdatePreferencesPage : public PreferencesPage { // ----------------------------------------------------------------------------- : PreferencesWindow PreferencesWindow::PreferencesWindow(Window* parent) - : wxDialog(parent, wxID_ANY, _("Preferences"), wxDefaultPosition) + : wxDialog(parent, wxID_ANY, _TITLE_("preferences"), wxDefaultPosition) { // init notebook wxNotebook* nb = new wxNotebook(this, ID_NOTEBOOK); - nb->AddPage(new DisplayPreferencesPage(nb), _("Display")); - nb->AddPage(new DirsPreferencesPage (nb), _("Directories")); - nb->AddPage(new UpdatePreferencesPage (nb), _("Updates")); + nb->AddPage(new DisplayPreferencesPage(nb), _TITLE_("display")); + nb->AddPage(new DirsPreferencesPage (nb), _TITLE_("directories")); + nb->AddPage(new UpdatePreferencesPage (nb), _TITLE_("updates")); // init sizer wxSizer* s = new wxBoxSizer(wxVERTICAL); @@ -116,11 +116,11 @@ DisplayPreferencesPage::DisplayPreferencesPage(Window* parent) : PreferencesPage(parent) { // init controls - high_quality = new wxCheckBox(this, wxID_ANY, _("&High quality rendering")); - borders = new wxCheckBox(this, wxID_ANY, _("Show &lines around fields")); + high_quality = new wxCheckBox(this, wxID_ANY, _BUTTON_("high quality")); + borders = new wxCheckBox(this, wxID_ANY, _BUTTON_("show lines")); zoom = new wxSpinCtrl(this, wxID_ANY); - non_normal_export = new wxCheckBox(this, wxID_ANY, _("Use zoom and rotation settings when e&xporting")); - wxButton* columns = new wxButton(this, ID_SELECT_COLUMNS, _("Select...")); + non_normal_export = new wxCheckBox(this, wxID_ANY, _BUTTON_("zoom export")); + wxButton* columns = new wxButton(this, ID_SELECT_COLUMNS, _BUTTON_("select")); // set values high_quality-> SetValue( settings.default_stylesheet_settings.card_anti_alias()); borders-> SetValue( settings.default_stylesheet_settings.card_borders()); @@ -173,13 +173,13 @@ DirsPreferencesPage::DirsPreferencesPage(Window* parent) { // init controls apprentice = new wxTextCtrl(this, wxID_ANY); - wxButton* ab = new wxButton(this, ID_APPRENTICE_BROWSE, _("&Browse...")); + wxButton* ab = new wxButton(this, ID_APPRENTICE_BROWSE, _BUTTON_("browse")); // set values apprentice->SetValue(settings.apprentice_location); // init sizer wxSizer* s = new wxBoxSizer(wxVERTICAL); - wxSizer* s2 = new wxStaticBoxSizer(wxVERTICAL, this, _("External programs")); - s2->Add(new wxStaticText(this, wxID_ANY, _("&Apprentice:")), 0, wxALL, 4); + wxSizer* s2 = new wxStaticBoxSizer(wxVERTICAL, this, _LABEL_("external programs")); + s2->Add(new wxStaticText(this, wxID_ANY, _LABEL_("apprentice")), 0, wxALL, 4); wxSizer* s3 = new wxBoxSizer(wxHORIZONTAL); s3->Add(apprentice, 1, wxEXPAND | wxRIGHT, 4); s3->Add(ab, 0, wxEXPAND); @@ -195,7 +195,7 @@ void DirsPreferencesPage::store() { void DirsPreferencesPage::onApprenticeBrowse(wxCommandEvent&) { // browse for appr.exe - wxFileDialog dlg(this, _("Locate apprentice"), apprentice->GetValue(), _(""), _("Apprentice Executable|appr.exe"), wxOPEN); + wxFileDialog dlg(this, _TITLE_("locate apprentice"), apprentice->GetValue(), _(""), _("Apprentice Executable|appr.exe"), wxOPEN); if (dlg.ShowModal() == wxID_OK) { wxFileName fn(dlg.GetPath()); apprentice->SetValue(fn.GetPath()); @@ -214,18 +214,18 @@ UpdatePreferencesPage::UpdatePreferencesPage(Window* parent) { // init controls check_at_startup = new wxChoice(this, wxID_ANY); - wxButton* check_now = new wxButton(this, ID_CHECK_UPDATES_NOW, _("Check &Now")); + wxButton* check_now = new wxButton(this, ID_CHECK_UPDATES_NOW, _BUTTON_("check now")); // set values - check_at_startup->Append(_("Always")); // 0 - check_at_startup->Append(_("If internet connection exists")); // 1 - check_at_startup->Append(_("Never")); // 2 + check_at_startup->Append(_BUTTON_("always")); // 0 + check_at_startup->Append(_BUTTON_("if internet connection exists")); // 1 + check_at_startup->Append(_BUTTON_("never")); // 2 check_at_startup->SetSelection(settings.check_updates); // init sizer wxSizer* s = new wxBoxSizer(wxVERTICAL); - s->Add(new wxStaticText(this, wxID_ANY, _("&Check for new versions at startup:")), 0, wxALL, 8); + s->Add(new wxStaticText(this, wxID_ANY, _LABEL_("check at startup")), 0, wxALL, 8); s->Add(check_at_startup, 0, wxALL & ~wxTOP, 8); s->Add(check_now, 0, wxALL & ~wxTOP, 8); - s->Add(new wxStaticText(this, wxID_ANY, _("Checking for updates requires an internet connection.\nWhen no internet connection is found upates are not checked.\n\nNo information is collected when checking for updates.")), 0, wxALL & ~wxTOP, 8); + s->Add(new wxStaticText(this, wxID_ANY, _LABEL_("checking requires internet")), 0, wxALL & ~wxTOP, 8); SetSizer(s); } @@ -239,9 +239,9 @@ void UpdatePreferencesPage::store() { void UpdatePreferencesPage::onCheckUpdatesNow(wxCommandEvent&) { check_updates_now(false); if (!update_data_found()) { - wxMessageBox(_("Checking updates failed"), _("Update Check"), wxICON_ERROR | wxOK); + wxMessageBox(_ERROR_("checking updates failed"), _TITLE_("update check"), wxICON_ERROR | wxOK); } else if (!update_available()) { - wxMessageBox(_("There are no available updates."), _("Update Check"), wxICON_INFORMATION | wxOK); + wxMessageBox(_ERROR_("no updates"), _TITLE_("update check"), wxICON_INFORMATION | wxOK); } else { show_update_dialog(GetParent()); } diff --git a/src/gui/set/window.cpp b/src/gui/set/window.cpp index 7da1f878..b17319c6 100644 --- a/src/gui/set/window.cpp +++ b/src/gui/set/window.cpp @@ -19,6 +19,7 @@ #include #include #include +#include #include #include #include @@ -34,7 +35,7 @@ DECLARE_TYPEOF_COLLECTION(String); // ----------------------------------------------------------------------------- : Constructor SetWindow::SetWindow(Window* parent, const SetP& set) - : wxFrame(parent, wxID_ANY, _("Magic Set Editor"), wxDefaultPosition, wxDefaultSize, wxDEFAULT_FRAME_STYLE | wxNO_FULL_REPAINT_ON_RESIZE) + : wxFrame(parent, wxID_ANY, _TITLE_("magic set editor"), wxDefaultPosition, wxDefaultSize, wxDEFAULT_FRAME_STYLE | wxNO_FULL_REPAINT_ON_RESIZE) , current_panel(nullptr) , find_dialog(nullptr) , number_of_recent_sets(0) @@ -58,8 +59,8 @@ SetWindow::SetWindow(Window* parent, const SetP& set) menuFile->AppendSeparator(); menuFile->Append(ID_FILE_INSPECT, _("Inspect Internal Data..."), _("Shows a the data in the set using a tree structure")); menuFile->AppendSeparator(); - menuFile->Append(ID_FILE_PRINT_PREVIEW, _MENU_("print preview"), _("Shows cards as they will be printed")); - menuFile->Append(ID_FILE_PRINT, _MENU_("print"), _("Print cards from this set")); + menuFile->Append(ID_FILE_PRINT_PREVIEW, _MENU_("print preview"), _HELP_("print preview")); + menuFile->Append(ID_FILE_PRINT, _MENU_("print"), _HELP_("print")); menuFile->AppendSeparator(); // recent files go here menuFile->AppendSeparator(); @@ -67,8 +68,8 @@ SetWindow::SetWindow(Window* parent, const SetP& set) menuBar->Append(menuFile, _MENU_("file")); IconMenu* menuEdit = new IconMenu(); - menuEdit->Append(ID_EDIT_UNDO, _("TOOL_UNDO"), _MENU_("undo"), _("Undoes the last action")); - menuEdit->Append(ID_EDIT_REDO, _("TOOL_REDO"), _MENU_("redo"), _("Redoes the last action")); + menuEdit->Append(ID_EDIT_UNDO, _("TOOL_UNDO"), _MENU_("undo"), _HELP_("undo")); + menuEdit->Append(ID_EDIT_REDO, _("TOOL_REDO"), _MENU_("redo"), _HELP_("redo")); menuEdit->AppendSeparator(); menuEdit->Append(ID_EDIT_CUT, _("TOOL_CUT"), _MENU_("cut"), _("Move the selected text to the clipboard")); menuEdit->Append(ID_EDIT_COPY, _("TOOL_COPY"), _MENU_("copy"), _("Place the selected text on the clipboard")); @@ -82,14 +83,14 @@ SetWindow::SetWindow(Window* parent, const SetP& set) menuBar->Append(menuEdit, _MENU_("edit")); IconMenu* menuWindow = new IconMenu(); - menuWindow->Append(ID_WINDOW_NEW, _ ("&New Window"), _("Creates another window to edit the same set")); + menuWindow->Append(ID_WINDOW_NEW, _MENU_("new window"), _HELP_("new window")); menuWindow->AppendSeparator(); menuBar->Append(menuWindow, _MENU_("window")); IconMenu* menuHelp = new IconMenu(); menuHelp->Append(ID_HELP_INDEX, _("TOOL_HELP"), _("&Index..\tF1"), _("")); menuHelp->AppendSeparator(); - menuHelp->Append(ID_HELP_ABOUT, _("&About Magic Set Editor..."), _("")); + menuHelp->Append(ID_HELP_ABOUT, _MENU_("about"), _("")); menuBar->Append(menuHelp, _MENU_("help")); SetMenuBar(menuBar); @@ -452,11 +453,11 @@ void SetWindow::onFileExportMWS(wxCommandEvent&) { } void SetWindow::onFilePrint(wxCommandEvent&) { -// printSet(this, set); + print_set(this, set); } void SetWindow::onFilePrintPreview(wxCommandEvent&) { -// printPreview(this, set); + print_preview(this, set); } void SetWindow::onFileRecent(wxCommandEvent& ev) { diff --git a/src/gui/welcome_window.cpp b/src/gui/welcome_window.cpp index dc545e42..ffb04ebd 100644 --- a/src/gui/welcome_window.cpp +++ b/src/gui/welcome_window.cpp @@ -19,19 +19,19 @@ // ----------------------------------------------------------------------------- : WelcomeWindow WelcomeWindow::WelcomeWindow() - : Frame(nullptr, wxID_ANY, _("Magic Set Editor"), wxDefaultPosition, wxSize(480,340), wxDEFAULT_DIALOG_STYLE) + : Frame(nullptr, wxID_ANY, _TITLE_("magic set editor"), wxDefaultPosition, wxSize(480,340), wxDEFAULT_DIALOG_STYLE) , logo (load_resource_image(_("ABOUT"))) , logo2(load_resource_image(_("TWO"))) { SetIcon(wxIcon(_("ICON_APP"))); // init controls - wxButton* new_set = new HoverButtonExt(this, ID_FILE_NEW, _("WELCOME_NEW"), _("New set"), _("Creates a new set")); - wxButton* open_set = new HoverButtonExt(this, ID_FILE_OPEN, _("WELCOME_OPEN"), _("Open set"), _("Open an existing set")); + wxButton* new_set = new HoverButtonExt(this, ID_FILE_NEW, _("WELCOME_NEW"), _BUTTON_("new set"), _HELP_("new")); + wxButton* open_set = new HoverButtonExt(this, ID_FILE_OPEN, _("WELCOME_OPEN"), _BUTTON_("open set"), _HELP_("open")); wxButton* open_last = 0; if (!settings.recent_sets.empty()) { wxFileName n(settings.recent_sets.front()); - open_last = new HoverButtonExt(this, ID_FILE_RECENT, _("WELCOME_LAST"), _("Last opened set"), _("Open '") + n.GetName() + _("'")); + open_last = new HoverButtonExt(this, ID_FILE_RECENT, _("WELCOME_LAST"), _BUTTON_("last opened set"), _("Open '") + n.GetName() + _("'")); } wxSizer* s1 = new wxBoxSizer(wxHORIZONTAL); diff --git a/src/mse.vcproj b/src/mse.vcproj index bca9da3a..4d365cdc 100644 --- a/src/mse.vcproj +++ b/src/mse.vcproj @@ -537,30 +537,12 @@ - - - - - - - - - - - - @@ -573,12 +555,6 @@ - - - - @@ -591,18 +567,46 @@ - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -863,6 +873,12 @@ + + + + @@ -2565,6 +2581,9 @@ + + diff --git a/src/util/locale.hpp b/src/util/locale.hpp index ae4732a9..eb9544f5 100644 --- a/src/util/locale.hpp +++ b/src/util/locale.hpp @@ -27,6 +27,7 @@ enum LocaleCategory , LOCALE_CAT_TOOL , LOCALE_CAT_LABEL , LOCALE_CAT_BUTTON +, LOCALE_CAT_TITLE , LOCALE_CAT_TYPE , LOCALE_CAT_ACTION , LOCALE_CAT_ERROR @@ -44,8 +45,10 @@ String tr(LocaleCategory cat, const String& key); #define _TOOL_(s) tr(LOCALE_CAT_TOOL, _(s)) /// A localized string for labels #define _LABEL_(s) tr(LOCALE_CAT_LABEL, _(s)) -/// A localized string for buttons +/// A localized string for buttons/checkboxes/etc. #define _BUTTON_(s) tr(LOCALE_CAT_BUTTON,_(s)) +/// A localized string for window titles +#define _TITLE_(s) tr(LOCALE_CAT_TITLE, _(s)) /// A localized string for type names in scripts #define _TYPE_(s) tr(LOCALE_CAT_TYPE, _(s)) /// A localized string for action names diff --git a/src/util/window_id.hpp b/src/util/window_id.hpp index 09087f4d..6018e28a 100644 --- a/src/util/window_id.hpp +++ b/src/util/window_id.hpp @@ -174,6 +174,9 @@ enum ControlID { , ID_MOVE_DOWN , ID_SHOW , ID_HIDE + // Card select +, ID_SELECT_ALL +, ID_SELECT_NONE // Settings , ID_NOTEBOOK , ID_APPRENTICE_BROWSE