Massive consting.
This commit is contained in:
parent
d87b35c4e0
commit
63ebacb872
|
@ -30,8 +30,7 @@ class Audio_Sequence : public Sequence
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
void
|
virtual void get ( Log_Entry &e ) const
|
||||||
get ( Log_Entry &e )
|
|
||||||
{
|
{
|
||||||
Sequence::get( e );
|
Sequence::get( e );
|
||||||
|
|
||||||
|
@ -100,7 +99,7 @@ public:
|
||||||
return t;
|
return t;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *class_name ( void ) { return "Audio_Sequence"; }
|
// const char *class_name ( void ) { return "Audio_Sequence"; }
|
||||||
|
|
||||||
int handle ( int m );
|
int handle ( int m );
|
||||||
void dump ( void );
|
void dump ( void );
|
||||||
|
|
|
@ -36,10 +36,9 @@ class Control_Point : public Sequence_Point
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
const char *class_name ( void ) { return "Control_Point"; }
|
// const char *class_name ( void ) { return "Control_Point"; }
|
||||||
|
|
||||||
void
|
virtual void get ( Log_Entry &e ) const
|
||||||
get ( Log_Entry &e )
|
|
||||||
{
|
{
|
||||||
Sequence_Point::get( e );
|
Sequence_Point::get( e );
|
||||||
|
|
||||||
|
@ -68,7 +67,7 @@ protected:
|
||||||
|
|
||||||
Control_Point ( )
|
Control_Point ( )
|
||||||
{
|
{
|
||||||
|
_box_color = FL_WHITE;
|
||||||
}
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
@ -87,8 +86,7 @@ public:
|
||||||
_track = t;
|
_track = t;
|
||||||
_y = y;
|
_y = y;
|
||||||
_r->offset = when;
|
_r->offset = when;
|
||||||
|
_box_color = FL_WHITE;
|
||||||
// _make_label();
|
|
||||||
|
|
||||||
log_create();
|
log_create();
|
||||||
}
|
}
|
||||||
|
|
|
@ -52,7 +52,7 @@ Control_Sequence::init ( void )
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
Control_Sequence::get ( Log_Entry &e )
|
Control_Sequence::get ( Log_Entry &e ) const
|
||||||
{
|
{
|
||||||
Sequence::get( e );
|
Sequence::get( e );
|
||||||
|
|
||||||
|
|
|
@ -32,7 +32,7 @@ class Control_Sequence : public Sequence
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
|
|
||||||
void get ( Log_Entry &e );
|
virtual void get ( Log_Entry &e ) const;
|
||||||
void set ( Log_Entry &e );
|
void set ( Log_Entry &e );
|
||||||
|
|
||||||
Control_Sequence ( ) : Sequence( 0, 0, 0, 1 )
|
Control_Sequence ( ) : Sequence( 0, 0, 0, 1 )
|
||||||
|
@ -55,7 +55,7 @@ public:
|
||||||
Control_Sequence ( Track * );
|
Control_Sequence ( Track * );
|
||||||
~Control_Sequence ( );
|
~Control_Sequence ( );
|
||||||
|
|
||||||
const char *class_name ( void ) { return "Control_Sequence"; }
|
// const char *class_name ( void ) { return "Control_Sequence"; }
|
||||||
|
|
||||||
void draw ( void );
|
void draw ( void );
|
||||||
int handle ( int m );
|
int handle ( int m );
|
||||||
|
|
|
@ -341,8 +341,10 @@ Loggable::snapshot( FILE *fp )
|
||||||
|
|
||||||
for ( int i = 0; i < _log_id; ++i )
|
for ( int i = 0; i < _log_id; ++i )
|
||||||
{
|
{
|
||||||
if ( _class_map[ string( _loggables[ i ]->class_name() ) ] )
|
const Loggable * l = _loggables[ i ];
|
||||||
_loggables[ i ]->log_create();
|
|
||||||
|
if ( l && _class_map[ string( l->class_name() ) ] )
|
||||||
|
l->log_create();
|
||||||
}
|
}
|
||||||
|
|
||||||
_fp = ofp;
|
_fp = ofp;
|
||||||
|
@ -428,7 +430,7 @@ Loggable::flush ( void )
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
Loggable::log_print( char **o, char **n )
|
Loggable::log_print( char **o, char **n ) const
|
||||||
{
|
{
|
||||||
if ( n )
|
if ( n )
|
||||||
for ( ; *n; n++ )
|
for ( ; *n; n++ )
|
||||||
|
@ -533,7 +535,7 @@ Loggable::log_end ( void )
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
Loggable::log_create ( void )
|
Loggable::log_create ( void ) const
|
||||||
{
|
{
|
||||||
// indent();
|
// indent();
|
||||||
log( "%s 0x%X create ", class_name(), _id );
|
log( "%s 0x%X create ", class_name(), _id );
|
||||||
|
@ -559,7 +561,7 @@ Loggable::log_create ( void )
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
Loggable::log_destroy ( void )
|
Loggable::log_destroy ( void ) const
|
||||||
{
|
{
|
||||||
// indent();
|
// indent();
|
||||||
log( "%s 0x%X destroy (nothing) << ", class_name(), _id );
|
log( "%s 0x%X destroy (nothing) << ", class_name(), _id );
|
||||||
|
|
|
@ -42,14 +42,18 @@ typedef Loggable *(create_func)(Log_Entry &);
|
||||||
#define LOG_REGISTER_CREATE( class ) \
|
#define LOG_REGISTER_CREATE( class ) \
|
||||||
Loggable::register_create( #class, & class ::create );
|
Loggable::register_create( #class, & class ::create );
|
||||||
|
|
||||||
#define LOG_CREATE_FUNC( class ) \
|
#define LOG_NAME_FUNC( class ) \
|
||||||
static Loggable * \
|
virtual const char *class_name ( void ) const { return #class ; }
|
||||||
create ( Log_Entry &e ) \
|
|
||||||
{ \
|
#define LOG_CREATE_FUNC( class ) \
|
||||||
class *r = new class; \
|
static Loggable * \
|
||||||
r->set( e ); \
|
create ( Log_Entry &e ) \
|
||||||
return (Loggable *)r; \
|
{ \
|
||||||
} \
|
class *r = new class; \
|
||||||
|
r->set( e ); \
|
||||||
|
return (Loggable *)r; \
|
||||||
|
} \
|
||||||
|
LOG_NAME_FUNC( class ); \
|
||||||
|
|
||||||
|
|
||||||
class Logger;
|
class Logger;
|
||||||
|
@ -76,7 +80,7 @@ private:
|
||||||
|
|
||||||
int _nest;
|
int _nest;
|
||||||
|
|
||||||
void log_print( char **o, char **n );
|
void log_print( char **o, char **n ) const;
|
||||||
static void log ( const char *fmt, ... );
|
static void log ( const char *fmt, ... );
|
||||||
|
|
||||||
static void flush ( void );
|
static void flush ( void );
|
||||||
|
@ -171,8 +175,7 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
/* log messages for journal */
|
/* log messages for journal */
|
||||||
virtual const char *class_name ( void ) = 0;
|
virtual void get ( Log_Entry &e ) const = 0;
|
||||||
virtual void get ( Log_Entry &e ) = 0;
|
|
||||||
virtual void set ( Log_Entry &e ) = 0;
|
virtual void set ( Log_Entry &e ) = 0;
|
||||||
|
|
||||||
static bool do_this ( const char *s, bool reverse );
|
static bool do_this ( const char *s, bool reverse );
|
||||||
|
@ -181,11 +184,13 @@ protected:
|
||||||
|
|
||||||
void log_start ( void );
|
void log_start ( void );
|
||||||
void log_end ( void );
|
void log_end ( void );
|
||||||
void log_create ( void );
|
void log_create ( void ) const;
|
||||||
void log_destroy ( void );
|
void log_destroy ( void ) const;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
virtual const char *class_name ( void ) const = 0;
|
||||||
|
|
||||||
int id ( void ) { return _id; }
|
int id ( void ) { return _id; }
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -102,10 +102,9 @@ private:
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
const char *class_name ( void ) { return "Region"; }
|
// const char *class_name ( void ) { return "Region"; }
|
||||||
|
|
||||||
void
|
virtual void get ( Log_Entry &e ) const
|
||||||
get ( Log_Entry &e )
|
|
||||||
{
|
{
|
||||||
e.add( ":source", _clip ? _clip->name() : "" );
|
e.add( ":source", _clip ? _clip->name() : "" );
|
||||||
e.add( ":gain", _scale );
|
e.add( ":gain", _scale );
|
||||||
|
|
|
@ -37,10 +37,9 @@ public:
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
const char *class_name ( void ) { return "Ruler_Point"; }
|
// const char *class_name ( void ) { return "Ruler_Point"; }
|
||||||
|
|
||||||
void
|
virtual void get ( Log_Entry &e ) const
|
||||||
get ( Log_Entry &e )
|
|
||||||
{
|
{
|
||||||
Sequence_Point::get( e );
|
Sequence_Point::get( e );
|
||||||
|
|
||||||
|
|
|
@ -54,7 +54,7 @@ protected:
|
||||||
std::list <Sequence_Widget *> _widgets;
|
std::list <Sequence_Widget *> _widgets;
|
||||||
Sequence_Widget *event_widget ( void );
|
Sequence_Widget *event_widget ( void );
|
||||||
|
|
||||||
virtual const char *class_name ( void ) { return "Sequence"; }
|
// virtual const char *class_name ( void ) { return "Sequence"; }
|
||||||
|
|
||||||
|
|
||||||
virtual void set ( Log_Entry &e )
|
virtual void set ( Log_Entry &e )
|
||||||
|
@ -72,7 +72,7 @@ protected:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual void get ( Log_Entry &e )
|
virtual void get ( Log_Entry &e ) const
|
||||||
{
|
{
|
||||||
e.add( ":n", name() );
|
e.add( ":n", name() );
|
||||||
// e.add( ":t", _track );
|
// e.add( ":t", _track );
|
||||||
|
@ -91,6 +91,8 @@ protected:
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
LOG_NAME_FUNC( Sequence );
|
||||||
|
|
||||||
Sequence ( int X, int Y, int W, int H, Track *track=0 );
|
Sequence ( int X, int Y, int W, int H, Track *track=0 );
|
||||||
|
|
||||||
virtual ~Sequence ( );
|
virtual ~Sequence ( );
|
||||||
|
|
|
@ -28,7 +28,7 @@ protected:
|
||||||
|
|
||||||
char *_label;
|
char *_label;
|
||||||
|
|
||||||
virtual void get ( Log_Entry &e )
|
virtual void get ( Log_Entry &e ) const
|
||||||
{
|
{
|
||||||
e.add( ":x", _r->offset );
|
e.add( ":x", _r->offset );
|
||||||
e.add( ":t", _track );
|
e.add( ":t", _track );
|
||||||
|
|
|
@ -77,8 +77,7 @@ protected:
|
||||||
Drag *_drag;
|
Drag *_drag;
|
||||||
|
|
||||||
|
|
||||||
virtual void
|
virtual void get ( Log_Entry &e ) const
|
||||||
get ( Log_Entry &e )
|
|
||||||
{
|
{
|
||||||
e.add( ":x", _r->offset );
|
e.add( ":x", _r->offset );
|
||||||
e.add( ":l", _r->start );
|
e.add( ":l", _r->start );
|
||||||
|
@ -139,6 +138,9 @@ public:
|
||||||
_r->offset = _r->start = _r->end = 0;
|
_r->offset = _r->start = _r->end = 0;
|
||||||
|
|
||||||
_drag = NULL;
|
_drag = NULL;
|
||||||
|
|
||||||
|
_box_color = FL_BACKGROUND_COLOR;
|
||||||
|
_color = FL_FOREGROUND_COLOR;
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual ~Sequence_Widget ( )
|
virtual ~Sequence_Widget ( )
|
||||||
|
@ -173,7 +175,7 @@ public:
|
||||||
|
|
||||||
virtual Sequence_Widget *clone ( const Sequence_Widget *r ) = 0;
|
virtual Sequence_Widget *clone ( const Sequence_Widget *r ) = 0;
|
||||||
|
|
||||||
bool selected ( void )
|
bool selected ( void ) const
|
||||||
{
|
{
|
||||||
return ::find( _selection.begin(), _selection.end(), this ) != _selection.end();
|
return ::find( _selection.begin(), _selection.end(), this ) != _selection.end();
|
||||||
}
|
}
|
||||||
|
|
|
@ -120,6 +120,7 @@ exit( 0 );}
|
||||||
}
|
}
|
||||||
MenuItem {} {
|
MenuItem {} {
|
||||||
label Undo
|
label Undo
|
||||||
|
callback {Loggable::undo();} selected
|
||||||
xywh {0 0 40 25} shortcut 0x4007a
|
xywh {0 0 40 25} shortcut 0x4007a
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -191,8 +192,30 @@ exit( 0 );}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Submenu timeline_menu {
|
||||||
|
label {&Timeline} open
|
||||||
|
xywh {0 0 74 25}
|
||||||
|
} {
|
||||||
|
Submenu {} {
|
||||||
|
label {&Snap} open
|
||||||
|
xywh {0 0 74 25}
|
||||||
|
} {
|
||||||
|
MenuItem {} {
|
||||||
|
label Bars
|
||||||
|
xywh {0 0 40 25} type Radio value 1
|
||||||
|
}
|
||||||
|
MenuItem {} {
|
||||||
|
label Beats
|
||||||
|
xywh {10 10 40 25} type Radio
|
||||||
|
}
|
||||||
|
MenuItem {} {
|
||||||
|
label Off
|
||||||
|
xywh {20 20 40 25} type Radio
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Submenu options_menu {
|
Submenu options_menu {
|
||||||
label {&Options} open
|
label {&Options}
|
||||||
xywh {0 0 74 25} divider
|
xywh {0 0 74 25} divider
|
||||||
} {
|
} {
|
||||||
Submenu {} {
|
Submenu {} {
|
||||||
|
@ -350,7 +373,7 @@ Fl::scheme( Fl::scheme() );}
|
||||||
class Clock
|
class Clock
|
||||||
}
|
}
|
||||||
Fl_Box {} {
|
Fl_Box {} {
|
||||||
label PLAYHEAD selected
|
label PLAYHEAD
|
||||||
xywh {325 29 142 40} box BORDER_BOX color 46
|
xywh {325 29 142 40} box BORDER_BOX color 46
|
||||||
code0 {o->type( Clock::BBT );}
|
code0 {o->type( Clock::BBT );}
|
||||||
code1 {o->run( &transport->frame );}
|
code1 {o->run( &transport->frame );}
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
#include "Timeline.H" // for timeline->tempo_track
|
#include "Timeline.H" // for timeline->tempo_track
|
||||||
|
|
||||||
void
|
void
|
||||||
Tempo_Point::get ( Log_Entry &e )
|
Tempo_Point::get ( Log_Entry &e ) const
|
||||||
{
|
{
|
||||||
e.add( ":x", _r->offset );
|
e.add( ":x", _r->offset );
|
||||||
e.add( ":tempo", _tempo );
|
e.add( ":tempo", _tempo );
|
||||||
|
|
|
@ -37,9 +37,9 @@ class Tempo_Point : public Sequence_Point
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
const char *class_name ( void ) { return "Tempo_Point"; }
|
// const char *class_name ( void ) { return "Tempo_Point"; }
|
||||||
|
|
||||||
void get ( Log_Entry &e );
|
virtual void get ( Log_Entry &e ) const;
|
||||||
void set ( Log_Entry &e );
|
void set ( Log_Entry &e );
|
||||||
|
|
||||||
Tempo_Point ( )
|
Tempo_Point ( )
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
#include "Timeline.H" // for timeline->time_track
|
#include "Timeline.H" // for timeline->time_track
|
||||||
|
|
||||||
void
|
void
|
||||||
Time_Point::get ( Log_Entry &e )
|
Time_Point::get ( Log_Entry &e ) const
|
||||||
{
|
{
|
||||||
e.add( ":x", _r->offset );
|
e.add( ":x", _r->offset );
|
||||||
e.add( ":beats_per_bar", _time.beats_per_bar );
|
e.add( ":beats_per_bar", _time.beats_per_bar );
|
||||||
|
|
|
@ -63,9 +63,9 @@ class Time_Point : public Sequence_Point
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
const char *class_name ( void ) { return "Time_Point"; }
|
// const char *class_name ( void ) { return "Time_Point"; }
|
||||||
|
|
||||||
void get ( Log_Entry &e );
|
virtual void get ( Log_Entry &e ) const;
|
||||||
void set ( Log_Entry &e );
|
void set ( Log_Entry &e );
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -929,6 +929,39 @@ Timeline::remove_track ( Track *track )
|
||||||
redraw();
|
redraw();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Initiate recording for all armed tracks */
|
||||||
|
bool
|
||||||
|
Timeline::record ( void )
|
||||||
|
{
|
||||||
|
for ( int i = tracks->children(); i-- ; )
|
||||||
|
{
|
||||||
|
Track *t = (Track*)tracks->child( i );
|
||||||
|
|
||||||
|
if ( t->armed() && t->record_ds )
|
||||||
|
t->record_ds->start( transport->frame );
|
||||||
|
}
|
||||||
|
|
||||||
|
deactivate();
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** stop recording for all armed tracks */
|
||||||
|
void
|
||||||
|
Timeline::stop ( void )
|
||||||
|
{
|
||||||
|
for ( int i = tracks->children(); i-- ; )
|
||||||
|
{
|
||||||
|
Track *t = (Track*)tracks->child( i );
|
||||||
|
|
||||||
|
if ( t->armed() && t->record_ds )
|
||||||
|
t->record_ds->stop( transport->frame );
|
||||||
|
}
|
||||||
|
|
||||||
|
activate();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**********/
|
/**********/
|
||||||
/* Engine */
|
/* Engine */
|
||||||
/**********/
|
/**********/
|
||||||
|
|
|
@ -160,6 +160,10 @@ public:
|
||||||
int total_input_buffer_percent ( void );
|
int total_input_buffer_percent ( void );
|
||||||
int total_output_buffer_percent ( void );
|
int total_output_buffer_percent ( void );
|
||||||
|
|
||||||
|
|
||||||
|
bool record ( void );
|
||||||
|
void stop ( void );
|
||||||
|
|
||||||
void zoom ( float secs );
|
void zoom ( float secs );
|
||||||
void zoom_in ( void );
|
void zoom_in ( void );
|
||||||
void zoom_out ( void );
|
void zoom_out ( void );
|
||||||
|
|
|
@ -62,12 +62,6 @@ Track::cb_button ( Fl_Widget *w )
|
||||||
if ( w == record_button )
|
if ( w == record_button )
|
||||||
{
|
{
|
||||||
|
|
||||||
/* /\* FIXME: wrong place for this! *\/ */
|
|
||||||
/* if ( record_button->value() ) */
|
|
||||||
/* record_ds->start( transport->frame ); */
|
|
||||||
/* else */
|
|
||||||
/* record_ds->stop( transport->frame ); */
|
|
||||||
|
|
||||||
}
|
}
|
||||||
if ( w == mute_button )
|
if ( w == mute_button )
|
||||||
{
|
{
|
||||||
|
|
|
@ -109,7 +109,7 @@ public:
|
||||||
Playback_DS *playback_ds;
|
Playback_DS *playback_ds;
|
||||||
Record_DS *record_ds;
|
Record_DS *record_ds;
|
||||||
|
|
||||||
const char *class_name ( void ) { return "Track"; }
|
// const char *class_name ( void ) { return "Track"; }
|
||||||
|
|
||||||
void
|
void
|
||||||
set ( Log_Entry &e )
|
set ( Log_Entry &e )
|
||||||
|
@ -160,8 +160,7 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
virtual void get ( Log_Entry &e ) const
|
||||||
get ( Log_Entry &e )
|
|
||||||
{
|
{
|
||||||
e.add( ":n", _name );
|
e.add( ":n", _name );
|
||||||
e.add( ":t", track() );
|
e.add( ":t", track() );
|
||||||
|
@ -225,7 +224,7 @@ public:
|
||||||
static int width ( void ) { return 150; }
|
static int width ( void ) { return 150; }
|
||||||
|
|
||||||
void track( Sequence * t );
|
void track( Sequence * t );
|
||||||
Sequence * track ( void ) { return _track; }
|
Sequence * track ( void ) const { return _track; }
|
||||||
|
|
||||||
void draw ( void );
|
void draw ( void );
|
||||||
int handle ( int m );
|
int handle ( int m );
|
||||||
|
|
|
@ -46,6 +46,10 @@ Transport::start ( void )
|
||||||
{
|
{
|
||||||
// MESSAGE( "Starting transport" );
|
// MESSAGE( "Starting transport" );
|
||||||
jack_transport_start( client );
|
jack_transport_start( client );
|
||||||
|
|
||||||
|
if ( _record_button->value() )
|
||||||
|
timeline->record();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -53,6 +57,9 @@ Transport::stop ( void )
|
||||||
{
|
{
|
||||||
// MESSAGE( "Stopping transport" );
|
// MESSAGE( "Stopping transport" );
|
||||||
jack_transport_stop( client );
|
jack_transport_stop( client );
|
||||||
|
|
||||||
|
if ( _record_button->value() )
|
||||||
|
timeline->stop();
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
@ -56,7 +56,13 @@ private:
|
||||||
else if ( w == _play_button )
|
else if ( w == _play_button )
|
||||||
toggle();
|
toggle();
|
||||||
else if ( w == _record_button )
|
else if ( w == _record_button )
|
||||||
printf( "FIXME: record now\n" );
|
{
|
||||||
|
if ( rolling )
|
||||||
|
if ( _record_button->value() )
|
||||||
|
timeline->record();
|
||||||
|
else
|
||||||
|
timeline->stop();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
@ -88,6 +94,7 @@ public:
|
||||||
o->box( FL_UP_BOX );
|
o->box( FL_UP_BOX );
|
||||||
|
|
||||||
_record_button = o = new Fl_Button( 0, 0, bw, 0, "@circle" );
|
_record_button = o = new Fl_Button( 0, 0, bw, 0, "@circle" );
|
||||||
|
o->type( FL_TOGGLE_BUTTON );
|
||||||
o->labeltype( FL_EMBOSSED_LABEL );
|
o->labeltype( FL_EMBOSSED_LABEL );
|
||||||
o->labelcolor( FL_RED );
|
o->labelcolor( FL_RED );
|
||||||
o->shortcut( 'R' );
|
o->shortcut( 'R' );
|
||||||
|
|
Loading…
Reference in New Issue