X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fmainmenu.C;h=273390537a20bb694601267434f6ce7ac975df5e;hb=6fd57106820e676e368399d16b925bdc78d34621;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..27339053 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)); @@ -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; }