X-Git-Url: https://cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fmainmenu.h;h=3498c2adcdcab785f9537e07c2d440e38d31725a;hb=acfa6cec95f5ddfbb21ca7c4af41de213bb80988;hp=482cce3abcd9c64eabd2953206647749e07a6220;hpb=eb7b1a0bb84ed4f40b651b74ff72e63b97cce1c2;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/cinelerra/mainmenu.h b/cinelerra-5.1/cinelerra/mainmenu.h index 482cce3a..3498c2ad 100644 --- a/cinelerra-5.1/cinelerra/mainmenu.h +++ b/cinelerra-5.1/cinelerra/mainmenu.h @@ -41,12 +41,54 @@ #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: @@ -81,8 +123,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; @@ -91,11 +133,12 @@ public: 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; LabelsFollowEdits *labels_follow_edits; @@ -237,6 +280,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: @@ -377,6 +440,14 @@ public: MWindow *mwindow; }; +class ClearHardEdges : public BC_MenuItem +{ +public: + ClearHardEdges(MWindow *mwindow); + int handle_event(); + MWindow *mwindow; +}; + class ClearLabels : public BC_MenuItem { public: @@ -385,6 +456,14 @@ public: MWindow *mwindow; }; +class ClearSelect : public BC_MenuItem +{ +public: + ClearSelect(MWindow *mwindow); + int handle_event(); + MWindow *mwindow; +}; + class CutCommercials : public BC_MenuItem { public: @@ -422,29 +501,54 @@ class MixerItems : public BC_MenuItem public: MixerItems(MWindow *mwindow); void create_objects(); + int activate_submenu(); + MWindow *mwindow; }; -class MixerViewer : public BC_MenuItem +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(MWindow *mwindow); + MixerViewer(MixerItems *mixer_items); int handle_event(); - MWindow *mwindow; }; -class TileMixers : public BC_MenuItem +class TileMixers : public MixerItem { public: - TileMixers(MWindow *mwindow); + TileMixers(MixerItems *mixer_items); + int handle_event(); +}; + +class AlignMixers : public MixerItem +{ +public: + AlignMixers(MixerItems *mixer_items); + int handle_event(); +}; + +class MixMasters : public MixerItem +{ +public: + MixMasters(MixerItems *mixer_items); int handle_event(); - MWindow *mwindow; }; -class AlignMixers : public BC_MenuItem +class AlignTimecodes : public BC_MenuItem { public: - AlignMixers(MWindow *mwindow); + AlignTimecodes(MWindow *mwindow); int handle_event(); MWindow *mwindow; }; @@ -566,6 +670,22 @@ public: MWindow *mwindow; }; +class SwapTracksUp : public BC_MenuItem +{ +public: + SwapTracksUp(MWindow *mwindow); + int handle_event(); + MWindow *mwindow; +}; + +class SwapTracksDown : public BC_MenuItem +{ +public: + SwapTracksDown(MWindow *mwindow); + int handle_event(); + MWindow *mwindow; +}; + class DeleteTracks : public BC_MenuItem { public: