# data file for the Fltk User Interface Designer (fluid) version 1.0108 header_name {.H} code_name {.C} decl {const float STATUS_UPDATE_FREQ = 0.5f;} {} decl {\#include "Fl_Menu_Settings.H"} {} decl {\#include "Timeline.H"} {} decl {\#include "Engine.H"} {} decl {\#include "Transport.H"} {} decl {\#include "Loggable.H"} {} decl {\#include "Clock.H"} {public } decl {\#include "Waveform.H" // for options} {} decl {\#include "Control_Sequence.H" // for options} {} decl {\#include } {} decl {\#include } {} class TLE {open } { 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 {TLE()} {open } { code {make_window(); // Fl::visual( RGB8 ); Fl::visible_focus( 0 ); Fl::get_system_colors(); Fl::scheme( "plastic" ); Fl::add_timeout( STATUS_UPDATE_FREQ, update_cb, this );} {} } Function {make_window()} {open } { Fl_Window main_window { label {Non-DAW - Timeline} open xywh {522 141 1024 768} type Double resizable xclass {Non-DAW} visible } { Fl_Menu_Bar menubar { label {capture:\\nfoo} open xywh {0 0 1024 25} } { Submenu {} { label {&Session} open xywh {0 0 74 25} } { MenuItem {} { label {&New} xywh {0 0 40 25} } MenuItem {} { label {&Open} xywh {10 10 40 25} } MenuItem {} { label {&Compact} callback {int n = fl_choice( "Compacting will replace the session history with a snapshot of the current state.\\n You will not be able to use Undo to go back beyond this point.\\n This operation is irreversible!", NULL, "Abort", "Procede with compaction" ); if ( n != 2 ) return; Loggable::compact();} xywh {20 20 40 25} } Submenu {} { label Export open xywh {0 0 74 25} } { MenuItem {} { label Session xywh {0 0 40 25} } MenuItem {} { label Range xywh {10 10 40 25} } } MenuItem {} { label {&Quit} callback {exit( 0 );} xywh {40 40 40 25} shortcut 0x40071 } MenuItem {} { label Dump callback {((Fl_Menu_Settings*)menubar)->dump( options_menu, "foo.state" );} xywh {0 0 40 25} } MenuItem {} { label Load callback {((Fl_Menu_Settings*)menubar)->load( options_menu, "foo.state" );} xywh {10 10 40 25} } } Submenu {} { label {&Edit} open xywh {0 0 74 25} } { MenuItem {} { label Preferences xywh {0 0 40 25} } MenuItem {} { label Undo xywh {0 0 40 25} shortcut 0x4007a } } Submenu {} { label Transport open xywh {0 0 74 25} } { MenuItem {} { label Home callback {transport->locate( 0 );} xywh {0 0 40 25} shortcut 0xff50 } MenuItem {} { label End callback {transport->locate( timeline->length() );} xywh {10 10 40 25} shortcut 0xff57 } MenuItem {} { label Stop callback {transport->stop();} xywh {20 20 40 25} shortcut 0x50073 } MenuItem {} { label Play callback {transport->start();} xywh {30 30 40 25} shortcut 0x50070 } MenuItem {} { label Record xywh {40 40 40 25} shortcut 0x50072 } } Submenu {} { label {&View} open xywh {0 0 74 25} } { Submenu {} { label {&Zoom} open xywh {0 0 74 25} } { MenuItem {} { label {&In} callback {timeline->zoom_in();} xywh {20 20 40 25} } MenuItem {} { label {&Out} callback {timeline->zoom_out();} xywh {30 30 40 25} } MenuItem {} { label {&Fit} xywh {10 10 40 25} divider } MenuItem {} { label {1 sec.} callback {timeline->zoom( 1 );} xywh {10 10 40 25} shortcut 0x31 } MenuItem {} { label {1 min.} callback {timeline->zoom( 60 );} xywh {20 20 40 25} shortcut 0x32 } MenuItem {} { label {1 hour.} callback {timeline->zoom( 60 * 60 );} xywh {30 30 40 25} shortcut 0x33 } } } Submenu options_menu { label {&Options} open xywh {0 0 74 25} divider } { Submenu {} { label {&Display} open xywh {0 0 74 25} } { Submenu {} { label {&Timeline} open xywh {0 0 74 25} } { MenuItem {} { label {&Measure lines} callback {Timeline::draw_with_measure_lines = menu_picked_value( o ); timeline->redraw();} selected xywh {0 0 40 25} type Toggle value 1 } } Submenu {} { label {&Waveforms} open xywh {0 0 74 25} } { MenuItem {} { label Fill callback {Waveform::fill = menu_picked_value( o ); timeline->redraw();} xywh {10 10 40 25} type Toggle value 1 } MenuItem {} { label Outline callback {Waveform::outline = menu_picked_value( o ); timeline->redraw();} xywh {30 30 40 25} type Toggle value 1 } MenuItem {} { label {Vary color} callback {Waveform::vary_color = menu_picked_value( o ); timeline->redraw();} xywh {20 20 40 25} type Toggle value 1 } } Submenu {} { label {&Region} open xywh {0 0 74 25} } { MenuItem {} { label {Filled fades} xywh {30 30 40 25} type Toggle value 1 } } Submenu {} { label {&Control Sequence} open xywh {0 0 74 25} } { MenuItem {} { label Polygon callback {Control_Sequence::draw_with_polygon = menu_picked_value( o ); timeline->redraw();} xywh {20 20 40 25} type Toggle value 1 } MenuItem {} { label Graded callback {Control_Sequence::draw_with_gradient = menu_picked_value( o ); timeline->redraw();} xywh {30 30 40 25} type Toggle value 1 } MenuItem {} { label Ruled callback {Control_Sequence::draw_with_grid = menu_picked_value( o ); timeline->redraw();} xywh {40 40 40 25} type Toggle value 1 } } Submenu {} { label {&Style} open xywh {0 0 74 25} } { MenuItem {} { label Default callback {Fl::scheme( "plastic" );} xywh {0 0 40 25} type Radio value 1 } MenuItem {} { label Flat callback {Fl::scheme( "gtk+" );} xywh {10 10 40 25} type Radio } } Submenu {} { label {C&olors} open xywh {0 0 74 25} } { MenuItem {} { label System callback {Fl::get_system_colors(); Fl::scheme( Fl::scheme() );} xywh {0 0 40 25} type Radio } MenuItem {} { label Dark callback {Fl::background2( 100, 100, 100 ); Fl::background( 50, 50, 50 ); Fl::foreground( 255, 255, 255 ); Fl::scheme( Fl::scheme() );} xywh {10 10 40 25} type Radio value 1 } MenuItem {} { label Light callback {Fl::background2( 255, 255, 255 ); Fl::background( 172, 172, 172 ); Fl::foreground( 0, 0, 0 ); Fl::scheme( Fl::scheme() );} xywh {20 20 40 25} type Radio } } } } MenuItem {} { label {&Help} xywh {0 0 40 25} } } Fl_Group {} {open xywh {0 23 1024 48} } { Fl_Pack {} {open xywh {0 23 473 46} type HORIZONTAL code0 {o->spacing( 10 );} } { Fl_Box {} { label {} xywh {0 23 184 46} color 30 code0 {transport = o;} code1 {o->labeltype( FL_NO_LABEL );} class Transport } Fl_Pack clocks_pack { xywh {185 23 288 46} type HORIZONTAL code0 {o->spacing( 2 );} } { Fl_Box playhead_clock { label PLAYHEAD xywh {185 29 137 40} box BORDER_BOX color 46 code0 {o->type( Clock::HMS );} code1 {o->run( &transport->frame );} class Clock } Fl_Box {} { label PLAYHEAD xywh {325 29 142 40} box BORDER_BOX color 46 code0 {o->type( Clock::BBT );} class Clock } } } Fl_Box {} { label {} xywh {477 27 387 42} resizable code0 {o->labeltype( FL_NO_LABEL );} } Fl_Group {} { xywh {869 25 155 44} } { Fl_Box {} { label {capture:} xywh {869 25 56 14} labelsize 10 align 24 } Fl_Box {} { label {playback:} xywh {869 41 56 14} labelsize 10 align 24 } Fl_Box {} { label {DSP:} xywh {869 55 56 14} labelsize 10 align 24 } Fl_Progress capture_buffer_progress { label {50%} xywh {925 25 99 14} labelsize 10 } Fl_Progress cpu_load_progress { label {50%} xywh {925 55 99 14} labelsize 9 } Fl_Progress playback_buffer_progress { label {50%} xywh {925 40 99 14} labelsize 10 } } } Fl_Box {} { label {} xywh {0 72 1024 695} box FLAT_BOX color 47 labelsize 100 resizable code0 {timeline = o;} class Timeline } } } Function {update_progress( Fl_Progress *p, char *s, float v )} {open private return_type {static void} } { code {p->value( v ); snprintf( s, 5, "%d%%", (int)v ); p->label( s );} {} } Function {update_status()} {open } { code {static char cbp[5], pbp[5], clp[5]; update_progress( capture_buffer_progress, cbp, timeline->total_input_buffer_percent() ); update_progress( playback_buffer_progress, pbp, timeline->total_output_buffer_percent() ); update_progress( cpu_load_progress, clp, engine->cpu_load() );} {} } Function {update_cb( void *v )} {open return_type {static void} } { code {Fl::repeat_timeout( STATUS_UPDATE_FREQ, update_cb, v ); ((TLE*)v)->update_status();} {} } } Function {make_window()} {open } {}