command line argument support

git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@167 0fc631ac-6414-0410-93d0-97cfa31319b6
This commit is contained in:
twanvl
2006-12-24 15:17:30 +00:00
parent ca3b7b91b4
commit 99867b0c0b
3 changed files with 34 additions and 13 deletions
+5 -2
View File
@@ -26,8 +26,11 @@ SymbolWindow::SymbolWindow(Window* parent) {
} }
SymbolWindow::SymbolWindow(Window* parent, const String& filename) { SymbolWindow::SymbolWindow(Window* parent, const String& filename) {
// TODO : open file // open file
init(parent, default_symbol()); Reader reader(filename);
SymbolP symbol;
reader.handle(symbol);
init(parent, symbol);
} }
SymbolWindow::SymbolWindow(Window* parent, const SymbolValueP& value, const SetP& set) SymbolWindow::SymbolWindow(Window* parent, const SymbolValueP& value, const SetP& set)
+1 -1
View File
@@ -27,7 +27,7 @@ class SymbolWindow : public Frame {
SymbolWindow(Window* parent); SymbolWindow(Window* parent);
/// Construct a SymbolWindow showing a symbol from a file /// Construct a SymbolWindow showing a symbol from a file
SymbolWindow(Window* parent, const String& filename); SymbolWindow(Window* parent, const String& filename);
// /// Construct a SymbolWindow showing a symbol value in a set /// Construct a SymbolWindow showing a symbol value in a set
SymbolWindow(Window* parent, const SymbolValueP& value, const SetP& set); SymbolWindow(Window* parent, const SymbolValueP& value, const SetP& set);
private: private:
+27 -9
View File
@@ -48,15 +48,33 @@ bool MSE::OnInit() {
packages.init(); packages.init();
settings.read(); settings.read();
the_locale = Locale::byName(settings.locale); the_locale = Locale::byName(settings.locale);
// check for updates
check_updates(); check_updates();
//Window* wnd = new SymbolWindow(nullptr);
//GameP g = Game::byName(_("magic")) // interpret command line
SetP s = new_shared<Set>(); if (argc > 1) {
s->open(_("test.mse-set")); try {
Window* wnd = new SetWindow(nullptr, s); // Command line argument, find its extension
//Window* wnd = new WelcomeWindow(); wxFileName f(argv[1]);
wnd->Show(); if (f.GetExt() == _("mse-symbol")) {
// Show the symbol editor
Window* wnd = new SymbolWindow(nullptr, argv[1]);
wnd->Show();
return true;
} else if (f.GetExt() == _("mse-set") || f.GetExt() == _("mse") || f.GetExt() == _("set")) {
// Show the set window
Window* wnd = new SetWindow(nullptr, import_set(argv[1]));
wnd->Show();
return true;
} else {
handle_error(_("Invalid command line argument:\n") + String(argv[1]));
}
} catch (const Error& e) {
handle_error(e);
}
}
// no command line arguments, or error, show welcome window
(new WelcomeWindow())->Show();
return true; return true;
} catch (Error e) { } catch (Error e) {
@@ -67,7 +85,7 @@ bool MSE::OnInit() {
} catch (...) { } catch (...) {
handle_error(InternalError(_("An unexpected exception occurred!")), false); handle_error(InternalError(_("An unexpected exception occurred!")), false);
} }
packages.destroy(); OnExit();
return false; return false;
} }