X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fmainmenu.C;h=1b75ddfcd4078dd0f9fa00f6f6a8e6cdb255f9e8;hb=9dfcb16de981999e51887810e8e4c5cd6e77cde7;hp=7fa7b747282d1ec5508ea56c3366aa80976fafc5;hpb=190b4810ec184c74ceab3fcd6faf09a91c92c53c;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/cinelerra/mainmenu.C b/cinelerra-5.1/cinelerra/mainmenu.C index 7fa7b747..1b75ddfc 100644 --- a/cinelerra-5.1/cinelerra/mainmenu.C +++ b/cinelerra-5.1/cinelerra/mainmenu.C @@ -112,7 +112,9 @@ void MainMenu::create_objects() save->create_objects(saveas); saveas->set_mainmenu(this); filemenu->add_item(record_menu_item = new RecordMenuItem(mwindow)); +#ifdef HAVE_DVB filemenu->add_item(new ChannelScan(mwindow)); +#endif if( mwindow->has_commercials() ) filemenu->add_item(new DbWindowScan(mwindow)); filemenu->add_item(new SubttlSWin(mwindow)); @@ -163,10 +165,9 @@ void MainMenu::create_objects() keyframemenu->add_item(new ClearKeyframes(mwindow)); keyframemenu->add_item(new StraightenKeyframes(mwindow)); keyframemenu->add_item(new BendKeyframes(mwindow)); - keyframemenu->add_item(keyframe_curve_type = - new KeyframeCurveType(mwindow, - mwindow->edl->local_session->floatauto_type)); + keyframemenu->add_item(keyframe_curve_type = new KeyframeCurveType(mwindow)); keyframe_curve_type->create_objects(); + keyframe_curve_type->update(mwindow->edl->local_session->floatauto_type); keyframemenu->add_item(new BC_MenuItem("-")); keyframemenu->add_item(new CopyDefaultKeyframe(mwindow)); keyframemenu->add_item(new PasteDefaultKeyframe(mwindow)); @@ -211,7 +212,7 @@ void MainMenu::create_objects() settingsmenu->add_item(new BC_MenuItem("-")); settingsmenu->add_item(new SaveSettingsNow(mwindow)); settingsmenu->add_item(loop_playback = new LoopPlayback(mwindow)); - settingsmenu->add_item(new SetBRenderStart(mwindow)); + settingsmenu->add_item(brender_active = new SetBRenderActive(mwindow)); // set scrubbing speed // ScrubSpeed *scrub_speed; // settingsmenu->add_item(scrub_speed = new ScrubSpeed(mwindow)); @@ -730,11 +731,10 @@ int BendKeyframes::handle_event() -KeyframeCurveType::KeyframeCurveType(MWindow *mwindow, int curve_type) +KeyframeCurveType::KeyframeCurveType(MWindow *mwindow) : BC_MenuItem(_("Create curve type...")) { this->mwindow = mwindow; - this->curve_type = curve_type; this->curve_menu = 0; } KeyframeCurveType::~KeyframeCurveType() @@ -743,26 +743,28 @@ KeyframeCurveType::~KeyframeCurveType() void KeyframeCurveType::create_objects() { - curve_menu = new KeyframeCurveTypeMenu(this); - mwindow->gui->add_subwindow(curve_menu); + add_submenu(curve_menu = new KeyframeCurveTypeMenu(this)); for( int i=FloatAuto::SMOOTH; i<=FloatAuto::FREE; ++i ) { - curve_menu->add_item(new KeyframeCurveTypeItem(i)); + KeyframeCurveTypeItem *curve_type_item = new KeyframeCurveTypeItem(i, this); + curve_menu->add_submenuitem(curve_type_item); } } -int KeyframeCurveType::handle_event() +void KeyframeCurveType::update(int curve_type) { for( int i=0; itotal_items(); ++i ) { - KeyframeCurveTypeItem *curve_type_item = - (KeyframeCurveTypeItem *)curve_menu->get_item(i); + KeyframeCurveTypeItem *curve_type_item = (KeyframeCurveTypeItem *)curve_menu->get_item(i); curve_type_item->set_checked(curve_type_item->type == curve_type); } - curve_menu->activate_menu(); +} + +int KeyframeCurveType::handle_event() +{ return 1; } KeyframeCurveTypeMenu::KeyframeCurveTypeMenu(KeyframeCurveType *menu_item) - : BC_PopupMenu(0, 0, 0, "", 0) + : BC_SubMenu() { this->menu_item = menu_item; } @@ -770,10 +772,11 @@ KeyframeCurveTypeMenu::~KeyframeCurveTypeMenu() { } -KeyframeCurveTypeItem::KeyframeCurveTypeItem(int type) +KeyframeCurveTypeItem::KeyframeCurveTypeItem(int type, KeyframeCurveType *main_item) : BC_MenuItem(FloatAuto::curve_name(type)) { this->type = type; + this->main_item = main_item; } KeyframeCurveTypeItem::~KeyframeCurveTypeItem() { @@ -781,9 +784,8 @@ KeyframeCurveTypeItem::~KeyframeCurveTypeItem() int KeyframeCurveTypeItem::handle_event() { - KeyframeCurveType *menu_item = ((KeyframeCurveTypeMenu *)get_popup_menu())->menu_item; - menu_item->curve_type = type; - menu_item->mwindow->set_keyframe_type(type); + main_item->update(type); + main_item->mwindow->set_keyframe_type(type); return 1; } @@ -828,7 +830,7 @@ int PasteDefaultKeyframe::handle_event() } ClearDefaultKeyframe::ClearDefaultKeyframe(MWindow *mwindow) - : BC_MenuItem(_("Clear default keyframe"), _("Alt-Del"), BACKSPACE) + : BC_MenuItem(_("Clear default keyframe"), _("Alt-Del"), DELETE) { set_alt(); this->mwindow = mwindow; @@ -877,7 +879,7 @@ int Paste::handle_event() } Clear::Clear(MWindow *mwindow) - : BC_MenuItem(_("Clear"), _("Del"), BACKSPACE) + : BC_MenuItem(_("Clear"), _("Del"), DELETE) { this->mwindow = mwindow; } @@ -1235,28 +1237,22 @@ int PasteSubttl::handle_event() } - - - - -SetBRenderStart::SetBRenderStart(MWindow *mwindow) - : BC_MenuItem(_("Set background render")) +SetBRenderActive::SetBRenderActive(MWindow *mwindow) + : BC_MenuItem(_("Toggle background rendering"),_("Shift-G"),'G') { this->mwindow = mwindow; + set_shift(1); } -int SetBRenderStart::handle_event() +int SetBRenderActive::handle_event() { - mwindow->set_brender_start(); + int v = mwindow->brender_active ? 0 : 1; + set_checked(v); + mwindow->set_brender_active(v); return 1; } - - - - - LabelsFollowEdits::LabelsFollowEdits(MWindow *mwindow) : BC_MenuItem(_("Edit labels")) { @@ -1275,16 +1271,16 @@ int LabelsFollowEdits::handle_event() PluginsFollowEdits::PluginsFollowEdits(MWindow *mwindow) - : BC_MenuItem(_("Edit effects")) -{ - this->mwindow = mwindow; + : BC_MenuItem(_("Edit effects")) +{ + this->mwindow = mwindow; set_checked(mwindow->edl->session->plugins_follow_edits); } int PluginsFollowEdits::handle_event() { set_checked(get_checked() ^ 1); - mwindow->edl->session->plugins_follow_edits = get_checked(); + mwindow->edl->session->plugins_follow_edits = get_checked(); return 1; } @@ -1292,45 +1288,45 @@ int PluginsFollowEdits::handle_event() KeyframesFollowEdits::KeyframesFollowEdits(MWindow *mwindow) - : BC_MenuItem(_("Keyframes follow edits")) -{ - this->mwindow = mwindow; + : BC_MenuItem(_("Keyframes follow edits")) +{ + this->mwindow = mwindow; set_checked(mwindow->edl->session->autos_follow_edits); } int KeyframesFollowEdits::handle_event() -{ - mwindow->edl->session->autos_follow_edits ^= 1; +{ + mwindow->edl->session->autos_follow_edits ^= 1; set_checked(!get_checked()); return 1; } CursorOnFrames::CursorOnFrames(MWindow *mwindow) - : BC_MenuItem(_("Align cursor on frames")) -{ - this->mwindow = mwindow; + : BC_MenuItem(_("Align cursor on frames")) +{ + this->mwindow = mwindow; set_checked(mwindow->edl->session->cursor_on_frames); } int CursorOnFrames::handle_event() { - mwindow->edl->session->cursor_on_frames = !mwindow->edl->session->cursor_on_frames; + mwindow->edl->session->cursor_on_frames = !mwindow->edl->session->cursor_on_frames; set_checked(mwindow->edl->session->cursor_on_frames); return 1; } TypelessKeyframes::TypelessKeyframes(MWindow *mwindow) - : BC_MenuItem(_("Typeless keyframes")) -{ - this->mwindow = mwindow; + : BC_MenuItem(_("Typeless keyframes")) +{ + this->mwindow = mwindow; set_checked(mwindow->edl->session->typeless_keyframes); } int TypelessKeyframes::handle_event() { - mwindow->edl->session->typeless_keyframes = !mwindow->edl->session->typeless_keyframes; + mwindow->edl->session->typeless_keyframes = !mwindow->edl->session->typeless_keyframes; set_checked(mwindow->edl->session->typeless_keyframes); return 1; } @@ -1356,9 +1352,9 @@ int ScrubSpeed::handle_event() return 1; } -SaveSettingsNow::SaveSettingsNow(MWindow *mwindow) : BC_MenuItem(_("Save settings now")) -{ - this->mwindow = mwindow; +SaveSettingsNow::SaveSettingsNow(MWindow *mwindow) : BC_MenuItem(_("Save settings now")) +{ + this->mwindow = mwindow; } int SaveSettingsNow::handle_event() @@ -1415,14 +1411,19 @@ int ShowCWindow::handle_event() ShowGWindow::ShowGWindow(MWindow *mwindow) - : BC_MenuItem(_("Show Overlays")) + : BC_MenuItem(_("Show Overlays"), _("Ctrl-0"), '0') { this->mwindow = mwindow; + set_ctrl(1); set_checked(mwindow->session->show_gwindow); } int ShowGWindow::handle_event() { - mwindow->show_gwindow(); + if( !mwindow->session->show_gwindow ) + mwindow->show_gwindow(); + else + mwindow->hide_gwindow(); + set_checked(mwindow->session->show_gwindow); return 1; }