@@ -0,0 +1,111 @@ | |||||
/*******************************************************************************/ | |||||
/* Copyright (C) 2013 Jonathan Moore Liles */ | |||||
/* */ | |||||
/* This program is free software; you can redistribute it and/or modify it */ | |||||
/* under the terms of the GNU General Public License as published by the */ | |||||
/* Free Software Foundation; either version 2 of the License, or (at your */ | |||||
/* option) any later version. */ | |||||
/* */ | |||||
/* This program is distributed in the hope that it will be useful, but WITHOUT */ | |||||
/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ | |||||
/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ | |||||
/* more details. */ | |||||
/* */ | |||||
/* You should have received a copy of the GNU General Public License along */ | |||||
/* with This program; see the file COPYING. If not,write to the Free Software */ | |||||
/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ | |||||
/*******************************************************************************/ | |||||
#include "Fl_DialX.H" | |||||
#include <FL/Fl.H> | |||||
#include <FL/fl_draw.H> | |||||
void | |||||
Fl_DialX::draw ( void ) | |||||
{ | |||||
int X,Y,S; | |||||
{ | |||||
int ox, oy, ww, hh, side; | |||||
ox = x(); | |||||
oy = y(); | |||||
ww = w(); | |||||
hh = h(); | |||||
if (ww > hh) | |||||
{ | |||||
side = hh; | |||||
ox = ox + (ww - side) / 2; | |||||
} | |||||
else | |||||
{ | |||||
side = ww; | |||||
oy = oy + (hh - side) / 2; | |||||
} | |||||
side = w() > h() ? hh : ww; | |||||
X = ox; | |||||
Y = oy; | |||||
S = side; | |||||
} | |||||
draw_box(); | |||||
draw_label(); | |||||
double angle = ( angle2() - angle1() ) * ( value() - minimum()) / ( maximum() - minimum() ) + angle1(); | |||||
fl_draw_box( box(), X, Y, S, S, color() ); | |||||
/* shrink a bit */ | |||||
int OX = x(); | |||||
int OY = y(); | |||||
X += S / 8; | |||||
Y += S / 8; | |||||
int OS = S; | |||||
S -= S / 4; | |||||
fl_line_style( FL_SOLID, S / 12 ); | |||||
/* background arc */ | |||||
fl_color( fl_darker( color() ) ); | |||||
fl_arc( X, Y, S, S, 270 - angle1(), 270 - angle2() ); | |||||
/* foreground arc */ | |||||
fl_color( selection_color() ); | |||||
fl_arc( X, Y, S, S, 270 - angle1(), 270 - angle ); | |||||
fl_line_style( FL_SOLID, 0 ); | |||||
if ( active_r() ) | |||||
{ | |||||
int W = OS; | |||||
int H = OS; | |||||
fl_push_matrix(); | |||||
fl_translate(OX+W/2, OY+H/2); | |||||
fl_scale(W, H); | |||||
fl_rotate(310+angle); | |||||
fl_color( fl_color_add_alpha( FL_WHITE, 127 )); | |||||
fl_begin_polygon(); fl_circle(-0.26, 0.26, 0.12); fl_end_polygon(); | |||||
fl_color( FL_WHITE ); | |||||
fl_begin_polygon(); fl_circle(-0.26, 0.26, 0.06); fl_end_polygon(); | |||||
fl_pop_matrix(); | |||||
} | |||||
fl_color( fl_contrast( labelcolor(), color() ) ); | |||||
if ( Fl::belowmouse() == this ) | |||||
{ | |||||
char s[10]; | |||||
fl_font( FL_HELVETICA, 10 ); | |||||
snprintf( s, sizeof( s ), "%.1f", value() ); | |||||
fl_color( FL_FOREGROUND_COLOR ); | |||||
fl_draw( s, X, Y, S, S, FL_ALIGN_CENTER ); | |||||
} | |||||
} |
@@ -0,0 +1,36 @@ | |||||
/*******************************************************************************/ | |||||
/* Copyright (C) 2013 Jonathan Moore Liles */ | |||||
/* */ | |||||
/* This program is free software; you can redistribute it and/or modify it */ | |||||
/* under the terms of the GNU General Public License as published by the */ | |||||
/* Free Software Foundation; either version 2 of the License, or (at your */ | |||||
/* option) any later version. */ | |||||
/* */ | |||||
/* This program is distributed in the hope that it will be useful, but WITHOUT */ | |||||
/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ | |||||
/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ | |||||
/* more details. */ | |||||
/* */ | |||||
/* You should have received a copy of the GNU General Public License along */ | |||||
/* with This program; see the file COPYING. If not,write to the Free Software */ | |||||
/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ | |||||
/*******************************************************************************/ | |||||
#pragma once | |||||
#include <FL/Fl_Dial.H> | |||||
class Fl_DialX : public Fl_Dial | |||||
{ | |||||
public: | |||||
Fl_DialX ( int X, int Y, int W, int H, const char *L=0 ) : Fl_Dial(X,Y,W,H,L) | |||||
{ | |||||
} | |||||
virtual void draw ( void ); | |||||
virtual ~Fl_DialX() { } | |||||
}; | |||||
@@ -0,0 +1,120 @@ | |||||
/*******************************************************************************/ | |||||
/* Copyright (C) 2013 Jonathan Moore Liles */ | |||||
/* */ | |||||
/* This program is free software; you can redistribute it and/or modify it */ | |||||
/* under the terms of the GNU General Public License as published by the */ | |||||
/* Free Software Foundation; either version 2 of the License, or (at your */ | |||||
/* option) any later version. */ | |||||
/* */ | |||||
/* This program is distributed in the hope that it will be useful, but WITHOUT */ | |||||
/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ | |||||
/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ | |||||
/* more details. */ | |||||
/* */ | |||||
/* You should have received a copy of the GNU General Public License along */ | |||||
/* with This program; see the file COPYING. If not,write to the Free Software */ | |||||
/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ | |||||
/*******************************************************************************/ | |||||
#include "Fl_SliderX.H" | |||||
#include <FL/Fl.H> | |||||
#include <FL/fl_draw.H> | |||||
void | |||||
Fl_SliderX::draw ( int X, int Y, int W, int H) | |||||
{ | |||||
if (damage()&FL_DAMAGE_ALL) draw_box(); | |||||
double val; | |||||
if (minimum() == maximum()) | |||||
val = 0.5; | |||||
else { | |||||
val = (value()-minimum())/(maximum()-minimum()); | |||||
if (val > 1.0) val = 1.0; | |||||
else if (val < 0.0) val = 0.0; | |||||
} | |||||
int ww = (horizontal() ? W : H); | |||||
int hh = (horizontal() ? H : W); | |||||
int xx, S; | |||||
/* S = int(val*ww+.5); */ | |||||
/* if (minimum()>maximum()) {S = ww-S; xx = ww-S;} */ | |||||
/* else xx = 0; */ | |||||
{ | |||||
//S = //int(ww+.5); | |||||
S = hh; | |||||
int T = (horizontal() ? H : W)/2+1; | |||||
// if (type()==FL_VERT_NICE_SLIDER || type()==FL_HOR_NICE_SLIDER) T += 4; | |||||
if (S < T) S = T; | |||||
xx = int(val*(ww-S)+.5); | |||||
} | |||||
int xsl, ysl, wsl, hsl; | |||||
if (horizontal()) { | |||||
xsl = X+xx; | |||||
wsl = S; | |||||
ysl = Y + hh/2; | |||||
hsl = hh/4; | |||||
} else { | |||||
ysl = Y+xx; | |||||
hsl = S; | |||||
xsl = X + hh/2; | |||||
wsl = hh/4; | |||||
} | |||||
{ | |||||
fl_push_clip(X, Y, W, H); | |||||
draw_box(); | |||||
fl_pop_clip(); | |||||
Fl_Color black = active_r() ? FL_BLACK : FL_INACTIVE_COLOR; | |||||
} | |||||
//draw_bg(X, Y, W, H); | |||||
fl_line_style( FL_SOLID, hh/6 ); | |||||
fl_color( fl_darker(color()) ); | |||||
if ( horizontal() ) | |||||
fl_line ( X + S/2, Y + hh/2, X + W - S/2, Y + hh/2 ); | |||||
else | |||||
fl_line ( X + hh/2, Y + S/2, X + hh/2, Y + H - S/2 ); | |||||
fl_color( selection_color() ); | |||||
if ( horizontal() ) | |||||
fl_line ( X + S/2, ysl, xsl + S/2, ysl ); | |||||
else | |||||
fl_line ( X + S/2, Y + H - S/2, xsl, ysl + (S/2) ); | |||||
fl_line_style( FL_SOLID, 0 ); | |||||
fl_push_matrix(); | |||||
if ( horizontal() ) | |||||
fl_translate( xsl + (hh/2), ysl); | |||||
else | |||||
fl_translate( xsl, ysl + (hh/2) ); | |||||
fl_color( fl_color_add_alpha( FL_WHITE, 127 )); | |||||
fl_begin_polygon(); fl_circle(0.0,0.0, hh/3); fl_end_polygon(); | |||||
fl_color( FL_WHITE ); | |||||
fl_begin_polygon(); fl_circle(0.0,0.0, hh/6); fl_end_polygon(); | |||||
fl_pop_matrix(); | |||||
draw_label(xsl, ysl, wsl, hsl); | |||||
if (Fl::focus() == this) { | |||||
draw_focus(); | |||||
} | |||||
/* draw(x()+Fl::box_dx(box()), */ | |||||
/* y()+Fl::box_dy(box()), */ | |||||
/* w()-Fl::box_dw(box()), */ | |||||
/* h()-Fl::box_dh(box())); */ | |||||
} |
@@ -0,0 +1,37 @@ | |||||
/*******************************************************************************/ | |||||
/* Copyright (C) 2013 Jonathan Moore Liles */ | |||||
/* */ | |||||
/* This program is free software; you can redistribute it and/or modify it */ | |||||
/* under the terms of the GNU General Public License as published by the */ | |||||
/* Free Software Foundation; either version 2 of the License, or (at your */ | |||||
/* option) any later version. */ | |||||
/* */ | |||||
/* This program is distributed in the hope that it will be useful, but WITHOUT */ | |||||
/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ | |||||
/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ | |||||
/* more details. */ | |||||
/* */ | |||||
/* You should have received a copy of the GNU General Public License along */ | |||||
/* with This program; see the file COPYING. If not,write to the Free Software */ | |||||
/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ | |||||
/*******************************************************************************/ | |||||
#pragma once | |||||
#include <FL/Fl_Slider.H> | |||||
class Fl_SliderX : public Fl_Slider | |||||
{ | |||||
public: | |||||
Fl_SliderX( int X, int Y, int W, int H, const char *L=0 ) : Fl_Slider(X,Y,W,H,L) | |||||
{ | |||||
} | |||||
virtual ~Fl_SliderX ( ) { }; | |||||
virtual void draw ( int X, int Y, int W, int H ); | |||||
virtual void draw ( void ) { draw(x(),y(),w(),h()); } | |||||
}; |
@@ -20,38 +20,58 @@ | |||||
#include "Fl_Value_SliderX.H" | #include "Fl_Value_SliderX.H" | ||||
int Fl_Value_SliderX::_default_style = NICE_SLIDER; | |||||
void | |||||
Fl_Value_SliderX::draw ( void ) | |||||
{ | |||||
switch ( _default_style ) | |||||
{ | |||||
case NICE_SLIDER: | |||||
{ | |||||
if ( FL_HORIZONTAL == _type ) | |||||
Fl_Value_Slider::type( FL_HOR_NICE_SLIDER ); | |||||
else | |||||
Fl_Value_Slider::type( FL_VERT_NICE_SLIDER ); | |||||
break; | |||||
} | |||||
case FILL_SLIDER: | |||||
{ | |||||
if ( FL_HORIZONTAL == _type ) | |||||
Fl_Value_Slider::type( FL_HOR_FILL_SLIDER ); | |||||
else | |||||
Fl_Value_Slider::type( FL_VERT_FILL_SLIDER ); | |||||
break; | |||||
} | |||||
case SIMPLE_SLIDER: | |||||
{ | |||||
if ( FL_HORIZONTAL == _type ) | |||||
Fl_Value_Slider::type( FL_HOR_SLIDER ); | |||||
else | |||||
Fl_Value_Slider::type( FL_VERT_SLIDER ); | |||||
break; | |||||
} | |||||
} | |||||
Fl_Value_Slider::draw(); | |||||
#include <FL/Fl.H> | |||||
#include <FL/fl_draw.H> | |||||
#include <math.h> | |||||
/** | |||||
Creates a new Fl_Value_SliderX widget using the given | |||||
position, size, and label string. The default boxtype is FL_DOWN_BOX. | |||||
*/ | |||||
Fl_Value_SliderX::Fl_Value_SliderX(int X, int Y, int W, int H, const char*l) | |||||
: Fl_SliderX(X,Y,W,H,l) { | |||||
step(1,100); | |||||
textfont_ = FL_HELVETICA; | |||||
textsize_ = 10; | |||||
textcolor_ = FL_FOREGROUND_COLOR; | |||||
} | |||||
void Fl_Value_SliderX::draw() { | |||||
int sxx = x(), syy = y(), sww = w(), shh = h(); | |||||
int bxx = x(), byy = y(), bww = w(), bhh = h(); | |||||
if (horizontal()) { | |||||
bww = 35; sxx += 35; sww -= 35; | |||||
} else { | |||||
syy += 25; bhh = 25; shh -= 25; | |||||
} | |||||
if (damage()&FL_DAMAGE_ALL) draw_box(box(),sxx,syy,sww,shh,color()); | |||||
Fl_SliderX::draw(sxx+Fl::box_dx(box()), | |||||
syy+Fl::box_dy(box()), | |||||
sww-Fl::box_dw(box()), | |||||
shh-Fl::box_dh(box())); | |||||
draw_box(box(),bxx,byy,bww,bhh,color()); | |||||
char buf[128]; | |||||
format(buf); | |||||
fl_font(textfont(), textsize()); | |||||
fl_color(active_r() ? textcolor() : fl_inactive(textcolor())); | |||||
fl_draw(buf, bxx, byy, bww, bhh, FL_ALIGN_CLIP); | |||||
} | } | ||||
int Fl_Value_SliderX::handle(int event) { | |||||
if (event == FL_PUSH && Fl::visible_focus()) { | |||||
Fl::focus(this); | |||||
redraw(); | |||||
} | |||||
int sxx = x(), syy = y(), sww = w(), shh = h(); | |||||
if (horizontal()) { | |||||
sxx += 35; sww -= 35; | |||||
} else { | |||||
syy += 25; shh -= 25; | |||||
} | |||||
return Fl_SliderX::handle(event, | |||||
sxx+Fl::box_dx(box()), | |||||
syy+Fl::box_dy(box()), | |||||
sww-Fl::box_dw(box()), | |||||
shh-Fl::box_dh(box())); | |||||
} | |||||
@@ -17,41 +17,39 @@ | |||||
/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ | /* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ | ||||
/*******************************************************************************/ | /*******************************************************************************/ | ||||
/* just like an Fl_Value_Slider, except that it responds to mousewheel events */ | |||||
#pragma once | |||||
#include <FL/Fl_Value_Slider.H> | |||||
#include <FL/Fl.H> | |||||
#include <math.h> | |||||
class Fl_Value_SliderX : public Fl_Value_Slider | |||||
{ | |||||
static int _default_style; | |||||
int _type; | |||||
#ifndef Fl_Value_SliderX_H | |||||
#define Fl_Value_SliderX_H | |||||
#include "Fl_SliderX.H" | |||||
/** | |||||
The Fl_Value_SliderX widget is a Fl_SliderX widget | |||||
with a box displaying the current value. | |||||
<P ALIGN=CENTER>\image html value_slider.png | |||||
\image latex value_slider.png "Fl_Value_SliderX" width=4cm | |||||
*/ | |||||
class FL_EXPORT Fl_Value_SliderX : public Fl_SliderX { | |||||
Fl_Font textfont_; | |||||
Fl_Fontsize textsize_; | |||||
Fl_Color textcolor_; | |||||
protected: | |||||
void draw(); | |||||
public: | public: | ||||
int handle(int); | |||||
Fl_Value_SliderX(int x,int y,int w,int h, const char *l = 0); | |||||
/** Gets the typeface of the text in the value box. */ | |||||
Fl_Font textfont() const {return textfont_;} | |||||
/** Sets the typeface of the text in the value box. */ | |||||
void textfont(Fl_Font s) {textfont_ = s;} | |||||
/** Gets the size of the text in the value box. */ | |||||
Fl_Fontsize textsize() const {return textsize_;} | |||||
/** Sets the size of the text in the value box. */ | |||||
void textsize(Fl_Fontsize s) {textsize_ = s;} | |||||
/** Gets the color of the text in the value box. */ | |||||
Fl_Color textcolor() const {return textcolor_;} | |||||
/** Sets the color of the text in the value box. */ | |||||
void textcolor(Fl_Color s) {textcolor_ = s;} | |||||
}; | |||||
enum | |||||
{ | |||||
NICE_SLIDER, | |||||
SIMPLE_SLIDER, | |||||
FILL_SLIDER | |||||
}; | |||||
static void default_style ( int n ) { Fl_Value_SliderX::_default_style = n; } | |||||
int type ( void ) const { return _type; } | |||||
void type ( int v ) { _type = v; } | |||||
Fl_Value_SliderX ( int X, int Y, int W, int H, const char *L = 0 ) | |||||
: Fl_Value_Slider( X, Y, W, H, L ) | |||||
{ | |||||
} | |||||
virtual ~Fl_Value_SliderX() { } | |||||
#endif | |||||
virtual void draw ( void ); | |||||
}; |
@@ -15,6 +15,8 @@ Fl_Menu_Settings.C | |||||
Fl_Scalepack.C | Fl_Scalepack.C | ||||
Fl_Text_Edit_Window.fl | Fl_Text_Edit_Window.fl | ||||
Fl_Value_SliderX.C | Fl_Value_SliderX.C | ||||
Fl_DialX.C | |||||
Fl_SliderX.C | |||||
New_Project_Dialog.fl | New_Project_Dialog.fl | ||||
event_name.C | event_name.C | ||||
menu_popup.C | menu_popup.C | ||||
@@ -31,7 +31,7 @@ | |||||
#include <FL/Fl_Menu_.H> | #include <FL/Fl_Menu_.H> | ||||
#include <FL/Fl_Light_Button.H> | #include <FL/Fl_Light_Button.H> | ||||
#include <FL/fl_draw.H> | #include <FL/fl_draw.H> | ||||
#include "FL/Fl_Dial.H" | |||||
#include "FL/Fl_DialX.H" | |||||
#include "FL/Fl_Labelpad_Group.H" | #include "FL/Fl_Labelpad_Group.H" | ||||
#include "FL/Fl_Value_SliderX.H" | #include "FL/Fl_Value_SliderX.H" | ||||
#include "Panner.H" | #include "Panner.H" | ||||
@@ -362,8 +362,8 @@ Controller_Module::connect_to ( Port *p ) | |||||
w = o; | w = o; | ||||
o->type(4); | o->type(4); | ||||
o->color(FL_DARK1); | |||||
o->selection_color(FL_RED); | |||||
o->color( FL_DARK1 ); | |||||
o->selection_color( fl_color_average( FL_GRAY, FL_CYAN, 0.5 ) ); | |||||
o->minimum(1.5); | o->minimum(1.5); | ||||
o->maximum(0); | o->maximum(0); | ||||
o->value(1); | o->value(1); | ||||
@@ -381,7 +381,7 @@ Controller_Module::connect_to ( Port *p ) | |||||
} | } | ||||
else | else | ||||
{ | { | ||||
{ Fl_Dial *o = new Fl_Dial( 0, 0, 50, 50, p->name() ); | |||||
{ Fl_DialX *o = new Fl_DialX( 0, 0, 50, 50, p->name() ); | |||||
w = o; | w = o; | ||||
control = o; | control = o; | ||||
@@ -289,36 +289,6 @@ void Mixer::cb_menu(Fl_Widget* o) { | |||||
{ | { | ||||
fl_theme_chooser(); | fl_theme_chooser(); | ||||
} | } | ||||
else if (! strcmp( picked, "&Options/&Display/&Knobs/&Burnished") ) | |||||
{ | |||||
Fl_Dial::default_style( Fl_Dial::BURNISHED_DIAL ); | |||||
redraw_windows(); | |||||
} | |||||
else if (! strcmp( picked, "&Options/&Display/&Knobs/&Arc") ) | |||||
{ | |||||
Fl_Dial::default_style( Fl_Dial::ARC_DIAL ); | |||||
redraw_windows(); | |||||
} | |||||
else if (! strcmp( picked, "&Options/&Display/&Knobs/&Plastic") ) | |||||
{ | |||||
Fl_Dial::default_style( Fl_Dial::PLASTIC_DIAL ); | |||||
redraw_windows(); | |||||
} | |||||
else if (! strcmp( picked, "&Options/&Display/&Sliders/&Nice") ) | |||||
{ | |||||
Fl_Value_SliderX::default_style( Fl_Value_SliderX::NICE_SLIDER ); | |||||
redraw_windows(); | |||||
} | |||||
else if (! strcmp( picked, "&Options/&Display/&Sliders/&Fill") ) | |||||
{ | |||||
Fl_Value_SliderX::default_style( Fl_Value_SliderX::FILL_SLIDER ); | |||||
redraw_windows(); | |||||
} | |||||
else if (! strcmp( picked, "&Options/&Display/&Sliders/&Simple") ) | |||||
{ | |||||
Fl_Value_SliderX::default_style( Fl_Value_SliderX::SIMPLE_SLIDER ); | |||||
redraw_windows(); | |||||
} | |||||
else if ( ! strcmp( picked, "&Help/&About" ) ) | else if ( ! strcmp( picked, "&Help/&About" ) ) | ||||
{ | { | ||||
About_Dialog ab( PIXMAP_PATH "/non-mixer/icon-256x256.png" ); | About_Dialog ab( PIXMAP_PATH "/non-mixer/icon-256x256.png" ); | ||||
@@ -444,13 +414,6 @@ Mixer::Mixer ( int X, int Y, int W, int H, const char *L ) : | |||||
o->add( "&Mixer/Add &N Strips" ); | o->add( "&Mixer/Add &N Strips" ); | ||||
o->add( "&Mixer/&Import Strip" ); | o->add( "&Mixer/&Import Strip" ); | ||||
o->add( "&View/&Theme", 0, 0, 0 ); | o->add( "&View/&Theme", 0, 0, 0 ); | ||||
o->add( "_&Options/&Display/&Knobs/&Arc", 0, 0, 0, FL_MENU_RADIO ); | |||||
o->add( "_&Options/&Display/&Knobs/&Burnished", 0, 0, 0, FL_MENU_RADIO ); | |||||
o->add( "_&Options/&Display/&Knobs/&Plastic", 0, 0, 0, FL_MENU_RADIO | FL_MENU_VALUE ); | |||||
o->add( "_&Options/&Display/&Sliders/&Nice", 0, 0, 0, FL_MENU_RADIO | FL_MENU_VALUE ); | |||||
o->add( "_&Options/&Display/&Sliders/&Fill", 0, 0, 0, FL_MENU_RADIO ); | |||||
o->add( "_&Options/&Display/&Sliders/&Simple", 0, 0, 0, FL_MENU_RADIO ); | |||||
o->add( "_&Options/&Display/&Colors/&System", 0, 0, 0, FL_MENU_RADIO ); | |||||
o->add( "&Help/&Manual" ); | o->add( "&Help/&Manual" ); | ||||
o->add( "&Help/&About" ); | o->add( "&Help/&About" ); | ||||
o->callback( cb_menu, this ); | o->callback( cb_menu, this ); | ||||
@@ -760,19 +723,19 @@ Mixer::load_options ( void ) | |||||
{ | { | ||||
// save options | // save options | ||||
char *path; | |||||
asprintf( &path, "%s/options", user_config_dir ); | |||||
((Fl_Menu_Settings*)menubar)->load( menubar->find_item( "&Options" ), path ); | |||||
free( path ); | |||||
/* char *path; */ | |||||
/* asprintf( &path, "%s/options", user_config_dir ); */ | |||||
/* ((Fl_Menu_Settings*)menubar)->load( menubar->find_item( "&Options" ), path ); */ | |||||
/* free( path ); */ | |||||
} | } | ||||
void | void | ||||
Mixer::save_options ( void ) | Mixer::save_options ( void ) | ||||
{ | { | ||||
char *path; | |||||
asprintf( &path, "%s/%s", user_config_dir, options_filename ); | |||||
((Fl_Menu_Settings*)menubar)->dump( menubar->find_item( "&Options" ), path ); | |||||
free( path ); | |||||
/* char *path; */ | |||||
/* asprintf( &path, "%s/%s", user_config_dir, options_filename ); */ | |||||
/* ((Fl_Menu_Settings*)menubar)->dump( menubar->find_item( "&Options" ), path ); */ | |||||
/* free( path ); */ | |||||
} | } | ||||
void | void | ||||
@@ -32,7 +32,7 @@ | |||||
#include "FL/Fl_Flowpack.H" | #include "FL/Fl_Flowpack.H" | ||||
#include "FL/Fl_Labelpad_Group.H" | #include "FL/Fl_Labelpad_Group.H" | ||||
#include "FL/Fl_Value_SliderX.H" | #include "FL/Fl_Value_SliderX.H" | ||||
#include "FL/Fl_Dial.H" | |||||
#include "FL/Fl_DialX.H" | |||||
#include "Module.H" | #include "Module.H" | ||||
#include "Module_Parameter_Editor.H" | #include "Module_Parameter_Editor.H" | ||||
@@ -145,6 +145,9 @@ Module_Parameter_Editor::make_controls ( void ) | |||||
elevation_port_number = -1; | elevation_port_number = -1; | ||||
float elevation_value = 0.0f; | float elevation_value = 0.0f; | ||||
Fl_Color fc = fl_color_add_alpha( FL_CYAN, 200 ); | |||||
Fl_Color bc = FL_BACKGROUND2_COLOR; | |||||
controls_by_port.resize( module->control_input.size() ); | controls_by_port.resize( module->control_input.size() ); | ||||
for ( unsigned int i = 0; i < module->control_input.size(); ++i ) | for ( unsigned int i = 0; i < module->control_input.size(); ++i ) | ||||
@@ -177,7 +180,7 @@ Module_Parameter_Editor::make_controls ( void ) | |||||
{ | { | ||||
Fl_Button *o = new Fl_Button( 0, 0, 30, 30, p->name() ); | Fl_Button *o = new Fl_Button( 0, 0, 30, 30, p->name() ); | ||||
w = o; | w = o; | ||||
o->selection_color( FL_GREEN ); | |||||
o->selection_color( fc ); | |||||
o->type( FL_TOGGLE_BUTTON ); | o->type( FL_TOGGLE_BUTTON ); | ||||
o->value( p->control_value() ); | o->value( p->control_value() ); | ||||
} | } | ||||
@@ -203,7 +206,7 @@ Module_Parameter_Editor::make_controls ( void ) | |||||
{ | { | ||||
if ( mode_choice->value() == 0 ) | if ( mode_choice->value() == 0 ) | ||||
{ | { | ||||
Fl_Dial *o = new Fl_Dial( 0, 0, 60, 60, p->name() ); | |||||
Fl_DialX *o = new Fl_DialX( 0, 0, 60, 60, p->name() ); | |||||
w = o; | w = o; | ||||
if ( p->hints.ranged ) | if ( p->hints.ranged ) | ||||
@@ -213,9 +216,8 @@ Module_Parameter_Editor::make_controls ( void ) | |||||
o->minimum( p->hints.minimum ); | o->minimum( p->hints.minimum ); | ||||
o->maximum( p->hints.maximum ); | o->maximum( p->hints.maximum ); | ||||
} | } | ||||
o->color( FL_GRAY ); | |||||
o->selection_color( FL_WHITE ); | |||||
o->color( bc ); | |||||
o->selection_color( fc ); | |||||
o->value( p->control_value() ); | o->value( p->control_value() ); | ||||
// o->step( fabs( ( o->maximum() - o->minimum() ) ) / 32.0f ); | // o->step( fabs( ( o->maximum() - o->minimum() ) ) / 32.0f ); | ||||
@@ -229,7 +231,7 @@ Module_Parameter_Editor::make_controls ( void ) | |||||
{ | { | ||||
o->type( FL_HORIZONTAL ); | o->type( FL_HORIZONTAL ); | ||||
o->size( 120, 36 ); | |||||
o->size( 120, 24 ); | |||||
if ( p->hints.ranged ) | if ( p->hints.ranged ) | ||||
{ | { | ||||
o->minimum( p->hints.minimum ); | o->minimum( p->hints.minimum ); | ||||
@@ -240,17 +242,18 @@ Module_Parameter_Editor::make_controls ( void ) | |||||
{ | { | ||||
o->type( FL_VERTICAL ); | o->type( FL_VERTICAL ); | ||||
o->size( 36, 120 ); | |||||
o->size( 24, 120 ); | |||||
/* have to reverse the meaning of these to get the | /* have to reverse the meaning of these to get the | ||||
* orientation of the slider right */ | * orientation of the slider right */ | ||||
o->maximum( p->hints.minimum ); | o->maximum( p->hints.minimum ); | ||||
o->minimum( p->hints.maximum ); | o->minimum( p->hints.maximum ); | ||||
} | } | ||||
o->textsize( 8 ); | |||||
o->box( FL_NO_BOX ); | |||||
o->slider( FL_UP_BOX ); | o->slider( FL_UP_BOX ); | ||||
// o->color( FL_BACKGROUND2_COLOR ); | |||||
o->color( FL_BACKGROUND2_COLOR ); | |||||
o->selection_color( FL_WHITE ); | |||||
o->color( bc ); | |||||
o->selection_color( fc ); | |||||
o->value( p->control_value() ); | o->value( p->control_value() ); | ||||
} | } | ||||