Commit 7a60536f authored by twanvl's avatar twanvl

command line argument support

parent d79c79bf
...@@ -26,8 +26,11 @@ SymbolWindow::SymbolWindow(Window* parent) { ...@@ -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)
......
...@@ -27,7 +27,7 @@ class SymbolWindow : public Frame { ...@@ -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:
......
...@@ -48,17 +48,35 @@ bool MSE::OnInit() { ...@@ -48,17 +48,35 @@ 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) {
handle_error(e, false); handle_error(e, false);
} catch (std::exception e) { } catch (std::exception e) {
...@@ -67,7 +85,7 @@ bool MSE::OnInit() { ...@@ -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;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment