| @@ -1,5 +1,5 @@ | |||
| # data file for the Fltk User Interface Designer (fluid) | |||
| version 1.0108 | |||
| version 1.0110 | |||
| header_name {.H} | |||
| code_name {.C} | |||
| comment {// | |||
| @@ -168,8 +168,8 @@ if ( Fl::event() == FL_SHORTCUT && Fl::event_key() == FL_Escape ) | |||
| return; | |||
| if ( maybe_save_song() ) | |||
| quit();} open selected | |||
| xywh {394 40 865 800} type Double box PLASTIC_UP_BOX color 37 resizable xclass non size_range {600 420 0 0} visible | |||
| quit();} open | |||
| xywh {209 100 865 800} type Double box PLASTIC_UP_BOX color 37 resizable xclass non size_range {600 420 0 0} visible | |||
| } { | |||
| Fl_Menu_Bar menu_bar {open | |||
| xywh {0 0 869 30} color 37 | |||
| @@ -558,7 +558,7 @@ if ( p ) | |||
| phrase_c->grid( p ); | |||
| o->maximum( phrase::phrases() );} | |||
| xywh {164 703 40 25} color 36 labeltype NO_LABEL when 1 value 1 | |||
| xywh {164 703 40 25} color 36 labeltype NO_LABEL when 1 | |||
| } | |||
| Fl_Light_Button phrase_mute_button { | |||
| label Mute | |||
| @@ -604,7 +604,7 @@ if ( p ) | |||
| pattern_c->grid( p ); | |||
| o->maximum( pattern::patterns() );} | |||
| xywh {164 703 40 25} color 36 labeltype NO_LABEL when 1 value 1 | |||
| xywh {164 703 40 25} color 36 labeltype NO_LABEL when 1 | |||
| code0 {o->maximum( 1 );} | |||
| code1 {// pattern::signal_create_destroy.connect( sigc::mem_fun( o, static_cast<void (Fl_Spinner::*)(double)>(&Fl_Spinner::maximum) ) );} | |||
| } | |||
| @@ -642,14 +642,14 @@ pattern_mute_button->value( 0 );} | |||
| Fl_Spinner pattern_channel_spinner { | |||
| label Channel | |||
| callback {((pattern *)pattern_c->grid())->channel( o->value() - 1 );} | |||
| xywh {815 700 40 24} color 36 when 1 value 1 | |||
| xywh {815 700 40 24} color 36 when 1 | |||
| code0 {\#include "../pattern.H"} | |||
| code1 {o->maximum( 16 );} | |||
| } | |||
| Fl_Spinner pattern_port_spinner { | |||
| label Port | |||
| callback {((pattern *)pattern_c->grid())->port( o->value() - 1 );} | |||
| xywh {815 734 40 24} color 36 when 1 value 1 | |||
| xywh {815 734 40 24} color 36 when 1 | |||
| code0 {o->maximum( 16 );} | |||
| } | |||
| Fl_Output mapping_text { | |||
| @@ -849,68 +849,59 @@ pattern_c->changed_mapping();} | |||
| } | |||
| } | |||
| } | |||
| Fl_Group {} {open | |||
| xywh {5 33 853 52} | |||
| Fl_Group {} {open selected | |||
| xywh {0 29 865 67} | |||
| } { | |||
| Fl_Choice playback_mode_menu { | |||
| label {Playback &Mode} open | |||
| xywh {751 54 107 30} box PLASTIC_DOWN_BOX down_box BORDER_BOX color 37 align 1 | |||
| Fl_Pack {} { | |||
| label Meter open | |||
| xywh {5 41 200 26} type HORIZONTAL labelsize 9 | |||
| code0 {o->spacing( 3 );} | |||
| } { | |||
| MenuItem {} { | |||
| label Pattern | |||
| callback {song.play_mode = PATTERN;} | |||
| xywh {0 0 40 25} | |||
| } | |||
| MenuItem {} { | |||
| label Sequence | |||
| callback {song.play_mode = SEQUENCE;} | |||
| xywh {10 10 40 25} | |||
| Fl_Box {} { | |||
| label {BPM:} | |||
| xywh {5 41 35 26} resizable | |||
| } | |||
| MenuItem {} { | |||
| label Trigger | |||
| callback {song.play_mode = TRIGGER;} | |||
| xywh {20 20 40 25} | |||
| Fl_Value_Input {} { | |||
| callback {transport.set_beats_per_minute( o->value() );} | |||
| xywh {45 41 55 24} when 8 | |||
| code1 {transport.signal_tempo_change.connect( sigc::mem_fun( o, static_cast<int (Fl_Valuator::*)(double)>(&Fl_Valuator::value) ) );} | |||
| code2 {o->value( transport.beats_per_minute );} | |||
| } | |||
| } | |||
| Fl_Choice record_mode_menu { | |||
| label {&Record Mode} | |||
| callback {if ( ! transport.recording ) | |||
| config.record_mode = (record_mode_e)o->value(); | |||
| else | |||
| o->value( config.record_mode );} open | |||
| xywh {634 54 107 30} box PLASTIC_DOWN_BOX down_box BORDER_BOX color 37 align 1 | |||
| } { | |||
| MenuItem {} { | |||
| label Merge | |||
| xywh {10 10 40 25} | |||
| Fl_Value_Input {} { | |||
| callback {transport.set_beats_per_bar( o->value() );} | |||
| xywh {105 41 26 24} | |||
| code0 {transport.signal_bpb_change.connect( sigc::mem_fun( o, static_cast<int (Fl_Valuator::*)(double)>(&Fl_Valuator::value) ) );} | |||
| code1 {o->value( transport.beats_per_bar );} | |||
| } | |||
| MenuItem {} { | |||
| label Overwrite | |||
| xywh {20 20 40 25} | |||
| Fl_Box {} { | |||
| label {/} | |||
| xywh {126 41 19 24} | |||
| } | |||
| MenuItem {} { | |||
| label Layer | |||
| xywh {30 30 40 25} | |||
| Fl_Value_Input {} { | |||
| callback {transport.set_beat_type( o->value() );} | |||
| xywh {140 41 24 24} | |||
| code0 {transport.signal_beat_change.connect( sigc::mem_fun( o, static_cast<int (Fl_Valuator::*)(double)>(&Fl_Valuator::value) ) );} | |||
| code1 {o->value( transport.beat_type );} | |||
| } | |||
| MenuItem {} { | |||
| label New | |||
| xywh {40 40 40 25} | |||
| Fl_Box {} { | |||
| xywh {165 63 40 4} labeltype NO_LABEL | |||
| } | |||
| } | |||
| Fl_Pack vmetro_widget { | |||
| label Metronome open | |||
| xywh {226 37 245 48} type HORIZONTAL box UP_BOX color 40 selection_color 48 labelsize 33 align 0 resizable | |||
| label Metronome | |||
| xywh {210 35 400 60} type HORIZONTAL box UP_BOX color 40 selection_color 48 labelsize 33 align 0 resizable | |||
| code0 {\#include "widgets.H"} | |||
| code1 {o->box( FL_NO_BOX );} | |||
| class Visual_Metronome | |||
| } {} | |||
| Fl_Group transport_controls_group { | |||
| xywh {481 37 143 48} | |||
| Fl_Pack transport_controls_group { | |||
| xywh {615 44 139 42} type HORIZONTAL | |||
| code0 {o->spacing( 2 );} | |||
| } { | |||
| Fl_Button play_button { | |||
| label {@>} | |||
| callback {transport.toggle();} | |||
| xywh {531 43 34 35} shortcut 0x20 labeltype ENGRAVED_LABEL | |||
| xywh {665 45 34 41} shortcut 0x20 labeltype ENGRAVED_LABEL | |||
| } | |||
| Fl_Button rec_button { | |||
| label {@circle} | |||
| @@ -937,42 +928,57 @@ else | |||
| o->labelcolor( FL_WHITE ); | |||
| }} | |||
| xywh {575 43 49 35} type Toggle shortcut 0x80072 selection_color 47 labeltype ENGRAVED_LABEL when 1 | |||
| xywh {709 45 45 41} type Toggle shortcut 0x80072 selection_color 47 labeltype ENGRAVED_LABEL when 1 | |||
| } | |||
| Fl_Button home_button { | |||
| label {@|<} | |||
| callback {transport.locate( 0 );} | |||
| xywh {481 43 40 35} shortcut 0xff50 labeltype ENGRAVED_LABEL | |||
| xywh {615 45 40 41} shortcut 0xff50 labeltype ENGRAVED_LABEL | |||
| } | |||
| } | |||
| Fl_Group {} {open | |||
| xywh {5 33 208 38} | |||
| Fl_Choice record_mode_menu { | |||
| label {&Record Mode} | |||
| callback {if ( ! transport.recording ) | |||
| config.record_mode = (record_mode_e)o->value(); | |||
| else | |||
| o->value( config.record_mode );} open | |||
| xywh {760 40 100 20} box PLASTIC_DOWN_BOX down_box BORDER_BOX color 37 labelsize 9 align 1 | |||
| } { | |||
| Fl_Box {} { | |||
| label {BPM:} | |||
| xywh {5 37 35 34} | |||
| MenuItem {} { | |||
| label Merge | |||
| xywh {15 15 40 25} | |||
| } | |||
| Fl_Counter {} { | |||
| callback {transport.set_beats_per_minute( o->value() );} | |||
| xywh {43 41 97 24} labeltype NO_LABEL align 4 step 0.1 | |||
| code1 {transport.signal_tempo_change.connect( sigc::mem_fun( o, static_cast<int (Fl_Counter::*)(double)>(&Fl_Counter::value) ) );} | |||
| code2 {o->value( transport.beats_per_minute );} | |||
| MenuItem {} { | |||
| label Overwrite | |||
| xywh {25 25 40 25} | |||
| } | |||
| Fl_Value_Input {} { | |||
| callback {transport.set_beats_per_bar( o->value() );} | |||
| xywh {149 41 26 24} | |||
| code0 {transport.signal_bpb_change.connect( sigc::mem_fun( o, static_cast<int (Fl_Valuator::*)(double)>(&Fl_Valuator::value) ) );} | |||
| code1 {o->value( transport.beats_per_bar );} | |||
| MenuItem {} { | |||
| label Layer | |||
| xywh {35 35 40 25} | |||
| } | |||
| Fl_Value_Input {} { | |||
| callback {transport.set_beat_type( o->value() );} | |||
| xywh {189 41 24 24} | |||
| code0 {transport.signal_beat_change.connect( sigc::mem_fun( o, static_cast<int (Fl_Valuator::*)(double)>(&Fl_Valuator::value) ) );} | |||
| code1 {o->value( transport.beat_type );} | |||
| MenuItem {} { | |||
| label New | |||
| xywh {45 45 40 25} | |||
| } | |||
| Fl_Box {} { | |||
| label {/} | |||
| xywh {170 41 19 24} | |||
| } | |||
| Fl_Choice playback_mode_menu { | |||
| label {Playback &Mode} open | |||
| xywh {760 74 100 21} box PLASTIC_DOWN_BOX down_box BORDER_BOX color 37 labelsize 9 align 1 | |||
| } { | |||
| MenuItem {} { | |||
| label Pattern | |||
| callback {song.play_mode = PATTERN;} | |||
| xywh {5 5 40 25} | |||
| } | |||
| MenuItem {} { | |||
| label Sequence | |||
| callback {song.play_mode = SEQUENCE;} | |||
| xywh {15 15 40 25} | |||
| } | |||
| MenuItem {} { | |||
| label Trigger | |||
| callback {song.play_mode = TRIGGER;} | |||
| xywh {25 25 40 25} | |||
| } | |||
| } | |||
| } | |||
| @@ -1074,9 +1080,9 @@ You should have received a copy of the GNU General Public License along with thi | |||
| Function {make_randomization_dialog()} {} { | |||
| Fl_Window randomization_dialog { | |||
| label {Randomization Settings} open | |||
| xywh {656 39 340 95} type Double | |||
| xywh {656 39 340 95} type Double hide | |||
| code0 {// feel->value( )} | |||
| code1 {probability->value( song.random.probability );} non_modal visible | |||
| code1 {probability->value( song.random.probability );} non_modal | |||
| } { | |||
| Fl_Choice feel { | |||
| label {Feel: 1/} | |||
| @@ -1576,7 +1582,7 @@ class Instrument_Editor {} { | |||
| Fl_Window window { | |||
| label {Instrument Editor} | |||
| callback {done->do_callback();} open | |||
| xywh {670 458 335 190} type Double visible | |||
| xywh {670 458 335 190} type Double hide | |||
| } { | |||
| Fl_Box {} { | |||
| label {Instrument Row} | |||