From: Good Guy Date: Sun, 29 Sep 2019 23:51:56 +0000 (-0600) Subject: pop tool_gui on open, add camera/projector add_keyfrm/reset, overlay gui pan/mode... X-Git-Tag: 2019-09~2 X-Git-Url: https://cinelerra-gg.org/git/?a=commitdiff_plain;h=78871039cd6acf5ec257bd8c8e94c83ef81dc45a;p=goodguy%2Fcinelerra.git pop tool_gui on open, add camera/projector add_keyfrm/reset, overlay gui pan/mode/mask use textcolor, fix clear_hard_edges bound tests, titler font tumbler fix --- diff --git a/cinelerra-5.1/cinelerra/cwindowtool.C b/cinelerra-5.1/cinelerra/cwindowtool.C index 8ba0e3b2..88a524d7 100644 --- a/cinelerra-5.1/cinelerra/cwindowtool.C +++ b/cinelerra-5.1/cinelerra/cwindowtool.C @@ -133,6 +133,7 @@ void CWindowTool::start_tool(int operation) mwindow->edl->session->tool_window = 1; gui->composite_panel->operation[CWINDOW_TOOL_WINDOW]->update(1); } + mwindow->edl->session->tool_window = new_gui ? 1 : 0; update_show_window(); // Signal thread to run next tool GUI @@ -861,6 +862,11 @@ void CWindowCameraGUI::create_objects() add_subwindow(button = new CWindowCameraCenter(mwindow, this, x1, y)); x1 += button->get_w(); add_subwindow(button = new CWindowCameraRight(mwindow, this, x1, y)); +// additional Buttons to control the curve mode of the "current" keyframe + x1 += button->get_w() + 15; + add_subwindow(this->t_smooth = new CWindowCurveToggle(Camera_Crv_Smooth, mwindow, this, x1, y)); + x1 += button->get_w() + 10; + add_subwindow(this->t_linear = new CWindowCurveToggle(Camera_Crv_Linear, mwindow, this, x1, y)); y += button->get_h(); x1 = 10; @@ -869,11 +875,10 @@ void CWindowCameraGUI::create_objects() add_subwindow(button = new CWindowCameraMiddle(mwindow, this, x1, y)); x1 += button->get_w(); add_subwindow(button = new CWindowCameraBottom(mwindow, this, x1, y)); -// additional Buttons to control the curve mode of the "current" keyframe x1 += button->get_w() + 15; - add_subwindow(this->t_smooth = new CWindowCurveToggle(Camera_Crv_Smooth, mwindow, this, x1, y)); - x1 += button->get_w(); - add_subwindow(this->t_linear = new CWindowCurveToggle(Camera_Crv_Linear, mwindow, this, x1, y)); + add_subwindow(this->add_keyframe = new CWindowCameraAddKeyframe(mwindow, this, x1, y)); + x1 += button->get_w() + 10; + add_subwindow(this->reset = new CWindowCameraReset(mwindow, this, x1, y)); // fill in current auto keyframe values, set toggle states. this->update(); @@ -1193,6 +1198,34 @@ int CWindowCameraBottom::handle_event() return 1; } +CWindowCameraAddKeyframe::CWindowCameraAddKeyframe(MWindow *mwindow, + CWindowToolGUI *gui, int x, int y) + : BC_Button(x, y, mwindow->theme->get_image_set("keyframe_button")) +{ + this->mwindow = mwindow; + this->gui = gui; + set_tooltip(_("Add Keyframe: Shift-F11")); +} + +int CWindowCameraAddKeyframe::handle_event() +{ + return gui->press(&CWindowCanvas::camera_keyframe); +} + +CWindowCameraReset::CWindowCameraReset(MWindow *mwindow, + CWindowToolGUI *gui, int x, int y) + : BC_Button(x, y, mwindow->theme->get_image_set("reset_button")) +{ + this->mwindow = mwindow; + this->gui = gui; + set_tooltip(_("Reset Camera: F11")); +} + +int CWindowCameraReset::handle_event() +{ + return gui->press(&CWindowCanvas::reset_camera); +} + CWindowProjectorGUI::CWindowProjectorGUI(MWindow *mwindow, CWindowTool *thread) : CWindowToolGUI(mwindow, @@ -1249,6 +1282,11 @@ void CWindowProjectorGUI::create_objects() add_subwindow(button = new CWindowProjectorCenter(mwindow, this, x1, y)); x1 += button->get_w(); add_subwindow(button = new CWindowProjectorRight(mwindow, this, x1, y)); +// additional Buttons to control the curve mode of the "current" keyframe + x1 += button->get_w() + 15; + add_subwindow(this->t_smooth = new CWindowCurveToggle(Projector_Crv_Smooth, mwindow, this, x1, y)); + x1 += button->get_w() + 10; + add_subwindow(this->t_linear = new CWindowCurveToggle(Projector_Crv_Linear, mwindow, this, x1, y)); y += button->get_h(); x1 = 10; @@ -1257,12 +1295,10 @@ void CWindowProjectorGUI::create_objects() add_subwindow(button = new CWindowProjectorMiddle(mwindow, this, x1, y)); x1 += button->get_w(); add_subwindow(button = new CWindowProjectorBottom(mwindow, this, x1, y)); - -// additional Buttons to control the curve mode of the "current" keyframe x1 += button->get_w() + 15; - add_subwindow(this->t_smooth = new CWindowCurveToggle(Projector_Crv_Smooth, mwindow, this, x1, y)); - x1 += button->get_w(); - add_subwindow(this->t_linear = new CWindowCurveToggle(Projector_Crv_Linear, mwindow, this, x1, y)); + add_subwindow(this->add_keyframe = new CWindowProjectorAddKeyframe(mwindow, this, x1, y)); + x1 += button->get_w() + 10; + add_subwindow(this->reset = new CWindowProjectorReset(mwindow, this, x1, y)); // fill in current auto keyframe values, set toggle states. this->update(); @@ -1540,6 +1576,44 @@ int CWindowProjectorBottom::handle_event() return 1; } +CWindowProjectorAddKeyframe::CWindowProjectorAddKeyframe(MWindow *mwindow, + CWindowToolGUI *gui, int x, int y) + : BC_Button(x, y, mwindow->theme->get_image_set("keyframe_button")) +{ + this->mwindow = mwindow; + this->gui = gui; + set_tooltip(_("Add Keyframe: Shift-F12")); +} + +int CWindowProjectorAddKeyframe::handle_event() +{ + return gui->press(&CWindowCanvas::projector_keyframe); +} + +CWindowProjectorReset::CWindowProjectorReset(MWindow *mwindow, + CWindowToolGUI *gui, int x, int y) + : BC_Button(x, y, mwindow->theme->get_image_set("reset_button")) +{ + this->mwindow = mwindow; + this->gui = gui; + set_tooltip(_("Reset Projector: F12")); +} + +int CWindowProjectorReset::handle_event() +{ + return gui->press(&CWindowCanvas::reset_projector); +} + +int CWindowToolGUI::press(void (CWindowCanvas::*fn)()) +{ + unlock_window(); + CWindowGUI *cw_gui = thread->gui; + cw_gui->lock_window("CWindowGUI::press"); + (cw_gui->canvas->*fn)(); + cw_gui->unlock_window(); + lock_window("CWindowToolGUI::press"); + return 1; +} CWindowMaskOnTrack::CWindowMaskOnTrack(MWindow *mwindow, CWindowMaskGUI *gui, int x, int y, int w, const char *text) @@ -3673,6 +3747,3 @@ void CWindowRulerGUI::handle_event() { } - - - diff --git a/cinelerra-5.1/cinelerra/cwindowtool.h b/cinelerra-5.1/cinelerra/cwindowtool.h index 1a116541..6d02bf67 100644 --- a/cinelerra-5.1/cinelerra/cwindowtool.h +++ b/cinelerra-5.1/cinelerra/cwindowtool.h @@ -97,6 +97,7 @@ public: virtual int close_event(); int keypress_event(); int translation_event(); + int press(void (CWindowCanvas::*fn)()); MWindow *mwindow; CWindowTool *thread; @@ -760,15 +761,13 @@ class CWindowCameraGUI : public CWindowToolGUI public: CWindowCameraGUI(MWindow *mwindow, CWindowTool *thread); ~CWindowCameraGUI(); + void handle_event(); void create_objects(); void update(); -// Update the keyframe from text boxes - void handle_event(); -// BezierAuto* get_keyframe(); CWindowCoord *x, *y, *z; -private: -// Toggles for keyframe curve mode (for camera automation only) + CWindowCameraAddKeyframe *add_keyframe; + CWindowCameraReset *reset; CWindowCurveToggle *t_smooth, *t_linear; }; @@ -832,18 +831,39 @@ public: CWindowCameraGUI *gui; }; +class CWindowCameraAddKeyframe : public BC_Button +{ +public: + CWindowCameraAddKeyframe(MWindow *mwindow, CWindowToolGUI *gui, int x, int y); + int handle_event(); + + MWindow *mwindow; + CWindowToolGUI *gui; +}; + +class CWindowCameraReset : public BC_Button +{ +public: + CWindowCameraReset(MWindow *mwindow, CWindowToolGUI *gui, int x, int y); + int handle_event(); + + MWindow *mwindow; + CWindowToolGUI *gui; +}; + + class CWindowProjectorGUI : public CWindowToolGUI { public: CWindowProjectorGUI(MWindow *mwindow, CWindowTool *thread); ~CWindowProjectorGUI(); + void handle_event(); void create_objects(); void update(); - void handle_event(); -// BezierAuto* get_keyframe(); + CWindowCoord *x, *y, *z; -private: -// Toggles for keyframe curve mode (projector automation only) + CWindowProjectorAddKeyframe *add_keyframe; + CWindowProjectorReset *reset; CWindowCurveToggle *t_smooth, *t_linear; }; @@ -907,6 +927,26 @@ public: CWindowProjectorGUI *gui; }; +class CWindowProjectorAddKeyframe : public BC_Button +{ +public: + CWindowProjectorAddKeyframe(MWindow *mwindow, CWindowToolGUI *gui, int x, int y); + int handle_event(); + + MWindow *mwindow; + CWindowToolGUI *gui; +}; + +class CWindowProjectorReset : public BC_Button +{ +public: + CWindowProjectorReset(MWindow *mwindow, CWindowToolGUI *gui, int x, int y); + int handle_event(); + + MWindow *mwindow; + CWindowToolGUI *gui; +}; + @@ -929,5 +969,4 @@ public: }; - #endif diff --git a/cinelerra-5.1/cinelerra/cwindowtool.inc b/cinelerra-5.1/cinelerra/cwindowtool.inc index 6f19a15f..97a6bb88 100644 --- a/cinelerra-5.1/cinelerra/cwindowtool.inc +++ b/cinelerra-5.1/cinelerra/cwindowtool.inc @@ -79,6 +79,8 @@ class CWindowCameraRight; class CWindowCameraTop; class CWindowCameraMiddle; class CWindowCameraBottom; +class CWindowCameraAddKeyframe; +class CWindowCameraReset; class CWindowProjectorGUI; class CWindowProjectorLeft; class CWindowProjectorCenter; @@ -86,6 +88,8 @@ class CWindowProjectorRight; class CWindowProjectorTop; class CWindowProjectorMiddle; class CWindowProjectorBottom; +class CWindowProjectorAddKeyframe; +class CWindowProjectorReset; class CWindowRulerGUI; class CWindowCurveToggle; diff --git a/cinelerra-5.1/cinelerra/gwindowgui.C b/cinelerra-5.1/cinelerra/gwindowgui.C index 53061be9..3fef296e 100644 --- a/cinelerra-5.1/cinelerra/gwindowgui.C +++ b/cinelerra-5.1/cinelerra/gwindowgui.C @@ -92,9 +92,9 @@ int GWindowGUI::auto_colors[AUTOMATION_TOTAL] = LTGREEN, LTBLUE, LTPURPLE, - 0, - 0, - 0, + -1, + -1, + -1, ORANGE, }; diff --git a/cinelerra-5.1/cinelerra/tracksedit.C b/cinelerra-5.1/cinelerra/tracksedit.C index 183f35f7..34a6c00a 100644 --- a/cinelerra-5.1/cinelerra/tracksedit.C +++ b/cinelerra-5.1/cinelerra/tracksedit.C @@ -128,11 +128,20 @@ int Tracks::clear_hard_edges(double start, double end) int64_t end_units = track->to_units(end, 0); for( Edit *edit=track->edits->first; edit; edit=edit->next ) { - if( edit->startproject < start_units ) continue; - if( edit->startproject >= end_units ) continue; - edit->hard_left = 0; - if( !edit->previous ) continue; - edit->previous->hard_right = 0; + int64_t pos = edit->startproject; + if( pos > end_units ) break; + if( pos >= start_units ) { + edit->hard_left = 0; + if( edit->previous ) + edit->previous->hard_right = 0; + } + pos += edit->length; + if( pos > end_units ) break; + if( pos >= start_units ) { + edit->hard_right = 0; + if( edit->next ) + edit->next->hard_left = 0; + } } } return 0; diff --git a/cinelerra-5.1/guicast/bctextbox.C b/cinelerra-5.1/guicast/bctextbox.C index 78e6fa42..b871692c 100644 --- a/cinelerra-5.1/guicast/bctextbox.C +++ b/cinelerra-5.1/guicast/bctextbox.C @@ -2571,6 +2571,7 @@ int BC_PopupTextBox::handle_event() const char *BC_PopupTextBox::get_text() { return textbox->get_text(); } const wchar_t *BC_PopupTextBox::get_wtext() { return textbox->get_wtext(); } int BC_PopupTextBox::get_number() { return list_item; } +void BC_PopupTextBox::set_number(int v) { list_item = v; } int BC_PopupTextBox::get_x() { return x; } int BC_PopupTextBox::get_y() { return y; } int BC_PopupTextBox::get_w() { return textbox->get_w() + listbox->get_w(); } diff --git a/cinelerra-5.1/guicast/bctextbox.h b/cinelerra-5.1/guicast/bctextbox.h index e8f0ce49..f96446d6 100644 --- a/cinelerra-5.1/guicast/bctextbox.h +++ b/cinelerra-5.1/guicast/bctextbox.h @@ -353,6 +353,7 @@ public: const char *get_text(); const wchar_t *get_wtext(); int get_number(); + void set_number(int v); int get_x(); int get_y(); int get_w(); diff --git a/cinelerra-5.1/plugins/theme_blond/blondtheme.C b/cinelerra-5.1/plugins/theme_blond/blondtheme.C index 6314eac8..3babdd66 100644 --- a/cinelerra-5.1/plugins/theme_blond/blondtheme.C +++ b/cinelerra-5.1/plugins/theme_blond/blondtheme.C @@ -288,6 +288,12 @@ void BlondTheme::initialize() "unclear_dn.png", "unclear_button"); + new_button("keyframe.png", + "keyframe_up.png", + "keyframe_hi.png", + "keyframe_dn.png", + "keyframe_button"); + resources->cancel_images = new_button("cancel.png", "filebox_bigbutton_up.png", "filebox_bigbutton_hi.png", diff --git a/cinelerra-5.1/plugins/theme_blond/data/keyframe.png b/cinelerra-5.1/plugins/theme_blond/data/keyframe.png index ea305d8f..6e74417f 100644 Binary files a/cinelerra-5.1/plugins/theme_blond/data/keyframe.png and b/cinelerra-5.1/plugins/theme_blond/data/keyframe.png differ diff --git a/cinelerra-5.1/plugins/theme_blond/data/keyframe_dn.png b/cinelerra-5.1/plugins/theme_blond/data/keyframe_dn.png new file mode 100755 index 00000000..3636456b Binary files /dev/null and b/cinelerra-5.1/plugins/theme_blond/data/keyframe_dn.png differ diff --git a/cinelerra-5.1/plugins/theme_blond/data/keyframe_hi.png b/cinelerra-5.1/plugins/theme_blond/data/keyframe_hi.png new file mode 100755 index 00000000..16354b94 Binary files /dev/null and b/cinelerra-5.1/plugins/theme_blond/data/keyframe_hi.png differ diff --git a/cinelerra-5.1/plugins/theme_blond/data/keyframe_up.png b/cinelerra-5.1/plugins/theme_blond/data/keyframe_up.png new file mode 100755 index 00000000..52b226c3 Binary files /dev/null and b/cinelerra-5.1/plugins/theme_blond/data/keyframe_up.png differ diff --git a/cinelerra-5.1/plugins/theme_blond_cv/blondcvtheme.C b/cinelerra-5.1/plugins/theme_blond_cv/blondcvtheme.C index 93e19e12..00cb8d76 100644 --- a/cinelerra-5.1/plugins/theme_blond_cv/blondcvtheme.C +++ b/cinelerra-5.1/plugins/theme_blond_cv/blondcvtheme.C @@ -341,6 +341,12 @@ void BlondCVTheme::initialize() "unclear_dn.png", "unclear_button"); + new_button("keyframe.png", + "keyframe_up.png", + "keyframe_hi.png", + "keyframe_dn.png", + "keyframe_button"); + resources->cancel_images = new_button("cancel.png", "generic_up.png", "generic_hi.png", diff --git a/cinelerra-5.1/plugins/theme_blond_cv/data/keyframe.png b/cinelerra-5.1/plugins/theme_blond_cv/data/keyframe.png index 97b7aa36..01efaf94 100644 Binary files a/cinelerra-5.1/plugins/theme_blond_cv/data/keyframe.png and b/cinelerra-5.1/plugins/theme_blond_cv/data/keyframe.png differ diff --git a/cinelerra-5.1/plugins/theme_blond_cv/data/keyframe_dn.png b/cinelerra-5.1/plugins/theme_blond_cv/data/keyframe_dn.png old mode 100644 new mode 100755 index bf09d89d..c7a8ea88 Binary files a/cinelerra-5.1/plugins/theme_blond_cv/data/keyframe_dn.png and b/cinelerra-5.1/plugins/theme_blond_cv/data/keyframe_dn.png differ diff --git a/cinelerra-5.1/plugins/theme_blond_cv/data/keyframe_hi.png b/cinelerra-5.1/plugins/theme_blond_cv/data/keyframe_hi.png old mode 100644 new mode 100755 index 4b08219d..73582c8e Binary files a/cinelerra-5.1/plugins/theme_blond_cv/data/keyframe_hi.png and b/cinelerra-5.1/plugins/theme_blond_cv/data/keyframe_hi.png differ diff --git a/cinelerra-5.1/plugins/theme_blond_cv/data/keyframe_up.png b/cinelerra-5.1/plugins/theme_blond_cv/data/keyframe_up.png old mode 100644 new mode 100755 index ca380227..d277e3c6 Binary files a/cinelerra-5.1/plugins/theme_blond_cv/data/keyframe_up.png and b/cinelerra-5.1/plugins/theme_blond_cv/data/keyframe_up.png differ diff --git a/cinelerra-5.1/plugins/theme_blue/bluetheme.C b/cinelerra-5.1/plugins/theme_blue/bluetheme.C index fb1160ab..e58dc152 100644 --- a/cinelerra-5.1/plugins/theme_blue/bluetheme.C +++ b/cinelerra-5.1/plugins/theme_blue/bluetheme.C @@ -288,6 +288,12 @@ void BlueDotTheme::initialize() "unclear_dn.png", "unclear_button"); + new_button("keyframe.png", + "keyframe_up.png", + "keyframe_hi.png", + "keyframe_dn.png", + "keyframe_button"); + resources->cancel_images = new_button("cancel.png", "filebox_bigbutton_up.png", "filebox_bigbutton_hi.png", diff --git a/cinelerra-5.1/plugins/theme_blue/data/keyframe.png b/cinelerra-5.1/plugins/theme_blue/data/keyframe.png index ea305d8f..ae6f39c8 100644 Binary files a/cinelerra-5.1/plugins/theme_blue/data/keyframe.png and b/cinelerra-5.1/plugins/theme_blue/data/keyframe.png differ diff --git a/cinelerra-5.1/plugins/theme_blue/data/keyframe_dn.png b/cinelerra-5.1/plugins/theme_blue/data/keyframe_dn.png new file mode 100755 index 00000000..d80421aa Binary files /dev/null and b/cinelerra-5.1/plugins/theme_blue/data/keyframe_dn.png differ diff --git a/cinelerra-5.1/plugins/theme_blue/data/keyframe_hi.png b/cinelerra-5.1/plugins/theme_blue/data/keyframe_hi.png new file mode 100755 index 00000000..e0d32fd5 Binary files /dev/null and b/cinelerra-5.1/plugins/theme_blue/data/keyframe_hi.png differ diff --git a/cinelerra-5.1/plugins/theme_blue/data/keyframe_up.png b/cinelerra-5.1/plugins/theme_blue/data/keyframe_up.png new file mode 100755 index 00000000..03e5c782 Binary files /dev/null and b/cinelerra-5.1/plugins/theme_blue/data/keyframe_up.png differ diff --git a/cinelerra-5.1/plugins/theme_blue_dot/bluedottheme.C b/cinelerra-5.1/plugins/theme_blue_dot/bluedottheme.C index 3a0bd3d6..00892269 100644 --- a/cinelerra-5.1/plugins/theme_blue_dot/bluedottheme.C +++ b/cinelerra-5.1/plugins/theme_blue_dot/bluedottheme.C @@ -299,6 +299,12 @@ void BlueDotTheme::initialize() "unclear_dn.png", "unclear_button"); + new_button("keyframe.png", + "keyframe_up.png", + "keyframe_hi.png", + "keyframe_dn.png", + "keyframe_button"); + resources->cancel_images = new_button("cancel.png", "generic_up.png", "generic_hi.png", diff --git a/cinelerra-5.1/plugins/theme_blue_dot/data/keyframe.png b/cinelerra-5.1/plugins/theme_blue_dot/data/keyframe.png index c32133dd..6e18b508 100644 Binary files a/cinelerra-5.1/plugins/theme_blue_dot/data/keyframe.png and b/cinelerra-5.1/plugins/theme_blue_dot/data/keyframe.png differ diff --git a/cinelerra-5.1/plugins/theme_blue_dot/data/keyframe_dn.png b/cinelerra-5.1/plugins/theme_blue_dot/data/keyframe_dn.png old mode 100644 new mode 100755 index 70ad1075..1162a40f Binary files a/cinelerra-5.1/plugins/theme_blue_dot/data/keyframe_dn.png and b/cinelerra-5.1/plugins/theme_blue_dot/data/keyframe_dn.png differ diff --git a/cinelerra-5.1/plugins/theme_blue_dot/data/keyframe_hi.png b/cinelerra-5.1/plugins/theme_blue_dot/data/keyframe_hi.png old mode 100644 new mode 100755 index 0c9cb1cf..16981ea7 Binary files a/cinelerra-5.1/plugins/theme_blue_dot/data/keyframe_hi.png and b/cinelerra-5.1/plugins/theme_blue_dot/data/keyframe_hi.png differ diff --git a/cinelerra-5.1/plugins/theme_blue_dot/data/keyframe_up.png b/cinelerra-5.1/plugins/theme_blue_dot/data/keyframe_up.png old mode 100644 new mode 100755 index 6f670691..2c93acb8 Binary files a/cinelerra-5.1/plugins/theme_blue_dot/data/keyframe_up.png and b/cinelerra-5.1/plugins/theme_blue_dot/data/keyframe_up.png differ diff --git a/cinelerra-5.1/plugins/theme_bright/brighttheme.C b/cinelerra-5.1/plugins/theme_bright/brighttheme.C index c953613f..af0a1565 100644 --- a/cinelerra-5.1/plugins/theme_bright/brighttheme.C +++ b/cinelerra-5.1/plugins/theme_bright/brighttheme.C @@ -295,6 +295,12 @@ void BrightTheme::initialize() "unclear_dn.png", "unclear_button"); + new_button("keyframe.png", + "keyframe_up.png", + "keyframe_hi.png", + "keyframe_dn.png", + "keyframe_button"); + resources->cancel_images = new_button("cancel.png", "bigbutton_up.png", "bigbutton_hi.png", diff --git a/cinelerra-5.1/plugins/theme_bright/data/keyframe.png b/cinelerra-5.1/plugins/theme_bright/data/keyframe.png index ea305d8f..28752e67 100644 Binary files a/cinelerra-5.1/plugins/theme_bright/data/keyframe.png and b/cinelerra-5.1/plugins/theme_bright/data/keyframe.png differ diff --git a/cinelerra-5.1/plugins/theme_bright/data/keyframe_dn.png b/cinelerra-5.1/plugins/theme_bright/data/keyframe_dn.png new file mode 100755 index 00000000..5703b6da Binary files /dev/null and b/cinelerra-5.1/plugins/theme_bright/data/keyframe_dn.png differ diff --git a/cinelerra-5.1/plugins/theme_bright/data/keyframe_hi.png b/cinelerra-5.1/plugins/theme_bright/data/keyframe_hi.png new file mode 100755 index 00000000..f87564a0 Binary files /dev/null and b/cinelerra-5.1/plugins/theme_bright/data/keyframe_hi.png differ diff --git a/cinelerra-5.1/plugins/theme_bright/data/keyframe_up.png b/cinelerra-5.1/plugins/theme_bright/data/keyframe_up.png new file mode 100755 index 00000000..f2fb5c50 Binary files /dev/null and b/cinelerra-5.1/plugins/theme_bright/data/keyframe_up.png differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/cakewalk.C b/cinelerra-5.1/plugins/theme_cakewalk/cakewalk.C index b4f82f09..14ea7b82 100644 --- a/cinelerra-5.1/plugins/theme_cakewalk/cakewalk.C +++ b/cinelerra-5.1/plugins/theme_cakewalk/cakewalk.C @@ -277,6 +277,11 @@ void CAKEWALKTHEME::initialize() "unclear_hi.png", "unclear_dn.png", "unclear_button"); + new_button("keyframe.png", + "keyframe_up.png", + "keyframe_hi.png", + "keyframe_dn.png", + "keyframe_button"); resources->cancel_images = new_button( "cancel.png", "filebox_bigbutton_up.png", diff --git a/cinelerra-5.1/plugins/theme_cakewalk/data/keyframe.png b/cinelerra-5.1/plugins/theme_cakewalk/data/keyframe.png new file mode 100644 index 00000000..10a18609 Binary files /dev/null and b/cinelerra-5.1/plugins/theme_cakewalk/data/keyframe.png differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/data/keyframe_dn.png b/cinelerra-5.1/plugins/theme_cakewalk/data/keyframe_dn.png new file mode 100644 index 00000000..c559284d Binary files /dev/null and b/cinelerra-5.1/plugins/theme_cakewalk/data/keyframe_dn.png differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/data/keyframe_hi.png b/cinelerra-5.1/plugins/theme_cakewalk/data/keyframe_hi.png new file mode 100644 index 00000000..8e3999cf Binary files /dev/null and b/cinelerra-5.1/plugins/theme_cakewalk/data/keyframe_hi.png differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/data/keyframe_up.png b/cinelerra-5.1/plugins/theme_cakewalk/data/keyframe_up.png new file mode 100644 index 00000000..f3b94fb7 Binary files /dev/null and b/cinelerra-5.1/plugins/theme_cakewalk/data/keyframe_up.png differ diff --git a/cinelerra-5.1/plugins/theme_hulk/data/keyframe.png b/cinelerra-5.1/plugins/theme_hulk/data/keyframe.png index ea305d8f..c383f632 100644 Binary files a/cinelerra-5.1/plugins/theme_hulk/data/keyframe.png and b/cinelerra-5.1/plugins/theme_hulk/data/keyframe.png differ diff --git a/cinelerra-5.1/plugins/theme_hulk/data/keyframe_dn.png b/cinelerra-5.1/plugins/theme_hulk/data/keyframe_dn.png new file mode 100755 index 00000000..56133254 Binary files /dev/null and b/cinelerra-5.1/plugins/theme_hulk/data/keyframe_dn.png differ diff --git a/cinelerra-5.1/plugins/theme_hulk/data/keyframe_hi.png b/cinelerra-5.1/plugins/theme_hulk/data/keyframe_hi.png new file mode 100755 index 00000000..1900d601 Binary files /dev/null and b/cinelerra-5.1/plugins/theme_hulk/data/keyframe_hi.png differ diff --git a/cinelerra-5.1/plugins/theme_hulk/data/keyframe_up.png b/cinelerra-5.1/plugins/theme_hulk/data/keyframe_up.png new file mode 100755 index 00000000..4718f505 Binary files /dev/null and b/cinelerra-5.1/plugins/theme_hulk/data/keyframe_up.png differ diff --git a/cinelerra-5.1/plugins/theme_hulk/hulktheme.C b/cinelerra-5.1/plugins/theme_hulk/hulktheme.C index cf0b6d2f..d7333981 100644 --- a/cinelerra-5.1/plugins/theme_hulk/hulktheme.C +++ b/cinelerra-5.1/plugins/theme_hulk/hulktheme.C @@ -289,6 +289,12 @@ void HULKTHEME::initialize() "unclear_dn.png", "unclear_button"); + new_button("keyframe.png", + "keyframe_up.png", + "keyframe_hi.png", + "keyframe_dn.png", + "keyframe_button"); + resources->cancel_images = new_button("cancel.png", "filebox_bigbutton_up.png", "filebox_bigbutton_hi.png", diff --git a/cinelerra-5.1/plugins/theme_neophyte/data/keyframe.png b/cinelerra-5.1/plugins/theme_neophyte/data/keyframe.png new file mode 100644 index 00000000..2848d98a Binary files /dev/null and b/cinelerra-5.1/plugins/theme_neophyte/data/keyframe.png differ diff --git a/cinelerra-5.1/plugins/theme_neophyte/data/keyframe_dn.png b/cinelerra-5.1/plugins/theme_neophyte/data/keyframe_dn.png new file mode 100755 index 00000000..a44d640d Binary files /dev/null and b/cinelerra-5.1/plugins/theme_neophyte/data/keyframe_dn.png differ diff --git a/cinelerra-5.1/plugins/theme_neophyte/data/keyframe_hi.png b/cinelerra-5.1/plugins/theme_neophyte/data/keyframe_hi.png new file mode 100755 index 00000000..a492077a Binary files /dev/null and b/cinelerra-5.1/plugins/theme_neophyte/data/keyframe_hi.png differ diff --git a/cinelerra-5.1/plugins/theme_neophyte/data/keyframe_up.png b/cinelerra-5.1/plugins/theme_neophyte/data/keyframe_up.png new file mode 100755 index 00000000..0d813739 Binary files /dev/null and b/cinelerra-5.1/plugins/theme_neophyte/data/keyframe_up.png differ diff --git a/cinelerra-5.1/plugins/theme_neophyte/neophyte.C b/cinelerra-5.1/plugins/theme_neophyte/neophyte.C index 987c761e..120fb1dd 100644 --- a/cinelerra-5.1/plugins/theme_neophyte/neophyte.C +++ b/cinelerra-5.1/plugins/theme_neophyte/neophyte.C @@ -367,6 +367,12 @@ void NEOPHYTETHEME::initialize() "unclear_hi.png", "unclear_dn.png", "unclear_button"); + new_button("keyframe.png", + "keyframe_up.png", + "keyframe_hi.png", + "keyframe_dn.png", + "keyframe_button"); + resources->cancel_images = new_button( "cancel.png", "filebox_bigbutton_up.png", diff --git a/cinelerra-5.1/plugins/theme_pinklady/data/keyframe.png b/cinelerra-5.1/plugins/theme_pinklady/data/keyframe.png index ea305d8f..7d73c7a6 100644 Binary files a/cinelerra-5.1/plugins/theme_pinklady/data/keyframe.png and b/cinelerra-5.1/plugins/theme_pinklady/data/keyframe.png differ diff --git a/cinelerra-5.1/plugins/theme_pinklady/data/keyframe_dn.png b/cinelerra-5.1/plugins/theme_pinklady/data/keyframe_dn.png new file mode 100755 index 00000000..cc903a87 Binary files /dev/null and b/cinelerra-5.1/plugins/theme_pinklady/data/keyframe_dn.png differ diff --git a/cinelerra-5.1/plugins/theme_pinklady/data/keyframe_hi.png b/cinelerra-5.1/plugins/theme_pinklady/data/keyframe_hi.png new file mode 100755 index 00000000..8c8ad37c Binary files /dev/null and b/cinelerra-5.1/plugins/theme_pinklady/data/keyframe_hi.png differ diff --git a/cinelerra-5.1/plugins/theme_pinklady/data/keyframe_up.png b/cinelerra-5.1/plugins/theme_pinklady/data/keyframe_up.png new file mode 100755 index 00000000..4ca5985a Binary files /dev/null and b/cinelerra-5.1/plugins/theme_pinklady/data/keyframe_up.png differ diff --git a/cinelerra-5.1/plugins/theme_pinklady/pinkladytheme.C b/cinelerra-5.1/plugins/theme_pinklady/pinkladytheme.C index d57d281f..d11aaa81 100644 --- a/cinelerra-5.1/plugins/theme_pinklady/pinkladytheme.C +++ b/cinelerra-5.1/plugins/theme_pinklady/pinkladytheme.C @@ -274,6 +274,12 @@ void PINKLADY::initialize() "unclear_dn.png", "unclear_button"); + new_button("keyframe.png", + "keyframe_up.png", + "keyframe_hi.png", + "keyframe_dn.png", + "keyframe_button"); + resources->cancel_images = new_button("cancel.png", "filebox_bigbutton_up.png", "filebox_bigbutton_hi.png", diff --git a/cinelerra-5.1/plugins/theme_suv/data/keyframe_dn.png b/cinelerra-5.1/plugins/theme_suv/data/keyframe_dn.png new file mode 100644 index 00000000..e85b995a Binary files /dev/null and b/cinelerra-5.1/plugins/theme_suv/data/keyframe_dn.png differ diff --git a/cinelerra-5.1/plugins/theme_suv/data/keyframe_hi.png b/cinelerra-5.1/plugins/theme_suv/data/keyframe_hi.png new file mode 100644 index 00000000..fa024c47 Binary files /dev/null and b/cinelerra-5.1/plugins/theme_suv/data/keyframe_hi.png differ diff --git a/cinelerra-5.1/plugins/theme_suv/data/keyframe_up.png b/cinelerra-5.1/plugins/theme_suv/data/keyframe_up.png new file mode 100644 index 00000000..0fcc7fe0 Binary files /dev/null and b/cinelerra-5.1/plugins/theme_suv/data/keyframe_up.png differ diff --git a/cinelerra-5.1/plugins/theme_suv/suv.C b/cinelerra-5.1/plugins/theme_suv/suv.C index a919c2f3..c5a04f6b 100644 --- a/cinelerra-5.1/plugins/theme_suv/suv.C +++ b/cinelerra-5.1/plugins/theme_suv/suv.C @@ -285,6 +285,12 @@ void SUV::initialize() "unclear_dn.png", "unclear_button"); + new_button("keyframe.png", + "keyframe_up.png", + "keyframe_hi.png", + "keyframe_dn.png", + "keyframe_button"); + resources->cancel_images = new_button("cancel.png", "filebox_bigbutton_up.png", "filebox_bigbutton_hi.png", diff --git a/cinelerra-5.1/plugins/theme_unflat/data/keyframe_dn.png b/cinelerra-5.1/plugins/theme_unflat/data/keyframe_dn.png new file mode 100755 index 00000000..b2e137c2 Binary files /dev/null and b/cinelerra-5.1/plugins/theme_unflat/data/keyframe_dn.png differ diff --git a/cinelerra-5.1/plugins/theme_unflat/data/keyframe_hi.png b/cinelerra-5.1/plugins/theme_unflat/data/keyframe_hi.png new file mode 100755 index 00000000..7f39bc6f Binary files /dev/null and b/cinelerra-5.1/plugins/theme_unflat/data/keyframe_hi.png differ diff --git a/cinelerra-5.1/plugins/theme_unflat/data/keyframe_up.png b/cinelerra-5.1/plugins/theme_unflat/data/keyframe_up.png new file mode 100755 index 00000000..dba89d9e Binary files /dev/null and b/cinelerra-5.1/plugins/theme_unflat/data/keyframe_up.png differ diff --git a/cinelerra-5.1/plugins/theme_unflat/unflattheme.C b/cinelerra-5.1/plugins/theme_unflat/unflattheme.C index 050b3a30..7c381fb3 100644 --- a/cinelerra-5.1/plugins/theme_unflat/unflattheme.C +++ b/cinelerra-5.1/plugins/theme_unflat/unflattheme.C @@ -283,6 +283,12 @@ void UNFLATTHEME::initialize() "unclear_dn.png", "unclear_button"); + new_button("keyframe.png", + "keyframe_up.png", + "keyframe_hi.png", + "keyframe_dn.png", + "keyframe_button"); + resources->cancel_images = new_button("cancel.png", "filebox_bigbutton_up.png", "filebox_bigbutton_hi.png", diff --git a/cinelerra-5.1/plugins/titler/titlerwindow.C b/cinelerra-5.1/plugins/titler/titlerwindow.C index 21cfdea2..ba93e199 100644 --- a/cinelerra-5.1/plugins/titler/titlerwindow.C +++ b/cinelerra-5.1/plugins/titler/titlerwindow.C @@ -490,8 +490,9 @@ void TitleWindow::send_configure_change() void TitleWindow::previous_font() { int current_font = font->get_number(); - current_font--; - if( current_font < 0 ) current_font = fonts.total - 1; + if( !fonts.total ) current_font = -1; + else if( --current_font < 0 ) current_font = fonts.total - 1; + font->set_number(current_font); if( current_font < 0 || current_font >= fonts.total ) return; @@ -508,8 +509,9 @@ void TitleWindow::previous_font() void TitleWindow::next_font() { int current_font = font->get_number(); - current_font++; - if( current_font >= fonts.total ) current_font = 0; + if( !fonts.total ) current_font = -1; + else if( ++current_font >= fonts.total ) current_font = 0; + font->set_number(current_font); if( current_font < 0 || current_font >= fonts.total ) return; @@ -940,6 +942,7 @@ void TitleWindow::check_style(const char *font_name, int update) int style = stroker && atof(stroker->get_text()) ? BC_FONT_OUTLINE : 0; if( bold->get_value() ) style |= BC_FONT_BOLD; if( italic->get_value() ) style |= BC_FONT_ITALIC; + if( alias->get_value() ) style |= FONT_ALIAS; client->config.style = style; } }