Replace crappy Fl::scheme() thing with a more useful theme implementation in Fl_Theme and Fl_Color_Sheme classes.
Theme settings are now common between all Non-* programs. Also adds a new 'Clean' theme.
This commit is contained in:
parent
e424182dce
commit
fdcf74ddbe
|
@ -0,0 +1,89 @@
|
|||
|
||||
/*******************************************************************************/
|
||||
/* Copyright (C) 2012 Jonathan Moore Liles */
|
||||
/* Copyright (C) 2001-2005 by Colin Jones */
|
||||
/* */
|
||||
/* 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. */
|
||||
/*******************************************************************************/
|
||||
|
||||
/* Taken from the "Gleam" FLTK scheme, as modified by prodatum */
|
||||
|
||||
#include <FL/Fl.H>
|
||||
#include <FL/fl_draw.H>
|
||||
|
||||
#include "FL/Fl_Theme.H"
|
||||
|
||||
/* static void clean_color(Fl_Color c) */
|
||||
/* { */
|
||||
/* /\* if (Fl::draw_box_active()) *\/ */
|
||||
/* /\* fl_color(c); *\/ */
|
||||
/* /\* else *\/ */
|
||||
/* /\* fl_color(fl_inactive(c)); *\/ */
|
||||
|
||||
/* } */
|
||||
|
||||
static void rect(int x, int y, int w, int h, Fl_Color bc)
|
||||
{
|
||||
fl_rect( x, y, w, h, bc );
|
||||
}
|
||||
|
||||
static void rectf ( int x, int y,int w, int h, Fl_Color bc )
|
||||
{
|
||||
fl_rectf( x, y, w, h, fl_color_average( FL_WHITE, bc, 0.05 ) );
|
||||
}
|
||||
|
||||
static void up_frame(int x, int y, int w, int h, Fl_Color c)
|
||||
{
|
||||
rect(x, y, w, h, fl_color_average( FL_WHITE, c, 0.1 ) );
|
||||
}
|
||||
|
||||
static void up_box(int x, int y, int w, int h, Fl_Color c)
|
||||
{
|
||||
rectf(x, y, w, h, c );
|
||||
rect(x, y, w, h, fl_color_average( FL_WHITE, c, 0.1 ) );
|
||||
}
|
||||
|
||||
static void down_frame(int x, int y, int w, int h, Fl_Color c)
|
||||
{
|
||||
rect(x, y, w, h, fl_color_average( FL_BLACK, c, 0.1 ) );
|
||||
}
|
||||
|
||||
static void down_box(int x, int y, int w, int h, Fl_Color c)
|
||||
{
|
||||
rectf(x, y, w, h, fl_color_average( FL_WHITE, c, 0.2 ) );
|
||||
rect(x, y, w, h, fl_color_average( FL_BLACK, c, 0.1 ) );
|
||||
}
|
||||
|
||||
static void
|
||||
init_theme ( void )
|
||||
{
|
||||
/* replace the gtk+ boxes... (is there a better way?) */
|
||||
Fl::set_boxtype( FL_UP_BOX, up_box, 1,1,1,1 );
|
||||
Fl::set_boxtype( FL_DOWN_BOX, down_box, 1,1,1,1 );
|
||||
Fl::set_boxtype( FL_THIN_UP_BOX, up_box, 1,1,1,1 );
|
||||
Fl::set_boxtype( FL_THIN_DOWN_BOX, down_box, 1,1,1,1 );
|
||||
Fl::set_boxtype( FL_UP_FRAME, up_frame, 1,1,1,1 );
|
||||
Fl::set_boxtype( FL_DOWN_FRAME, down_frame, 1,1,1,1 );
|
||||
Fl::set_boxtype( FL_ROUND_UP_BOX, up_box, 1,1,1,1 );
|
||||
Fl::set_boxtype( FL_ROUND_DOWN_BOX, down_box, 1,1,1,1 );
|
||||
}
|
||||
|
||||
void
|
||||
init_clean_theme ( void )
|
||||
{
|
||||
Fl_Theme *t = new Fl_Theme( "Clean", "", "", init_theme );
|
||||
|
||||
Fl_Theme::add( t );
|
||||
}
|
|
@ -17,6 +17,4 @@
|
|||
/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
/*******************************************************************************/
|
||||
|
||||
#include <FL/Fl.H>
|
||||
|
||||
void init_gleam_boxtypes ( void );
|
||||
void init_clean_theme ( void );
|
|
@ -20,11 +20,11 @@
|
|||
|
||||
#pragma GCC diagnostic ignored "-Wchar-subscripts"
|
||||
|
||||
|
||||
#include "Crystal_Boxtypes.H"
|
||||
#include <FL/fl_draw.H>
|
||||
#include <string.h>
|
||||
|
||||
#include "FL/Fl_Theme.H"
|
||||
|
||||
/* Crystal boxes, base (obviously) on the FLTK1 'plastic' boxes, but
|
||||
* without the rude color blending and with a slightly enhanced
|
||||
* appearance. */
|
||||
|
@ -370,16 +370,26 @@ down_round ( int x, int y, int w, int h, Fl_Color c )
|
|||
}
|
||||
|
||||
|
||||
void
|
||||
init_crystal_boxtypes ( void )
|
||||
static void
|
||||
init_theme ( void )
|
||||
{
|
||||
printf( "Initializing crystal boxtypes" );
|
||||
|
||||
/* replace the plastic boxes... (is there a better way?) */
|
||||
Fl::set_boxtype( FL_PLASTIC_UP_BOX, up_box, 4,4,8,8 );
|
||||
Fl::set_boxtype( FL_PLASTIC_DOWN_BOX, down_box, 2,2,4,4 );
|
||||
Fl::set_boxtype( FL_PLASTIC_UP_FRAME, up_frame, 2,2,4,4 );
|
||||
Fl::set_boxtype( FL_PLASTIC_DOWN_FRAME, down_frame, 2,2,4,4 );
|
||||
Fl::set_boxtype( FL_PLASTIC_THIN_UP_BOX, thin_up_box, 1,1,2,2 );
|
||||
Fl::set_boxtype( FL_PLASTIC_THIN_DOWN_BOX, down_box, 1,1,2,2 );
|
||||
Fl::set_boxtype( FL_PLASTIC_ROUND_UP_BOX, up_round, 1,1,2,2 );
|
||||
Fl::set_boxtype( FL_PLASTIC_ROUND_DOWN_BOX, down_round, 1,1,2,2 );
|
||||
Fl::set_boxtype( FL_UP_BOX, up_box, 4,4,8,8 );
|
||||
Fl::set_boxtype( FL_DOWN_BOX, down_box, 2,2,4,4 );
|
||||
Fl::set_boxtype( FL_UP_FRAME, up_frame, 2,2,4,4 );
|
||||
Fl::set_boxtype( FL_DOWN_FRAME, down_frame, 2,2,4,4 );
|
||||
Fl::set_boxtype( FL_THIN_UP_BOX, thin_up_box, 1,1,2,2 );
|
||||
Fl::set_boxtype( FL_THIN_DOWN_BOX, down_box, 1,1,2,2 );
|
||||
Fl::set_boxtype( FL_ROUND_UP_BOX, up_round, 1,1,2,2 );
|
||||
Fl::set_boxtype( FL_ROUND_DOWN_BOX, down_round, 1,1,2,2 );
|
||||
}
|
||||
|
||||
void
|
||||
init_crystal_theme ( void )
|
||||
{
|
||||
Fl_Theme *t = new Fl_Theme( "Crystal", "", "", init_theme );
|
||||
|
||||
Fl_Theme::add( t );
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
/*******************************************************************************/
|
||||
/* Copyright (C) 2008 Jonathan Moore Liles */
|
||||
/* Copyright (C) 2012 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 */
|
||||
|
@ -17,6 +17,4 @@
|
|||
/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
/*******************************************************************************/
|
||||
|
||||
#include <FL/Fl.H>
|
||||
|
||||
void init_crystal_boxtypes ( void );
|
||||
void init_crystal_theme ( void );
|
|
@ -0,0 +1,230 @@
|
|||
|
||||
/*******************************************************************************/
|
||||
/* Copyright (C) 2012 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/Fl_Theme.H"
|
||||
#include <FL/Fl.H>
|
||||
#include <FL/Fl_Window.H>
|
||||
#include <FL/Fl_Preferences.H>
|
||||
|
||||
Fl_Theme *Fl_Theme::first;
|
||||
Fl_Theme *Fl_Theme::_current;
|
||||
Fl_Color_Scheme *Fl_Color_Scheme::first;
|
||||
|
||||
int Fl_Theme::total;
|
||||
int Fl_Color_Scheme::total;
|
||||
|
||||
void
|
||||
Fl_Theme::add ( Fl_Theme *t )
|
||||
{
|
||||
t->next = first;
|
||||
first = t;
|
||||
total++;
|
||||
}
|
||||
|
||||
Fl_Theme **
|
||||
Fl_Theme::get ( void )
|
||||
{
|
||||
Fl_Theme **r = (Fl_Theme**) malloc( sizeof( Fl_Theme* ) * ( total + 1 ) );
|
||||
|
||||
int i = 0;
|
||||
for ( Fl_Theme *t = first; t; t = t->next, i++ )
|
||||
r[i] = t;
|
||||
|
||||
r[i] = 0;
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
|
||||
static
|
||||
Fl_Preferences *prefs ( void )
|
||||
{
|
||||
char *path;
|
||||
|
||||
asprintf( &path, "%s/.config/ntk/", getenv("HOME" ) );
|
||||
|
||||
Fl_Preferences *p = new Fl_Preferences( path, "ntk", "theme" );
|
||||
|
||||
free( path );
|
||||
|
||||
return p;
|
||||
}
|
||||
|
||||
static void conf_set ( const char *key, const char *value )
|
||||
{
|
||||
Fl_Preferences *p = prefs();
|
||||
|
||||
p->set( key, value );
|
||||
|
||||
delete p;
|
||||
}
|
||||
|
||||
static void conf_set ( const char *key, Fl_Color value )
|
||||
{
|
||||
Fl_Preferences *p = prefs();
|
||||
|
||||
p->set( key, (int)value );
|
||||
|
||||
delete p;
|
||||
}
|
||||
|
||||
static const char *conf_get ( const char *key, const char *def )
|
||||
{
|
||||
static char buf[256];
|
||||
|
||||
Fl_Preferences *p = prefs();
|
||||
|
||||
p->get( key, buf, def, sizeof( buf ) );
|
||||
|
||||
delete p;
|
||||
|
||||
return buf;
|
||||
}
|
||||
|
||||
static
|
||||
Fl_Color
|
||||
conf_get_color ( const char *key, Fl_Color def )
|
||||
{
|
||||
Fl_Preferences *p = prefs();
|
||||
|
||||
int c;
|
||||
|
||||
p->get( key, c, def );
|
||||
|
||||
delete p;
|
||||
|
||||
return (Fl_Color)c;
|
||||
}
|
||||
|
||||
static bool dont_save = false;
|
||||
|
||||
/* sets the configured default */
|
||||
int
|
||||
Fl_Theme::set ( void )
|
||||
{
|
||||
const char *name = conf_get( "theme", "clean" );
|
||||
|
||||
int rv = set( name );
|
||||
|
||||
dont_save = true;
|
||||
|
||||
Fl_Color_Scheme::set( "System" );
|
||||
|
||||
dont_save = false;
|
||||
|
||||
uchar r, g, b;
|
||||
|
||||
Fl::get_color( conf_get_color( "background", FL_BACKGROUND_COLOR ), r, g, b );
|
||||
Fl::background( r, g, b );
|
||||
Fl::get_color( conf_get_color( "background2", FL_BACKGROUND2_COLOR ), r, g, b );
|
||||
Fl::background2( r, g, b );
|
||||
Fl::get_color( conf_get_color( "foreground", FL_FOREGROUND_COLOR ), r, g, b );
|
||||
Fl::foreground( r, g, b );
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
||||
int
|
||||
Fl_Theme::set ( const char *name )
|
||||
{
|
||||
for ( Fl_Theme *t = first; t; t = t->next )
|
||||
if ( !strcasecmp( t->name(), name ) )
|
||||
{
|
||||
printf( "Theme set to %s\n", t->name() );
|
||||
t->_init_func();
|
||||
Fl_Theme::_current = t;
|
||||
|
||||
conf_set( "theme", t->name() );
|
||||
|
||||
for ( Fl_Window *w = Fl::first_window(); w; w = Fl::next_window( w ) )
|
||||
w->redraw();
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void
|
||||
Fl_Color_Scheme::add ( Fl_Color_Scheme *t )
|
||||
{
|
||||
t->next = first;
|
||||
first = t;
|
||||
total++;
|
||||
}
|
||||
|
||||
Fl_Color_Scheme **
|
||||
Fl_Color_Scheme::get ( void )
|
||||
{
|
||||
Fl_Color_Scheme **r = (Fl_Color_Scheme**) malloc( sizeof( Fl_Color_Scheme* ) * ( total + 1 ) );
|
||||
|
||||
int i = 0;
|
||||
for ( Fl_Color_Scheme *t = first; t; t = t->next, i++ )
|
||||
r[i] = t;
|
||||
|
||||
r[i] = 0;
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
void
|
||||
Fl_Color_Scheme::save ( void )
|
||||
{
|
||||
if ( ! dont_save )
|
||||
{
|
||||
conf_set( "background", Fl::get_color( FL_BACKGROUND_COLOR ) );
|
||||
conf_set( "foreground", Fl::get_color( FL_FOREGROUND_COLOR ) );
|
||||
conf_set( "background2", Fl::get_color( FL_BACKGROUND2_COLOR ) );
|
||||
}
|
||||
|
||||
for ( Fl_Window *w = Fl::first_window(); w; w = Fl::next_window( w ) )
|
||||
w->redraw();
|
||||
}
|
||||
|
||||
int
|
||||
Fl_Color_Scheme::set ( const char *name )
|
||||
{
|
||||
for ( Fl_Color_Scheme *t = first; t; t = t->next )
|
||||
if ( !strcasecmp( t->name(), name ) )
|
||||
{
|
||||
uchar r, g, b;
|
||||
|
||||
Fl::get_color( t->_bg, r, g, b );
|
||||
Fl::background( r, g, b );
|
||||
Fl::get_color( t->_bg2, r, g, b );
|
||||
Fl::background2( r, g, b );
|
||||
Fl::get_color( t->_fg, r, g, b );
|
||||
Fl::foreground( r, g, b );
|
||||
/* Fl::get_color( t->_sel, r, g, b ); */
|
||||
/* Fl::selection( r, g, b ); */
|
||||
|
||||
conf_set( "color_scheme", t->name() );
|
||||
|
||||
save();
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,120 @@
|
|||
|
||||
/*******************************************************************************/
|
||||
/* Copyright (C) 2012 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.H>
|
||||
|
||||
/* class Fl_Theme */
|
||||
/* { */
|
||||
|
||||
/* public: */
|
||||
|
||||
/* virtual const char *name ( void ) const = 0; */
|
||||
/* virtual const char *author ( void ) const = 0; */
|
||||
/* virtual const char *description ( void ) const = 0; */
|
||||
|
||||
/* virtual void up_box ( int X, int Y, int W, int H, Fl_Color c ) = 0; */
|
||||
/* virtual void down_box ( int X, int Y, int W, int H, Fl_Color c ) = 0; */
|
||||
/* virtual void thin_up_box ( int X, int Y, int W, int H, Fl_Color c ) = 0; */
|
||||
/* virtual void thin_down_box ( int X, int Y, int W, int H, Fl_Color c ) = 0; */
|
||||
/* virtual void round_up_box ( int X, int Y, int W, int H, Fl_Color c ) = 0; */
|
||||
/* virtual void round_down_box ( int X, int Y, int W, int H, Fl_Color c ) = 0; */
|
||||
/* virtual void rounded_box ( int X, int Y, int W, int H, Fl_Color c ) = 0; */
|
||||
/* virtual void oval_box ( int X, int Y, int W, int H, Fl_Color c ) = 0; */
|
||||
/* virtual void shadow_box ( int X, int Y, int W, int H, Fl_Color c ) = 0; */
|
||||
/* virtual void rshadow_box ( int X, int Y, int W, int H, Fl_Color c ) = 0; */
|
||||
/* virtual void diamond_box ( int X, int Y, int W, int H, Fl_Color c ) = 0; */
|
||||
/* virtual void check_on ( int X, int Y, int W, int H, Fl_Color c ) = 0; */
|
||||
/* virtual void check_off ( int X, int Y, int W, int H, Fl_Color c ) = 0; */
|
||||
/* virtual void radio_on ( int X, int Y, int W, int H, Fl_Color c ) = 0; */
|
||||
/* virtual void radio_off ( int X, int Y, int W, int H, Fl_Color c ) = 0; */
|
||||
|
||||
/* virtual void up_frame ( int X, int Y, int W, int H, Fl_Color c ) = 0; */
|
||||
/* virtual void down_frame ( int X, int Y, int W, int H, Fl_Color c ) = 0; */
|
||||
|
||||
/* }; */
|
||||
|
||||
class Fl_Color_Scheme
|
||||
{
|
||||
Fl_Color_Scheme *next;
|
||||
static int total;
|
||||
static Fl_Color_Scheme *first;
|
||||
|
||||
Fl_Color _bg;
|
||||
Fl_Color _bg2;
|
||||
Fl_Color _fg;
|
||||
Fl_Color _sel;
|
||||
|
||||
const char *_name;
|
||||
|
||||
public:
|
||||
|
||||
const char *name ( void ) const { return _name; }
|
||||
|
||||
Fl_Color_Scheme ( const char *name, Fl_Color background, Fl_Color background2, Fl_Color foreground, Fl_Color selection )
|
||||
{
|
||||
_bg = background;
|
||||
_bg2 = background2;
|
||||
_fg = foreground;
|
||||
_sel = selection;
|
||||
_name = name;
|
||||
|
||||
}
|
||||
|
||||
static void add ( Fl_Color_Scheme *td );
|
||||
static Fl_Color_Scheme **get ( void );
|
||||
static int set ( const char *name );
|
||||
static void save ( void );
|
||||
};
|
||||
|
||||
|
||||
class Fl_Theme
|
||||
{
|
||||
Fl_Theme *next;
|
||||
static int total;
|
||||
static Fl_Theme *first;
|
||||
static Fl_Theme *_current;
|
||||
|
||||
const char *_name;
|
||||
const char *_description;
|
||||
const char *_author;
|
||||
|
||||
void (*_init_func)(void);
|
||||
|
||||
public:
|
||||
|
||||
const char *name ( void ) const { return _name; }
|
||||
const char *description ( void ) { return _description; }
|
||||
const char *author ( void ) { return _author; }
|
||||
|
||||
Fl_Theme( const char *name, const char *description, const char *author, void (*init_func)(void) )
|
||||
{
|
||||
_name = name;
|
||||
_description = description;
|
||||
_author = author;
|
||||
_init_func = init_func;
|
||||
}
|
||||
|
||||
static void add ( Fl_Theme *td );
|
||||
static Fl_Theme **get ( void );
|
||||
static int set ( void );
|
||||
static int set ( const char *name );
|
||||
static const Fl_Theme *current ( void ) { return _current; }
|
||||
};
|
|
@ -0,0 +1,180 @@
|
|||
# data file for the Fltk User Interface Designer (fluid)
|
||||
version 1.0300
|
||||
header_name {.H}
|
||||
code_name {.C}
|
||||
decl {\#include "FL/Fl_Theme.H"} {public global
|
||||
}
|
||||
|
||||
decl {\#include <FL/Fl_Button.H>} {public global
|
||||
}
|
||||
|
||||
decl {\#include <FL/Fl_Color_Chooser.H>} {private local
|
||||
}
|
||||
|
||||
decl {\#include <FL/Fl_Double_Window.H>} {private local
|
||||
}
|
||||
|
||||
class Fl_Color_Button {open : {public Fl_Button}
|
||||
} {
|
||||
Function {Fl_Color_Button( int X, int Y, int W, int H, const char *L = 0 ) : Fl_Button( X, Y, W, H, L )} {open
|
||||
} {
|
||||
code {} {}
|
||||
}
|
||||
Function {handle( int m )} {open return_type int
|
||||
} {
|
||||
code {switch ( m )
|
||||
{
|
||||
case FL_PUSH:
|
||||
{
|
||||
uchar r, g, b;
|
||||
|
||||
Fl::get_color( color(), r, g, b );
|
||||
|
||||
fl_color_chooser( label(), r, g, b );
|
||||
|
||||
color( fl_rgb_color( r, g, b ) );
|
||||
|
||||
do_callback();
|
||||
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
return Fl_Button::handle( m );} {}
|
||||
}
|
||||
}
|
||||
|
||||
widget_class Fl_Theme_Chooser {
|
||||
label Theme open
|
||||
xywh {560 246 435 380} type Double
|
||||
class Fl_Double_Window visible
|
||||
} {
|
||||
Fl_Choice theme_choice {
|
||||
label {Theme:}
|
||||
callback {Fl_Theme::set( o->mvalue()->label() );
|
||||
|
||||
redraw();} open
|
||||
xywh {120 20 300 25} down_box BORDER_BOX
|
||||
} {}
|
||||
Fl_Choice color_scheme_choice {
|
||||
label {Color Scheme:}
|
||||
callback {Fl_Color_Scheme::set( o->mvalue()->label() );
|
||||
|
||||
redraw();} open
|
||||
xywh {120 48 300 25} down_box BORDER_BOX
|
||||
} {}
|
||||
Fl_Return_Button {} {
|
||||
label OK
|
||||
callback {hide();} selected
|
||||
xywh {355 345 75 25}
|
||||
}
|
||||
Fl_Group {} {
|
||||
label Example open
|
||||
xywh {5 215 425 120} box ENGRAVED_FRAME
|
||||
} {
|
||||
Fl_Scrollbar {} {
|
||||
label {Scroll Bar}
|
||||
xywh {155 240 265 25} type Horizontal align 1
|
||||
}
|
||||
Fl_Check_Button {} {
|
||||
label {Check Button}
|
||||
xywh {15 230 120 15} down_box DOWN_BOX
|
||||
}
|
||||
Fl_Dial {} {
|
||||
label Dial
|
||||
xywh {155 275 35 35}
|
||||
}
|
||||
Fl_Progress {} {
|
||||
label Progress
|
||||
xywh {240 300 185 30}
|
||||
code0 {o->value( 0.50 );}
|
||||
}
|
||||
Fl_Light_Button {} {
|
||||
label {Light Button}
|
||||
xywh {15 285 120 35}
|
||||
}
|
||||
}
|
||||
Fl_Button background_color_button {
|
||||
label {Background 1:}
|
||||
callback {uchar r,g,b;
|
||||
|
||||
Fl::get_color( o->color(), r,g,b );
|
||||
|
||||
Fl::background( r,g,b );
|
||||
|
||||
o->window()->redraw();
|
||||
|
||||
Fl_Color_Scheme::save();}
|
||||
xywh {120 76 300 25} box BORDER_BOX align 4 when 6
|
||||
code0 {\#include <FL/fl_ask.H>}
|
||||
code1 {o->color( FL_BACKGROUND_COLOR );}
|
||||
class Fl_Color_Button
|
||||
}
|
||||
Fl_Button background2_color_button {
|
||||
label {Background 2:}
|
||||
callback {uchar r,g,b;
|
||||
|
||||
Fl::get_color( o->color(), r,g,b );
|
||||
|
||||
Fl::background2( r,g,b );
|
||||
|
||||
o->window()->redraw();
|
||||
|
||||
Fl_Color_Scheme::save();}
|
||||
xywh {120 104 300 25} box BORDER_BOX align 4
|
||||
code1 {o->color( FL_BACKGROUND2_COLOR );}
|
||||
class Fl_Color_Button
|
||||
}
|
||||
Fl_Button foreground_color_button {
|
||||
label {Foreground:}
|
||||
callback {uchar r,g,b;
|
||||
|
||||
Fl::get_color( o->color(), r,g,b );
|
||||
|
||||
Fl::foreground( r,g,b );
|
||||
|
||||
o->window()->redraw();
|
||||
|
||||
Fl_Color_Scheme::save();}
|
||||
xywh {120 132 300 25} box BORDER_BOX align 4
|
||||
code1 {o->color( FL_FOREGROUND_COLOR );}
|
||||
class Fl_Color_Button
|
||||
}
|
||||
Fl_Button selection_color_button {
|
||||
label {Selection:}
|
||||
xywh {120 160 300 25} box BORDER_BOX align 4 hide
|
||||
class Fl_Color_Button
|
||||
}
|
||||
code {{
|
||||
Fl_Theme **ta = Fl_Theme::get();
|
||||
|
||||
for ( Fl_Theme **t = ta; *t; t++ )
|
||||
theme_choice->add( (*t)->name() );
|
||||
|
||||
free( ta );
|
||||
|
||||
const Fl_Menu_Item *item = theme_choice->find_item( Fl_Theme::current()->name() );
|
||||
|
||||
theme_choice->value( item );
|
||||
}
|
||||
|
||||
{
|
||||
Fl_Color_Scheme **ta = Fl_Color_Scheme::get();
|
||||
|
||||
for ( Fl_Color_Scheme **t = ta; *t; t++ )
|
||||
color_scheme_choice->add( (*t)->name() );
|
||||
|
||||
free( ta );
|
||||
}} {}
|
||||
}
|
||||
|
||||
Function {fl_theme_chooser()} {open C return_type void
|
||||
} {
|
||||
code {Fl_Window *w = new Fl_Theme_Chooser();
|
||||
|
||||
w->end();
|
||||
w->show();
|
||||
|
||||
while( w->shown() )
|
||||
Fl::check();} {}
|
||||
}
|
|
@ -23,7 +23,7 @@
|
|||
#include <FL/Fl.H>
|
||||
#include <FL/fl_draw.H>
|
||||
|
||||
#include "Gleam_Boxtypes.H"
|
||||
#include "FL/Fl_Theme.H"
|
||||
|
||||
static void gleam_color(Fl_Color c)
|
||||
{
|
||||
|
@ -124,15 +124,6 @@ static void up_frame(int x, int y, int w, int h, Fl_Color c)
|
|||
frame_rect_up(x, y, w - 1, h - 1, fl_darker(c));
|
||||
}
|
||||
|
||||
static void thin_up_box(int x, int y, int w, int h, Fl_Color c)
|
||||
{
|
||||
|
||||
shade_rect_up(x + 1, y, w - 2, h - 1, c);
|
||||
frame_rect(x + 1, y + 1, w - 3, h - 3, fl_color_average(c, FL_WHITE, .25f));
|
||||
frame_rect_up(x, y, w - 1, h - 1, fl_darker(c));
|
||||
|
||||
}
|
||||
|
||||
static void up_box(int x, int y, int w, int h, Fl_Color c)
|
||||
{
|
||||
shade_rect_up(x + 1, y, w - 2, h - 1, c);
|
||||
|
@ -155,26 +146,24 @@ static void down_box(int x, int y, int w, int h, Fl_Color c)
|
|||
//frame_rect(x + 1, y + 1, w - 3, h - 3, fl_color_average(c, FL_BLACK, .65));
|
||||
}
|
||||
|
||||
static void thin_down_box(int x, int y, int w, int h, Fl_Color c)
|
||||
static void
|
||||
init_theme ( void )
|
||||
{
|
||||
|
||||
down_box(x, y, w, h, c);
|
||||
|
||||
/* replace the gtk+ boxes... (is there a better way?) */
|
||||
Fl::set_boxtype( FL_UP_BOX, up_box, 2,2,4,4 );
|
||||
Fl::set_boxtype( FL_DOWN_BOX, down_box, 2,2,3,3 );
|
||||
Fl::set_boxtype( FL_THIN_UP_BOX, up_box, 2,2,3,3 );
|
||||
Fl::set_boxtype( FL_THIN_DOWN_BOX, down_box, 2,2,3,3 );
|
||||
Fl::set_boxtype( FL_UP_FRAME, up_frame, 2,2,3,3 );
|
||||
Fl::set_boxtype( FL_DOWN_FRAME, down_frame, 2,2,3,3 );
|
||||
Fl::set_boxtype( FL_ROUND_UP_BOX, up_box, 2,2,3,3 );
|
||||
Fl::set_boxtype( FL_ROUND_DOWN_BOX, down_box, 2,2,3,3 );
|
||||
}
|
||||
|
||||
void
|
||||
init_gleam_boxtypes ( void )
|
||||
init_gleam_theme ( void )
|
||||
{
|
||||
/* replace the gtk+ boxes... (is there a better way?) */
|
||||
Fl::set_boxtype( FL_GTK_UP_BOX, up_box, 2,2,4,4 );
|
||||
Fl::set_boxtype( FL_GTK_DOWN_BOX, down_box, 2,2,3,3 );
|
||||
Fl::set_boxtype( FL_GTK_THIN_UP_BOX, up_box, 2,2,3,3 );
|
||||
Fl::set_boxtype( FL_GTK_THIN_DOWN_BOX, down_box, 2,2,3,3 );
|
||||
Fl::set_boxtype( FL_GTK_UP_FRAME, up_frame, 2,2,3,3 );
|
||||
Fl::set_boxtype( FL_GTK_DOWN_FRAME, down_frame, 2,2,3,3 );
|
||||
/* Fl::set_boxtype( FL_GTK_THIN_UP_BOX, thin_up_box, 1,1,1,1 ); */
|
||||
/* Fl::set_boxtype( FL_GTK_THIN_DOWN_BOX, thin_down_box, 1,1,1,1 ); */
|
||||
Fl::set_boxtype( FL_GTK_ROUND_UP_BOX, up_box, 2,2,3,3 );
|
||||
Fl::set_boxtype( FL_GTK_ROUND_DOWN_BOX, down_box, 2,2,3,3 );
|
||||
}
|
||||
Fl_Theme *t = new Fl_Theme( "Gleam", "", "", init_theme );
|
||||
|
||||
Fl_Theme::add( t );
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
/*******************************************************************************/
|
||||
/* Copyright (C) 2010 Jonathan Moore Liles */
|
||||
/* Copyright (C) 2012 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 */
|
||||
|
@ -17,5 +17,4 @@
|
|||
/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
/*******************************************************************************/
|
||||
|
||||
void color_scheme ( const char *name );
|
||||
void get_system_colors ( void );
|
||||
void init_gleam_theme ( void );
|
|
@ -1,81 +0,0 @@
|
|||
|
||||
/*******************************************************************************/
|
||||
/* Copyright (C) 2010 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 "color_scheme.H"
|
||||
#include <FL/Fl.H>
|
||||
#include <string.h>
|
||||
|
||||
static Fl_Color system_colors[3];
|
||||
|
||||
void
|
||||
get_system_colors ( void )
|
||||
{
|
||||
Fl::get_system_colors();
|
||||
|
||||
system_colors[ 0 ] = (Fl_Color)Fl::get_color( FL_BACKGROUND_COLOR );
|
||||
system_colors[ 1 ] = (Fl_Color)Fl::get_color( FL_FOREGROUND_COLOR );
|
||||
system_colors[ 2 ] = (Fl_Color)Fl::get_color( FL_BACKGROUND2_COLOR );
|
||||
}
|
||||
|
||||
void
|
||||
color_scheme ( const char *name )
|
||||
{
|
||||
if ( !strcasecmp( name, "gray" ) )
|
||||
{
|
||||
Fl::background2( 127, 127, 127 );
|
||||
Fl::background( 100, 100, 100 );
|
||||
Fl::foreground( 255, 255, 255 );
|
||||
}
|
||||
if ( !strcasecmp( name, "dark" ) )
|
||||
{
|
||||
Fl::background2( 100, 100, 100 );
|
||||
Fl::background( 50, 50, 50 );
|
||||
Fl::foreground( 255, 255, 255 );
|
||||
}
|
||||
else if ( !strcasecmp( name, "light" ))
|
||||
{
|
||||
Fl::background2( 192, 192, 192 );
|
||||
Fl::background( 220, 220, 220 );
|
||||
Fl::foreground( 0, 0, 0 );
|
||||
}
|
||||
if ( !strcasecmp( name, "very dark" ) )
|
||||
{
|
||||
Fl::background2( 100, 100, 100 );
|
||||
Fl::background( 20, 20, 20 );
|
||||
Fl::foreground( 240, 240, 240 );
|
||||
}
|
||||
else if ( !strcasecmp( name, "system" ) )
|
||||
{
|
||||
unsigned char r, g, b;
|
||||
|
||||
Fl::get_color( system_colors[ 0 ], r, g, b );
|
||||
|
||||
Fl::background( r, g, b );
|
||||
|
||||
Fl::get_color( system_colors[ 1 ], r, g, b );
|
||||
|
||||
Fl::foreground( r, g, b );
|
||||
|
||||
Fl::get_color( system_colors[ 2 ], r, g, b );
|
||||
|
||||
Fl::background2( r, g, b );
|
||||
}
|
||||
|
||||
Fl::scheme( Fl::scheme() );
|
||||
}
|
|
@ -11,7 +11,7 @@ SRCS:=$(SRCS:.fl=.C)
|
|||
SRCS:=$(sort $(SRCS))
|
||||
OBJS:=$(SRCS:.C=.o)
|
||||
|
||||
all: FL/libfl_widgets.a
|
||||
all: FL/libfl_widgets.a ntk-chtheme
|
||||
|
||||
FL/libfl_widgets.a: $(OBJS)
|
||||
@ ar rcs $@ $(OBJS)
|
||||
|
@ -19,8 +19,12 @@ FL/libfl_widgets.a: $(OBJS)
|
|||
.PHONEY: FL
|
||||
FL: FL/libfl_widgets.a
|
||||
|
||||
ntk-chtheme: ntk-chtheme.o $(FLTK_LIBS) FL/libfl_widgets.a
|
||||
@ echo -n Linking session handler.
|
||||
@ $(CXX) $(CXXFLAGS) $(FLTK_LDFLAGS) $(LIBS) $^ -o $@ -LFL -lfl_widgets && echo $(DONE)
|
||||
|
||||
clean:
|
||||
rm -f $(OBJS) FL/libfl_widgets.a .deps
|
||||
|
||||
install:
|
||||
@
|
||||
@
|
||||
|
|
|
@ -0,0 +1,32 @@
|
|||
|
||||
/*******************************************************************************/
|
||||
/* Copyright (C) 2012 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/themes.H"
|
||||
#include "FL/Fl_Theme_Chooser.C"
|
||||
|
||||
|
||||
int
|
||||
main ( int argc, char **argv )
|
||||
{
|
||||
fl_register_themes();
|
||||
|
||||
Fl_Theme::set();
|
||||
|
||||
fl_theme_chooser();
|
||||
}
|
|
@ -0,0 +1,82 @@
|
|||
|
||||
/*******************************************************************************/
|
||||
/* Copyright (C) 2012 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/Crystal_Theme.H"
|
||||
#include "FL/Gleam_Theme.H"
|
||||
#include "FL/Clean_Theme.H"
|
||||
|
||||
#include "FL/Fl_Theme.H"
|
||||
|
||||
void fl_register_themes ( void )
|
||||
{
|
||||
init_clean_theme();
|
||||
init_crystal_theme();
|
||||
init_gleam_theme();
|
||||
|
||||
{
|
||||
Fl_Color_Scheme *o = new Fl_Color_Scheme( "Dark",
|
||||
fl_rgb_color( 50, 50, 50 ),
|
||||
fl_rgb_color( 100, 100, 100 ),
|
||||
fl_rgb_color( 255, 255, 255 ),
|
||||
FL_YELLOW );
|
||||
Fl_Color_Scheme::add( o );
|
||||
}
|
||||
{
|
||||
Fl_Color_Scheme *o = new Fl_Color_Scheme( "Darker",
|
||||
fl_rgb_color( 20, 20, 20 ),
|
||||
fl_rgb_color( 100, 100, 100 ),
|
||||
fl_rgb_color( 240, 240, 240 ),
|
||||
FL_YELLOW );
|
||||
Fl_Color_Scheme::add( o );
|
||||
}
|
||||
{
|
||||
Fl_Color_Scheme *o = new Fl_Color_Scheme( "Gray",
|
||||
fl_rgb_color( 100, 100, 100 ),
|
||||
fl_rgb_color( 127, 127, 127 ),
|
||||
fl_rgb_color( 255, 255, 255 ),
|
||||
FL_YELLOW );
|
||||
Fl_Color_Scheme::add( o );
|
||||
}
|
||||
{
|
||||
Fl_Color_Scheme *o = new Fl_Color_Scheme( "Black",
|
||||
fl_rgb_color( 0, 0, 0 ),
|
||||
fl_rgb_color( 20, 20, 20 ),
|
||||
fl_rgb_color( 240, 240, 240 ),
|
||||
FL_YELLOW );
|
||||
Fl_Color_Scheme::add( o );
|
||||
}
|
||||
{
|
||||
Fl_Color_Scheme *o = new Fl_Color_Scheme( "Light",
|
||||
fl_rgb_color( 220, 220, 220 ),
|
||||
fl_rgb_color( 192, 192, 192 ),
|
||||
fl_rgb_color( 0, 0, 0 ),
|
||||
FL_BLUE );
|
||||
Fl_Color_Scheme::add( o );
|
||||
}
|
||||
{
|
||||
Fl::get_system_colors();
|
||||
|
||||
Fl_Color_Scheme *o = new Fl_Color_Scheme( "System",
|
||||
(Fl_Color)Fl::get_color( FL_BACKGROUND_COLOR ),
|
||||
(Fl_Color)Fl::get_color( FL_BACKGROUND2_COLOR ),
|
||||
(Fl_Color)Fl::get_color( FL_FOREGROUND_COLOR ),
|
||||
FL_BLUE );
|
||||
Fl_Color_Scheme::add( o );
|
||||
}
|
||||
}
|
|
@ -30,7 +30,6 @@
|
|||
#include <FL/Fl_Menu_Button.H>
|
||||
#include <FL/Fl_Menu_.H>
|
||||
#include <FL/Fl_Light_Button.H>
|
||||
#include "FL/Crystal_Boxtypes.H"
|
||||
#include <FL/fl_draw.H>
|
||||
#include "FL/Fl_Arc_Dial.H"
|
||||
#include "FL/Fl_Labelpad_Group.H"
|
||||
|
|
|
@ -27,7 +27,6 @@
|
|||
#include <FL/fl_draw.H>
|
||||
#include <FL/Fl_Counter.H>
|
||||
#include <FL/Fl_Light_Button.H>
|
||||
#include "FL/Crystal_Boxtypes.H"
|
||||
|
||||
#include "FL/Fl_Arc_Dial.H"
|
||||
#include "FL/Fl_Labelpad_Group.H"
|
||||
|
|
|
@ -35,6 +35,7 @@
|
|||
#include "FL/Fl_Menu_Settings.H"
|
||||
#include "About_Dialog.H"
|
||||
#include <FL/Fl_File_Chooser.H>
|
||||
#include "FL/Fl_Theme_Chooser.H"
|
||||
|
||||
#include "file.h"
|
||||
|
||||
|
@ -44,7 +45,6 @@
|
|||
#include <sys/types.h>
|
||||
|
||||
#include "FL/Fl_Value_SliderX.H"
|
||||
#include "FL/color_scheme.H"
|
||||
#include "OSC/Endpoint.H"
|
||||
#include <lo/lo.h>
|
||||
#include "FL/Fl_Blinker.H"
|
||||
|
@ -274,37 +274,9 @@ void Mixer::cb_menu(Fl_Widget* o) {
|
|||
{
|
||||
rows( 3 );
|
||||
}
|
||||
else if (! strcmp( picked, "&Options/&Display/&Style/&Default") )
|
||||
else if (! strcmp( picked, "&View/&Theme") )
|
||||
{
|
||||
Fl::scheme( "gtk+" );
|
||||
}
|
||||
else if (! strcmp( picked, "&Options/&Display/&Style/&Flat") )
|
||||
{
|
||||
Fl::scheme( "gtk+" );
|
||||
}
|
||||
else if (! strcmp( picked, "&Options/&Display/&Style/&Round") )
|
||||
{
|
||||
Fl::scheme( "plastic" );
|
||||
}
|
||||
else if (! strcmp( picked, "&Options/&Display/&Colors/&System") )
|
||||
{
|
||||
color_scheme( "system" );
|
||||
}
|
||||
else if (! strcmp( picked, "&Options/&Display/&Colors/&Dark") )
|
||||
{
|
||||
color_scheme( "dark" );
|
||||
}
|
||||
else if (! strcmp( picked, "&Options/&Display/&Colors/&Very Dark") )
|
||||
{
|
||||
color_scheme( "very dark" );
|
||||
}
|
||||
else if (! strcmp( picked, "&Options/&Display/&Colors/&Light") )
|
||||
{
|
||||
color_scheme( "light" );
|
||||
}
|
||||
else if (! strcmp( picked, "&Options/&Display/&Colors/&Gray") )
|
||||
{
|
||||
color_scheme( "gray" );
|
||||
fl_theme_chooser();
|
||||
}
|
||||
else if (! strcmp( picked, "&Options/&Display/&Knobs/&Burnished") )
|
||||
{
|
||||
|
@ -378,11 +350,6 @@ void Mixer::cb_menu(Fl_Widget* o, void* v) {
|
|||
Mixer::Mixer ( int X, int Y, int W, int H, const char *L ) :
|
||||
Fl_Group( X, Y, W, H, L )
|
||||
{
|
||||
get_system_colors();
|
||||
|
||||
Fl::scheme( "plastic" );
|
||||
color_scheme( "dark" );
|
||||
|
||||
Loggable::dirty_callback( &Mixer::handle_dirty, this );
|
||||
|
||||
_rows = 1;
|
||||
|
@ -399,14 +366,7 @@ Mixer::Mixer ( int X, int Y, int W, int H, const char *L ) :
|
|||
o->add( "&Mixer/&Rows/One", '1', 0, 0 );
|
||||
o->add( "&Mixer/&Rows/Two", '2', 0, 0 );
|
||||
o->add( "&Mixer/&Rows/Three", '3', 0, 0 );
|
||||
o->add( "_&Options/&Display/&Style/&Default", 0, 0, 0, FL_MENU_RADIO | FL_MENU_VALUE );
|
||||
o->add( "_&Options/&Display/&Style/&Flat", 0, 0, 0, FL_MENU_RADIO );
|
||||
o->add( "_&Options/&Display/&Style/&Round", 0, 0, 0, FL_MENU_RADIO );
|
||||
o->add( "_&Options/&Display/&Colors/&Dark", 0, 0, 0, FL_MENU_RADIO | FL_MENU_VALUE );
|
||||
o->add( "_&Options/&Display/&Colors/&Very Dark", 0, 0, 0, FL_MENU_RADIO );
|
||||
o->add( "_&Options/&Display/&Colors/&Light", 0, 0, 0, FL_MENU_RADIO );
|
||||
o->add( "_&Options/&Display/&Colors/&Gray", 0, 0, 0, FL_MENU_RADIO );
|
||||
o->add( "_&Options/&Display/&Colors/&System", 0, 0, 0, FL_MENU_RADIO );
|
||||
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 );
|
||||
|
|
|
@ -26,7 +26,6 @@
|
|||
#include <FL/Fl_Pack.H>
|
||||
#include <FL/Fl_Flip_Button.H>
|
||||
#include <FL/Fl_Arc_Dial.H>
|
||||
#include <FL/Crystal_Boxtypes.H>
|
||||
#include <FL/Fl_Group.H>
|
||||
#include <FL/Fl_Box.H>
|
||||
#include <FL/Fl_Button.H>
|
||||
|
|
|
@ -27,7 +27,6 @@
|
|||
#include <FL/Fl_Box.H>
|
||||
#include <FL/Fl_Menu_Button.H>
|
||||
#include <FL/Fl_Counter.H>
|
||||
#include "FL/Crystal_Boxtypes.H"
|
||||
#include "FL/Fl_Flowpack.H"
|
||||
#include "FL/Fl_Labelpad_Group.H"
|
||||
#include "FL/Fl_Value_SliderX.H"
|
||||
|
@ -43,7 +42,7 @@
|
|||
|
||||
|
||||
|
||||
Module_Parameter_Editor::Module_Parameter_Editor ( Module *module ) : Fl_Double_Window( 0, 0, 800, 600 )
|
||||
Module_Parameter_Editor::Module_Parameter_Editor ( Module *module ) : Fl_Double_Window( 800, 600 )
|
||||
{
|
||||
_module = module;
|
||||
_resized = false;
|
||||
|
|
|
@ -32,8 +32,8 @@
|
|||
#include <FL/fl_ask.H>
|
||||
#include <FL/Fl_Shared_Image.H>
|
||||
#include <FL/Fl_Pack.H>
|
||||
#include <FL/Crystal_Boxtypes.H>
|
||||
#include <FL/Gleam_Boxtypes.H>
|
||||
#include "FL/themes.H"
|
||||
#include "FL/Fl_Theme.H"
|
||||
#include "Thread.H"
|
||||
#include "debug.h"
|
||||
|
||||
|
@ -174,14 +174,8 @@ main ( int argc, char **argv )
|
|||
LOG_REGISTER_CREATE( Meter_Indicator_Module );
|
||||
LOG_REGISTER_CREATE( Controller_Module );
|
||||
|
||||
init_crystal_boxtypes();
|
||||
init_gleam_boxtypes();
|
||||
|
||||
signal( SIGPIPE, SIG_IGN );
|
||||
|
||||
Fl::get_system_colors();
|
||||
Fl::scheme( "gtk+" );
|
||||
|
||||
Fl::lock();
|
||||
|
||||
Fl_Double_Window *main_window;
|
||||
|
@ -209,6 +203,10 @@ main ( int argc, char **argv )
|
|||
o->show( 0, 0 );
|
||||
}
|
||||
|
||||
fl_register_themes();
|
||||
|
||||
Fl_Theme::set();
|
||||
|
||||
const char *osc_port = NULL;
|
||||
|
||||
nsm = new NSM_Client;
|
||||
|
|
|
@ -34,6 +34,9 @@ decl {class Fl_Scalepack;} {public local
|
|||
decl {class Fl_Sometimes_Input;} {public local
|
||||
}
|
||||
|
||||
decl {\#include "FL/Fl_Theme_Chooser.H"} {private local
|
||||
}
|
||||
|
||||
decl {\#include "FL/Fl_Scalepack.H"} {private local
|
||||
}
|
||||
|
||||
|
@ -149,12 +152,6 @@ class UI {open
|
|||
} {
|
||||
code {fl_register_images();
|
||||
|
||||
// // Make her pretty
|
||||
// Fl::background( 32, 32, 32 );
|
||||
// Fl::background2( 36, 36, 36 );
|
||||
// Fl::foreground( 255, 255, 255 );
|
||||
// Fl::scheme( "plastic" );
|
||||
|
||||
canvas_background_color = FL_GREEN;
|
||||
|
||||
playback_mode_menu = NULL;
|
||||
|
@ -225,11 +222,11 @@ if ( Fl::event() == FL_SHORTCUT && Fl::event_key() == FL_Escape )
|
|||
|
||||
if ( maybe_save_song() )
|
||||
quit();} open
|
||||
xywh {365 131 865 805} type Double color 38 resizable
|
||||
xywh {798 131 865 805} type Double color 47 resizable
|
||||
code0 {o->color( FL_BACKGROUND_COLOR );} xclass non size_range {700 509 0 0} visible
|
||||
} {
|
||||
Fl_Menu_Bar menu_bar {open selected
|
||||
xywh {0 0 865 30} color 37
|
||||
Fl_Menu_Bar menu_bar {open
|
||||
xywh {0 0 865 30} color 47
|
||||
} {
|
||||
Submenu {} {
|
||||
label {&File} open
|
||||
|
@ -438,6 +435,11 @@ config.follow_playhead = val ? true : false;}
|
|||
xywh {0 0 40 24} type Radio value 1
|
||||
}
|
||||
}
|
||||
MenuItem {} {
|
||||
label {&Theme}
|
||||
callback {fl_theme_chooser();}
|
||||
xywh {0 0 40 24}
|
||||
}
|
||||
}
|
||||
Submenu {} {
|
||||
label {&Help} open
|
||||
|
@ -763,7 +765,7 @@ if ( playlist->length() )
|
|||
}
|
||||
Fl_Group phrase_tab {
|
||||
label Phrase open
|
||||
xywh {0 98 865 674} color 37
|
||||
xywh {0 98 865 674} color 47 hide
|
||||
code0 {update_phrase_widgets();}
|
||||
} {
|
||||
Fl_Box phrase_canvas_widget {
|
||||
|
@ -814,8 +816,8 @@ o->maximum( phrase::phrases() );}
|
|||
}
|
||||
}
|
||||
Fl_Group pattern_tab {
|
||||
label Pattern open
|
||||
xywh {0 98 865 674} color 37 hide
|
||||
label Pattern open selected
|
||||
xywh {0 98 865 674} color 47
|
||||
code0 {update_pattern_widgets();}
|
||||
} {
|
||||
Fl_Box pattern_canvas_widget {
|
||||
|
@ -828,7 +830,7 @@ o->maximum( phrase::phrases() );}
|
|||
class O_Canvas
|
||||
}
|
||||
Fl_Group {} {open
|
||||
xywh {0 694 865 78}
|
||||
xywh {0 694 865 78} color 47
|
||||
} {
|
||||
Fl_Input pattern_name_field {
|
||||
label {name:}
|
||||
|
|
|
@ -38,9 +38,8 @@
|
|||
#include "../icons/icon-16x16.xpm"
|
||||
#endif
|
||||
|
||||
#include "FL/color_scheme.H"
|
||||
#include "FL/Crystal_Boxtypes.H"
|
||||
#include "FL/Gleam_Boxtypes.H"
|
||||
#include "FL/Fl_Theme.H"
|
||||
#include "FL/themes.H"
|
||||
|
||||
// extern const char *BUILD_ID;
|
||||
// extern const char *VERSION;
|
||||
|
@ -274,11 +273,6 @@ main ( int argc, char **argv )
|
|||
|
||||
init_colors();
|
||||
|
||||
init_crystal_boxtypes();
|
||||
init_gleam_boxtypes();
|
||||
color_scheme( "dark" );
|
||||
Fl::scheme( "plastic" );
|
||||
|
||||
ui = new UI;
|
||||
|
||||
#ifdef HAVE_XPM
|
||||
|
@ -286,6 +280,10 @@ main ( int argc, char **argv )
|
|||
#endif
|
||||
ui->main_window->show( 0, 0 );
|
||||
|
||||
fl_register_themes();
|
||||
|
||||
Fl_Theme::set();
|
||||
|
||||
instance_name = strdup( APP_NAME );
|
||||
|
||||
const char *nsm_url = getenv( "NSM_URL" );
|
||||
|
|
|
@ -47,9 +47,7 @@
|
|||
|
||||
#define APP_NAME "Non Session Manager"
|
||||
|
||||
#include "FL/Crystal_Boxtypes.H"
|
||||
#include "FL/Gleam_Boxtypes.H"
|
||||
#include "FL/color_scheme.H"
|
||||
#include "FL/themes.H"
|
||||
|
||||
#ifdef HAVE_XPM
|
||||
#include "FL/Fl.H"
|
||||
|
@ -944,13 +942,6 @@ main (int argc, char **argv )
|
|||
(char**)icon_16x16, &p, &mask, NULL);
|
||||
#endif
|
||||
|
||||
init_crystal_boxtypes();
|
||||
init_gleam_boxtypes();
|
||||
|
||||
Fl::get_system_colors();
|
||||
|
||||
color_scheme( "Dark" );
|
||||
Fl::scheme( "plastic" );
|
||||
Fl::lock();
|
||||
|
||||
Fl_Double_Window *main_window;
|
||||
|
@ -976,6 +967,10 @@ main (int argc, char **argv )
|
|||
#endif
|
||||
o->show( 0, NULL );
|
||||
}
|
||||
|
||||
fl_register_themes();
|
||||
|
||||
Fl_Theme::set();
|
||||
|
||||
static struct option long_options[] =
|
||||
{
|
||||
|
|
|
@ -28,8 +28,6 @@
|
|||
|
||||
#include "Transport.H" // for locate()
|
||||
|
||||
#include "FL/Crystal_Boxtypes.H"
|
||||
|
||||
#include "const.h"
|
||||
#include "debug.h"
|
||||
|
||||
|
|
|
@ -28,9 +28,6 @@ decl {const float STATUS_UPDATE_FREQ = 0.5f;} {private local
|
|||
decl {\#include "Fl_Menu_Settings.H"} {private local
|
||||
}
|
||||
|
||||
decl {\#include "color_scheme.H"} {private local
|
||||
}
|
||||
|
||||
decl {\#include "Timeline.H"} {private local
|
||||
}
|
||||
|
||||
|
@ -61,12 +58,6 @@ decl {\#include "Audio_Region.H" // for options} {private local
|
|||
decl {\#include "Control_Sequence.H" // for options} {private local
|
||||
}
|
||||
|
||||
decl {\#include "FL/Crystal_Boxtypes.H"} {private local
|
||||
}
|
||||
|
||||
decl {\#include "FL/Gleam_Boxtypes.H"} {private local
|
||||
}
|
||||
|
||||
decl {\#include <FL/Fl_File_Chooser.H>} {private local
|
||||
}
|
||||
|
||||
|
@ -165,18 +156,10 @@ Fl::lock();
|
|||
}
|
||||
Function {TLE()} {open
|
||||
} {
|
||||
code {
|
||||
|
||||
make_window();
|
||||
code {make_window();
|
||||
|
||||
Fl::visible_focus( 0 );
|
||||
|
||||
get_system_colors();
|
||||
|
||||
Fl::scheme( "gtk+" );
|
||||
|
||||
color_scheme( "dark" );
|
||||
|
||||
// constrain window to size of screen.
|
||||
{
|
||||
int sx, sy, sw, sh;
|
||||
|
@ -241,7 +224,7 @@ Loggable::progress_callback( &TLE::progress_cb, this );} {}
|
|||
label {Non DAW : Timeline}
|
||||
callback {if ( Fl::event_key() != FL_Escape )
|
||||
timeline->command_quit();} open
|
||||
public xywh {705 125 1025 770} type Double resizable xclass Non_DAW visible
|
||||
xywh {705 125 1025 770} type Double resizable xclass Non_DAW visible
|
||||
} {
|
||||
Fl_Menu_Bar menubar {open
|
||||
private xywh {0 0 1024 25}
|
||||
|
@ -466,6 +449,12 @@ Project::compact();}
|
|||
xywh {30 30 40 25} shortcut 0x33
|
||||
}
|
||||
}
|
||||
MenuItem {} {
|
||||
label {&Theme}
|
||||
callback {fl_theme_chooser();} selected
|
||||
xywh {10 10 40 24}
|
||||
code0 {\#include "FL/Fl_Theme_Chooser.H"}
|
||||
}
|
||||
}
|
||||
Submenu {} {
|
||||
label {&Options} open
|
||||
|
@ -555,56 +544,6 @@ timeline->redraw();}
|
|||
xywh {50 50 40 25} type Toggle value 1
|
||||
}
|
||||
}
|
||||
Submenu {} {
|
||||
label {&Style} open
|
||||
xywh {10 10 74 25}
|
||||
} {
|
||||
MenuItem {} {
|
||||
label Default
|
||||
callback {Fl::scheme( "gtk+" );}
|
||||
xywh {10 10 40 25} type Radio value 1
|
||||
}
|
||||
MenuItem {} {
|
||||
label Flat
|
||||
callback {Fl::scheme( "gtk+" );}
|
||||
xywh {20 20 40 25} type Radio
|
||||
}
|
||||
MenuItem {} {
|
||||
label Round
|
||||
callback {Fl::scheme( "plastic" );}
|
||||
xywh {30 30 40 25} type Radio
|
||||
}
|
||||
}
|
||||
Submenu {} {
|
||||
label {C&olors} open
|
||||
xywh {10 10 74 25}
|
||||
} {
|
||||
MenuItem {} {
|
||||
label Dark
|
||||
callback {color_scheme( "dark" );}
|
||||
xywh {20 20 40 25} type Radio value 1
|
||||
}
|
||||
MenuItem {} {
|
||||
label {Very Dark}
|
||||
callback {color_scheme( "very dark" );}
|
||||
xywh {20 20 40 25} type Radio
|
||||
}
|
||||
MenuItem {} {
|
||||
label Light
|
||||
callback {color_scheme( "light" );}
|
||||
xywh {30 30 40 25} type Radio
|
||||
}
|
||||
MenuItem {} {
|
||||
label Gray
|
||||
callback {color_scheme( "gray" );}
|
||||
xywh {30 30 40 25} type Radio
|
||||
}
|
||||
MenuItem {} {
|
||||
label System
|
||||
callback {color_scheme( "system" );}
|
||||
xywh {10 10 40 25} type Radio
|
||||
}
|
||||
}
|
||||
}
|
||||
Submenu {} {
|
||||
label {&Behavior} open
|
||||
|
@ -654,23 +593,23 @@ ab.run();}
|
|||
xywh {0 1 1025 73}
|
||||
} {
|
||||
Fl_Pack {} {open
|
||||
xywh {0 23 483 46} type HORIZONTAL
|
||||
xywh {5 29 475 40} type HORIZONTAL
|
||||
code0 {o->spacing( 10 );}
|
||||
} {
|
||||
Fl_Box {} {
|
||||
label {<Transport>}
|
||||
xywh {5 23 189 46} color 30
|
||||
xywh {5 29 189 40} color 30
|
||||
code0 {transport = o;}
|
||||
code1 {o->labeltype( FL_NO_LABEL );}
|
||||
class Transport
|
||||
}
|
||||
Fl_Pack clocks_pack {
|
||||
private xywh {195 23 288 46} type HORIZONTAL
|
||||
Fl_Pack clocks_pack {open
|
||||
private xywh {195 29 285 40} type HORIZONTAL
|
||||
code0 {o->spacing( 2 );}
|
||||
} {
|
||||
Fl_Box {} {
|
||||
label PLAYHEAD
|
||||
private xywh {195 29 137 40} box BORDER_BOX color 40
|
||||
private xywh {196 29 137 40} box BORDER_BOX color 40
|
||||
code0 {o->type( Clock::HMS );}
|
||||
code1 {o->run( &transport->frame );}
|
||||
class Clock
|
||||
|
@ -686,11 +625,11 @@ ab.run();}
|
|||
}
|
||||
Fl_Box {} {
|
||||
label {<empty>}
|
||||
xywh {487 27 148 42} resizable
|
||||
xywh {480 27 210 42} resizable
|
||||
code0 {o->labeltype( FL_NO_LABEL );}
|
||||
}
|
||||
Fl_Group {} {open
|
||||
xywh {745 26 280 44}
|
||||
xywh {810 26 215 44}
|
||||
} {
|
||||
Fl_Box {} {
|
||||
label {capture:}
|
||||
|
@ -717,7 +656,7 @@ ab.run();}
|
|||
private xywh {921 41 104 14} labelsize 10
|
||||
}
|
||||
Fl_Box {} {
|
||||
label {filesystem}
|
||||
label filesystem
|
||||
xywh {810 27 55 18} labelsize 10 align 16
|
||||
}
|
||||
Fl_Progress disk_usage_progress {
|
||||
|
@ -824,8 +763,7 @@ project_name->redraw();} {}
|
|||
}
|
||||
Function {update_progress( Fl_Progress *p, char *s, float v )} {private return_type {static void}
|
||||
} {
|
||||
code {
|
||||
if ( p->value() != v )
|
||||
code {if ( p->value() != v )
|
||||
{
|
||||
p->value( v );
|
||||
|
||||
|
@ -833,8 +771,7 @@ snprintf( s, 5, "%d%%", (int)v );
|
|||
|
||||
p->label( s );
|
||||
|
||||
}
|
||||
} {}
|
||||
}} {}
|
||||
}
|
||||
Function {update_status()} {open private
|
||||
} {
|
||||
|
@ -891,9 +828,7 @@ if ( timeline->session_manager_name() != NULL )
|
|||
find_item( menubar, "&Project/&Open" )->deactivate();
|
||||
}
|
||||
|
||||
// project_name->redraw();
|
||||
|
||||
} {}
|
||||
// project_name->redraw();} {}
|
||||
}
|
||||
Function {update_cb( void *v )} {open private return_type {static void}
|
||||
} {
|
||||
|
@ -951,9 +886,7 @@ Function {set_theme_dark()} {C return_type void
|
|||
} {
|
||||
code {Fl::background2( 100, 100, 100 );
|
||||
Fl::background( 50, 50, 50 );
|
||||
Fl::foreground( 255, 255, 255 );
|
||||
|
||||
Fl::scheme( Fl::scheme() );} {}
|
||||
Fl::foreground( 255, 255, 255 );} {}
|
||||
}
|
||||
|
||||
class Project_Info_Dialog {open
|
||||
|
@ -1013,7 +946,7 @@ if ( logo_box->image() )
|
|||
code0 {o->value( timeline->ntracks() );}
|
||||
}
|
||||
Fl_Box logo_box {
|
||||
label {<LOGO>} selected
|
||||
label {<LOGO>}
|
||||
private xywh {20 173 485 268} color 53 labelfont 1 labelsize 18 align 16
|
||||
code0 {o->image( Fl_Shared_Image::get( PIXMAP_PATH "non-daw/icon-256x256.png" ) );}
|
||||
code1 {o->label( NULL );}
|
||||
|
|
|
@ -106,8 +106,6 @@ Track::~Track ( )
|
|||
Loggable::block_end();
|
||||
}
|
||||
|
||||
#include "FL/Crystal_Boxtypes.H"
|
||||
|
||||
void
|
||||
Track::init ( void )
|
||||
{
|
||||
|
|
|
@ -42,8 +42,8 @@
|
|||
#include "TLE.H"
|
||||
#include "Timeline.H"
|
||||
|
||||
#include "FL/Crystal_Boxtypes.H"
|
||||
#include "FL/Gleam_Boxtypes.H"
|
||||
#include "FL/themes.H"
|
||||
#include "FL/Fl_Theme.H"
|
||||
|
||||
#include "Project.H"
|
||||
#include "Transport.H"
|
||||
|
@ -184,9 +184,6 @@ main ( int argc, char **argv )
|
|||
LOG_REGISTER_CREATE( Time_Point );
|
||||
LOG_REGISTER_CREATE( Track );
|
||||
|
||||
init_crystal_boxtypes();
|
||||
init_gleam_boxtypes();
|
||||
|
||||
signal( SIGPIPE, SIG_IGN );
|
||||
|
||||
if ( ! ensure_dirs() )
|
||||
|
@ -249,6 +246,10 @@ main ( int argc, char **argv )
|
|||
tle->main_window->icon((char *)p);
|
||||
#endif
|
||||
tle->main_window->show( 0, NULL );
|
||||
|
||||
fl_register_themes();
|
||||
|
||||
Fl_Theme::set();
|
||||
|
||||
char *nsm_url = getenv( "NSM_URL" );
|
||||
|
||||
|
|
Loading…
Reference in New Issue