diff --git a/FL/Fl_Labelpad_Group.H b/FL/Fl_Labelpad_Group.H index f55aea8..bf7e641 100644 --- a/FL/Fl_Labelpad_Group.H +++ b/FL/Fl_Labelpad_Group.H @@ -67,7 +67,8 @@ public: { /* TODO: other alignments */ } - + + resizable(o); init_sizes(); } diff --git a/mixer/src/Chain.C b/mixer/src/Chain.C index 0da05cb..b3907ad 100644 --- a/mixer/src/Chain.C +++ b/mixer/src/Chain.C @@ -144,11 +144,9 @@ Chain::Chain ( ) : Fl_Group( 0, 0, 100, 100, "") o->color( FL_BACKGROUND_COLOR ); o->box( FL_NO_BOX ); o->type( Fl_Scroll::VERTICAL ); - { Fl_Flowpack *o = controls_pack = new Fl_Flowpack( X, Y, W, H ); - o->type( FL_VERTICAL ); - o->hspacing( 10 ); - o->vspacing( 10 ); - o->box( FL_NO_BOX ); + { Fl_Pack *o = controls_pack = new Fl_Pack( X, Y, W, H ); + o->type( Fl_Pack::VERTICAL ); + o->spacing( 5 ); // o->color( FL_RED ); o->end(); Fl_Group::current()->resizable( o ); diff --git a/mixer/src/Chain.H b/mixer/src/Chain.H index 51e77fe..c11cdad 100644 --- a/mixer/src/Chain.H +++ b/mixer/src/Chain.H @@ -38,7 +38,7 @@ class Controller_Module; class Chain : public Fl_Group, public Loggable { Fl_Flip_Button *tab_button; - Fl_Flowpack *controls_pack; + Fl_Pack *controls_pack; Fl_Group *chain_tab; Fl_Group *control_tab; Fl_Pack *modules_pack; diff --git a/mixer/src/Controller_Module.C b/mixer/src/Controller_Module.C index a55afb2..184f570 100644 --- a/mixer/src/Controller_Module.C +++ b/mixer/src/Controller_Module.C @@ -57,6 +57,7 @@ Controller_Module::Controller_Module ( bool is_default ) : Module( is_default, 5 // label( "" ); box( FL_NO_BOX ); + _horizontal = true; _pad = true; control = 0; control_value =0.0f; @@ -426,50 +427,70 @@ Controller_Module::connect_to ( Port *p ) o->value( p->control_value() ); } - else if ( p->hints.type == Module::Port::Hints::LOGARITHMIC ) + // else if ( p->hints.type == Module::Port::Hints::LOGARITHMIC ) + else { Fl_Value_SliderX *o = new Fl_Value_SliderX(0, 0, 30, 250, p->name() ); control = o; w = o; - o->type(4); + if ( ! _horizontal ) + { + o->size( 30, 250 ); + o->type(FL_VERT_NICE_SLIDER); + } + else + { + o->size(250,20); + o->type(FL_HOR_NICE_SLIDER); + } + +// o->type(4); o->color( FL_BACKGROUND2_COLOR ); o->selection_color( fl_color_average( FL_GRAY, FL_CYAN, 0.5 ) ); o->minimum(1.5); o->maximum(0); o->value(1); - o->textsize(9); +// o->textsize(9); if ( p->hints.ranged ) { - o->minimum( p->hints.maximum ); - o->maximum( p->hints.minimum ); + if ( ! _horizontal ) + { + o->minimum( p->hints.maximum ); + o->maximum( p->hints.minimum ); + } + else + { + o->minimum( p->hints.minimum ); + o->maximum( p->hints.maximum ); + } } o->value( p->control_value() ); _type = SLIDER; } - else - { - { Fl_DialX *o = new Fl_DialX( 0, 0, 50, 50, p->name() ); - w = o; - control = o; + /* else */ + /* { */ + /* { Fl_DialX *o = new Fl_DialX( 0, 0, 50, 50, p->name() ); */ + /* w = o; */ + /* control = o; */ - if ( p->hints.ranged ) - { - DMESSAGE( "Min: %f, max: %f", p->hints.minimum, p->hints.maximum ); - o->minimum( p->hints.minimum ); - o->maximum( p->hints.maximum ); - } + /* if ( p->hints.ranged ) */ + /* { */ + /* DMESSAGE( "Min: %f, max: %f", p->hints.minimum, p->hints.maximum ); */ + /* o->minimum( p->hints.minimum ); */ + /* o->maximum( p->hints.maximum ); */ + /* } */ - o->color( fl_darker( FL_GRAY ) ); - o->selection_color( FL_WHITE ); - o->value( p->control_value() ); - } + /* o->color( fl_darker( FL_GRAY ) ); */ + /* o->selection_color( FL_WHITE ); */ + /* o->value( p->control_value() ); */ + /* } */ - _type = KNOB; - } + /* _type = KNOB; */ + /* } */ control_value = p->control_value(); @@ -485,6 +506,8 @@ Controller_Module::connect_to ( Port *p ) size( flg->w(), flg->h() ); flg->position( x(), y() ); add( flg ); + resizable(flg); +// init_sizes(); } else { @@ -500,7 +523,7 @@ Controller_Module::connect_to ( Port *p ) w->resize( x(), y(), this->w(), h() ); add( w ); resizable( w ); -// init_sizes(); + init_sizes(); } } diff --git a/mixer/src/Controller_Module.H b/mixer/src/Controller_Module.H index 26c5fd4..58edbcf 100644 --- a/mixer/src/Controller_Module.H +++ b/mixer/src/Controller_Module.H @@ -33,6 +33,7 @@ class Controller_Module : public Module { bool _pad; + bool _horizontal; volatile float control_value; @@ -65,6 +66,7 @@ public: Mode mode ( void ) const { return _mode; } void mode ( Mode v ); + void horizontal ( bool v ) { _horizontal = v; } Type type ( void ) const { return _type; } Controller_Module ( bool is_default = false ); diff --git a/mixer/src/Mixer_Strip.C b/mixer/src/Mixer_Strip.C index c4a59e0..ce57b62 100644 --- a/mixer/src/Mixer_Strip.C +++ b/mixer/src/Mixer_Strip.C @@ -649,6 +649,7 @@ Mixer_Strip::init ( ) o->spacing( 20 ); o->type( Fl_Scalepack::HORIZONTAL ); { Controller_Module *o = gain_controller = new Controller_Module( true ); + o->horizontal(false); o->pad( false ); o->size( 33, 100 ); } diff --git a/mixer/src/Module_Parameter_Editor.C b/mixer/src/Module_Parameter_Editor.C index ada5d1c..4d83306 100644 --- a/mixer/src/Module_Parameter_Editor.C +++ b/mixer/src/Module_Parameter_Editor.C @@ -432,7 +432,7 @@ Module_Parameter_Editor::bind_control ( int i ) Controller_Module *o = new Controller_Module(); o->label( p->name() ); o->chain( _module->chain() ); - + o->horizontal( true ); o->connect_to( p ); _module->chain()->add_control( o );