X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fmainmenu.h;h=482cce3abcd9c64eabd2953206647749e07a6220;hb=2f5f5847bfeea491f69f5314dcbccaf6de4b22e4;hp=2796e15571c84bd0f60de3985fd32f9ed9fafb41;hpb=7fd85fb66168f6b518c5f2d73e04036e87faa0e1;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/cinelerra/mainmenu.h b/cinelerra-5.1/cinelerra/mainmenu.h index 2796e155..482cce3a 100644 --- a/cinelerra-5.1/cinelerra/mainmenu.h +++ b/cinelerra-5.1/cinelerra/mainmenu.h @@ -22,34 +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; - - #include "arraylist.h" #include "guicast.h" #include "bchash.inc" #include "loadfile.inc" +#include "mainmenu.inc" #include "mwindow.inc" #include "mwindowgui.inc" #include "maxchannels.h" @@ -67,6 +44,9 @@ class MixerViewer; #define TOTAL_LOADS 10 // number of files to cache #define TOTAL_EFFECTS 10 // number of effects to cache +#define LAYOUT_LOAD 0 +#define LAYOUT_SAVE 1 + class MainMenu : public BC_MenuBar { public: @@ -110,6 +90,7 @@ public: MenuAEffectItem *aeffect[TOTAL_EFFECTS]; MenuVEffectItem *veffect[TOTAL_EFFECTS]; Quit *quit_program; // affected by save + MainDumpsMenu *dump_menu; Undo *undo; Redo *redo; int total_aeffects; @@ -147,7 +128,9 @@ public: ShowLWindow *show_lwindow; SplitX *split_x; SplitY *split_y; - MixerViewer *mixer_viewer; + MixerItems *mixer_items; + LoadLayout *load_layout; + LoadLayout *save_layout; }; // ========================================= edit @@ -161,7 +144,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 { @@ -195,6 +196,14 @@ public: MWindow *mwindow; }; +class DumpUndo : public BC_MenuItem +{ +public: + DumpUndo(MWindow *mwindow); + int handle_event(); + MWindow *mwindow; +}; + class Redo : public BC_MenuItem { public: @@ -408,6 +417,22 @@ public: MWindow *mwindow; }; +class MixerItems : public BC_MenuItem +{ +public: + MixerItems(MWindow *mwindow); + void create_objects(); + MWindow *mwindow; +}; + +class MixerViewer : public BC_MenuItem +{ +public: + MixerViewer(MWindow *mwindow); + int handle_event(); + MWindow *mwindow; +}; + class TileMixers : public BC_MenuItem { public: @@ -416,6 +441,14 @@ public: MWindow *mwindow; }; +class AlignMixers : public BC_MenuItem +{ +public: + AlignMixers(MWindow *mwindow); + int handle_event(); + MWindow *mwindow; +}; + // ======================================== audio class AddAudioTrack : public BC_MenuItem @@ -549,10 +582,18 @@ public: MWindow *mwindow; }; -class DeleteTrack : public BC_MenuItem +class DeleteFirstTrack : public BC_MenuItem +{ +public: + DeleteFirstTrack(MWindow *mwindow); + int handle_event(); + MWindow *mwindow; +}; + +class DeleteLastTrack : public BC_MenuItem { public: - DeleteTrack(MWindow *mwindow); + DeleteLastTrack(MWindow *mwindow); int handle_event(); MWindow *mwindow; }; @@ -697,12 +738,70 @@ public: MWindow *mwindow; }; -class MixerViewer : public BC_MenuItem + +class LoadLayoutItem : public BC_MenuItem { public: - MixerViewer(MWindow *mwindow); + LoadLayoutItem(LoadLayout *load_layout, const char *text, int no, int hotkey); int handle_event(); - MWindow *mwindow; + + int idx; + char layout_text[BCSTRLEN]; + char layout_file[BCSTRLEN]; + LoadLayout *load_layout; +}; + +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