|
|
@@ -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} |
|
|
|