|
|
@@ -57,6 +57,8 @@ decl {\#include "Engine/Engine.H"} {} |
|
|
|
|
|
|
|
decl {\#include "Engine/Audio_File.H" // for supported formats} {} |
|
|
|
|
|
|
|
decl {class About_Dialog;} {} |
|
|
|
|
|
|
|
decl {extern char project_display_name[256];} {global |
|
|
|
} |
|
|
|
|
|
|
@@ -65,16 +67,8 @@ decl {extern char *user_config_dir;} {global |
|
|
|
|
|
|
|
class TLE {open |
|
|
|
} { |
|
|
|
decl {Fl_Color system_colors[3];} {public |
|
|
|
} |
|
|
|
decl {static void menubar_cb ( void *v )} {} |
|
|
|
decl {void menubar_cb ( void )} {} |
|
|
|
Function {menu_picked_value( const Fl_Menu_ *m )} {open return_type {static int} |
|
|
|
} { |
|
|
|
code {return m->menu()[ m->value() ].flags & FL_MENU_VALUE;} {} |
|
|
|
} |
|
|
|
Function {save()} {open |
|
|
|
} { |
|
|
|
decl {Fl_Color system_colors[3];} {} |
|
|
|
Function {save()} {} { |
|
|
|
code {const char options_filename[] = "options"; |
|
|
|
// const char state_filename[] = "state"; |
|
|
|
|
|
|
@@ -85,18 +79,45 @@ asprintf( &path, "%s/%s", user_config_dir, options_filename ); |
|
|
|
((Fl_Menu_Settings*)menubar)->dump( menubar->find_item( "&Options" ), path ); |
|
|
|
free( path );} {} |
|
|
|
} |
|
|
|
Function {capture_format_cb( Fl_Widget *w, void *v )} {open private return_type {static void} |
|
|
|
} { |
|
|
|
code {((TLE*)v)->capture_format_cb();} {} |
|
|
|
Function {quit()} {} { |
|
|
|
code {Project::close(); |
|
|
|
|
|
|
|
save(); |
|
|
|
|
|
|
|
while ( Fl::first_window() ) Fl::first_window()->hide();} {} |
|
|
|
} |
|
|
|
Function {capture_format_cb()} {open private return_type void |
|
|
|
} { |
|
|
|
code {Fl_Menu_ *o = menubar; |
|
|
|
Function {open( const char *name )} {} { |
|
|
|
code {if ( ! name ) |
|
|
|
return; |
|
|
|
|
|
|
|
Track::capture_format = o->menu()[ o->value() ].label();} {} |
|
|
|
int r = Project::open( name ); |
|
|
|
|
|
|
|
if ( r < 0 ) |
|
|
|
{ |
|
|
|
const char *s = Project::errstr( r ); |
|
|
|
|
|
|
|
fl_alert( "Could not open project \\"%s\\":\\n\\n\\t%s", name, s ); |
|
|
|
}} {} |
|
|
|
} |
|
|
|
Function {run()} {open |
|
|
|
} { |
|
|
|
Function {save_timeline_settings()} {} { |
|
|
|
code {if ( Project::open() ) |
|
|
|
{ |
|
|
|
// save project local options (Timeline menu) |
|
|
|
((Fl_Menu_Settings*)menubar)->dump( menubar->find_item( "&Project/Se&ttings" ), "options" ); |
|
|
|
}} {} |
|
|
|
} |
|
|
|
Function {load_timeline_settings()} {} { |
|
|
|
code {if ( Project::open() ) |
|
|
|
{ |
|
|
|
((Fl_Menu_Settings*)menubar)->load( menubar->find_item( "&Project/Se&ttings" ), "options" ); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
update_menu(); |
|
|
|
|
|
|
|
project_name->redraw();} {} |
|
|
|
} |
|
|
|
Function {run()} {} { |
|
|
|
code {update_menu(); |
|
|
|
|
|
|
|
main_window->show(); |
|
|
@@ -105,8 +126,7 @@ Fl::lock(); |
|
|
|
|
|
|
|
// Fl::run();} {} |
|
|
|
} |
|
|
|
Function {TLE()} {open |
|
|
|
} { |
|
|
|
Function {TLE()} {} { |
|
|
|
code {Fl::visual( FL_DOUBLE | FL_RGB8 ); |
|
|
|
|
|
|
|
make_window(); |
|
|
@@ -158,11 +178,11 @@ Loggable::progress_callback( &TLE::progress_cb, this );} {} |
|
|
|
Function {make_window()} {open |
|
|
|
} { |
|
|
|
Fl_Window main_window { |
|
|
|
label Timeline open |
|
|
|
xywh {254 117 1025 770} type Double resizable xclass Non_DAW visible |
|
|
|
label Timeline |
|
|
|
private xywh {254 117 1025 770} type Double resizable xclass Non_DAW visible |
|
|
|
} { |
|
|
|
Fl_Menu_Bar menubar {open |
|
|
|
xywh {0 0 1024 25} |
|
|
|
Fl_Menu_Bar menubar {selected |
|
|
|
private xywh {0 0 1024 25} |
|
|
|
} { |
|
|
|
Submenu {} { |
|
|
|
label {&Project} open |
|
|
@@ -242,7 +262,7 @@ const char *name = fl_dir_chooser( "Open Project", path, NULL ); |
|
|
|
|
|
|
|
free( path ); |
|
|
|
|
|
|
|
open( name );} selected |
|
|
|
open( name );} |
|
|
|
xywh {10 10 40 25} |
|
|
|
} |
|
|
|
MenuItem {} { |
|
|
@@ -518,14 +538,9 @@ Fl::scheme( Fl::scheme() );} |
|
|
|
} { |
|
|
|
MenuItem {} { |
|
|
|
label {&About} |
|
|
|
callback {Fl_Window *win = make_about_dialog(); |
|
|
|
|
|
|
|
win->show(); |
|
|
|
callback {About_Dialog ab; |
|
|
|
|
|
|
|
while ( win->shown() ) |
|
|
|
Fl::wait(); |
|
|
|
|
|
|
|
delete win;} |
|
|
|
ab.run();} |
|
|
|
xywh {0 0 40 25} |
|
|
|
} |
|
|
|
} |
|
|
@@ -544,13 +559,13 @@ delete win;} |
|
|
|
code1 {o->labeltype( FL_NO_LABEL );} |
|
|
|
class Transport |
|
|
|
} |
|
|
|
Fl_Pack clocks_pack {open |
|
|
|
xywh {195 23 288 46} type HORIZONTAL |
|
|
|
Fl_Pack clocks_pack { |
|
|
|
private xywh {195 23 288 46} type HORIZONTAL |
|
|
|
code0 {o->spacing( 2 );} |
|
|
|
} { |
|
|
|
Fl_Box playhead_clock { |
|
|
|
Fl_Box {} { |
|
|
|
label PLAYHEAD |
|
|
|
xywh {195 29 137 40} box BORDER_BOX color 40 |
|
|
|
private xywh {195 29 137 40} box BORDER_BOX color 40 |
|
|
|
code0 {o->type( Clock::HMS );} |
|
|
|
code1 {o->run( &transport->frame );} |
|
|
|
class Clock |
|
|
@@ -586,21 +601,21 @@ delete win;} |
|
|
|
} |
|
|
|
Fl_Progress capture_buffer_progress { |
|
|
|
label {50%} |
|
|
|
xywh {921 26 104 14} labelsize 10 |
|
|
|
private xywh {921 26 104 14} labelsize 10 |
|
|
|
} |
|
|
|
Fl_Progress cpu_load_progress { |
|
|
|
label {50%} |
|
|
|
xywh {921 56 104 14} labelsize 9 |
|
|
|
private xywh {921 56 104 14} labelsize 9 |
|
|
|
} |
|
|
|
Fl_Progress playback_buffer_progress { |
|
|
|
label {50%} |
|
|
|
xywh {921 41 104 14} labelsize 10 |
|
|
|
private xywh {921 41 104 14} labelsize 10 |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
Fl_Progress progress { |
|
|
|
label {0%} |
|
|
|
xywh {15 394 995 41} hide |
|
|
|
private xywh {15 394 995 41} hide |
|
|
|
} |
|
|
|
Fl_Box {} { |
|
|
|
label {<Timeline>} |
|
|
@@ -610,20 +625,26 @@ delete win;} |
|
|
|
} |
|
|
|
Fl_Box project_name { |
|
|
|
label {<project name>} |
|
|
|
xywh {450 0 475 22} labeltype SHADOW_LABEL labelfont 2 |
|
|
|
private xywh {450 0 475 22} labeltype SHADOW_LABEL labelfont 2 |
|
|
|
code0 {o->label( Project::name() );} |
|
|
|
} |
|
|
|
Fl_Value_Output xruns_output { |
|
|
|
label {xruns:} |
|
|
|
xywh {980 2 44 20} maximum 40000 step 1 |
|
|
|
private xywh {980 2 44 20} maximum 40000 step 1 |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
Function {find_item( Fl_Menu_ *menu, const char *path )} {open return_type {static Fl_Menu_Item *} |
|
|
|
Function {menu_picked_value( const Fl_Menu_ *m )} {private return_type {static int} |
|
|
|
} { |
|
|
|
code {return m->menu()[ m->value() ].flags & FL_MENU_VALUE;} {} |
|
|
|
} |
|
|
|
Function {find_item( Fl_Menu_ *menu, const char *path )} {private return_type {static Fl_Menu_Item *} |
|
|
|
} { |
|
|
|
code {return const_cast<Fl_Menu_Item*>(menu->find_item( path ));} {} |
|
|
|
} |
|
|
|
Function {update_menu()} {open |
|
|
|
decl {static void menubar_cb ( void *v )} {} |
|
|
|
decl {void menubar_cb ( void )} {} |
|
|
|
Function {update_menu()} {private |
|
|
|
} { |
|
|
|
code {Fl_Menu_Bar *m = menubar; |
|
|
|
|
|
|
@@ -655,7 +676,7 @@ else |
|
|
|
m->redraw(); |
|
|
|
project_name->redraw();} {} |
|
|
|
} |
|
|
|
Function {update_progress( Fl_Progress *p, char *s, float v )} {open private return_type {static void} |
|
|
|
Function {update_progress( Fl_Progress *p, char *s, float v )} {private return_type {static void} |
|
|
|
} { |
|
|
|
code {p->value( v ); |
|
|
|
|
|
|
@@ -663,7 +684,7 @@ snprintf( s, 5, "%d%%", (int)v ); |
|
|
|
|
|
|
|
p->label( s );} {} |
|
|
|
} |
|
|
|
Function {update_status()} {open |
|
|
|
Function {update_status()} {private |
|
|
|
} { |
|
|
|
code {static char cbp[5], pbp[5], clp[5]; |
|
|
|
|
|
|
@@ -690,114 +711,27 @@ if ( engine->zombified() && ! zombie ) |
|
|
|
fl_alert( "Disconnected from JACK!" ); |
|
|
|
}} {} |
|
|
|
} |
|
|
|
Function {update_cb( void *v )} {return_type {static void} |
|
|
|
Function {update_cb( void *v )} {private return_type {static void} |
|
|
|
} { |
|
|
|
code {Fl::repeat_timeout( STATUS_UPDATE_FREQ, update_cb, v ); |
|
|
|
|
|
|
|
((TLE*)v)->update_status();} {} |
|
|
|
} |
|
|
|
Function {make_about_dialog()} {} { |
|
|
|
Fl_Window about_dialog_window { |
|
|
|
label About open |
|
|
|
private xywh {664 192 495 655} type Double xclass {Non-DAW} visible |
|
|
|
} { |
|
|
|
Fl_Tabs {} {open |
|
|
|
xywh {0 264 497 392} |
|
|
|
} { |
|
|
|
Fl_Group {} { |
|
|
|
label Credits open |
|
|
|
xywh {2 293 492 362} |
|
|
|
} { |
|
|
|
Fl_Box {} { |
|
|
|
label {Non-DAW was written from scratch by |
|
|
|
Jonathan Moore Liles for his own use |
|
|
|
(see the manual). |
|
|
|
|
|
|
|
Nobody planned. Nobody helped. |
|
|
|
You can help now by donating time, money, |
|
|
|
and/or replacing the rest of Linux Audio |
|
|
|
with fast, light, reliable alternatives.} |
|
|
|
xywh {39 322 418 262} box ROUNDED_BOX color 46 labelsize 18 |
|
|
|
} |
|
|
|
} |
|
|
|
Fl_Group {} { |
|
|
|
label License open |
|
|
|
xywh {2 288 492 311} hide |
|
|
|
} { |
|
|
|
Fl_Box {} { |
|
|
|
label {Copyright (C) 2008 Jonathan Moore Liles} |
|
|
|
xywh {43 302 410 37} labeltype SHADOW_LABEL labelfont 1 labelsize 18 |
|
|
|
} |
|
|
|
Fl_Box {} { |
|
|
|
label {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; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.} |
|
|
|
xywh {10 351 475 233} box ROUNDED_BOX color 46 labelfont 1 labelsize 12 labelcolor 53 align 144 |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
Fl_Box {} { |
|
|
|
label VERSION |
|
|
|
xywh {25 20 445 180} box ROUNDED_BOX color 48 labelfont 1 labelsize 18 align 16 |
|
|
|
code0 {o->image( Fl_Shared_Image::get( INSTALL_PREFIX "/share/pixmaps/non-daw/logo.png" ) );} |
|
|
|
code1 {o->label( VERSION );} |
|
|
|
} |
|
|
|
Fl_Return_Button {} { |
|
|
|
label Rock |
|
|
|
callback {about_dialog_window->hide();} |
|
|
|
xywh {400 614 76 30} |
|
|
|
} |
|
|
|
Fl_Button {} { |
|
|
|
label {http://non-daw.tuxfamily.org} |
|
|
|
callback {\#if ! ( FL_MAJOR_VERSION >= 1 && FL_MINOR_VERSION >= 1 && FL_PATCH_VERSION >= 8 ) |
|
|
|
// FIXME: got a better idea? |
|
|
|
system( "x-www-browser http://non-daw.tuxfamily.org &" ); |
|
|
|
\#else |
|
|
|
fl_open_uri( "http://non-daw.tuxfamily.org" ); |
|
|
|
\#endif} |
|
|
|
xywh {125 614 245 30} color 14 labeltype SHADOW_LABEL labelcolor 6 |
|
|
|
} |
|
|
|
Fl_Box {} { |
|
|
|
label {The Non DAW (Digital Audio Workstation)} |
|
|
|
xywh {32 221 430 29} labeltype SHADOW_LABEL labelfont 3 labelsize 17 |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
Function {save_timeline_settings()} {open |
|
|
|
Function {capture_format_cb( Fl_Widget *w, void *v )} {private return_type {static void} |
|
|
|
} { |
|
|
|
code {if ( Project::open() ) |
|
|
|
{ |
|
|
|
// save project local options (Timeline menu) |
|
|
|
((Fl_Menu_Settings*)menubar)->dump( menubar->find_item( "&Project/Se&ttings" ), "options" ); |
|
|
|
}} {} |
|
|
|
} |
|
|
|
Function {load_timeline_settings()} {open |
|
|
|
} { |
|
|
|
code {if ( Project::open() ) |
|
|
|
{ |
|
|
|
((Fl_Menu_Settings*)menubar)->load( menubar->find_item( "&Project/Se&ttings" ), "options" ); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
update_menu(); |
|
|
|
|
|
|
|
project_name->redraw();} {} |
|
|
|
code {((TLE*)v)->capture_format_cb();} {} |
|
|
|
} |
|
|
|
Function {quit()} {open |
|
|
|
Function {capture_format_cb()} {private return_type void |
|
|
|
} { |
|
|
|
code {Project::close(); |
|
|
|
|
|
|
|
save(); |
|
|
|
code {Fl_Menu_ *o = menubar; |
|
|
|
|
|
|
|
while ( Fl::first_window() ) Fl::first_window()->hide();} {} |
|
|
|
Track::capture_format = o->menu()[ o->value() ].label();} {} |
|
|
|
} |
|
|
|
Function {progress_cb( int p, void *arg )} {open return_type {static void} |
|
|
|
Function {progress_cb( int p, void *arg )} {private return_type {static void} |
|
|
|
} { |
|
|
|
code {((TLE*)arg)->progress_cb( p );} {} |
|
|
|
} |
|
|
|
Function {progress_cb( int p )} {open return_type void |
|
|
|
Function {progress_cb( int p )} {private return_type void |
|
|
|
} { |
|
|
|
code {if ( ! progress->visible() ) |
|
|
|
{ |
|
|
@@ -818,24 +752,9 @@ progress->redraw(); |
|
|
|
|
|
|
|
Fl::check();} {} |
|
|
|
} |
|
|
|
Function {open( const char *name )} {open |
|
|
|
} { |
|
|
|
code {if ( ! name ) |
|
|
|
return; |
|
|
|
|
|
|
|
int r = Project::open( name ); |
|
|
|
|
|
|
|
if ( r < 0 ) |
|
|
|
{ |
|
|
|
const char *s = Project::errstr( r ); |
|
|
|
|
|
|
|
fl_alert( "Could not open project \\"%s\\":\\n\\n\\t%s", name, s ); |
|
|
|
}} {} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
class New_Project_Dialog {open |
|
|
|
} { |
|
|
|
class New_Project_Dialog {} { |
|
|
|
Function {New_Project_Dialog()} {open |
|
|
|
} { |
|
|
|
code {make_window();} {} |
|
|
@@ -932,7 +851,14 @@ while ( window->shown() ) |
|
|
|
Function {make_window()} {open |
|
|
|
} { |
|
|
|
Fl_Window window { |
|
|
|
label {Project info} open |
|
|
|
label {Project info} |
|
|
|
callback {o->hide(); |
|
|
|
|
|
|
|
if ( logo_box->image() ) |
|
|
|
{ |
|
|
|
((Fl_Shared_Image*)logo_box->image())->release(); |
|
|
|
logo_box->image( NULL ); |
|
|
|
}} open |
|
|
|
private xywh {649 226 520 740} type Double modal visible |
|
|
|
} { |
|
|
|
Fl_Value_Output {} { |
|
|
@@ -964,9 +890,9 @@ while ( window->shown() ) |
|
|
|
xywh {230 130 60 25} align 1 |
|
|
|
code0 {o->value( timeline->ntracks() );} |
|
|
|
} |
|
|
|
Fl_Box {} { |
|
|
|
Fl_Box logo_box { |
|
|
|
label {<LOGO>} |
|
|
|
xywh {51 180 418 235} box ROUNDED_BOX color 53 labelfont 1 labelsize 18 align 16 |
|
|
|
private xywh {51 180 418 235} box ROUNDED_BOX color 53 labelfont 1 labelsize 18 align 16 |
|
|
|
code0 {o->image( Fl_Shared_Image::get( INSTALL_PREFIX "/share/pixmaps/non-daw/logo2.png" ) );} |
|
|
|
code1 {o->label( NULL );} |
|
|
|
} |
|
|
@@ -980,7 +906,7 @@ while ( window->shown() ) |
|
|
|
label {&Save} |
|
|
|
callback {notes_field->buffer()->savefile( "notes" ); |
|
|
|
|
|
|
|
window->hide();} |
|
|
|
window->do_callback();} |
|
|
|
xywh {425 700 74 25} |
|
|
|
} |
|
|
|
Fl_Box {} { |
|
|
@@ -993,9 +919,102 @@ window->hide();} |
|
|
|
} |
|
|
|
Fl_Button {} { |
|
|
|
label {&Discard} |
|
|
|
callback {window->hide();} |
|
|
|
callback {window->do_callback();} |
|
|
|
xywh {330 700 74 25} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
class About_Dialog {} { |
|
|
|
Function {About_Dialog()} {open |
|
|
|
} { |
|
|
|
code {make_window();} {} |
|
|
|
} |
|
|
|
Function {run()} {return_type void |
|
|
|
} { |
|
|
|
code {window->show(); |
|
|
|
|
|
|
|
while ( window->shown() ) |
|
|
|
Fl::wait(); |
|
|
|
|
|
|
|
delete window;} {} |
|
|
|
} |
|
|
|
Function {make_window()} {open private |
|
|
|
} { |
|
|
|
Fl_Window window { |
|
|
|
label About |
|
|
|
callback {o->hide(); |
|
|
|
|
|
|
|
if ( logo_box->image() ) |
|
|
|
{ |
|
|
|
((Fl_Shared_Image*)logo_box->image())->release(); |
|
|
|
logo_box->image( NULL ); |
|
|
|
}} open |
|
|
|
private xywh {669 197 495 655} type Double xclass {Non-DAW} visible |
|
|
|
} { |
|
|
|
Fl_Tabs {} {open |
|
|
|
xywh {0 264 497 392} |
|
|
|
} { |
|
|
|
Fl_Group {} { |
|
|
|
label Credits open |
|
|
|
xywh {2 293 492 362} |
|
|
|
} { |
|
|
|
Fl_Box {} { |
|
|
|
label {Non-DAW was written from scratch by |
|
|
|
Jonathan Moore Liles for his own use |
|
|
|
(see the manual). |
|
|
|
|
|
|
|
Nobody planned. Nobody helped. |
|
|
|
You can help now by donating time, money, |
|
|
|
and/or replacing the rest of Linux Audio |
|
|
|
with fast, light, reliable alternatives.} |
|
|
|
xywh {39 322 418 262} box ROUNDED_BOX color 46 labelsize 18 |
|
|
|
} |
|
|
|
} |
|
|
|
Fl_Group {} { |
|
|
|
label License open |
|
|
|
xywh {2 288 492 311} hide |
|
|
|
} { |
|
|
|
Fl_Box {} { |
|
|
|
label {Copyright (C) 2008 Jonathan Moore Liles} |
|
|
|
xywh {43 302 410 37} labeltype SHADOW_LABEL labelfont 1 labelsize 18 |
|
|
|
} |
|
|
|
Fl_Box {} { |
|
|
|
label {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; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.} |
|
|
|
xywh {10 351 475 233} box ROUNDED_BOX color 46 labelfont 1 labelsize 12 labelcolor 53 align 144 |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
Fl_Box logo_box { |
|
|
|
label VERSION |
|
|
|
private xywh {25 20 445 180} box ROUNDED_BOX color 48 labelfont 1 labelsize 18 align 16 |
|
|
|
code0 {o->image( Fl_Shared_Image::get( INSTALL_PREFIX "/share/pixmaps/non-daw/logo.png" ) );} |
|
|
|
code1 {o->label( VERSION );} |
|
|
|
} |
|
|
|
Fl_Return_Button {} { |
|
|
|
label Rock |
|
|
|
callback {o->window()->do_callback();} |
|
|
|
xywh {400 614 76 30} |
|
|
|
} |
|
|
|
Fl_Button {} { |
|
|
|
label {http://non-daw.tuxfamily.org} |
|
|
|
callback {\#if ! ( FL_MAJOR_VERSION >= 1 && FL_MINOR_VERSION >= 1 && FL_PATCH_VERSION >= 8 ) |
|
|
|
// FIXME: got a better idea? |
|
|
|
system( "x-www-browser http://non-daw.tuxfamily.org &" ); |
|
|
|
\#else |
|
|
|
fl_open_uri( "http://non-daw.tuxfamily.org" ); |
|
|
|
\#endif} |
|
|
|
xywh {125 614 245 30} color 14 labeltype SHADOW_LABEL labelcolor 6 |
|
|
|
} |
|
|
|
Fl_Box {} { |
|
|
|
label {The Non DAW (Digital Audio Workstation)} |
|
|
|
xywh {32 221 430 29} labeltype SHADOW_LABEL labelfont 3 labelsize 17 |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |