rework intl strategy, titler upgrades, fonts fixes, igor ru.po
[goodguy/history.git] / cinelerra-5.1 / cinelerra / mainmenu.C
index 7fa7b747282d1ec5508ea56c3366aa80976fafc5..cf119d61f749a318de7adb611b517f1a28842bb1 100644 (file)
@@ -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(new SetBRenderRange(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; i<curve_menu->total_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;
 }
@@ -1239,15 +1241,15 @@ int PasteSubttl::handle_event()
 
 
 
-SetBRenderStart::SetBRenderStart(MWindow *mwindow)
- : BC_MenuItem(_("Set background render"))
+SetBRenderRange::SetBRenderRange(MWindow *mwindow)
+ : BC_MenuItem(_("Set background rendering"))
 {
        this->mwindow = mwindow;
 }
 
-int SetBRenderStart::handle_event()
+int SetBRenderRange::handle_event()
 {
-       mwindow->set_brender_start();
+       mwindow->set_brender_range();
        return 1;
 }
 
@@ -1275,16 +1277,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 +1294,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 +1358,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 +1417,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;
 }