| @@ -42,6 +42,8 @@ decl {class O_Canvas;} {} | |||
| decl {class Triggers;} {public | |||
| } | |||
| decl {class Instrument_Editor;} {} | |||
| decl {Fl_Color canvas_background_color;} {public | |||
| } | |||
| @@ -84,7 +86,7 @@ if ( transport.rolling ) | |||
| }} {} | |||
| } | |||
| class UI {open | |||
| class UI {open selected | |||
| } { | |||
| decl {Fl_Text_Buffer *sequence_notes_buffer;} {} | |||
| decl {Fl_Text_Buffer *pattern_notes_buffer;} {} | |||
| @@ -103,7 +105,8 @@ main_window = make_main_window(); | |||
| seq_window = make_seq_window(); | |||
| make_randomization_dialog(); | |||
| make_instrument_edit_dialog(); | |||
| // make_instrument_edit_dialog(); | |||
| Fl::add_handler( shortcut_handler ); | |||
| @@ -1050,36 +1053,6 @@ You should have received a copy of the GNU General Public License along with thi | |||
| } | |||
| } | |||
| } | |||
| Function {make_instrument_edit_dialog()} {open | |||
| } { | |||
| Fl_Window instrument_edit_dialog { | |||
| label {Instrument Edit} open | |||
| xywh {1006 27 338 191} type Double modal visible | |||
| } { | |||
| Fl_Box {} { | |||
| label {Instrument Row} | |||
| xywh {8 15 321 28} box ROUNDED_BOX color 94 labelsize 22 labelcolor 39 | |||
| } | |||
| Fl_Input instrument_name_field { | |||
| label Name | |||
| callback {instrument_edit_dialog->hide();} | |||
| xywh {10 70 321 25} selection_color 48 align 1 when 8 textcolor 32 | |||
| } | |||
| Fl_Value_Slider instrument_volume_slider { | |||
| label {Volume %} | |||
| xywh {10 112 321 27} type Horizontal align 1 maximum 100 step 1 textsize 14 | |||
| } | |||
| Fl_Value_Output instrument_note_field { | |||
| label {Note:} | |||
| xywh {52 158 43 24} | |||
| } | |||
| Fl_Return_Button {} { | |||
| label Done | |||
| callback {instrument_edit_dialog->hide();} | |||
| xywh {255 157 76 25} | |||
| } | |||
| } | |||
| } | |||
| Function {update_pattern_widgets()} {open | |||
| } { | |||
| code {if ( ! pattern_settings_group ) | |||
| @@ -1301,21 +1274,11 @@ if ( p ) | |||
| } | |||
| Function {edit_instrument_row( Instrument *i, int n )} {open return_type void | |||
| } { | |||
| code {instrument_note_field->value( n ); | |||
| instrument_name_field->value( i->note_name( n ) ); | |||
| instrument_volume_slider->value( i->velocity( n ) ); | |||
| code {Instrument_Editor ie; | |||
| instrument_edit_dialog->show(); | |||
| ie.set( i, n ); | |||
| while( instrument_edit_dialog->shown() ) | |||
| Fl::wait(); | |||
| i->note_name( n, strdup( instrument_name_field->value() ) ); | |||
| i->velocity( n, instrument_volume_slider->value() ); | |||
| i->save();} {selected | |||
| } | |||
| ie.run();} {} | |||
| } | |||
| } | |||
| @@ -1598,6 +1561,67 @@ return r;} {} | |||
| } | |||
| } | |||
| class Instrument_Editor {open | |||
| } { | |||
| Function {Instrument_Editor()} {open return_type void | |||
| } { | |||
| code {make_window();} {} | |||
| } | |||
| decl {Instrument *_inst;} {} | |||
| decl {int _note;} {} | |||
| Function {make_window()} {open | |||
| } { | |||
| Fl_Window window { | |||
| label {Instrument Editor} | |||
| callback {done->do_callback();} open | |||
| xywh {670 458 339 191} type Double visible | |||
| } { | |||
| Fl_Box {} { | |||
| label {Instrument Row} | |||
| xywh {8 15 321 28} box ROUNDED_BOX color 94 labelsize 22 labelcolor 39 | |||
| } | |||
| Fl_Input name_field { | |||
| label Name | |||
| callback {_inst->note_name( _note, strdup( o->value() ) );} | |||
| xywh {10 70 321 25} selection_color 48 align 1 when 1 textcolor 32 | |||
| } | |||
| Fl_Value_Slider volume_slider { | |||
| label {Volume %} | |||
| callback {_inst->velocity( _note, o->value() );} | |||
| xywh {10 112 321 27} type Horizontal align 1 maximum 100 step 1 textsize 14 | |||
| } | |||
| Fl_Value_Output note_field { | |||
| label {Note:} | |||
| xywh {52 158 43 24} | |||
| } | |||
| Fl_Return_Button done { | |||
| label Done | |||
| callback {if ( _inst ) | |||
| _inst->save(); | |||
| window->hide();} | |||
| xywh {255 157 76 25} | |||
| } | |||
| } | |||
| } | |||
| Function {set( Instrument *i, int n )} {open return_type void | |||
| } { | |||
| code {_inst = i; | |||
| _note = n; | |||
| volume_slider->value( i->velocity( n ) ); | |||
| name_field->value( i->note_name( n ) ); | |||
| note_field->value( n );} {} | |||
| } | |||
| Function {run()} {open return_type void | |||
| } { | |||
| code {window->show(); | |||
| while ( window->shown() ) | |||
| Fl::wait();} {} | |||
| } | |||
| } | |||
| widget_class Triggers { | |||
| xywh {121 31 1278 1003} type Double hide resizable | |||
| code0 {populate();} | |||