diff --git a/sequencer/src/gui/ui.fl b/sequencer/src/gui/ui.fl index 7635244..4617a9c 100644 --- a/sequencer/src/gui/ui.fl +++ b/sequencer/src/gui/ui.fl @@ -40,6 +40,9 @@ decl {\#include "FL/Fl_Scalepack.H"} {private local decl {\#include "FL/Fl_Sometimes_Input.H"} {private local } +decl {\#include "FL/Fl_Menu_Settings.H"} {private local +} + decl {\#include } {private local } @@ -192,6 +195,26 @@ delete main_window;} {} } { code {Fl::run();} {} } + Function {load_settings()} {open return_type void + } { + code {char *path; + +asprintf( &path, "%s/%s", config.user_config_dir, "view" ); + +((Fl_Menu_Settings*)menu_bar)->load( menu_bar->find_item( "&View" ), path ); + +free( path );} {} + } + Function {save_settings()} {open return_type void + } { + code {char *path; + +asprintf( &path, "%s/%s", config.user_config_dir, "view" ); + +((Fl_Menu_Settings*)menu_bar)->dump( menu_bar->find_item( "&View" ), path ); + +free( path );} {} + } Function {make_main_window()} {open } { Fl_Window main_window { @@ -201,11 +224,11 @@ if ( Fl::event() == FL_SHORTCUT && Fl::event_key() == FL_Escape ) return; if ( maybe_save_song() ) - quit();} open selected + quit();} open xywh {365 131 865 805} type Double color 38 resizable code0 {o->color( FL_BACKGROUND_COLOR );} xclass non size_range {700 509 0 0} visible } { - Fl_Menu_Bar menu_bar {open + Fl_Menu_Bar menu_bar {open selected xywh {0 0 865 30} color 37 } { Submenu {} { @@ -412,7 +435,7 @@ config.follow_playhead = val ? true : false;} label Square callback {pattern::note_shape = SQUARE; pattern_canvas_widget->redraw();} - xywh {0 0 40 24} type Radio + xywh {0 0 40 24} type Radio value 1 } } } diff --git a/sequencer/src/main.C b/sequencer/src/main.C index 924c7f1..1c3a213 100644 --- a/sequencer/src/main.C +++ b/sequencer/src/main.C @@ -66,6 +66,7 @@ void quit ( void ) { /* clean up, only for valgrind's sake */ + ui->save_settings(); delete ui; @@ -80,6 +81,7 @@ quit ( void ) midi_shutdown(); + MESSAGE( "Your fun is over" ); exit( 0 ); @@ -318,6 +320,7 @@ main ( int argc, char **argv ) Fl::add_check( check_sigterm ); + ui->load_settings(); ui->run(); return 0;