zynaddsubfx

ZynAddSubFX open source synthesizer
Log | Files | Refs | Submodules | LICENSE

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:
Msrc/UI/MasterUI.fl | 12+++++++++++-
Msrc/UI/NSM.C | 47+++++++++++++++++++++++++++++++++++++----------
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);