color coded keyframe curves, keyframe popups, cwin scrollbar fixes
[goodguy/history.git] / cinelerra-5.1 / cinelerra / keyframepopup.h
index d774686b77fc503023fe398956472bbef23d4031..2b23f7756e5c382963ec7efaa838e2eb7f5a4e1d 100644 (file)
 #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 "keyframepopup.inc"
 #include "automation.h" 
 #include "floatauto.h"
 
 
-class KeyframePopupDelete;
-class KeyframePopupShow;
-class KeyframePopupCopy;
-class KeyframePopupCurveMode;
-class KeyframePopupEdit;
  
 class KeyframePopup : public BC_PopupMenu
 {
@@ -61,6 +58,7 @@ public:
 
 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,6 +78,17 @@ 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;
@@ -89,6 +99,7 @@ class KeyframePopupShow : public BC_MenuItem
 public:
        KeyframePopupShow(MWindow *mwindow, KeyframePopup *popup);
        ~KeyframePopupShow();
+       PatchGUI *get_patchgui(Track *track);
        int handle_event();
        
        MWindow *mwindow;
@@ -134,4 +145,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