splashgui text clr, faders/speed keyframe popup slider rework, reticle rework
[goodguy/history.git] / cinelerra-5.1 / cinelerra / vpatchgui.h
index 4d791e89f7ab05e426e50a786761e54f40d88bf8..76140a41d9b124fca90044a219107c87b5ba8f59 100644 (file)
 #ifndef VPATCHGUI_H
 #define VPATCHGUI_H
 
+#include "bcmenuitem.h"
+#include "bcmenupopup.h"
 #include "floatauto.inc"
 #include "guicast.h"
 #include "patchgui.h"
 #include "vpatchgui.inc"
 #include "vtrack.inc"
 
-class VFadePatch;
-class VModePatch;
-
 class VPatchGUI : public PatchGUI
 {
 public:
@@ -44,7 +43,7 @@ public:
        void create_objects();
        int reposition(int x, int y);
        int update(int x, int y);
-       void synchronize_fade(float value_change);
+       void update_faders(float v);
 
        VTrack *vtrack;
        VModePatch *mode;
@@ -54,23 +53,61 @@ public:
 class VFadePatch : public BC_ISlider
 {
 public:
-       VFadePatch(MWindow *mwindow, VPatchGUI *patch, int x, int y, int w);
+       VFadePatch(VPatchGUI *patch, int x, int y, int w, int64_t v);
        int handle_event();
-       float update_edl();
-       static FloatAuto* get_keyframe(MWindow *mwindow, VPatchGUI *patch);
+       VPatchGUI *patch;
+};
+
+class VKeyFadePatch : public BC_SubWindow
+{
+public:
+       VKeyFadePatch(MWindow *mwindow, VPatchGUI *patch, int x, int y);
+       void create_objects();
+       void update(int64_t v);
+
        MWindow *mwindow;
        VPatchGUI *patch;
+       VKeyFadeOK *vkey_fade_ok;
+       VKeyFadeText *vkey_fade_text;
+       VKeyFadeSlider *vkey_fade_slider;
+};
+
+class VKeyFadeOK : public BC_Button
+{
+public:
+       VKeyFadeOK(VKeyFadePatch *vkey_fade_patch, int x, int y, VFrame **images);
+       int handle_event();
+
+       VKeyFadePatch *vkey_fade_patch;
+};
+
+class VKeyFadeText : public BC_TextBox
+{
+public:
+       VKeyFadeText(VKeyFadePatch *vkey_fade_patch, int x, int y, int w, int64_t v);
+       int handle_event();
+
+       VKeyFadePatch *vkey_fade_patch;
+};
+
+class VKeyFadeSlider : public VFadePatch
+{
+public:
+       VKeyFadeSlider(VKeyFadePatch *akey_fade_patch, int x, int y, int w, int64_t v);
+       int handle_event();
+
+       VKeyFadePatch *vkey_fade_patch;
 };
 
 class VModePatch : public BC_PopupMenu
 {
 public:
        VModePatch(MWindow *mwindow, VPatchGUI *patch, int x, int y);
+       VModePatch(MWindow *mwindow, VPatchGUI *patch);
 
        int handle_event();
        void create_objects();         // add initial items
        static const char* mode_to_text(int mode);
-       static IntAuto* get_keyframe(MWindow *mwindow, VPatchGUI *patch);
        void update(int mode);
 
        MWindow *mwindow;
@@ -88,5 +125,38 @@ public:
        int mode;
 };
 
+class VModePatchSubMenu : public BC_SubMenu
+{
+public:
+       VModePatchSubMenu(VModePatchItem *mode_item);
+       ~VModePatchSubMenu();
+
+       VModePatchItem *mode_item;
+};
+
+class VModeSubMenuItem : public BC_MenuItem
+{
+public:
+       VModeSubMenuItem(VModePatchSubMenu *submenu, const char *text, int mode);
+       ~VModeSubMenuItem();
+
+       int handle_event();
+       VModePatchSubMenu *submenu;
+       int mode;
+};
+
+class VKeyModePatch : public VModePatch
+{
+public:
+       VKeyModePatch(MWindow *mwindow, VPatchGUI *patch);
+       int handle_event();
+};
+
+class VMixPatch : public MixPatch
+{
+public:
+       VMixPatch(MWindow *mwindow, VPatchGUI *patch, int x, int y);
+       ~VMixPatch();
+};
 
 #endif