5 class LabelsFollowEdits
;
6 class PluginsFollowEdits
;
18 #include "arraylist.h"
21 #include "loadfile.inc"
22 #include "mwindow.inc"
23 #include "mwindowgui.inc"
24 #include "maxchannels.h"
25 #include "menuaeffects.inc"
26 #include "menuveffects.inc"
29 #include "plugindialog.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
42 MainMenu(MWindow
*mwindow
, MWindowGUI
*gui
);
45 int load_defaults(BC_Hash
*defaults
);
46 int save_defaults(BC_Hash
*defaults
);
49 int add_load(char *path
);
50 int init_loads(BC_Hash
*defaults
);
52 // most recent effects
53 int init_aeffects(BC_Hash
*defaults
);
54 int save_aeffects(BC_Hash
*defaults
);
55 int add_aeffect(char *title
);
56 int init_veffects(BC_Hash
*defaults
);
57 int save_veffects(BC_Hash
*defaults
);
58 int add_veffect(char *title
);
61 // show only one of these at a time
63 void update_toggles(int use_lock
);
67 ThreadLoader
*threadloader
;
68 MenuAEffects
*aeffects
;
69 MenuVEffects
*veffects
;
72 BC_RecentList
*recent_load
;
73 LoadPrevious
*load
[TOTAL_LOADS
];
76 RecordMenuItem
*record
;
79 MenuAEffectItem
*aeffect
[TOTAL_EFFECTS
];
80 MenuVEffectItem
*veffect
[TOTAL_EFFECTS
];
81 Quit
*quit_program
; // affected by save
86 BC_Menu
*filemenu
, *audiomenu
, *videomenu
; // needed by most recents
88 LabelsFollowEdits
*labels_follow_edits
;
89 PluginsFollowEdits
*plugins_follow_edits
;
90 CursorOnFrames
*cursor_on_frames
;
91 LoopPlayback
*loop_playback
;
92 ShowAssets
*show_assets
;
93 ShowTitles
*show_titles
;
94 ShowTransitions
*show_transitions
;
95 ShowAutomation
*fade_automation
;
96 ShowAutomation
*mute_automation
;
97 ShowAutomation
*pan_automation
;
98 ShowAutomation
*camera_x
;
99 ShowAutomation
*camera_y
;
100 ShowAutomation
*camera_z
;
101 ShowAutomation
*project_x
;
102 ShowAutomation
*project_y
;
103 ShowAutomation
*project_z
;
104 PluginAutomation
*plugin_automation
;
105 ShowAutomation
*mask_automation
;
106 ShowAutomation
*mode_automation
;
107 ShowVWindow
*show_vwindow
;
108 ShowAWindow
*show_awindow
;
109 ShowCWindow
*show_cwindow
;
110 ShowGWindow
*show_gwindow
;
111 ShowLWindow
*show_lwindow
;
114 // ========================================= edit
116 class Undo
: public BC_MenuItem
119 Undo(MWindow
*mwindow
);
121 int update_caption(char *new_caption
= "");
127 class DumpCICache
: public BC_MenuItem
130 DumpCICache(MWindow
*mwindow
);
135 class DumpEDL
: public BC_MenuItem
138 DumpEDL(MWindow
*mwindow
);
143 class DumpPlugins
: public BC_MenuItem
146 DumpPlugins(MWindow
*mwindow
);
151 class DumpAssets
: public BC_MenuItem
154 DumpAssets(MWindow
*mwindow
);
159 class Redo
: public BC_MenuItem
162 Redo(MWindow
*mwindow
);
164 int update_caption(char *new_caption
= "");
168 class Cut
: public BC_MenuItem
171 Cut(MWindow
*mwindow
);
176 class Copy
: public BC_MenuItem
179 Copy(MWindow
*mwindow
);
184 class Paste
: public BC_MenuItem
187 Paste(MWindow
*mwindow
);
192 class Clear
: public BC_MenuItem
195 Clear(MWindow
*mwindow
);
200 class CutKeyframes
: public BC_MenuItem
203 CutKeyframes(MWindow
*mwindow
);
208 class CopyKeyframes
: public BC_MenuItem
211 CopyKeyframes(MWindow
*mwindow
);
216 class PasteKeyframes
: public BC_MenuItem
219 PasteKeyframes(MWindow
*mwindow
);
224 class ClearKeyframes
: public BC_MenuItem
227 ClearKeyframes(MWindow
*mwindow
);
232 class StraightenKeyframes
: public BC_MenuItem
235 StraightenKeyframes(MWindow
*mwindow
);
240 class CutDefaultKeyframe
: public BC_MenuItem
243 CutDefaultKeyframe(MWindow
*mwindow
);
248 class CopyDefaultKeyframe
: public BC_MenuItem
251 CopyDefaultKeyframe(MWindow
*mwindow
);
256 class PasteDefaultKeyframe
: public BC_MenuItem
259 PasteDefaultKeyframe(MWindow
*mwindow
);
264 class ClearDefaultKeyframe
: public BC_MenuItem
267 ClearDefaultKeyframe(MWindow
*mwindow
);
272 class PasteSilence
: public BC_MenuItem
275 PasteSilence(MWindow
*mwindow
);
280 class SelectAll
: public BC_MenuItem
283 SelectAll(MWindow
*mwindow
);
288 class ClearLabels
: public BC_MenuItem
291 ClearLabels(MWindow
*mwindow
);
296 class MuteSelection
: public BC_MenuItem
299 MuteSelection(MWindow
*mwindow
);
304 class TrimSelection
: public BC_MenuItem
307 TrimSelection(MWindow
*mwindow
);
312 // ======================================== audio
314 class AddAudioTrack
: public BC_MenuItem
317 AddAudioTrack(MWindow
*mwindow
);
322 class DeleteAudioTrack
: public BC_MenuItem
325 DeleteAudioTrack(MWindow
*mwindow
);
330 class DefaultATransition
: public BC_MenuItem
333 DefaultATransition(MWindow
*mwindow
);
338 class MapAudio1
: public BC_MenuItem
341 MapAudio1(MWindow
*mwindow
);
346 class MapAudio2
: public BC_MenuItem
349 MapAudio2(MWindow
*mwindow
);
354 // ========================================== video
357 class AddVideoTrack
: public BC_MenuItem
360 AddVideoTrack(MWindow
*mwindow
);
366 class DeleteVideoTrack
: public BC_MenuItem
369 DeleteVideoTrack(MWindow
*mwindow
);
374 class ResetTranslation
: public BC_MenuItem
377 ResetTranslation(MWindow
*mwindow
);
382 class DefaultVTransition
: public BC_MenuItem
385 DefaultVTransition(MWindow
*mwindow
);
390 // ========================================== settings
393 class MoveTracksUp
: public BC_MenuItem
396 MoveTracksUp(MWindow
*mwindow
);
401 class MoveTracksDown
: public BC_MenuItem
404 MoveTracksDown(MWindow
*mwindow
);
409 class DeleteTracks
: public BC_MenuItem
412 DeleteTracks(MWindow
*mwindow
);
417 class ConcatenateTracks
: public BC_MenuItem
420 ConcatenateTracks(MWindow
*mwindow
);
425 class DeleteTrack
: public BC_MenuItem
428 DeleteTrack(MWindow
*mwindow
);
433 class LoopPlayback
: public BC_MenuItem
436 LoopPlayback(MWindow
*mwindow
);
442 class SetBRenderStart
: public BC_MenuItem
445 SetBRenderStart(MWindow
*mwindow
);
450 class LabelsFollowEdits
: public BC_MenuItem
453 LabelsFollowEdits(MWindow
*mwindow
);
458 class PluginsFollowEdits
: public BC_MenuItem
461 PluginsFollowEdits(MWindow
*mwindow
);
466 class CursorOnFrames
: public BC_MenuItem
469 CursorOnFrames(MWindow
*mwindow
);
474 class AutosFollowEdits
: public BC_MenuItem
477 AutosFollowEdits(MWindow
*mwindow
);
482 class ScrubSpeed
: public BC_MenuItem
485 ScrubSpeed(MWindow
*mwindow
);
490 class SaveSettingsNow
: public BC_MenuItem
493 SaveSettingsNow(MWindow
*mwindow
);
498 // ========================================== window
499 class ShowVWindow
: public BC_MenuItem
502 ShowVWindow(MWindow
*mwindow
);
507 class ShowAWindow
: public BC_MenuItem
510 ShowAWindow(MWindow
*mwindow
);
515 class ShowGWindow
: public BC_MenuItem
518 ShowGWindow(MWindow
*mwindow
);
523 class ShowCWindow
: public BC_MenuItem
526 ShowCWindow(MWindow
*mwindow
);
531 class ShowLWindow
: public BC_MenuItem
534 ShowLWindow(MWindow
*mwindow
);
539 class TileWindows
: public BC_MenuItem
542 TileWindows(MWindow
*mwindow
);