r602: Fix baver's code... don't insert timecode when show_tc is not set
[cinelerra_cv/mob.git] / cinelerra / mainmenu.h
blob5bf0d05b801bfc0c3a4828c3a4f63ef38639b72a
1 #ifndef MAINMENU_H
2 #define MAINMENU_H
4 class AEffectMenu;
5 class PanMenu;
6 class PanItem;
7 class PluginItem;
8 class PluginMenu;
9 class LabelsFollowEdits;
10 class PluginsFollowEdits;
11 class CursorOnFrames;
12 class LoopPlayback;
14 class Redo;
15 class ShowConsole;
16 class ShowLevels;
17 class ShowVideo;
18 class ShowVWindow;
19 class ShowAWindow;
20 class ShowCWindow;
21 class ShowLWindow;
22 class Undo;
24 #include "arraylist.h"
25 #include "guicast.h"
26 #include "defaults.inc"
27 #include "loadfile.inc"
28 #include "mwindow.inc"
29 #include "mwindowgui.inc"
30 #include "maxchannels.h"
31 #include "menuaeffects.inc"
32 #include "menuveffects.inc"
33 #include "module.inc"
34 #include "new.inc"
35 #include "plugindialog.inc"
36 #include "quit.inc"
37 #include "record.inc"
38 #include "render.inc"
39 #include "threadloader.inc"
40 #include "viewmenu.inc"
42 #define TOTAL_LOADS 10 // number of files to cache
43 #define TOTAL_EFFECTS 10 // number of effects to cache
45 class MainMenu : public BC_MenuBar
47 public:
48 MainMenu(MWindow *mwindow, MWindowGUI *gui);
49 ~MainMenu();
50 int create_objects();
51 int load_defaults(Defaults *defaults);
52 int save_defaults(Defaults *defaults);
54 // most recent loads
55 int add_load(char *new_path);
56 int init_loads(Defaults *defaults);
58 // most recent effects
59 int init_aeffects(Defaults *defaults);
60 int save_aeffects(Defaults *defaults);
61 int add_aeffect(char *title);
62 int init_veffects(Defaults *defaults);
63 int save_veffects(Defaults *defaults);
64 int add_veffect(char *title);
67 int quit();
68 // show only one of these at a time
69 int set_show_autos();
70 void update_toggles();
72 MWindowGUI *gui;
73 MWindow *mwindow;
74 ThreadLoader *threadloader;
75 PanMenu *panmenu;
76 PluginMenu *pluginmenu;
77 MenuAEffects *aeffects;
78 MenuVEffects *veffects;
80 Load *load_file;
81 BC_RecentList *recent_load;
82 LoadPrevious *load[TOTAL_LOADS];
84 RecordMenuItem *record;
85 RenderItem *render;
86 New *new_project;
87 MenuAEffectItem *aeffect[TOTAL_EFFECTS];
88 MenuVEffectItem *veffect[TOTAL_EFFECTS];
89 Quit *quit_program; // affected by save
90 Undo *undo;
91 Redo *redo;
92 int total_aeffects;
93 int total_veffects;
94 BC_Menu *filemenu, *audiomenu, *videomenu; // needed by most recents
95 ShowConsole *show_console;
96 ShowRenderedOutput *show_output;
97 ShowLevels *show_levels;
98 ShowVideo *show_video;
99 ShowEdits *show_edits;
101 LabelsFollowEdits *labels_follow_edits;
102 PluginsFollowEdits *plugins_follow_edits;
103 CursorOnFrames *cursor_on_frames;
104 LoopPlayback *loop_playback;
105 ShowTitles *show_titles;
106 ShowTransitions *show_transitions;
107 FadeAutomation *fade_automation;
108 // PlayAutomation *play_automation;
109 MuteAutomation *mute_automation;
110 PanAutomation *pan_automation;
111 CameraAutomation *camera_automation;
112 ProjectAutomation *project_automation;
113 PluginAutomation *plugin_automation;
114 MaskAutomation *mask_automation;
115 ModeAutomation *mode_automation;
116 CZoomAutomation *czoom_automation;
117 PZoomAutomation *pzoom_automation;
118 ShowVWindow *show_vwindow;
119 ShowAWindow *show_awindow;
120 ShowCWindow *show_cwindow;
121 ShowLWindow *show_lwindow;
124 // ========================================= edit
126 class Undo : public BC_MenuItem
128 public:
129 Undo(MWindow *mwindow);
130 int handle_event();
131 int update_caption(char *new_caption = "");
132 MWindow *mwindow;
137 class DumpCICache : public BC_MenuItem
139 public:
140 DumpCICache(MWindow *mwindow);
141 int handle_event();
142 MWindow *mwindow;
145 class DumpEDL : public BC_MenuItem
147 public:
148 DumpEDL(MWindow *mwindow);
149 int handle_event();
150 MWindow *mwindow;
153 class DumpPlugins : public BC_MenuItem
155 public:
156 DumpPlugins(MWindow *mwindow);
157 int handle_event();
158 MWindow *mwindow;
161 class DumpAssets : public BC_MenuItem
163 public:
164 DumpAssets(MWindow *mwindow);
165 int handle_event();
166 MWindow *mwindow;
169 class Redo : public BC_MenuItem
171 public:
172 Redo(MWindow *mwindow);
173 int handle_event();
174 int update_caption(char *new_caption = "");
175 MWindow *mwindow;
178 class Cut : public BC_MenuItem
180 public:
181 Cut(MWindow *mwindow);
182 int handle_event();
183 MWindow *mwindow;
186 class Copy : public BC_MenuItem
188 public:
189 Copy(MWindow *mwindow);
190 int handle_event();
191 MWindow *mwindow;
194 class Paste : public BC_MenuItem
196 public:
197 Paste(MWindow *mwindow);
198 int handle_event();
199 MWindow *mwindow;
202 class Clear : public BC_MenuItem
204 public:
205 Clear(MWindow *mwindow);
206 int handle_event();
207 MWindow *mwindow;
210 class CutKeyframes : public BC_MenuItem
212 public:
213 CutKeyframes(MWindow *mwindow);
214 int handle_event();
215 MWindow *mwindow;
218 class CopyKeyframes : public BC_MenuItem
220 public:
221 CopyKeyframes(MWindow *mwindow);
222 int handle_event();
223 MWindow *mwindow;
226 class PasteKeyframes : public BC_MenuItem
228 public:
229 PasteKeyframes(MWindow *mwindow);
230 int handle_event();
231 MWindow *mwindow;
234 class ClearKeyframes : public BC_MenuItem
236 public:
237 ClearKeyframes(MWindow *mwindow);
238 int handle_event();
239 MWindow *mwindow;
242 class CutDefaultKeyframe : public BC_MenuItem
244 public:
245 CutDefaultKeyframe(MWindow *mwindow);
246 int handle_event();
247 MWindow *mwindow;
250 class CopyDefaultKeyframe : public BC_MenuItem
252 public:
253 CopyDefaultKeyframe(MWindow *mwindow);
254 int handle_event();
255 MWindow *mwindow;
258 class PasteDefaultKeyframe : public BC_MenuItem
260 public:
261 PasteDefaultKeyframe(MWindow *mwindow);
262 int handle_event();
263 MWindow *mwindow;
266 class ClearDefaultKeyframe : public BC_MenuItem
268 public:
269 ClearDefaultKeyframe(MWindow *mwindow);
270 int handle_event();
271 MWindow *mwindow;
274 class PasteSilence : public BC_MenuItem
276 public:
277 PasteSilence(MWindow *mwindow);
278 int handle_event();
279 MWindow *mwindow;
282 class SelectAll : public BC_MenuItem
284 public:
285 SelectAll(MWindow *mwindow);
286 int handle_event();
287 MWindow *mwindow;
290 class ClearLabels : public BC_MenuItem
292 public:
293 ClearLabels(MWindow *mwindow);
294 int handle_event();
295 MWindow *mwindow;
298 class MuteSelection : public BC_MenuItem
300 public:
301 MuteSelection(MWindow *mwindow);
302 int handle_event();
303 MWindow *mwindow;
306 class TrimSelection : public BC_MenuItem
308 public:
309 TrimSelection(MWindow *mwindow);
310 int handle_event();
311 MWindow *mwindow;
314 // ======================================== audio
316 class AddAudioTrack : public BC_MenuItem
318 public:
319 AddAudioTrack(MWindow *mwindow);
320 int handle_event();
321 MWindow *mwindow;
324 class DeleteAudioTrack : public BC_MenuItem
326 public:
327 DeleteAudioTrack(MWindow *mwindow);
328 int handle_event();
329 MWindow *mwindow;
332 class DefaultATransition : public BC_MenuItem
334 public:
335 DefaultATransition(MWindow *mwindow);
336 int handle_event();
337 MWindow *mwindow;
340 // ========================================== video
343 class AddVideoTrack : public BC_MenuItem
345 public:
346 AddVideoTrack(MWindow *mwindow);
347 int handle_event();
348 MWindow *mwindow;
352 class DeleteVideoTrack : public BC_MenuItem
354 public:
355 DeleteVideoTrack(MWindow *mwindow);
356 int handle_event();
357 MWindow *mwindow;
360 class ResetTranslation : public BC_MenuItem
362 public:
363 ResetTranslation(MWindow *mwindow);
364 int handle_event();
365 MWindow *mwindow;
368 class DefaultVTransition : public BC_MenuItem
370 public:
371 DefaultVTransition(MWindow *mwindow);
372 int handle_event();
373 MWindow *mwindow;
376 // ========================================== settings
379 class MoveTracksUp : public BC_MenuItem
381 public:
382 MoveTracksUp(MWindow *mwindow);
383 int handle_event();
384 MWindow *mwindow;
387 class MoveTracksDown : public BC_MenuItem
389 public:
390 MoveTracksDown(MWindow *mwindow);
391 int handle_event();
392 MWindow *mwindow;
395 class DeleteTracks : public BC_MenuItem
397 public:
398 DeleteTracks(MWindow *mwindow);
399 int handle_event();
400 MWindow *mwindow;
403 class ConcatenateTracks : public BC_MenuItem
405 public:
406 ConcatenateTracks(MWindow *mwindow);
407 int handle_event();
408 MWindow *mwindow;
411 class DeleteTrack : public BC_MenuItem
413 public:
414 DeleteTrack(MWindow *mwindow);
415 int handle_event();
416 MWindow *mwindow;
419 class LoopPlayback : public BC_MenuItem
421 public:
422 LoopPlayback(MWindow *mwindow);
424 int handle_event();
425 MWindow *mwindow;
428 class SetBRenderStart : public BC_MenuItem
430 public:
431 SetBRenderStart(MWindow *mwindow);
432 int handle_event();
433 MWindow *mwindow;
436 class LabelsFollowEdits : public BC_MenuItem
438 public:
439 LabelsFollowEdits(MWindow *mwindow);
440 int handle_event();
441 MWindow *mwindow;
444 class PluginsFollowEdits : public BC_MenuItem
446 public:
447 PluginsFollowEdits(MWindow *mwindow);
448 int handle_event();
449 MWindow *mwindow;
452 class CursorOnFrames : public BC_MenuItem
454 public:
455 CursorOnFrames(MWindow *mwindow);
456 int handle_event();
457 MWindow *mwindow;
460 class AutosFollowEdits : public BC_MenuItem
462 public:
463 AutosFollowEdits(MWindow *mwindow);
464 int handle_event();
465 MWindow *mwindow;
468 class ScrubSpeed : public BC_MenuItem
470 public:
471 ScrubSpeed(MWindow *mwindow);
472 int handle_event();
473 MWindow *mwindow;
476 class SaveSettingsNow : public BC_MenuItem
478 public:
479 SaveSettingsNow(MWindow *mwindow);
480 int handle_event();
481 MWindow *mwindow;
484 // ========================================== window
486 class ShowVWindow : public BC_MenuItem
488 public:
489 ShowVWindow(MWindow *mwindow);
490 int handle_event();
491 MWindow *mwindow;
494 class ShowAWindow : public BC_MenuItem
496 public:
497 ShowAWindow(MWindow *mwindow);
498 int handle_event();
499 MWindow *mwindow;
502 class ShowCWindow : public BC_MenuItem
504 public:
505 ShowCWindow(MWindow *mwindow);
506 int handle_event();
507 MWindow *mwindow;
510 class ShowLWindow : public BC_MenuItem
512 public:
513 ShowLWindow(MWindow *mwindow);
514 int handle_event();
515 MWindow *mwindow;
518 class TileWindows : public BC_MenuItem
520 public:
521 TileWindows(MWindow *mwindow);
522 int handle_event();
523 MWindow *mwindow;
526 class OriginalSize : public BC_MenuItem
528 public:
529 OriginalSize(MWindow *mwindow);
530 int handle_event();
531 MWindow *mwindow;
534 class VerticalTracks : public BC_MenuItem
536 public:
537 VerticalTracks(MWindow *mwindow);
538 int handle_event();
539 MWindow *mwindow;
543 class PanMenu : public BC_SubMenu
545 public:
546 PanMenu();
549 class PanItem : public BC_MenuItem
551 public:
552 PanItem(MWindow *mwindow, char *text, int number);
553 int handle_event();
554 MWindow *mwindow;
555 int number;
558 class PluginMenu : public BC_SubMenu
560 public:
561 PluginMenu();
564 class PluginItem : public BC_MenuItem
566 public:
567 PluginItem(MWindow *mwindow, char *text, int number);
568 int handle_event();
569 MWindow *mwindow;
570 int number;
573 #endif