X-Git-Url: https://git.cinelerra-gg.org/git/?p=goodguy%2Fcinelerra.git;a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fmainmenu.C;h=60d72d5a7a4e709600c5bc33173752d141d8fa89;hp=4359595baebd2fb5efc9e5894473fb0f7031849c;hb=50ec1e03e96a60403af08a7bae34015c9b234902;hpb=232ae3c6972c1740b6e1890ccce1264f2bb311f5 diff --git a/cinelerra-5.1/cinelerra/mainmenu.C b/cinelerra-5.1/cinelerra/mainmenu.C index 4359595b..60d72d5a 100644 --- a/cinelerra-5.1/cinelerra/mainmenu.C +++ b/cinelerra-5.1/cinelerra/mainmenu.C @@ -90,6 +90,8 @@ MainMenu::MainMenu(MWindow *mwindow, MWindowGUI *gui, int w) { this->gui = gui; this->mwindow = mwindow; +// *** CONTEXT_HELP *** + context_help_set_keyword("Program Window"); } MainMenu::~MainMenu() @@ -132,7 +134,7 @@ void MainMenu::create_objects() filemenu->add_item(new SubttlSWin(mwindow)); filemenu->add_item(render = new RenderItem(mwindow)); - filemenu->add_item(new ExportEDLItem(mwindow)); +// filemenu->add_item(new ExportEDLItem(mwindow)); filemenu->add_item(new BatchRenderMenuItem(mwindow)); filemenu->add_item(new CreateBD_MenuItem(mwindow)); filemenu->add_item(new CreateDVD_MenuItem(mwindow)); @@ -207,13 +209,13 @@ void MainMenu::create_objects() add_menu(trackmenu = new BC_Menu(_("Tracks"))); trackmenu->add_item(new MoveTracksUp(mwindow)); trackmenu->add_item(new MoveTracksDown(mwindow)); + trackmenu->add_item(new RollTracksUp(mwindow)); + trackmenu->add_item(new RollTracksDown(mwindow)); trackmenu->add_item(new DeleteTracks(mwindow)); trackmenu->add_item(new DeleteFirstTrack(mwindow)); trackmenu->add_item(new DeleteLastTrack(mwindow)); trackmenu->add_item(new ConcatenateTracks(mwindow)); trackmenu->add_item(new AlignTimecodes(mwindow)); - trackmenu->add_item(new SwapTracksUp(mwindow)); - trackmenu->add_item(new SwapTracksDown(mwindow)); AppendTracks *append_tracks; trackmenu->add_item(append_tracks = new AppendTracks(mwindow)); append_tracks->create_objects(); @@ -223,7 +225,6 @@ void MainMenu::create_objects() settingsmenu->add_item(new SetFormat(mwindow)); settingsmenu->add_item(preferences = new PreferencesMenuitem(mwindow)); - ProxyMenuItem *proxy; settingsmenu->add_item(proxy = new ProxyMenuItem(mwindow)); proxy->create_objects(); ConvertMenuItem *convert; @@ -1345,7 +1346,8 @@ int MoveTracksUp::handle_event() MoveTracksDown::MoveTracksDown(MWindow *mwindow) : BC_MenuItem(_("Move tracks down"), _("Shift-Down"), DOWN) { - set_shift(); this->mwindow = mwindow; + this->mwindow = mwindow; + set_shift(); } int MoveTracksDown::handle_event() @@ -1356,30 +1358,33 @@ int MoveTracksDown::handle_event() } -SwapTracksUp::SwapTracksUp(MWindow *mwindow) - : BC_MenuItem(_("Swap tracks up"), 0, UP) +RollTracksUp::RollTracksUp(MWindow *mwindow) + : BC_MenuItem(_("Roll tracks up"), _("Ctrl-Shift-Up"), UP) { this->mwindow = mwindow; + set_ctrl(); set_shift(); } -int SwapTracksUp::handle_event() +int RollTracksUp::handle_event() { if( mwindow->session->current_operation == NO_OPERATION ) - mwindow->swap_tracks_up(); + mwindow->roll_tracks_up(); return 1; } -SwapTracksDown::SwapTracksDown(MWindow *mwindow) - : BC_MenuItem(_("Swap tracks down"), 0, DOWN) +RollTracksDown::RollTracksDown(MWindow *mwindow) + : BC_MenuItem(_("Roll tracks down"), _("Ctrl-Shift-Down"), DOWN) { - set_shift(); this->mwindow = mwindow; + this->mwindow = mwindow; + set_ctrl(); + set_shift(); } -int SwapTracksDown::handle_event() +int RollTracksDown::handle_event() { if( mwindow->session->current_operation == NO_OPERATION ) - mwindow->swap_tracks_down(); + mwindow->roll_tracks_down(); return 1; } @@ -1604,9 +1609,15 @@ ShowVWindow::ShowVWindow(MWindow *mwindow) } int ShowVWindow::handle_event() { - mwindow->gui->unlock_window(); - mwindow->show_vwindow(1); - mwindow->gui->lock_window("ShowVWindow::handle_event"); + if( mwindow->session->current_operation == NO_OPERATION ) { + mwindow->gui->unlock_window(); + if( !mwindow->session->show_vwindow ) + mwindow->show_vwindow(1); + else + mwindow->hide_vwindow(1); + mwindow->gui->lock_window("ShowVWindow::handle_event"); + set_checked(mwindow->session->show_vwindow); + } return 1; } @@ -1618,9 +1629,16 @@ ShowAWindow::ShowAWindow(MWindow *mwindow) } int ShowAWindow::handle_event() { - mwindow->gui->unlock_window(); - mwindow->show_awindow(); - mwindow->gui->lock_window("ShowAWindow::handle_event"); + if( mwindow->session->current_operation == NO_OPERATION ) { + mwindow->gui->unlock_window(); + if( !mwindow->session->show_awindow ) + mwindow->show_awindow(); + else + mwindow->hide_awindow(); + mwindow->gui->lock_window("ShowAWindow::handle_event"); + set_checked(mwindow->session->show_awindow); + + } return 1; } @@ -1632,9 +1650,15 @@ ShowCWindow::ShowCWindow(MWindow *mwindow) } int ShowCWindow::handle_event() { - mwindow->gui->unlock_window(); - mwindow->show_cwindow(); - mwindow->gui->lock_window("ShowCWindow::handle_event"); + if( mwindow->session->current_operation == NO_OPERATION ) { + mwindow->gui->unlock_window(); + if( !mwindow->session->show_cwindow ) + mwindow->show_cwindow(); + else + mwindow->hide_cwindow(); + mwindow->gui->lock_window("ShowCWindow::handle_event"); + set_checked(mwindow->session->show_cwindow); + } return 1; } @@ -1669,9 +1693,16 @@ ShowLWindow::ShowLWindow(MWindow *mwindow) } int ShowLWindow::handle_event() { - mwindow->gui->unlock_window(); - mwindow->show_lwindow(); - mwindow->gui->lock_window("ShowLWindow::handle_event"); + if( mwindow->session->current_operation == NO_OPERATION ) { + + mwindow->gui->unlock_window(); + if( !mwindow->session->show_lwindow ) + mwindow->show_lwindow(); + else + mwindow->hide_lwindow(); + mwindow->gui->lock_window("ShowLWindow::handle_event"); + set_checked(mwindow->session->show_lwindow); + } return 1; } @@ -1736,7 +1767,7 @@ void MixerItems::create_objects() BC_SubMenu *mixer_submenu = new BC_SubMenu(); add_submenu(mixer_submenu); mixer_submenu->add_submenuitem(new MixerViewer(this)); - mixer_submenu->add_submenuitem(new TileMixers(this)); + mixer_submenu->add_submenuitem(new DragTileMixers(this)); mixer_submenu->add_submenuitem(new AlignMixers(this)); mixer_submenu->add_submenuitem(new MixMasters(this)); } @@ -1807,16 +1838,51 @@ int MixerViewer::handle_event() return 1; } -TileMixers::TileMixers(MixerItems *mixer_items) - : MixerItem(mixer_items, _("Tile mixers"), "Alt-t", 't') +DragTileMixers::DragTileMixers(MixerItems *mixer_items) + : MixerItem(mixer_items, _("Drag Tile mixers"), "Alt-t", 't') { set_alt(); + drag_box = 0; } -int TileMixers::handle_event() +DragTileMixers::~DragTileMixers() { - MWindow *mwindow = mixer_items->mwindow; - mwindow->tile_mixers(); + delete drag_box; +} + +int DragTileMixers::handle_event() +{ + if( !drag_box ) { + MWindow *mwindow = mixer_items->mwindow; + drag_box = new TileMixersDragBox(mwindow->gui); + } + if( !drag_box->running() ) + drag_box->start(this); + return 1; +} + +TileMixersDragBox::TileMixersDragBox(MWindowGUI *gui) + : BC_DragBox(gui) +{ + tile_mixers = 0; +} + +void TileMixersDragBox::start(DragTileMixers *tile_mixers) +{ + this->tile_mixers = tile_mixers; + start_drag(); +} + +int TileMixersDragBox::handle_done_event(int x0, int y0, int x1, int y1) +{ + MWindow *mwindow = tile_mixers->mixer_items->mwindow; + if( x0 >= x1 || y0 >= y1 ) x0 = x1 = y0 = y1 = 0; + mwindow->session->tile_mixers_x = x0; + mwindow->session->tile_mixers_y = y0; + mwindow->session->tile_mixers_w = x1 - x0; + mwindow->session->tile_mixers_h = y1 - y0; + mwindow->tile_mixers(x0, y0, x1, y1); + tile_mixers = 0; return 1; } @@ -2049,6 +2115,8 @@ LoadLayoutConfirm::LoadLayoutConfirm(LoadLayoutDialog *layout_dialog, int x, int : BC_Window(_(PROGRAM_NAME ": Layout"), x, y, xS(300),yS(140), xS(300),yS(140), 0) { this->layout_dialog = layout_dialog; +// *** CONTEXT_HELP *** + context_help_set_keyword("Window Layouts"); } LoadLayoutConfirm::~LoadLayoutConfirm()