commit a140fcec71eb3cb1b69b9e31e3c5eb4332f825d3
parent cd47ba351116a283920b6edda5acaba5b1a2475f
Author: fundamental <mark.d.mccurry@gmail.com>
Date: Fri, 12 Oct 2012 00:09:24 -0400
NSM: Adds Import/Export abilities
Additional menu entries now exist when NSM mode is active for importing and
exporting parameters.
Diffstat:
2 files changed, 48 insertions(+), 11 deletions(-)
diff --git a/src/UI/MasterUI.fl b/src/UI/MasterUI.fl
@@ -457,7 +457,17 @@ if ((
}
MenuItem {} {
label {&Open Parameters...}
- callback {do_load_master();}
+ callback {\#if USE_NSM
+ if ( nsm && nsm->is_active() )
+ {
+ do_load_master();
+ do_save_master( nsm->project_filename );
+ }
+ else
+\#endif
+ {
+ do_load_master();
+ }}
xywh {20 20 100 20}
}
MenuItem {} {
diff --git a/src/UI/NSM.C b/src/UI/NSM.C
@@ -105,26 +105,53 @@ NSM_Client::command_open(const char *name,
return r;
}
+static void save_callback(Fl_Widget *w, void *v)
+{
+ MasterUI *ui = static_cast<MasterUI*>(v);
+ ui->do_save_master();
+}
+
void
NSM_Client::command_active(bool active)
{
if(active) {
- const_cast<Fl_Menu_Item *>(ui->mastermenu->find_item(
- "&File/&Open Parameters..."))->
- deactivate();
- const_cast<Fl_Menu_Item *>(ui->simplemastermenu->find_item(
- "&File/&Open Parameters..."))->
- deactivate();
+ Fl_Menu_Item *m;
+ //TODO see if there is a cleaner way of doing this without voiding
+ //constness
+ if(m=const_cast<Fl_Menu_Item *>(ui->mastermenu->find_item(
+ "&File/&Open Parameters...")))
+ m->label("&Import Parameters...");
+ if(m=const_cast<Fl_Menu_Item *>(ui->simplemastermenu->find_item(
+ "&File/&Open Parameters...")))
+ m->label("&Import Parameters...");
+
+ //TODO get this menu entry inserted at the right point
+ if(!ui->mastermenu->find_item("&File/&Export Parameters..."))
+ ui->mastermenu->add("&File/&Export Parameters...",0,save_callback,ui);
+ if(!ui->simplemastermenu->find_item("&File/&Export Parameters..."))
+ ui->simplemastermenu->add("&File/&Export Parameters...",0,save_callback,ui);
+
ui->sm_indicator1->value(1);
ui->sm_indicator2->value(1);
ui->sm_indicator1->tooltip(session_manager_name());
ui->sm_indicator2->tooltip(session_manager_name());
}
else {
- const_cast<Fl_Menu_Item *>(ui->mastermenu->find_item(
- "&File/&Open Parameters..."))->activate();
- const_cast<Fl_Menu_Item *>(ui->simplemastermenu->find_item(
- "&File/&Open Parameters..."))->activate();
+ Fl_Menu_Item *m;
+ if(m=const_cast<Fl_Menu_Item *>(ui->mastermenu->find_item(
+ "&File/&Import Parameters...")))
+ m->label("&Open Parameters...");
+ if(m=const_cast<Fl_Menu_Item *>(ui->simplemastermenu->find_item(
+ "&File/&Open Parameters...")))
+ m->label("&Open Parameters...");
+
+ int m_idx=ui->mastermenu->find_index("&File/&Export Parameters...");
+ if(m_idx==-1)
+ ui->mastermenu->remove(m_idx);
+ m_idx=ui->simplemastermenu->find_index("&File/&Export Parameters...");
+ if(m_idx==-1)
+ ui->simplemastermenu->remove(m_idx);
+
ui->sm_indicator1->value(0);
ui->sm_indicator2->value(0);
ui->sm_indicator1->tooltip(NULL);