00001 #ifndef VPATCHGUI_H
00002 #define VPATCHGUI_H
00003
00004 #include "floatauto.inc"
00005 #include "guicast.h"
00006 #include "patchgui.h"
00007 #include "vpatchgui.inc"
00008 #include "vtrack.inc"
00009
00010 class VFadePatch;
00011 class VModePatch;
00012
00013 class VPatchGUI : public PatchGUI
00014 {
00015 public:
00016 VPatchGUI(MWindow *mwindow,
00017 PatchBay *patchbay,
00018 VTrack *track,
00019 int x,
00020 int y);
00021 ~VPatchGUI();
00022
00023 int create_objects();
00024 int reposition(int x, int y);
00025 int update(int x, int y);
00026 void synchronize_fade(float value_change);
00027
00028 VTrack *vtrack;
00029 VModePatch *mode;
00030 VFadePatch *fade;
00031 };
00032
00033 class VFadePatch : public BC_ISlider
00034 {
00035 public:
00036 VFadePatch(MWindow *mwindow, VPatchGUI *patch, int x, int y, int w);
00037 int handle_event();
00038 float update_edl();
00039 static FloatAuto* get_keyframe(MWindow *mwindow, VPatchGUI *patch);
00040 MWindow *mwindow;
00041 VPatchGUI *patch;
00042 };
00043
00044 class VModePatch : public BC_PopupMenu
00045 {
00046 public:
00047 VModePatch(MWindow *mwindow, VPatchGUI *patch, int x, int y);
00048
00049 int handle_event();
00050 int create_objects();
00051 static char* mode_to_text(int mode);
00052 static IntAuto* get_keyframe(MWindow *mwindow, VPatchGUI *patch);
00053 void update(int mode);
00054
00055 MWindow *mwindow;
00056 VPatchGUI *patch;
00057 int mode;
00058 };
00059
00060 class VModePatchItem : public BC_MenuItem
00061 {
00062 public:
00063 VModePatchItem(VModePatch *popup, char *text, int mode);
00064
00065 int handle_event();
00066 VModePatch *popup;
00067 int mode;
00068 };
00069
00070
00071 #endif