mirror of
https://github.com/amyinspace/MagicSetEditor2.git
synced 2026-06-09 20:47:00 -04:00
109 lines
5.6 KiB
C++
109 lines
5.6 KiB
C++
//+----------------------------------------------------------------------------+
|
|
//| Description: Magic Set Editor - Program to make card games |
|
|
//| Copyright: (C) Twan van Laarhoven and the other MSE developers |
|
|
//| License: GNU General Public License 2 or later (see file COPYING) |
|
|
//+----------------------------------------------------------------------------+
|
|
|
|
// ----------------------------------------------------------------------------- : Includes
|
|
|
|
#include <util/prec.hpp>
|
|
#include <gui/set/set_info_panel.hpp>
|
|
#include <gui/control/native_look_editor.hpp>
|
|
#include <gui/util.hpp>
|
|
#include <util/window_id.hpp>
|
|
|
|
// ----------------------------------------------------------------------------- : SetInfoPanel
|
|
|
|
SetInfoPanel::SetInfoPanel(Window* parent, int id)
|
|
: SetWindowPanel(parent, id)
|
|
{
|
|
// init controls
|
|
editor = new SetInfoEditor(this, wxID_ANY);
|
|
// init sizer
|
|
wxSizer* s = new wxBoxSizer(wxVERTICAL);
|
|
s->Add(editor, 1, wxEXPAND, 2);
|
|
SetSizer(s);
|
|
s->SetSizeHints(this);
|
|
}
|
|
|
|
void SetInfoPanel::onChangeSet() {
|
|
editor->setSet(set);
|
|
}
|
|
|
|
// ----------------------------------------------------------------------------- : UI
|
|
|
|
void SetInfoPanel::initUI(wxToolBar* tb, wxMenuBar* mb) {
|
|
// Toolbar
|
|
add_tool_tr(tb, ID_FORMAT_FONT, settings.darkModePrefix() + "font", "font", false, wxITEM_CHECK);
|
|
add_tool_tr(tb, ID_FORMAT_BOLD, settings.darkModePrefix() + "bold", "bold", false, wxITEM_CHECK);
|
|
add_tool_tr(tb, ID_FORMAT_ITALIC, settings.darkModePrefix() + "italic", "italic", false, wxITEM_CHECK);
|
|
add_tool_tr(tb, ID_FORMAT_UNDERLINE, settings.darkModePrefix() + "underline", "underline", false, wxITEM_CHECK);
|
|
add_tool_tr(tb, ID_FORMAT_STRIKETHROUGH, settings.darkModePrefix() + "strikethrough", "strikethrough", false, wxITEM_CHECK);
|
|
add_tool_tr(tb, ID_FORMAT_COLOR, "color_text", "color_text", false, wxITEM_CHECK);
|
|
add_tool_tr(tb, ID_FORMAT_BULLETPOINT, settings.darkModePrefix() + "bullet_point", "bullet_point", false, wxITEM_CHECK);
|
|
add_tool_tr(tb, ID_FORMAT_SYMBOL, settings.darkModePrefix() + "symbol", "symbols", false, wxITEM_CHECK);
|
|
add_tool_tr(tb, ID_FORMAT_REMINDER, settings.darkModePrefix() + "reminder", "reminder_text", false, wxITEM_CHECK);
|
|
tb->Realize();
|
|
// Menus
|
|
auto menuFormat = new wxMenu();
|
|
add_menu_item_tr(menuFormat, ID_FORMAT_FONT, settings.darkModePrefix() + "font", "font", wxITEM_CHECK);
|
|
add_menu_item_tr(menuFormat, ID_FORMAT_BOLD, settings.darkModePrefix() + "bold", "bold", wxITEM_CHECK);
|
|
add_menu_item_tr(menuFormat, ID_FORMAT_ITALIC, settings.darkModePrefix() + "italic", "italic", wxITEM_CHECK);
|
|
add_menu_item_tr(menuFormat, ID_FORMAT_UNDERLINE, settings.darkModePrefix() + "underline", "underline", wxITEM_CHECK);
|
|
add_menu_item_tr(menuFormat, ID_FORMAT_STRIKETHROUGH, settings.darkModePrefix() + "strikethrough", "strikethrough", wxITEM_CHECK);
|
|
add_menu_item_tr(menuFormat, ID_FORMAT_COLOR, "color_text", "color_text", wxITEM_CHECK);
|
|
add_menu_item_tr(menuFormat, ID_FORMAT_BULLETPOINT, settings.darkModePrefix() + "bullet_point", "bullet_point", wxITEM_CHECK);
|
|
add_menu_item_tr(menuFormat, ID_FORMAT_SYMBOL, settings.darkModePrefix() + "symbol", "symbols", wxITEM_CHECK);
|
|
add_menu_item_tr(menuFormat, ID_FORMAT_REMINDER, settings.darkModePrefix() + "reminder", "reminder_text", wxITEM_CHECK);
|
|
mb->Insert(2, menuFormat, _MENU_("format"));
|
|
// focus on editor
|
|
editor->SetFocus();
|
|
}
|
|
|
|
void SetInfoPanel::destroyUI(wxToolBar* tb, wxMenuBar* mb) {
|
|
// Toolbar
|
|
tb->DeleteTool(ID_FORMAT_FONT);
|
|
tb->DeleteTool(ID_FORMAT_BOLD);
|
|
tb->DeleteTool(ID_FORMAT_ITALIC);
|
|
tb->DeleteTool(ID_FORMAT_UNDERLINE);
|
|
tb->DeleteTool(ID_FORMAT_STRIKETHROUGH);
|
|
tb->DeleteTool(ID_FORMAT_COLOR);
|
|
tb->DeleteTool(ID_FORMAT_BULLETPOINT);
|
|
tb->DeleteTool(ID_FORMAT_SYMBOL);
|
|
tb->DeleteTool(ID_FORMAT_REMINDER);
|
|
// Menus
|
|
delete mb->Remove(2);
|
|
}
|
|
|
|
void SetInfoPanel::onUpdateUI(wxUpdateUIEvent& ev) {
|
|
switch (ev.GetId()) {
|
|
case ID_FORMAT_FONT: case ID_FORMAT_BOLD: case ID_FORMAT_ITALIC: case ID_FORMAT_UNDERLINE: case ID_FORMAT_STRIKETHROUGH:
|
|
case ID_FORMAT_COLOR: case ID_FORMAT_BULLETPOINT: case ID_FORMAT_SYMBOL: case ID_FORMAT_REMINDER: {
|
|
ev.Enable(editor->canFormat(ev.GetId()));
|
|
ev.Check (editor->hasFormat(ev.GetId()));
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
void SetInfoPanel::onCommand(int id) {
|
|
switch (id) {
|
|
case ID_FORMAT_FONT: case ID_FORMAT_BOLD: case ID_FORMAT_ITALIC: case ID_FORMAT_UNDERLINE: case ID_FORMAT_STRIKETHROUGH:
|
|
case ID_FORMAT_COLOR: case ID_FORMAT_BULLETPOINT: case ID_FORMAT_SYMBOL: case ID_FORMAT_REMINDER: {
|
|
editor->doFormat(id);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
// ----------------------------------------------------------------------------- : Clipboard
|
|
|
|
bool SetInfoPanel::canCut() const { return editor->canCut(); }
|
|
bool SetInfoPanel::canCopy() const { return editor->canCopy(); }
|
|
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(); }
|