mask tweaks, focus follows centroid, gradient/colorpicker rework, no hard edges in...
[goodguy/cinelerra.git] / cinelerra-5.1 / plugins / gradient / gradient.h
index f6d1d99450b1e8ebefe6cddc919caa851134102f..f49af423e0552d7b396714426f1c79369b336256 100644 (file)
@@ -152,56 +152,46 @@ public:
        GradientMain *plugin;
 };
 
        GradientMain *plugin;
 };
 
-class GradientInColorButton : public BC_GenericButton
+class GradientInColorButton : public ColorBoxButton
 {
 public:
 {
 public:
-       GradientInColorButton(GradientMain *plugin, GradientWindow *window, int x, int y);
-       int handle_event();
-       GradientMain *plugin;
-       GradientWindow *window;
-};
+       GradientInColorButton(GradientMain *plugin, GradientWindow *gui,
+               int x, int y, int color, int alpha);
+       ~GradientInColorButton();
 
 
+       int handle_new_color(int color, int alpha);
+       void handle_done_event(int result);
 
 
-class GradientOutColorButton : public BC_GenericButton
-{
-public:
-       GradientOutColorButton(GradientMain *plugin, GradientWindow *window, int x, int y);
-       int handle_event();
        GradientMain *plugin;
        GradientMain *plugin;
-       GradientWindow *window;
+       GradientWindow *gui;
+       VFrame *vframes[3];
 };
 
 };
 
-class GradientReset : public BC_GenericButton
+class GradientOutColorButton : public ColorBoxButton
 {
 public:
 {
 public:
-       GradientReset(GradientMain *plugin, GradientWindow *window, int x, int y);
-       int handle_event();
-       GradientMain *plugin;
-       GradientWindow *window;
-};
+       GradientOutColorButton(GradientMain *plugin, GradientWindow *gui,
+               int x, int y, int color, int alpha);
+       ~GradientOutColorButton();
 
 
+       int handle_new_color(int color, int alpha);
+       void handle_done_event(int result);
 
 
-class GradientInColorThread : public ColorPicker
-{
-public:
-       GradientInColorThread(GradientMain *plugin, GradientWindow *window);
-       virtual int handle_new_color(int output, int alpha);
        GradientMain *plugin;
        GradientMain *plugin;
-       GradientWindow *window;
+       GradientWindow *gui;
+       VFrame *vframes[3];
 };
 
 };
 
-
-class GradientOutColorThread : public ColorPicker
+class GradientReset : public BC_GenericButton
 {
 public:
 {
 public:
-       GradientOutColorThread(GradientMain *plugin, GradientWindow *window);
-       virtual int handle_new_color(int output, int alpha);
+       GradientReset(GradientMain *plugin, GradientWindow *window, int x, int y);
+       int handle_event();
        GradientMain *plugin;
        GradientWindow *window;
 };
 
 
        GradientMain *plugin;
        GradientWindow *window;
 };
 
 
-
 class GradientWindow : public PluginClientWindow
 {
 public:
 class GradientWindow : public PluginClientWindow
 {
 public:
@@ -209,8 +199,6 @@ public:
        ~GradientWindow();
 
        void create_objects();
        ~GradientWindow();
 
        void create_objects();
-       void update_in_color();
-       void update_out_color();
        void update_gui();
        void update_shape();
        void done_event(int result);
        void update_gui();
        void update_shape();
        void done_event(int result);
@@ -223,8 +211,6 @@ public:
        GradientInColorButton *in_color;
        GradientOutColorButton *out_color;
        GradientReset *reset;
        GradientInColorButton *in_color;
        GradientOutColorButton *out_color;
        GradientReset *reset;
-       GradientInColorThread *in_color_thread;
-       GradientOutColorThread *out_color_thread;
        GradientShape *shape;
        BC_Title *shape_title;
        GradientCenterX *center_x;
        GradientShape *shape;
        BC_Title *shape_title;
        GradientCenterX *center_x;
@@ -232,17 +218,10 @@ public:
        BC_Title *center_y_title;
        GradientCenterY *center_y;
        GradientRate *rate;
        BC_Title *center_y_title;
        GradientCenterY *center_y;
        GradientRate *rate;
-       int in_color_x, in_color_y;
-       int out_color_x, out_color_y;
        int shape_x, shape_y;
 };
 
 
        int shape_x, shape_y;
 };
 
 
-
-
-
-
-
 class GradientMain : public PluginVClient
 {
 public:
 class GradientMain : public PluginVClient
 {
 public:
@@ -267,6 +246,9 @@ public:
        VFrame *gradient;
        VFrame *input, *output;
        GradientServer *engine;
        VFrame *gradient;
        VFrame *input, *output;
        GradientServer *engine;
+       float gradient_size;
+       uint8_t *table;
+       int table_size;
 };
 
 class GradientPackage : public LoadPackage
 };
 
 class GradientPackage : public LoadPackage