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));
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));
-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()
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;
}
{
}
-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()
{
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;
}
-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;
}
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;
}
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;
}
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()
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;
}