r668: Configure.in and autogen.sh cleanup based on ideas by giskard.
[cinelerra_cv.git] / cinelerra / mainmenu.h
blob7adccb2081e450e27b273b19d9cc90accf64fbd4
1 #ifndef MAINMENU_H
2 #define MAINMENU_H
4 class AEffectMenu;
5 class LabelsFollowEdits;
6 class PluginsFollowEdits;
7 class CursorOnFrames;
8 class LoopPlayback;
10 class Redo;
11 class ShowVWindow;
12 class ShowAWindow;
13 class ShowGWindow;
14 class ShowCWindow;
15 class ShowLWindow;
16 class Undo;
18 #include "arraylist.h"
19 #include "guicast.h"
20 #include "defaults.inc"
21 #include "loadfile.inc"
22 #include "mwindow.inc"
23 #include "mwindowgui.inc"
24 #include "maxchannels.h"
25 #include "menuaeffects.inc"
26 #include "menuveffects.inc"
27 #include "module.inc"
28 #include "new.inc"
29 #include "plugindialog.inc"
30 #include "quit.inc"
31 #include "record.inc"
32 #include "render.inc"
33 #include "threadloader.inc"
34 #include "viewmenu.inc"
36 #define TOTAL_LOADS 10 // number of files to cache
37 #define TOTAL_EFFECTS 10 // number of effects to cache
39 class MainMenu : public BC_MenuBar
41 public:
42 MainMenu(MWindow *mwindow, MWindowGUI *gui);
43 ~MainMenu();
44 int create_objects();
45 int load_defaults(Defaults *defaults);
46 int save_defaults(Defaults *defaults);
48 // most recent loads
49 int add_load(char *new_path);
50 int init_loads(Defaults *defaults);
52 // most recent effects
53 int init_aeffects(Defaults *defaults);
54 int save_aeffects(Defaults *defaults);
55 int add_aeffect(char *title);
56 int init_veffects(Defaults *defaults);
57 int save_veffects(Defaults *defaults);
58 int add_veffect(char *title);
60 int quit();
61 // show only one of these at a time
62 int set_show_autos();
63 void update_toggles(int use_lock);
65 MWindowGUI *gui;
66 MWindow *mwindow;
67 ThreadLoader *threadloader;
68 MenuAEffects *aeffects;
69 MenuVEffects *veffects;
71 Load *load_file;
72 BC_RecentList *recent_load;
73 LoadPrevious *load[TOTAL_LOADS];
75 RecordMenuItem *record;
76 RenderItem *render;
77 New *new_project;
78 MenuAEffectItem *aeffect[TOTAL_EFFECTS];
79 MenuVEffectItem *veffect[TOTAL_EFFECTS];
80 Quit *quit_program; // affected by save
81 Undo *undo;
82 Redo *redo;
83 int total_aeffects;
84 int total_veffects;
85 BC_Menu *filemenu, *audiomenu, *videomenu; // needed by most recents
87 LabelsFollowEdits *labels_follow_edits;
88 PluginsFollowEdits *plugins_follow_edits;
89 CursorOnFrames *cursor_on_frames;
90 LoopPlayback *loop_playback;
91 ShowAssets *show_assets;
92 ShowTitles *show_titles;
93 ShowTransitions *show_transitions;
94 ShowAutomation *fade_automation;
95 ShowAutomation *mute_automation;
96 ShowAutomation *pan_automation;
97 ShowAutomation *camera_x;
98 ShowAutomation *camera_y;
99 ShowAutomation *camera_z;
100 ShowAutomation *project_x;
101 ShowAutomation *project_y;
102 ShowAutomation *project_z;
103 PluginAutomation *plugin_automation;
104 ShowAutomation *mask_automation;
105 ShowAutomation *mode_automation;
106 ShowVWindow *show_vwindow;
107 ShowAWindow *show_awindow;
108 ShowCWindow *show_cwindow;
109 ShowGWindow *show_gwindow;
110 ShowLWindow *show_lwindow;
113 // ========================================= edit
115 class Undo : public BC_MenuItem
117 public:
118 Undo(MWindow *mwindow);
119 int handle_event();
120 int update_caption(char *new_caption = "");
121 MWindow *mwindow;
126 class DumpCICache : public BC_MenuItem
128 public:
129 DumpCICache(MWindow *mwindow);
130 int handle_event();
131 MWindow *mwindow;
134 class DumpEDL : public BC_MenuItem
136 public:
137 DumpEDL(MWindow *mwindow);
138 int handle_event();
139 MWindow *mwindow;
142 class DumpPlugins : public BC_MenuItem
144 public:
145 DumpPlugins(MWindow *mwindow);
146 int handle_event();
147 MWindow *mwindow;
150 class DumpAssets : public BC_MenuItem
152 public:
153 DumpAssets(MWindow *mwindow);
154 int handle_event();
155 MWindow *mwindow;
158 class Redo : public BC_MenuItem
160 public:
161 Redo(MWindow *mwindow);
162 int handle_event();
163 int update_caption(char *new_caption = "");
164 MWindow *mwindow;
167 class Cut : public BC_MenuItem
169 public:
170 Cut(MWindow *mwindow);
171 int handle_event();
172 MWindow *mwindow;
175 class Copy : public BC_MenuItem
177 public:
178 Copy(MWindow *mwindow);
179 int handle_event();
180 MWindow *mwindow;
183 class Paste : public BC_MenuItem
185 public:
186 Paste(MWindow *mwindow);
187 int handle_event();
188 MWindow *mwindow;
191 class Clear : public BC_MenuItem
193 public:
194 Clear(MWindow *mwindow);
195 int handle_event();
196 MWindow *mwindow;
199 class CutKeyframes : public BC_MenuItem
201 public:
202 CutKeyframes(MWindow *mwindow);
203 int handle_event();
204 MWindow *mwindow;
207 class CopyKeyframes : public BC_MenuItem
209 public:
210 CopyKeyframes(MWindow *mwindow);
211 int handle_event();
212 MWindow *mwindow;
215 class PasteKeyframes : public BC_MenuItem
217 public:
218 PasteKeyframes(MWindow *mwindow);
219 int handle_event();
220 MWindow *mwindow;
223 class ClearKeyframes : public BC_MenuItem
225 public:
226 ClearKeyframes(MWindow *mwindow);
227 int handle_event();
228 MWindow *mwindow;
231 class CutDefaultKeyframe : public BC_MenuItem
233 public:
234 CutDefaultKeyframe(MWindow *mwindow);
235 int handle_event();
236 MWindow *mwindow;
239 class CopyDefaultKeyframe : public BC_MenuItem
241 public:
242 CopyDefaultKeyframe(MWindow *mwindow);
243 int handle_event();
244 MWindow *mwindow;
247 class PasteDefaultKeyframe : public BC_MenuItem
249 public:
250 PasteDefaultKeyframe(MWindow *mwindow);
251 int handle_event();
252 MWindow *mwindow;
255 class ClearDefaultKeyframe : public BC_MenuItem
257 public:
258 ClearDefaultKeyframe(MWindow *mwindow);
259 int handle_event();
260 MWindow *mwindow;
263 class PasteSilence : public BC_MenuItem
265 public:
266 PasteSilence(MWindow *mwindow);
267 int handle_event();
268 MWindow *mwindow;
271 class SelectAll : public BC_MenuItem
273 public:
274 SelectAll(MWindow *mwindow);
275 int handle_event();
276 MWindow *mwindow;
279 class ClearLabels : public BC_MenuItem
281 public:
282 ClearLabels(MWindow *mwindow);
283 int handle_event();
284 MWindow *mwindow;
287 class MuteSelection : public BC_MenuItem
289 public:
290 MuteSelection(MWindow *mwindow);
291 int handle_event();
292 MWindow *mwindow;
295 class TrimSelection : public BC_MenuItem
297 public:
298 TrimSelection(MWindow *mwindow);
299 int handle_event();
300 MWindow *mwindow;
303 // ======================================== audio
305 class AddAudioTrack : public BC_MenuItem
307 public:
308 AddAudioTrack(MWindow *mwindow);
309 int handle_event();
310 MWindow *mwindow;
313 class DeleteAudioTrack : public BC_MenuItem
315 public:
316 DeleteAudioTrack(MWindow *mwindow);
317 int handle_event();
318 MWindow *mwindow;
321 class DefaultATransition : public BC_MenuItem
323 public:
324 DefaultATransition(MWindow *mwindow);
325 int handle_event();
326 MWindow *mwindow;
329 // ========================================== video
332 class AddVideoTrack : public BC_MenuItem
334 public:
335 AddVideoTrack(MWindow *mwindow);
336 int handle_event();
337 MWindow *mwindow;
341 class DeleteVideoTrack : public BC_MenuItem
343 public:
344 DeleteVideoTrack(MWindow *mwindow);
345 int handle_event();
346 MWindow *mwindow;
349 class ResetTranslation : public BC_MenuItem
351 public:
352 ResetTranslation(MWindow *mwindow);
353 int handle_event();
354 MWindow *mwindow;
357 class DefaultVTransition : public BC_MenuItem
359 public:
360 DefaultVTransition(MWindow *mwindow);
361 int handle_event();
362 MWindow *mwindow;
365 // ========================================== settings
368 class MoveTracksUp : public BC_MenuItem
370 public:
371 MoveTracksUp(MWindow *mwindow);
372 int handle_event();
373 MWindow *mwindow;
376 class MoveTracksDown : public BC_MenuItem
378 public:
379 MoveTracksDown(MWindow *mwindow);
380 int handle_event();
381 MWindow *mwindow;
384 class DeleteTracks : public BC_MenuItem
386 public:
387 DeleteTracks(MWindow *mwindow);
388 int handle_event();
389 MWindow *mwindow;
392 class ConcatenateTracks : public BC_MenuItem
394 public:
395 ConcatenateTracks(MWindow *mwindow);
396 int handle_event();
397 MWindow *mwindow;
400 class DeleteTrack : public BC_MenuItem
402 public:
403 DeleteTrack(MWindow *mwindow);
404 int handle_event();
405 MWindow *mwindow;
408 class LoopPlayback : public BC_MenuItem
410 public:
411 LoopPlayback(MWindow *mwindow);
413 int handle_event();
414 MWindow *mwindow;
417 class SetBRenderStart : public BC_MenuItem
419 public:
420 SetBRenderStart(MWindow *mwindow);
421 int handle_event();
422 MWindow *mwindow;
425 class LabelsFollowEdits : public BC_MenuItem
427 public:
428 LabelsFollowEdits(MWindow *mwindow);
429 int handle_event();
430 MWindow *mwindow;
433 class PluginsFollowEdits : public BC_MenuItem
435 public:
436 PluginsFollowEdits(MWindow *mwindow);
437 int handle_event();
438 MWindow *mwindow;
441 class CursorOnFrames : public BC_MenuItem
443 public:
444 CursorOnFrames(MWindow *mwindow);
445 int handle_event();
446 MWindow *mwindow;
449 class AutosFollowEdits : public BC_MenuItem
451 public:
452 AutosFollowEdits(MWindow *mwindow);
453 int handle_event();
454 MWindow *mwindow;
457 class ScrubSpeed : public BC_MenuItem
459 public:
460 ScrubSpeed(MWindow *mwindow);
461 int handle_event();
462 MWindow *mwindow;
465 class SaveSettingsNow : public BC_MenuItem
467 public:
468 SaveSettingsNow(MWindow *mwindow);
469 int handle_event();
470 MWindow *mwindow;
473 // ========================================== window
474 class ShowVWindow : public BC_MenuItem
476 public:
477 ShowVWindow(MWindow *mwindow);
478 int handle_event();
479 MWindow *mwindow;
482 class ShowAWindow : public BC_MenuItem
484 public:
485 ShowAWindow(MWindow *mwindow);
486 int handle_event();
487 MWindow *mwindow;
490 class ShowGWindow : public BC_MenuItem
492 public:
493 ShowGWindow(MWindow *mwindow);
494 int handle_event();
495 MWindow *mwindow;
498 class ShowCWindow : public BC_MenuItem
500 public:
501 ShowCWindow(MWindow *mwindow);
502 int handle_event();
503 MWindow *mwindow;
506 class ShowLWindow : public BC_MenuItem
508 public:
509 ShowLWindow(MWindow *mwindow);
510 int handle_event();
511 MWindow *mwindow;
514 class TileWindows : public BC_MenuItem
516 public:
517 TileWindows(MWindow *mwindow);
518 int handle_event();
519 MWindow *mwindow;
522 #endif