mixer
[goodguy/history.git] / cinelerra-5.1 / cinelerra / keyframepopup.h
index d774686b77fc503023fe398956472bbef23d4031..99220c94b5abfb4d197b3da938090ff623dbd224 100644 (file)
@@ -2,43 +2,40 @@
 /*
  * CINELERRA
  * Copyright (C) 2008 Adam Williams <broadcast at earthling dot net>
- * 
+ *
  * 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,74 @@ 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);
+       void update_edl();
+       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();
+
+       MWindow *mwindow;
+       PatchGUI *patch;
+       KeySpeedValue *key_speed_slider;
+};
+
+class KeySpeedValue : public BC_FSlider
+{
+public:
+       KeySpeedValue(KeySpeedPatch *key_speed_patch);
+       ~KeySpeedValue();
+
+       void update_edl();
+       int handle_event();
+       int button_release_event();
+
+       KeySpeedPatch *key_speed_patch;
+};
+
 #endif