#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:
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;
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;
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