Assists music production by grouping standalone programs into sessions. Community version of "Non Session Manager".
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

359 lines
9.5KB

  1. # data file for the Fltk User Interface Designer (fluid)
  2. version 1.0108
  3. header_name {.H}
  4. code_name {.C}
  5. decl {const float STATUS_UPDATE_FREQ = 0.5f;} {}
  6. decl {\#include "Timeline.H"} {}
  7. decl {\#include "Engine.H"} {}
  8. decl {\#include "Transport.H"} {}
  9. decl {\#include "Clock.H"} {public
  10. }
  11. decl {\#include "Waveform.H" // for options} {}
  12. decl {\#include "Control_Sequence.H" // for options} {}
  13. decl {\#include <FL/Fl.H>} {}
  14. class TLE {open
  15. } {
  16. decl {static void menubar_cb ( void *v )} {}
  17. decl {void menubar_cb ( void )} {}
  18. Function {menu_picked_value( const Fl_Menu_ *m )} {open return_type {static int}
  19. } {
  20. code {return m->menu()[ m->value() ].flags & FL_MENU_VALUE;} {}
  21. }
  22. Function {TLE()} {open
  23. } {
  24. code {make_window();
  25. // Fl::visual( RGB8 );
  26. Fl::visible_focus( 0 );
  27. Fl::get_system_colors();
  28. Fl::scheme( "plastic" );
  29. Fl::add_timeout( STATUS_UPDATE_FREQ, update_cb, this );} {}
  30. }
  31. Function {make_window()} {open
  32. } {
  33. Fl_Window main_window {
  34. label {Non-DAW - Timeline} open
  35. xywh {483 100 1024 768} type Double resizable xclass {Non-DAW} visible
  36. } {
  37. Fl_Group {} {open
  38. xywh {0 0 1024 25}
  39. } {}
  40. Fl_Menu_Bar menubar {open
  41. xywh {0 0 1024 25}
  42. } {
  43. Submenu {} {
  44. label {&Session} open
  45. xywh {0 0 74 25}
  46. } {
  47. MenuItem {} {
  48. label {&New}
  49. xywh {0 0 40 25}
  50. }
  51. MenuItem {} {
  52. label {&Open}
  53. xywh {10 10 40 25}
  54. }
  55. MenuItem {} {
  56. label {&Compact}
  57. xywh {20 20 40 25}
  58. }
  59. Submenu {} {
  60. label Export open
  61. xywh {0 0 74 25}
  62. } {
  63. MenuItem {} {
  64. label Session
  65. xywh {0 0 40 25}
  66. }
  67. MenuItem {} {
  68. label Range
  69. xywh {10 10 40 25}
  70. }
  71. }
  72. MenuItem {} {
  73. label {&Quit}
  74. callback {exit( 0 );}
  75. xywh {40 40 40 25} shortcut 0x40071
  76. }
  77. }
  78. Submenu {} {
  79. label {&Edit} open
  80. xywh {0 0 74 25}
  81. } {
  82. MenuItem {} {
  83. label Preferences
  84. xywh {0 0 40 25}
  85. }
  86. MenuItem {} {
  87. label Undo
  88. xywh {0 0 40 25} shortcut 0x4007a
  89. }
  90. }
  91. Submenu {} {
  92. label Transport open
  93. xywh {0 0 74 25}
  94. } {
  95. MenuItem {} {
  96. label Home
  97. callback {transport->locate( 0 );}
  98. xywh {0 0 40 25} shortcut 0xff50
  99. }
  100. MenuItem {} {
  101. label End
  102. callback {transport->locate( timeline->length() );}
  103. xywh {10 10 40 25} shortcut 0xff57
  104. }
  105. MenuItem {} {
  106. label Stop
  107. callback {transport->stop();}
  108. xywh {20 20 40 25} shortcut 0x50073
  109. }
  110. MenuItem {} {
  111. label Play
  112. callback {transport->start();}
  113. xywh {30 30 40 25} shortcut 0x50070
  114. }
  115. MenuItem {} {
  116. label Record
  117. xywh {40 40 40 25} shortcut 0x50072
  118. }
  119. }
  120. Submenu {} {
  121. label {&View} open
  122. xywh {0 0 74 25}
  123. } {
  124. Submenu {} {
  125. label {&Zoom} open
  126. xywh {0 0 74 25}
  127. } {
  128. MenuItem {} {
  129. label {&In}
  130. callback {timeline->zoom_in();}
  131. xywh {20 20 40 25}
  132. }
  133. MenuItem {} {
  134. label {&Out}
  135. callback {timeline->zoom_out();}
  136. xywh {30 30 40 25}
  137. }
  138. MenuItem {} {
  139. label {&Fit}
  140. xywh {10 10 40 25} divider
  141. }
  142. MenuItem {} {
  143. label {1 sec.}
  144. callback {timeline->zoom( 1 );}
  145. xywh {10 10 40 25} shortcut 0x31
  146. }
  147. MenuItem {} {
  148. label {1 min.}
  149. callback {timeline->zoom( 60 );}
  150. xywh {20 20 40 25} shortcut 0x32
  151. }
  152. MenuItem {} {
  153. label {1 hour.}
  154. callback {timeline->zoom( 60 * 60 );}
  155. xywh {30 30 40 25} shortcut 0x33
  156. }
  157. }
  158. }
  159. Submenu {} {
  160. label {&Options} open
  161. xywh {0 0 74 25} divider
  162. } {
  163. Submenu {} {
  164. label {&Display} open
  165. xywh {0 0 74 25}
  166. } {
  167. Submenu {} {
  168. label {&Waveforms} open
  169. xywh {0 0 74 25}
  170. } {
  171. MenuItem {} {
  172. label Fill
  173. callback {Waveform::fill = menu_picked_value( o );
  174. timeline->redraw();}
  175. xywh {10 10 40 25} type Toggle value 1
  176. }
  177. MenuItem {} {
  178. label Outline
  179. callback {Waveform::outline = menu_picked_value( o );
  180. timeline->redraw();}
  181. xywh {30 30 40 25} type Toggle value 1
  182. }
  183. MenuItem {} {
  184. label {Vary color}
  185. callback {Waveform::vary_color = menu_picked_value( o );
  186. timeline->redraw();}
  187. xywh {20 20 40 25} type Toggle value 1
  188. }
  189. }
  190. Submenu {} {
  191. label {&Region} open
  192. xywh {0 0 74 25}
  193. } {
  194. MenuItem {} {
  195. label {Filled fades}
  196. xywh {30 30 40 25} type Toggle value 1
  197. }
  198. }
  199. Submenu {} {
  200. label {&Control Sequence} open
  201. xywh {0 0 74 25}
  202. } {
  203. MenuItem {} {
  204. label Polygon
  205. callback {Control_Sequence::draw_with_polygon = menu_picked_value( o );
  206. timeline->redraw();}
  207. xywh {20 20 40 25} type Toggle value 1
  208. }
  209. MenuItem {} {
  210. label Graded
  211. callback {Control_Sequence::draw_with_gradient = menu_picked_value( o );
  212. timeline->redraw();}
  213. xywh {30 30 40 25} type Toggle value 1
  214. }
  215. MenuItem {} {
  216. label Ruled
  217. callback {Control_Sequence::draw_with_grid = menu_picked_value( o );
  218. timeline->redraw();}
  219. xywh {40 40 40 25} type Toggle value 1
  220. }
  221. }
  222. Submenu {} {
  223. label {&Style} open
  224. xywh {0 0 74 25}
  225. } {
  226. MenuItem {} {
  227. label Default
  228. callback {Fl::scheme( "plastic" );}
  229. xywh {0 0 40 25} type Radio value 1
  230. }
  231. MenuItem {} {
  232. label Flat
  233. callback {Fl::scheme( "gtk+" );}
  234. xywh {10 10 40 25} type Radio
  235. }
  236. }
  237. Submenu {} {
  238. label {C&olors} open selected
  239. xywh {0 0 74 25}
  240. } {
  241. MenuItem {} {
  242. label System
  243. callback {Fl::get_system_colors();
  244. Fl::scheme( Fl::scheme() );}
  245. xywh {0 0 40 25} type Radio
  246. }
  247. MenuItem {} {
  248. label Dark
  249. callback {Fl::background2( 100, 100, 100 );
  250. Fl::background( 50, 50, 50 );
  251. Fl::foreground( 255, 255, 255 );
  252. Fl::scheme( Fl::scheme() );}
  253. xywh {10 10 40 25} type Radio value 1
  254. }
  255. MenuItem {} {
  256. label Light
  257. callback {Fl::background2( 255, 255, 255 );
  258. Fl::background( 172, 172, 172 );
  259. Fl::foreground( 0, 0, 0 );
  260. Fl::scheme( Fl::scheme() );}
  261. xywh {20 20 40 25} type Radio
  262. }
  263. }
  264. }
  265. }
  266. MenuItem {} {
  267. label {&Help}
  268. xywh {0 0 40 25}
  269. }
  270. }
  271. Fl_Box {} {
  272. label {<Timeline>}
  273. xywh {0 74 1024 695} box FLAT_BOX color 47 labelsize 100
  274. code0 {timeline = o;}
  275. class Timeline
  276. }
  277. Fl_Box {} {
  278. label {<Transport>}
  279. xywh {0 25 137 46} color 30
  280. code0 {transport = o;}
  281. code1 {o->labeltype( FL_NO_LABEL );}
  282. class Transport
  283. }
  284. Fl_Pack clocks_pack {open
  285. xywh {139 25 285 46} type HORIZONTAL
  286. } {
  287. Fl_Box playhead_clock {
  288. label PLAYHEAD
  289. xywh {139 29 137 40} box BORDER_BOX color 46
  290. code0 {o->type( Clock::HMS );}
  291. code1 {o->run( &transport->frame );}
  292. class Clock
  293. }
  294. Fl_Box {} {
  295. label PLAYHEAD
  296. xywh {278 29 142 40} box BORDER_BOX color 46
  297. code0 {o->type( Clock::BBT );}
  298. class Clock
  299. }
  300. }
  301. Fl_Progress capture_buffer_progress {
  302. label {capture:}
  303. xywh {925 26 99 14} labelsize 10 align 4
  304. }
  305. Fl_Progress cpu_load_progress {
  306. label {DSP:}
  307. xywh {925 55 99 16} labelsize 9 align 4
  308. }
  309. Fl_Progress playback_buffer_progress {
  310. label {playback:}
  311. xywh {925 40 99 14} labelsize 10 align 4
  312. }
  313. Fl_Box {} {
  314. label {<empty>}
  315. xywh {427 29 469 42}
  316. code0 {o->labeltype( FL_NO_LABEL );}
  317. }
  318. }
  319. }
  320. Function {update_status()} {open
  321. } {
  322. code {capture_buffer_progress->value( timeline->total_input_buffer_percent() );
  323. playback_buffer_progress->value( timeline->total_output_buffer_percent() );
  324. cpu_load_progress->value( engine->cpu_load() );
  325. // TODO: dsp} {}
  326. }
  327. Function {update_cb( void *v )} {open return_type {static void}
  328. } {
  329. code {Fl::repeat_timeout( STATUS_UPDATE_FREQ, update_cb, v );
  330. ((TLE*)v)->update_status();} {}
  331. }
  332. }
  333. Function {make_window()} {open
  334. } {}