improved plugins with added Tumbler box and visible values
[goodguy/cinelerra.git] / cinelerra-5.1 / plugins / huesaturation / huesaturation.h
index f7e1b81424fce9830d1dbdbccdb2c140ebe609ae..5d2093f06b9b9e3dae7e34cf93b430804330e4a4 100644 (file)
 
 class HueEffect;
 class HueWindow;
+class HueText;
+class HueSlider;
+class SaturationText;
+class SaturationSlider;
+class ValueText;
+class ValueSlider;
 class HueReset;
+class HueClr;
 
 #define MINHUE -180
 #define MAXHUE 180
@@ -50,9 +57,10 @@ class HueReset;
 #define MINVALUE -100
 #define MAXVALUE 100
 
-
-
-
+#define RESET_ALL 0
+#define RESET_HUV 1
+#define RESET_SAT 2
+#define RESET_VAL 3
 
 
 class HueConfig
@@ -62,7 +70,7 @@ public:
 
        void copy_from(HueConfig &src);
        int equivalent(HueConfig &src);
-       void reset();
+       void reset(int clear);
        void interpolate(HueConfig &prev,
                HueConfig &next,
                long prev_frame,
@@ -71,31 +79,65 @@ public:
        float hue, saturation, value;
 };
 
+class HueText : public BC_TumbleTextBox
+{
+public:
+       HueText(HueEffect *plugin, HueWindow *gui, int x, int y);
+       ~HueText();
+       int handle_event();
+       HueEffect *plugin;
+       HueWindow *gui;
+};
+
 class HueSlider : public BC_FSlider
 {
 public:
-       HueSlider(HueEffect *plugin, int x, int y, int w);
+       HueSlider(HueEffect *plugin, HueWindow *gui, int x, int y, int w);
        int handle_event();
        HueEffect *plugin;
+       HueWindow *gui;
+};
+
+class SaturationText : public BC_TumbleTextBox
+{
+public:
+       SaturationText(HueEffect *plugin, HueWindow *gui, int x, int y);
+       ~SaturationText();
+       int handle_event();
+       HueEffect *plugin;
+       HueWindow *gui;
 };
 
 class SaturationSlider : public BC_FSlider
 {
 public:
-       SaturationSlider(HueEffect *plugin, int x, int y, int w);
+       SaturationSlider(HueEffect *plugin, HueWindow *gui, int x, int y, int w);
        int handle_event();
        char* get_caption();
        HueEffect *plugin;
+       HueWindow *gui;
        char string[BCTEXTLEN];
 };
 
+class ValueText : public BC_TumbleTextBox
+{
+public:
+       ValueText(HueEffect *plugin, HueWindow *gui, int x, int y);
+       ~ValueText();
+       int handle_event();
+       HueEffect *plugin;
+       HueWindow *gui;
+};
+
+
 class ValueSlider : public BC_FSlider
 {
 public:
-       ValueSlider(HueEffect *plugin, int x, int y, int w);
+       ValueSlider(HueEffect *plugin, HueWindow *gui, int x, int y, int w);
        int handle_event();
        char* get_caption();
        HueEffect *plugin;
+       HueWindow *gui;
        char string[BCTEXTLEN];
 };
 
@@ -109,16 +151,37 @@ public:
        HueWindow *gui;
 };
 
+class HueClr : public BC_Button
+{
+public:
+       HueClr(HueEffect *plugin, HueWindow *gui, int x, int y, int clear);
+       ~HueClr();
+       int handle_event();
+       HueEffect *plugin;
+       HueWindow *gui;
+       int clear;
+};
+
 class HueWindow : public PluginClientWindow
 {
 public:
        HueWindow(HueEffect *plugin);
        void create_objects();
-       void update();
+       void update_gui(int clear);
        HueEffect *plugin;
-       HueSlider *hue;
-       SaturationSlider *saturation;
-       ValueSlider *value;
+
+       HueText *hue_text;
+       HueSlider *hue_slider;
+       HueClr *hue_clr;
+
+       SaturationText *sat_text;
+       SaturationSlider *sat_slider;
+       HueClr *sat_clr;
+
+       ValueText *value_text;
+       ValueSlider *value_slider;
+       HueClr *value_clr;
+
        HueReset *reset;
 };