9 class LabelsFollowEdits
;
10 class PluginsFollowEdits
;
24 #include "arraylist.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"
35 #include "plugindialog.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
48 MainMenu(MWindow
*mwindow
, MWindowGUI
*gui
);
51 int load_defaults(Defaults
*defaults
);
52 int save_defaults(Defaults
*defaults
);
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
);
68 // show only one of these at a time
70 void update_toggles();
74 ThreadLoader
*threadloader
;
76 PluginMenu
*pluginmenu
;
77 MenuAEffects
*aeffects
;
78 MenuVEffects
*veffects
;
81 BC_RecentList
*recent_load
;
82 LoadPrevious
*load
[TOTAL_LOADS
];
84 RecordMenuItem
*record
;
87 MenuAEffectItem
*aeffect
[TOTAL_EFFECTS
];
88 MenuVEffectItem
*veffect
[TOTAL_EFFECTS
];
89 Quit
*quit_program
; // affected by save
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
129 Undo(MWindow
*mwindow
);
131 int update_caption(char *new_caption
= "");
137 class DumpCICache
: public BC_MenuItem
140 DumpCICache(MWindow
*mwindow
);
145 class DumpEDL
: public BC_MenuItem
148 DumpEDL(MWindow
*mwindow
);
153 class DumpPlugins
: public BC_MenuItem
156 DumpPlugins(MWindow
*mwindow
);
161 class DumpAssets
: public BC_MenuItem
164 DumpAssets(MWindow
*mwindow
);
169 class Redo
: public BC_MenuItem
172 Redo(MWindow
*mwindow
);
174 int update_caption(char *new_caption
= "");
178 class Cut
: public BC_MenuItem
181 Cut(MWindow
*mwindow
);
186 class Copy
: public BC_MenuItem
189 Copy(MWindow
*mwindow
);
194 class Paste
: public BC_MenuItem
197 Paste(MWindow
*mwindow
);
202 class Clear
: public BC_MenuItem
205 Clear(MWindow
*mwindow
);
210 class CutKeyframes
: public BC_MenuItem
213 CutKeyframes(MWindow
*mwindow
);
218 class CopyKeyframes
: public BC_MenuItem
221 CopyKeyframes(MWindow
*mwindow
);
226 class PasteKeyframes
: public BC_MenuItem
229 PasteKeyframes(MWindow
*mwindow
);
234 class ClearKeyframes
: public BC_MenuItem
237 ClearKeyframes(MWindow
*mwindow
);
242 class CutDefaultKeyframe
: public BC_MenuItem
245 CutDefaultKeyframe(MWindow
*mwindow
);
250 class CopyDefaultKeyframe
: public BC_MenuItem
253 CopyDefaultKeyframe(MWindow
*mwindow
);
258 class PasteDefaultKeyframe
: public BC_MenuItem
261 PasteDefaultKeyframe(MWindow
*mwindow
);
266 class ClearDefaultKeyframe
: public BC_MenuItem
269 ClearDefaultKeyframe(MWindow
*mwindow
);
274 class PasteSilence
: public BC_MenuItem
277 PasteSilence(MWindow
*mwindow
);
282 class SelectAll
: public BC_MenuItem
285 SelectAll(MWindow
*mwindow
);
290 class ClearLabels
: public BC_MenuItem
293 ClearLabels(MWindow
*mwindow
);
298 class MuteSelection
: public BC_MenuItem
301 MuteSelection(MWindow
*mwindow
);
306 class TrimSelection
: public BC_MenuItem
309 TrimSelection(MWindow
*mwindow
);
314 // ======================================== audio
316 class AddAudioTrack
: public BC_MenuItem
319 AddAudioTrack(MWindow
*mwindow
);
324 class DeleteAudioTrack
: public BC_MenuItem
327 DeleteAudioTrack(MWindow
*mwindow
);
332 class DefaultATransition
: public BC_MenuItem
335 DefaultATransition(MWindow
*mwindow
);
340 // ========================================== video
343 class AddVideoTrack
: public BC_MenuItem
346 AddVideoTrack(MWindow
*mwindow
);
352 class DeleteVideoTrack
: public BC_MenuItem
355 DeleteVideoTrack(MWindow
*mwindow
);
360 class ResetTranslation
: public BC_MenuItem
363 ResetTranslation(MWindow
*mwindow
);
368 class DefaultVTransition
: public BC_MenuItem
371 DefaultVTransition(MWindow
*mwindow
);
376 // ========================================== settings
379 class MoveTracksUp
: public BC_MenuItem
382 MoveTracksUp(MWindow
*mwindow
);
387 class MoveTracksDown
: public BC_MenuItem
390 MoveTracksDown(MWindow
*mwindow
);
395 class DeleteTracks
: public BC_MenuItem
398 DeleteTracks(MWindow
*mwindow
);
403 class ConcatenateTracks
: public BC_MenuItem
406 ConcatenateTracks(MWindow
*mwindow
);
411 class DeleteTrack
: public BC_MenuItem
414 DeleteTrack(MWindow
*mwindow
);
419 class LoopPlayback
: public BC_MenuItem
422 LoopPlayback(MWindow
*mwindow
);
428 class SetBRenderStart
: public BC_MenuItem
431 SetBRenderStart(MWindow
*mwindow
);
436 class LabelsFollowEdits
: public BC_MenuItem
439 LabelsFollowEdits(MWindow
*mwindow
);
444 class PluginsFollowEdits
: public BC_MenuItem
447 PluginsFollowEdits(MWindow
*mwindow
);
452 class CursorOnFrames
: public BC_MenuItem
455 CursorOnFrames(MWindow
*mwindow
);
460 class AutosFollowEdits
: public BC_MenuItem
463 AutosFollowEdits(MWindow
*mwindow
);
468 class ScrubSpeed
: public BC_MenuItem
471 ScrubSpeed(MWindow
*mwindow
);
476 class SaveSettingsNow
: public BC_MenuItem
479 SaveSettingsNow(MWindow
*mwindow
);
484 // ========================================== window
486 class ShowVWindow
: public BC_MenuItem
489 ShowVWindow(MWindow
*mwindow
);
494 class ShowAWindow
: public BC_MenuItem
497 ShowAWindow(MWindow
*mwindow
);
502 class ShowCWindow
: public BC_MenuItem
505 ShowCWindow(MWindow
*mwindow
);
510 class ShowLWindow
: public BC_MenuItem
513 ShowLWindow(MWindow
*mwindow
);
518 class TileWindows
: public BC_MenuItem
521 TileWindows(MWindow
*mwindow
);
526 class OriginalSize
: public BC_MenuItem
529 OriginalSize(MWindow
*mwindow
);
534 class VerticalTracks
: public BC_MenuItem
537 VerticalTracks(MWindow
*mwindow
);
543 class PanMenu
: public BC_SubMenu
549 class PanItem
: public BC_MenuItem
552 PanItem(MWindow
*mwindow
, char *text
, int number
);
558 class PluginMenu
: public BC_SubMenu
564 class PluginItem
: public BC_MenuItem
567 PluginItem(MWindow
*mwindow
, char *text
, int number
);