5 class LabelsFollowEdits
;
6 class PluginsFollowEdits
;
18 #include "arraylist.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"
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(Defaults
*defaults
);
46 int save_defaults(Defaults
*defaults
);
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
);
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
];
75 RecordMenuItem
*record
;
78 MenuAEffectItem
*aeffect
[TOTAL_EFFECTS
];
79 MenuVEffectItem
*veffect
[TOTAL_EFFECTS
];
80 Quit
*quit_program
; // affected by save
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
118 Undo(MWindow
*mwindow
);
120 int update_caption(char *new_caption
= "");
126 class DumpCICache
: public BC_MenuItem
129 DumpCICache(MWindow
*mwindow
);
134 class DumpEDL
: public BC_MenuItem
137 DumpEDL(MWindow
*mwindow
);
142 class DumpPlugins
: public BC_MenuItem
145 DumpPlugins(MWindow
*mwindow
);
150 class DumpAssets
: public BC_MenuItem
153 DumpAssets(MWindow
*mwindow
);
158 class Redo
: public BC_MenuItem
161 Redo(MWindow
*mwindow
);
163 int update_caption(char *new_caption
= "");
167 class Cut
: public BC_MenuItem
170 Cut(MWindow
*mwindow
);
175 class Copy
: public BC_MenuItem
178 Copy(MWindow
*mwindow
);
183 class Paste
: public BC_MenuItem
186 Paste(MWindow
*mwindow
);
191 class Clear
: public BC_MenuItem
194 Clear(MWindow
*mwindow
);
199 class CutKeyframes
: public BC_MenuItem
202 CutKeyframes(MWindow
*mwindow
);
207 class CopyKeyframes
: public BC_MenuItem
210 CopyKeyframes(MWindow
*mwindow
);
215 class PasteKeyframes
: public BC_MenuItem
218 PasteKeyframes(MWindow
*mwindow
);
223 class ClearKeyframes
: public BC_MenuItem
226 ClearKeyframes(MWindow
*mwindow
);
231 class CutDefaultKeyframe
: public BC_MenuItem
234 CutDefaultKeyframe(MWindow
*mwindow
);
239 class CopyDefaultKeyframe
: public BC_MenuItem
242 CopyDefaultKeyframe(MWindow
*mwindow
);
247 class PasteDefaultKeyframe
: public BC_MenuItem
250 PasteDefaultKeyframe(MWindow
*mwindow
);
255 class ClearDefaultKeyframe
: public BC_MenuItem
258 ClearDefaultKeyframe(MWindow
*mwindow
);
263 class PasteSilence
: public BC_MenuItem
266 PasteSilence(MWindow
*mwindow
);
271 class SelectAll
: public BC_MenuItem
274 SelectAll(MWindow
*mwindow
);
279 class ClearLabels
: public BC_MenuItem
282 ClearLabels(MWindow
*mwindow
);
287 class MuteSelection
: public BC_MenuItem
290 MuteSelection(MWindow
*mwindow
);
295 class TrimSelection
: public BC_MenuItem
298 TrimSelection(MWindow
*mwindow
);
303 // ======================================== audio
305 class AddAudioTrack
: public BC_MenuItem
308 AddAudioTrack(MWindow
*mwindow
);
313 class DeleteAudioTrack
: public BC_MenuItem
316 DeleteAudioTrack(MWindow
*mwindow
);
321 class DefaultATransition
: public BC_MenuItem
324 DefaultATransition(MWindow
*mwindow
);
329 // ========================================== video
332 class AddVideoTrack
: public BC_MenuItem
335 AddVideoTrack(MWindow
*mwindow
);
341 class DeleteVideoTrack
: public BC_MenuItem
344 DeleteVideoTrack(MWindow
*mwindow
);
349 class ResetTranslation
: public BC_MenuItem
352 ResetTranslation(MWindow
*mwindow
);
357 class DefaultVTransition
: public BC_MenuItem
360 DefaultVTransition(MWindow
*mwindow
);
365 // ========================================== settings
368 class MoveTracksUp
: public BC_MenuItem
371 MoveTracksUp(MWindow
*mwindow
);
376 class MoveTracksDown
: public BC_MenuItem
379 MoveTracksDown(MWindow
*mwindow
);
384 class DeleteTracks
: public BC_MenuItem
387 DeleteTracks(MWindow
*mwindow
);
392 class ConcatenateTracks
: public BC_MenuItem
395 ConcatenateTracks(MWindow
*mwindow
);
400 class DeleteTrack
: public BC_MenuItem
403 DeleteTrack(MWindow
*mwindow
);
408 class LoopPlayback
: public BC_MenuItem
411 LoopPlayback(MWindow
*mwindow
);
417 class SetBRenderStart
: public BC_MenuItem
420 SetBRenderStart(MWindow
*mwindow
);
425 class LabelsFollowEdits
: public BC_MenuItem
428 LabelsFollowEdits(MWindow
*mwindow
);
433 class PluginsFollowEdits
: public BC_MenuItem
436 PluginsFollowEdits(MWindow
*mwindow
);
441 class CursorOnFrames
: public BC_MenuItem
444 CursorOnFrames(MWindow
*mwindow
);
449 class AutosFollowEdits
: public BC_MenuItem
452 AutosFollowEdits(MWindow
*mwindow
);
457 class ScrubSpeed
: public BC_MenuItem
460 ScrubSpeed(MWindow
*mwindow
);
465 class SaveSettingsNow
: public BC_MenuItem
468 SaveSettingsNow(MWindow
*mwindow
);
473 // ========================================== window
474 class ShowVWindow
: public BC_MenuItem
477 ShowVWindow(MWindow
*mwindow
);
482 class ShowAWindow
: public BC_MenuItem
485 ShowAWindow(MWindow
*mwindow
);
490 class ShowGWindow
: public BC_MenuItem
493 ShowGWindow(MWindow
*mwindow
);
498 class ShowCWindow
: public BC_MenuItem
501 ShowCWindow(MWindow
*mwindow
);
506 class ShowLWindow
: public BC_MenuItem
509 ShowLWindow(MWindow
*mwindow
);
514 class TileWindows
: public BC_MenuItem
517 TileWindows(MWindow
*mwindow
);