X-Git-Url: http://git.cinelerra-gg.org/git/?p=goodguy%2Fhistory.git;a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fkeyframepopup.h;h=22d014af6d538becd704dfcc0f70f4b37e19e657;hp=d774686b77fc503023fe398956472bbef23d4031;hb=702161ddaf384a773831f1643fca0a54133625b2;hpb=30bdb85eb33a8ee7ba675038a86c6be59c43d7bd diff --git a/cinelerra-5.1/cinelerra/keyframepopup.h b/cinelerra-5.1/cinelerra/keyframepopup.h index d774686b..22d014af 100644 --- a/cinelerra-5.1/cinelerra/keyframepopup.h +++ b/cinelerra-5.1/cinelerra/keyframepopup.h @@ -2,43 +2,40 @@ /* * CINELERRA * Copyright (C) 2008 Adam Williams - * + * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. - * + * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * + * */ #ifndef KEYFRAMEPOPUP_H #define KEYFRAMEPOPUP_H +#include "apatchgui.h" #include "guicast.h" #include "mwindow.inc" #include "mwindowgui.inc" +#include "patchgui.inc" #include "plugin.inc" #include "plugindialog.inc" #include "keyframe.inc" -#include "automation.h" +#include "keyframepopup.inc" +#include "automation.h" #include "floatauto.h" -class KeyframePopupDelete; -class KeyframePopupShow; -class KeyframePopupCopy; -class KeyframePopupCurveMode; -class KeyframePopupEdit; - - + class KeyframePopup : public BC_PopupMenu { public: @@ -52,15 +49,16 @@ public: MWindow *mwindow; MWindowGUI *gui; // Acquired through the update command as the plugin currently being operated on - + Plugin *keyframe_plugin; Autos *keyframe_autos; Automation *keyframe_automation; Auto *keyframe_auto; BC_MenuItem *key_mbar; -private: +private: KeyframePopupDelete *key_delete; + KeyframePopupHide *key_hide; KeyframePopupShow *key_show; KeyframePopupCopy *key_copy; KeyframePopupEdit *key_edit; @@ -68,6 +66,7 @@ private: KeyframePopupCurveMode *key_linear; KeyframePopupCurveMode *key_free_t; KeyframePopupCurveMode *key_free; + bool key_edit_displayed; bool key_mode_displayed; void handle_curve_mode(Autos *autos, Auto *auto_keyframe); @@ -79,7 +78,18 @@ public: KeyframePopupDelete(MWindow *mwindow, KeyframePopup *popup); ~KeyframePopupDelete(); int handle_event(); - + + MWindow *mwindow; + KeyframePopup *popup; +}; + +class KeyframePopupHide : public BC_MenuItem +{ +public: + KeyframePopupHide(MWindow *mwindow, KeyframePopup *popup); + ~KeyframePopupHide(); + int handle_event(); + MWindow *mwindow; KeyframePopup *popup; }; @@ -90,7 +100,7 @@ public: KeyframePopupShow(MWindow *mwindow, KeyframePopup *popup); ~KeyframePopupShow(); int handle_event(); - + MWindow *mwindow; KeyframePopup *popup; }; @@ -101,7 +111,7 @@ public: KeyframePopupCopy(MWindow *mwindow, KeyframePopup *popup); ~KeyframePopupCopy(); int handle_event(); - + MWindow *mwindow; KeyframePopup *popup; }; @@ -119,11 +129,11 @@ private: int curve_mode; const char* get_labeltext(int); void toggle_mode(FloatAuto*); - + friend class KeyframePopup; }; - + class KeyframePopupEdit : public BC_MenuItem { public: @@ -134,4 +144,96 @@ public: KeyframePopup *popup; }; +class KeyframeHidePopup : public BC_PopupMenu +{ +public: + KeyframeHidePopup(MWindow *mwindow, MWindowGUI *gui); + ~KeyframeHidePopup(); + + void create_objects(); + int update(Autos *autos); + + MWindow *mwindow; + MWindowGUI *gui; + Autos *keyframe_autos; +}; + +class KeyframeHideItem : public BC_MenuItem +{ +public: + KeyframeHideItem(MWindow *mwindow, KeyframeHidePopup *popup); + int handle_event(); + + MWindow *mwindow; + KeyframeHidePopup *popup; +}; + +class KeyMutePatch : public BC_SubWindow +{ +public: + KeyMutePatch(MWindow *mwindow, PatchGUI *patch, int x, int y); + void create_objects(); + + MWindow *mwindow; + PatchGUI *patch; + KeyMuteValue *key_mute_checkbox; +}; + +class KeyMuteValue : public BC_CheckBox +{ +public: + KeyMuteValue(KeyMutePatch *key_mute_patch); + int button_release_event(); + int handle_event(); + + KeyMutePatch *key_mute_patch; +}; + +class KeySpeedPatch : public BC_SubWindow +{ +public: + KeySpeedPatch(MWindow *mwindow, PatchGUI *patch, int x, int y); + void create_objects(); + void update(float v); + void update_speed(float v); + int cursor_enter_event(); + int cursor_leave_event(); + + MWindow *mwindow; + PatchGUI *patch; + KeySpeedSlider *key_speed_slider; + KeySpeedText *key_speed_text; + KeySpeedOK *key_speed_ok; +}; + +class KeySpeedOK : public BC_Button +{ +public: + KeySpeedOK(KeySpeedPatch *key_speed_patch, int x, int y, VFrame **images); + int handle_event(); + + KeySpeedPatch *key_speed_patch; +}; + +class KeySpeedText : public BC_TextBox +{ +public: + KeySpeedText(KeySpeedPatch *key_speed_patch, int x, int y, int w, float v); + int handle_event(); + + KeySpeedPatch *key_speed_patch; +}; + +class KeySpeedSlider : public BC_FSlider +{ +public: + KeySpeedSlider(KeySpeedPatch *key_speed_patch, + int x, int y, int w, float v); + ~KeySpeedSlider(); + + int handle_event(); + + KeySpeedPatch *key_speed_patch; +}; + #endif