X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fmainmenu.C;h=9fe3c292fe40489b544be6128632707d3504b136;hb=c5451a0a1f2a69ffea5e8b85d05787466f355481;hp=01bc15a3c4681d040cf4ec986dc96776702484c9;hpb=a0d43979126b586d50b2de48056ae48fa8d0bb1d;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/cinelerra/mainmenu.C b/cinelerra-5.1/cinelerra/mainmenu.C index 01bc15a3..9fe3c292 100644 --- a/cinelerra-5.1/cinelerra/mainmenu.C +++ b/cinelerra-5.1/cinelerra/mainmenu.C @@ -55,6 +55,7 @@ #include "menueditlength.h" #include "menutransitionlength.h" #include "menuveffects.h" +#include "mixersalign.h" #include "mwindowgui.h" #include "mwindow.h" #include "new.h" @@ -147,9 +148,9 @@ void MainMenu::create_objects() editmenu->add_item(new Cut(mwindow)); editmenu->add_item(new Copy(mwindow)); editmenu->add_item(new Paste(mwindow)); - editmenu->add_item(new Clear(mwindow)); editmenu->add_item(new PasteSilence(mwindow)); - editmenu->add_item(new MuteSelection(mwindow)); + editmenu->add_item(clear_menu = new EditClearMenu(mwindow)); + clear_menu->create_objects(); editmenu->add_item(new TrimSelection(mwindow)); editmenu->add_item(new SelectAll(mwindow)); editmenu->add_item(new BC_MenuItem("-")); @@ -160,7 +161,6 @@ void MainMenu::create_objects() editmenu->add_item(new MenuTransitionLength(mwindow)); editmenu->add_item(new DetachTransitions(mwindow)); editmenu->add_item(new BC_MenuItem("-")); - editmenu->add_item(new ClearLabels(mwindow)); editmenu->add_item(new CutCommercials(mwindow)); editmenu->add_item(new PasteSubttl(mwindow)); @@ -202,7 +202,8 @@ void MainMenu::create_objects() trackmenu->add_item(new MoveTracksUp(mwindow)); trackmenu->add_item(new MoveTracksDown(mwindow)); trackmenu->add_item(new DeleteTracks(mwindow)); - trackmenu->add_item(new DeleteTrack(mwindow)); + trackmenu->add_item(new DeleteFirstTrack(mwindow)); + trackmenu->add_item(new DeleteLastTrack(mwindow)); trackmenu->add_item(new ConcatenateTracks(mwindow)); AppendTracks *append_tracks; trackmenu->add_item(append_tracks = new AppendTracks(mwindow)); @@ -271,8 +272,8 @@ void MainMenu::create_objects() windowmenu->add_item(new BC_MenuItem("-")); windowmenu->add_item(split_x = new SplitX(mwindow)); windowmenu->add_item(split_y = new SplitY(mwindow)); - windowmenu->add_item(mixer_viewer = new MixerViewer(mwindow)); - windowmenu->add_item(new TileMixers(mwindow)); + windowmenu->add_item(mixer_items = new MixerItems(mwindow)); + mixer_items->create_objects(); windowmenu->add_item(new TileWindows(mwindow,_("Tile left"),0)); windowmenu->add_item(new TileWindows(mwindow,_("Tile right"),1)); windowmenu->add_item(new BC_MenuItem("-")); @@ -954,6 +955,35 @@ int Paste::handle_event() return 1; } +EditClearSubMenu::EditClearSubMenu(BC_MenuItem *menu_item) + : BC_SubMenu() +{ + this->menu_item = menu_item; +} +EditClearSubMenu::~EditClearSubMenu() +{ +} + +EditClearMenu::EditClearMenu(MWindow *mwindow) + : BC_MenuItem(_("Clear...")) +{ + this->mwindow = mwindow; + this->clear_sub_menu = 0; +} +EditClearMenu::~EditClearMenu() +{ +} + +void EditClearMenu::create_objects() +{ + add_submenu(clear_sub_menu = new EditClearSubMenu(this)); + clear_sub_menu->add_item(new Clear(mwindow)); + clear_sub_menu->add_item(new MuteSelection(mwindow)); + clear_sub_menu->add_item(new ClearSelect(mwindow)); + clear_sub_menu->add_item(new ClearLabels(mwindow)); + clear_sub_menu->add_item(new ClearHardEdges(mwindow)); +}; + Clear::Clear(MWindow *mwindow) : BC_MenuItem(_("Clear"), _("Del"), DELETE) { @@ -997,6 +1027,17 @@ int SelectAll::handle_event() return 1; } +ClearHardEdges::ClearHardEdges(MWindow *mwindow) : BC_MenuItem(_("Clear Hard Edges")) +{ + this->mwindow = mwindow; +} + +int ClearHardEdges::handle_event() +{ + mwindow->clear_hard_edges(); + return 1; +} + ClearLabels::ClearLabels(MWindow *mwindow) : BC_MenuItem(_("Clear labels")) { this->mwindow = mwindow; @@ -1008,6 +1049,19 @@ int ClearLabels::handle_event() return 1; } +ClearSelect::ClearSelect(MWindow *mwindow) : BC_MenuItem(_("Clear Select"),"Ctrl-Shift-A",'A') +{ + set_ctrl(1); + set_shift(1); + this->mwindow = mwindow; +} + +int ClearSelect::handle_event() +{ + mwindow->clear_select(); + return 1; +} + CutCommercials::CutCommercials(MWindow *mwindow) : BC_MenuItem(_("Cut ads")) { this->mwindow = mwindow; @@ -1220,23 +1274,42 @@ int DeleteTracks::handle_event() return 1; } -DeleteTrack::DeleteTrack(MWindow *mwindow) +DeleteFirstTrack::DeleteFirstTrack(MWindow *mwindow) + : BC_MenuItem(_("Delete first track"), "Shift-D", 'D') +{ + set_shift(1); + this->mwindow = mwindow; +} + +int DeleteFirstTrack::handle_event() +{ + if( mwindow->session->current_operation == NO_OPERATION ) { + Track *track = mwindow->edl->tracks->first; + if( track ) mwindow->delete_track(track); + } + return 1; +} + +DeleteLastTrack::DeleteLastTrack(MWindow *mwindow) : BC_MenuItem(_("Delete last track"), "d", 'd') { this->mwindow = mwindow; } -int DeleteTrack::handle_event() +int DeleteLastTrack::handle_event() { - if( mwindow->session->current_operation == NO_OPERATION ) - mwindow->delete_track(); + if( mwindow->session->current_operation == NO_OPERATION ) { + Track *track = mwindow->edl->tracks->last; + if( track ) mwindow->delete_track(track); + } return 1; } MoveTracksUp::MoveTracksUp(MWindow *mwindow) : BC_MenuItem(_("Move tracks up"), _("Shift-Up"), UP) { - set_shift(); this->mwindow = mwindow; + this->mwindow = mwindow; + set_shift(); } int MoveTracksUp::handle_event() @@ -1590,6 +1663,21 @@ int SplitY::handle_event() } +MixerItems::MixerItems(MWindow *mwindow) + : BC_MenuItem(_("Mixers...")) +{ + this->mwindow = mwindow; +} + +void MixerItems::create_objects() +{ + BC_SubMenu *mixer_submenu = new BC_SubMenu(); + add_submenu(mixer_submenu); + mixer_submenu->add_submenuitem(new MixerViewer(mwindow)); + mixer_submenu->add_submenuitem(new TileMixers(mwindow)); + mixer_submenu->add_submenuitem(new AlignMixers(mwindow)); +} + MixerViewer::MixerViewer(MWindow *mwindow) : BC_MenuItem(_("Mixer Viewer"), _("Shift-M"), 'M') { @@ -1616,6 +1704,20 @@ int TileMixers::handle_event() return 1; } +AlignMixers::AlignMixers(MWindow *mwindow) + : BC_MenuItem(_("Align mixers")) +{ + this->mwindow = mwindow; +} + +int AlignMixers::handle_event() +{ + int wx, wy; + mwindow->gui->get_abs_cursor(wx, wy); + mwindow->mixers_align->start_dialog(wx, wy); + return 1; +} + LoadLayoutItem::LoadLayoutItem(LoadLayout *load_layout, const char *text, int idx, int hotkey) : BC_MenuItem(text, "", hotkey)