mirror of
https://github.com/amyinspace/MagicSetEditor2.git
synced 2026-06-13 14:07:01 -04:00
fixed update ui for NewWindow
git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@106 0fc631ac-6414-0410-93d0-97cfa31319b6
This commit is contained in:
@@ -45,9 +45,7 @@ SetP MSE1FileFormat::importSet(const String& filename) {
|
|||||||
wxTextInputStream file(f);
|
wxTextInputStream file(f);
|
||||||
#endif
|
#endif
|
||||||
// create set
|
// create set
|
||||||
SetP set(new Set);
|
SetP set(new Set(Game::byName(_("magic"))));
|
||||||
set->game = Game::byName(_("magic"));
|
|
||||||
set->data.init(set->game->set_fields);
|
|
||||||
|
|
||||||
// file version check
|
// file version check
|
||||||
String format = file.ReadLine();
|
String format = file.ReadLine();
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ class MSE2FileFormat : public FileFormat {
|
|||||||
return set;
|
return set;
|
||||||
}
|
}
|
||||||
virtual void exportSet(Set& set, const String& filename) {
|
virtual void exportSet(Set& set, const String& filename) {
|
||||||
|
settings.addRecentFile(filename);
|
||||||
set.saveAs(filename);
|
set.saveAs(filename);
|
||||||
set.actions.setSavePoint();;
|
set.actions.setSavePoint();;
|
||||||
}
|
}
|
||||||
|
|||||||
+6
-2
@@ -31,13 +31,17 @@ Set::Set()
|
|||||||
Set::Set(const GameP& game)
|
Set::Set(const GameP& game)
|
||||||
: game(game)
|
: game(game)
|
||||||
, script_manager(new ScriptManager(*this))
|
, script_manager(new ScriptManager(*this))
|
||||||
{}
|
{
|
||||||
|
data.init(game->set_fields);
|
||||||
|
}
|
||||||
|
|
||||||
Set::Set(const StyleSheetP& stylesheet)
|
Set::Set(const StyleSheetP& stylesheet)
|
||||||
: stylesheet(stylesheet)
|
: stylesheet(stylesheet)
|
||||||
, game(stylesheet->game)
|
, game(stylesheet->game)
|
||||||
, script_manager(new ScriptManager(*this))
|
, script_manager(new ScriptManager(*this))
|
||||||
{}
|
{
|
||||||
|
data.init(game->set_fields);
|
||||||
|
}
|
||||||
|
|
||||||
Set::~Set() {}
|
Set::~Set() {}
|
||||||
|
|
||||||
|
|||||||
@@ -64,6 +64,7 @@ class GalleryList : public wxScrolledWindow {
|
|||||||
size_t findItem(const wxMouseEvent&) const;
|
size_t findItem(const wxMouseEvent&) const;
|
||||||
/// Find the coordinates of an item
|
/// Find the coordinates of an item
|
||||||
RealPoint itemPos(size_t item) const;
|
RealPoint itemPos(size_t item) const;
|
||||||
|
protected:
|
||||||
/// Send an event
|
/// Send an event
|
||||||
void sendEvent(WXTYPE type);
|
void sendEvent(WXTYPE type);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -87,6 +87,7 @@ void PackageList::select(const String& name) {
|
|||||||
if (it->package->name() == name) {
|
if (it->package->name() == name) {
|
||||||
selection = it - packages.begin();
|
selection = it - packages.begin();
|
||||||
update();
|
update();
|
||||||
|
sendEvent(EVENT_GALLERY_SELECT);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+22
-31
@@ -30,8 +30,8 @@ NewSetWindow::NewSetWindow(Window* parent)
|
|||||||
// init controls
|
// init controls
|
||||||
game_list = new PackageList (this, ID_GAME_LIST);
|
game_list = new PackageList (this, ID_GAME_LIST);
|
||||||
stylesheet_list = new PackageList (this, ID_STYLESHEET_LIST);
|
stylesheet_list = new PackageList (this, ID_STYLESHEET_LIST);
|
||||||
game_text = new wxStaticText(this, wxID_ANY, _("&Game type:"));
|
game_text = new wxStaticText(this, ID_GAME_LIST, _("&Game type:"));
|
||||||
stylesheet_text = new wxStaticText(this, wxID_ANY, _("&Card style:"));
|
stylesheet_text = new wxStaticText(this, ID_STYLESHEET_LIST, _("&Card style:"));
|
||||||
// init sizer
|
// init sizer
|
||||||
wxSizer* s = new wxBoxSizer(wxVERTICAL);
|
wxSizer* s = new wxBoxSizer(wxVERTICAL);
|
||||||
s->Add(game_text, 0, wxALL, 4);
|
s->Add(game_text, 0, wxALL, 4);
|
||||||
@@ -41,24 +41,12 @@ NewSetWindow::NewSetWindow(Window* parent)
|
|||||||
s->Add(CreateButtonSizer(wxOK | wxCANCEL) , 0, wxEXPAND | wxALL, 8);
|
s->Add(CreateButtonSizer(wxOK | wxCANCEL) , 0, wxEXPAND | wxALL, 8);
|
||||||
s->SetSizeHints(this);
|
s->SetSizeHints(this);
|
||||||
SetSizer(s);
|
SetSizer(s);
|
||||||
// disable stuff
|
|
||||||
ok_button = FindWindow(wxID_OK);
|
|
||||||
assert(ok_button);
|
|
||||||
enableStyle(false);
|
|
||||||
// force refresh of gameList, otherwise a grey background shows (win XP)
|
// force refresh of gameList, otherwise a grey background shows (win XP)
|
||||||
SetSize(wxSize(530,320));
|
SetSize(wxSize(530,320));
|
||||||
// init lists
|
// init lists
|
||||||
game_list->showData<Game>();
|
game_list->showData<Game>();
|
||||||
game_list->select(settings.default_game);
|
game_list->select(settings.default_game);
|
||||||
}
|
UpdateWindowUI(wxUPDATE_UI_RECURSE);
|
||||||
|
|
||||||
void NewSetWindow::enableStyle(bool e) {
|
|
||||||
stylesheet_list->Enable(e);
|
|
||||||
stylesheet_text->Enable(e);
|
|
||||||
if (!e) enableOk(e);
|
|
||||||
}
|
|
||||||
void NewSetWindow::enableOk(bool e) {
|
|
||||||
ok_button->Enable(e);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void NewSetWindow::onGameSelect(wxCommandEvent&) {
|
void NewSetWindow::onGameSelect(wxCommandEvent&) {
|
||||||
@@ -67,25 +55,17 @@ void NewSetWindow::onGameSelect(wxCommandEvent&) {
|
|||||||
GameSettings& gs = settings.gameSettingsFor(*game);
|
GameSettings& gs = settings.gameSettingsFor(*game);
|
||||||
stylesheet_list->showData<StyleSheet>(game->name() + _("-*"));
|
stylesheet_list->showData<StyleSheet>(game->name() + _("-*"));
|
||||||
stylesheet_list->select(gs.default_stylesheet);
|
stylesheet_list->select(gs.default_stylesheet);
|
||||||
enableStyle(true);
|
UpdateWindowUI(wxUPDATE_UI_RECURSE);
|
||||||
}
|
}
|
||||||
/*void NewSetWindow::onGameDeselect(wxCommandEvent&) {
|
|
||||||
stylesheet_list->clear();
|
|
||||||
enableStyle(false);
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
void NewSetWindow::onStyleSheetSelect(wxCommandEvent&) {
|
void NewSetWindow::onStyleSheetSelect(wxCommandEvent&) {
|
||||||
enableOk(true);
|
|
||||||
// store this as default selection
|
// store this as default selection
|
||||||
GameP game = game_list ->getSelection<Game>();
|
GameP game = game_list ->getSelection<Game>();
|
||||||
StyleSheetP stylesheet = stylesheet_list->getSelection<StyleSheet>();
|
StyleSheetP stylesheet = stylesheet_list->getSelection<StyleSheet>();
|
||||||
GameSettings& gs = settings.gameSettingsFor(*game);
|
GameSettings& gs = settings.gameSettingsFor(*game);
|
||||||
gs.default_stylesheet = stylesheet->name();
|
gs.default_stylesheet = stylesheet->name();
|
||||||
|
UpdateWindowUI(wxUPDATE_UI_RECURSE);
|
||||||
}
|
}
|
||||||
/*void NewSetWindow::onStyleSheetDeselect(wxCommandEvent&) {
|
|
||||||
enableOk(false);
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
void NewSetWindow::onStyleSheetActivate(wxCommandEvent&) {
|
void NewSetWindow::onStyleSheetActivate(wxCommandEvent&) {
|
||||||
done();
|
done();
|
||||||
}
|
}
|
||||||
@@ -101,10 +81,21 @@ void NewSetWindow::done() {
|
|||||||
EndModal(wxID_OK);
|
EndModal(wxID_OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void NewSetWindow::onUpdateUI(wxUpdateUIEvent& ev) {
|
||||||
|
switch (ev.GetId()) {
|
||||||
|
case ID_STYLESHEET_LIST:
|
||||||
|
ev.Enable(game_list->hasSelection());
|
||||||
|
break;
|
||||||
|
case wxID_OK:
|
||||||
|
ev.Enable(stylesheet_list->hasSelection());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
BEGIN_EVENT_TABLE(NewSetWindow, wxDialog)
|
BEGIN_EVENT_TABLE(NewSetWindow, wxDialog)
|
||||||
EVT_GALLERY_SELECT (ID_GAME_LIST, NewSetWindow::onGameSelect)
|
EVT_GALLERY_SELECT (ID_GAME_LIST, NewSetWindow::onGameSelect)
|
||||||
// EVT_LIST_ITEM_DESELECTED (ID_GAME_LIST, NewSetWindow::onGameDeselect)
|
EVT_GALLERY_SELECT (ID_STYLESHEET_LIST, NewSetWindow::onStyleSheetSelect)
|
||||||
EVT_GALLERY_SELECT (ID_STYLESHEET_LIST, NewSetWindow::onStyleSheetSelect)
|
EVT_GALLERY_ACTIVATE(ID_STYLESHEET_LIST, NewSetWindow::onStyleSheetActivate)
|
||||||
// EVT_LIST_ITEM_DESELECTED (ID_STYLESHEET_LIST, NewSetWindow::onStyleDeselect)
|
EVT_BUTTON (wxID_OK, NewSetWindow::OnOK)
|
||||||
EVT_GALLERY_ACTIVATE (ID_STYLESHEET_LIST, NewSetWindow::onStyleSheetActivate)
|
EVT_UPDATE_UI (wxID_ANY, NewSetWindow::onUpdateUI)
|
||||||
END_EVENT_TABLE ()
|
END_EVENT_TABLE ()
|
||||||
|
|||||||
@@ -36,22 +36,17 @@ class NewSetWindow : public wxDialog {
|
|||||||
wxStaticText* game_text, *stylesheet_text;
|
wxStaticText* game_text, *stylesheet_text;
|
||||||
Window* ok_button;
|
Window* ok_button;
|
||||||
|
|
||||||
// --------------------------------------------------- : enabling stuff
|
|
||||||
|
|
||||||
void enableStyle(bool e);
|
|
||||||
void enableOk (bool e);
|
|
||||||
|
|
||||||
// --------------------------------------------------- : events
|
// --------------------------------------------------- : events
|
||||||
|
|
||||||
void onGameSelect (wxCommandEvent&);
|
void onGameSelect (wxCommandEvent&);
|
||||||
// void onGameDeselect(wxCommandEvent&);
|
|
||||||
|
|
||||||
void onStyleSheetSelect (wxCommandEvent&);
|
void onStyleSheetSelect (wxCommandEvent&);
|
||||||
// void onStyleSheetDeselect(wxCommandEvent&);
|
|
||||||
void onStyleSheetActivate(wxCommandEvent&);
|
void onStyleSheetActivate(wxCommandEvent&);
|
||||||
|
|
||||||
virtual void OnOK(wxCommandEvent&);
|
virtual void OnOK(wxCommandEvent&);
|
||||||
|
|
||||||
|
void onUpdateUI(wxUpdateUIEvent&);
|
||||||
|
|
||||||
// we are done, close the window
|
// we are done, close the window
|
||||||
void done();
|
void done();
|
||||||
};
|
};
|
||||||
|
|||||||
+4
-4
@@ -49,10 +49,10 @@ bool MSE::OnInit() {
|
|||||||
check_updates();
|
check_updates();
|
||||||
//Window* wnd = new SymbolWindow(nullptr);
|
//Window* wnd = new SymbolWindow(nullptr);
|
||||||
//GameP g = Game::byName(_("magic"))
|
//GameP g = Game::byName(_("magic"))
|
||||||
SetP s = new_shared<Set>();
|
//SetP s = new_shared<Set>();
|
||||||
s->open(_("test.mse-set"));
|
//s->open(_("test.mse-set"));
|
||||||
Window* wnd = new SetWindow(nullptr, s);
|
//Window* wnd = new SetWindow(nullptr, s);
|
||||||
//Window* wnd = new WelcomeWindow();
|
Window* wnd = new WelcomeWindow();
|
||||||
wnd->Show();
|
wnd->Show();
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user