X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;ds=sidebyside;f=cinelerra-5.1%2Fcinelerra%2Fmainmenu.h;h=3498c2adcdcab785f9537e07c2d440e38d31725a;hb=HEAD;hp=b87e8088833b2b1e1f16586366d48d08ed3b7b26;hpb=e41864cf7931bfb86f68c5d35d4578dfe161d386;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/cinelerra/mainmenu.h b/cinelerra-5.1/cinelerra/mainmenu.h index b87e8088..0da2c60e 100644 --- a/cinelerra-5.1/cinelerra/mainmenu.h +++ b/cinelerra-5.1/cinelerra/mainmenu.h @@ -22,36 +22,11 @@ #ifndef MAINMENU_H #define MAINMENU_H -class AEffectMenu; -class LabelsFollowEdits; -class PluginsFollowEdits; -class KeyframesFollowEdits; -class CursorOnFrames; -class TypelessKeyframes; -class SetBRenderActive; -class LoopPlayback; - -class Redo; -class ShowVWindow; -class ShowAWindow; -class ShowGWindow; -class ShowCWindow; -class ShowLWindow; -class Undo; -class KeyframeCurveType; -class KeyframeCurveTypeMenu; -class KeyframeCurveTypeItem; -class SplitX; -class SplitY; -class MixerViewer; -class LoadLayoutItem; -class LoadLayout; - - #include "arraylist.h" #include "guicast.h" #include "bchash.inc" #include "loadfile.inc" +#include "mainmenu.inc" #include "mwindow.inc" #include "mwindowgui.inc" #include "maxchannels.h" @@ -60,18 +35,61 @@ class LoadLayout; #include "module.inc" #include "new.inc" #include "plugindialog.inc" +#include "proxy.inc" #include "quit.inc" #include "record.inc" #include "render.inc" #include "threadloader.inc" #include "viewmenu.inc" -#define TOTAL_LOADS 10 // number of files to cache +#define TOTAL_LOADS 20 // number of files to cache #define TOTAL_EFFECTS 10 // number of effects to cache #define LAYOUT_LOAD 0 #define LAYOUT_SAVE 1 +class LoadRecentItem +{ +public: + LoadRecentItem(const char *path); + ~LoadRecentItem(); + char *path; +}; + +class LoadRecentItems : public ArrayList +{ +public: + LoadRecentItems(); + ~LoadRecentItems(); + int add_load(char *path); +}; + +class LoadRecentSubMenu : public BC_SubMenu +{ +public: + LoadRecentSubMenu(LoadRecent *load_recent); + ~LoadRecentSubMenu(); + + LoadRecent *load_recent; +}; + +class LoadRecent : public BC_MenuItem +{ +public: + LoadRecent(MWindow *mwindow, MainMenu *main_menu); + ~LoadRecent(); + void create_objects(); + LoadPrevious *get_next_item(); + int activate_submenu(); + void scan_items(int use_xml); + + MWindow *mwindow; + MainMenu *main_menu; + LoadRecentSubMenu *submenu; + int total_items; +}; + + class MainMenu : public BC_MenuBar { public: @@ -106,8 +124,8 @@ public: MenuVEffects *veffects; Load *load_file; - LoadPrevious *load[TOTAL_LOADS]; - int total_loads; + LoadRecentItems load; + LoadRecent *load_recent; RecordMenuItem *record_menu_item; RenderItem *render; @@ -115,13 +133,17 @@ public: MenuAEffectItem *aeffect[TOTAL_EFFECTS]; MenuVEffectItem *veffect[TOTAL_EFFECTS]; Quit *quit_program; // affected by save + MainDumpsMenu *dump_menu; + EditClearMenu *clear_menu; Undo *undo; Redo *redo; - int total_aeffects; - int total_veffects; - BC_Menu *filemenu, *audiomenu, *videomenu; // needed by most recents + BC_Menu *filemenu; + BC_Menu *audiomenu, *videomenu; // needed by most recents + int total_aeffects, total_veffects; KeyframeCurveType *keyframe_curve_type; + KeyframeCreate *keyframe_create; + SetAutomationCurveMode *set_auto_curves; LabelsFollowEdits *labels_follow_edits; PluginsFollowEdits *plugins_follow_edits; KeyframesFollowEdits *keyframes_follow_edits; @@ -152,9 +174,10 @@ public: ShowLWindow *show_lwindow; SplitX *split_x; SplitY *split_y; - MixerViewer *mixer_viewer; + MixerItems *mixer_items; LoadLayout *load_layout; LoadLayout *save_layout; + ProxyMenuItem *proxy; }; // ========================================= edit @@ -168,7 +191,25 @@ public: MWindow *mwindow; }; +class MainDumpsSubMenu : public BC_SubMenu +{ +public: + MainDumpsSubMenu(BC_MenuItem *menu_item); + ~MainDumpsSubMenu(); + + BC_MenuItem *menu_item; +}; +class MainDumpsMenu : public BC_MenuItem +{ +public: + MainDumpsMenu(MWindow *mwindow); + ~MainDumpsMenu(); + void create_objects(); + + MWindow *mwindow; + MainDumpsSubMenu *dumps_menu; +}; class DumpCICache : public BC_MenuItem { @@ -202,6 +243,14 @@ public: MWindow *mwindow; }; +class DumpUndo : public BC_MenuItem +{ +public: + DumpUndo(MWindow *mwindow); + int handle_event(); + MWindow *mwindow; +}; + class Redo : public BC_MenuItem { public: @@ -235,6 +284,26 @@ public: MWindow *mwindow; }; +class EditClearSubMenu : public BC_SubMenu +{ +public: + EditClearSubMenu(BC_MenuItem *menu_item); + ~EditClearSubMenu(); + + BC_MenuItem *menu_item; +}; + +class EditClearMenu : public BC_MenuItem +{ +public: + EditClearMenu(MWindow *mwindow); + ~EditClearMenu(); + void create_objects(); + + MWindow *mwindow; + EditClearSubMenu *clear_sub_menu; +}; + class Clear : public BC_MenuItem { public: @@ -276,22 +345,34 @@ public: MWindow *mwindow; }; -class StraightenKeyframes : public BC_MenuItem + +class SetAutomationCurveItem : public BC_MenuItem { public: - StraightenKeyframes(MWindow *mwindow); + SetAutomationCurveItem(SetAutomationCurveMode *set_curve_mode, int id); int handle_event(); - MWindow *mwindow; + SetAutomationCurveMode *set_curve_mode; + int id; }; -class BendKeyframes : public BC_MenuItem +class SetAutoCurveModeMenu : public BC_SubMenu { public: - BendKeyframes(MWindow *mwindow); - int handle_event(); + SetAutoCurveModeMenu(SetAutomationCurveMode *curve_mode); + SetAutomationCurveMode *curve_mode; +}; + +class SetAutomationCurveMode : public BC_MenuItem +{ +public: + SetAutomationCurveMode(MWindow *mwindow); + void create_objects(); + MWindow *mwindow; + SetAutoCurveModeMenu *curve_mode_menu; }; + class KeyframeCurveType : public BC_MenuItem { public: @@ -327,6 +408,34 @@ public: int handle_event(); }; +class KeyframeCreateItem : public BC_MenuItem +{ +public: + KeyframeCreateItem(KeyframeCreate *keyframe_create, const char *text, int mask); + int handle_event(); + + KeyframeCreate *keyframe_create; + int mask; +}; + +class KeyframeCreateMenu : public BC_SubMenu +{ +public: + KeyframeCreateMenu(KeyframeCreate *keyframe_create); + KeyframeCreate *keyframe_create; +}; + +class KeyframeCreate : public BC_MenuItem +{ +public: + KeyframeCreate(MWindow *mwindow); + void create_objects(); + + MWindow *mwindow; + KeyframeCreateMenu *keyframe_create_menu; +}; + + class CutDefaultKeyframe : public BC_MenuItem { public: @@ -375,6 +484,14 @@ public: MWindow *mwindow; }; +class ClearHardEdges : public BC_MenuItem +{ +public: + ClearHardEdges(MWindow *mwindow); + int handle_event(); + MWindow *mwindow; +}; + class ClearLabels : public BC_MenuItem { public: @@ -383,6 +500,14 @@ public: MWindow *mwindow; }; +class ClearSelect : public BC_MenuItem +{ +public: + ClearSelect(MWindow *mwindow); + int handle_event(); + MWindow *mwindow; +}; + class CutCommercials : public BC_MenuItem { public: @@ -415,10 +540,71 @@ public: MWindow *mwindow; }; -class TileMixers : public BC_MenuItem +class MixerItems : public BC_MenuItem +{ +public: + MixerItems(MWindow *mwindow); + void create_objects(); + int activate_submenu(); + + MWindow *mwindow; +}; + +class MixerItem : public BC_MenuItem +{ +public: + MixerItem(MixerItems *mixer_items, const char *text, int idx); + MixerItem(MixerItems *mixer_items, const char *text, const char *hotkey_text, int hotkey); + virtual int handle_event(); + + MixerItems *mixer_items; + int idx; +}; + +class MixerViewer : public MixerItem +{ +public: + MixerViewer(MixerItems *mixer_items); + int handle_event(); +}; + +class DragTileMixers : public MixerItem { public: - TileMixers(MWindow *mwindow); + DragTileMixers(MixerItems *mixer_items); + ~DragTileMixers(); + int handle_event(); + TileMixersDragBox *drag_box; +}; + +class TileMixersDragBox : public BC_DragBox +{ +public: + TileMixersDragBox(MWindowGUI *gui); + void start(DragTileMixers *tile_mixers); + int handle_done_event(int x0, int y0, int x1, int y1); + + DragTileMixers *tile_mixers; +}; + +class AlignMixers : public MixerItem +{ +public: + AlignMixers(MixerItems *mixer_items); + int handle_event(); +}; + +class MixMasters : public MixerItem +{ +public: + MixMasters(MixerItems *mixer_items); + int handle_event(); +}; + +class AlignTimecodes : public BC_MenuItem +{ +public: + AlignTimecodes(MWindow *mwindow); int handle_event(); MWindow *mwindow; }; @@ -524,6 +710,22 @@ public: // ========================================== settings +class RollTracksUp : public BC_MenuItem +{ +public: + RollTracksUp(MWindow *mwindow); + int handle_event(); + MWindow *mwindow; +}; + +class RollTracksDown : public BC_MenuItem +{ +public: + RollTracksDown(MWindow *mwindow); + int handle_event(); + MWindow *mwindow; +}; + class MoveTracksUp : public BC_MenuItem { public: @@ -556,10 +758,18 @@ public: MWindow *mwindow; }; -class DeleteTrack : public BC_MenuItem +class DeleteFirstTrack : public BC_MenuItem { public: - DeleteTrack(MWindow *mwindow); + DeleteFirstTrack(MWindow *mwindow); + int handle_event(); + MWindow *mwindow; +}; + +class DeleteLastTrack : public BC_MenuItem +{ +public: + DeleteLastTrack(MWindow *mwindow); int handle_event(); MWindow *mwindow; }; @@ -704,14 +914,6 @@ public: MWindow *mwindow; }; -class MixerViewer : public BC_MenuItem -{ -public: - MixerViewer(MWindow *mwindow); - int handle_event(); - MWindow *mwindow; -}; - class LoadLayoutItem : public BC_MenuItem { @@ -719,7 +921,9 @@ public: LoadLayoutItem(LoadLayout *load_layout, const char *text, int no, int hotkey); int handle_event(); - int no; + int idx; + char layout_text[BCSTRLEN]; + char layout_file[BCSTRLEN]; LoadLayout *load_layout; }; @@ -727,10 +931,53 @@ class LoadLayout : public BC_MenuItem { public: LoadLayout(MWindow *mwindow, const char *text, int action); + ~LoadLayout(); void create_objects(); + void update(); + int activate_submenu(); MWindow *mwindow; + LoadLayoutDialog *layout_dialog; int action; }; +class LoadLayoutDialog : public BC_DialogThread +{ +public: + LoadLayoutDialog(LoadLayout *load_layout); + ~LoadLayoutDialog(); + + void start_confirm_dialog(int wx, int wy, int idx); + void handle_done_event(int result); + void handle_close_event(int result); + BC_Window* new_gui(); + + LoadLayout *load_layout; + LoadLayoutConfirm *lgui; + int wx, wy, idx; +}; + +class LoadLayoutNameText : public BC_TextBox +{ +public: + LoadLayoutNameText(LoadLayoutConfirm *confirm, + int x, int y, int w, const char *text); + ~LoadLayoutNameText(); + + int handle_event(); + + LoadLayoutConfirm *confirm; +}; + +class LoadLayoutConfirm : public BC_Window +{ +public: + LoadLayoutConfirm(LoadLayoutDialog *load_dialog, int x, int y); + ~LoadLayoutConfirm(); + void create_objects(); + + LoadLayoutDialog *layout_dialog; + LoadLayoutNameText *name_text; +}; + #endif