Credit SGE conversion of Adam-s plugins ChromakeyAvid/Color Swatch + updated ContextM...
[goodguy/cinelerra.git] / cinelerra-5.1 / plugins / linearblur / linearblur.h
index b0dfc7ed64b091209363c612a92519a99ab8d1ef..5180ec65f65d8a2c19efb07dd6bf5d8d1db1f087 100644 (file)
 #include "pluginvclient.h"
 #include "vframe.h"
 
-
+#define RESET_DEFAULT_SETTINGS 10
+#define RESET_ALL    0
+#define RESET_RADIUS 1
+#define RESET_ANGLE  2
+#define RESET_STEPS  3
+
+#define RADIUS_MIN   0
+#define RADIUS_MAX 100
+#define ANGLE_MAX  180
+#define STEPS_MIN    1
+#define STEPS_MAX  200
 
 class LinearBlurMain;
 class LinearBlurWindow;
 class LinearBlurEngine;
+class LinearBlurIText;
+class LinearBlurISlider;
+class LinearBlurToggle;
 class LinearBlurReset;
-
+class LinearBlurDefaultSettings;
+class LinearBlurClr;
 
 
 
@@ -52,7 +66,7 @@ class LinearBlurConfig
 public:
        LinearBlurConfig();
 
-       void reset();
+       void reset(int clear);
        int equivalent(LinearBlurConfig &that);
        void copy_from(LinearBlurConfig &that);
        void interpolate(LinearBlurConfig &prev,
@@ -86,6 +100,33 @@ public:
        int *output;
 };
 
+class LinearBlurIText : public BC_TumbleTextBox
+{
+public:
+       LinearBlurIText(LinearBlurWindow *gui, LinearBlurMain *plugin,
+               LinearBlurISlider *slider, int *output, int x, int y, int min, int max);
+       ~LinearBlurIText();
+       int handle_event();
+       LinearBlurWindow *gui;
+       LinearBlurMain *plugin;
+       LinearBlurISlider *slider;
+       int *output;
+       int min, max;
+};
+
+class LinearBlurISlider : public BC_ISlider
+{
+public:
+       LinearBlurISlider(LinearBlurMain *plugin,
+               LinearBlurIText *text, int *output, int x, int y,
+               int min, int max, int w);
+       ~LinearBlurISlider();
+       int handle_event();
+       LinearBlurMain *plugin;
+       LinearBlurIText *text;
+       int *output;
+};
+
 class LinearBlurToggle : public BC_CheckBox
 {
 public:
@@ -109,6 +150,27 @@ public:
        LinearBlurWindow *gui;
 };
 
+class LinearBlurDefaultSettings : public BC_GenericButton
+{
+public:
+       LinearBlurDefaultSettings(LinearBlurMain *plugin, LinearBlurWindow *gui, int x, int y, int w);
+       ~LinearBlurDefaultSettings();
+       int handle_event();
+       LinearBlurMain *plugin;
+       LinearBlurWindow *gui;
+};
+
+class LinearBlurClr : public BC_Button
+{
+public:
+       LinearBlurClr(LinearBlurMain *plugin, LinearBlurWindow *gui, int x, int y, int clear);
+       ~LinearBlurClr();
+       int handle_event();
+       LinearBlurMain *plugin;
+       LinearBlurWindow *gui;
+       int clear;
+};
+
 class LinearBlurWindow : public PluginClientWindow
 {
 public:
@@ -116,12 +178,24 @@ public:
        ~LinearBlurWindow();
 
        void create_objects();
-       void update();
+       void update_gui(int clear);
+
+       LinearBlurIText *radius_text;
+       LinearBlurISlider *radius_slider;
+       LinearBlurClr *radius_Clr;
+
+       LinearBlurIText *angle_text;
+       LinearBlurISlider *angle_slider;
+       LinearBlurClr *angle_Clr;
+
+       LinearBlurIText *steps_text;
+       LinearBlurISlider *steps_slider;
+       LinearBlurClr *steps_Clr;
 
-       LinearBlurSize *angle, *steps, *radius;
        LinearBlurToggle *r, *g, *b, *a;
        LinearBlurMain *plugin;
        LinearBlurReset *reset;
+       LinearBlurDefaultSettings *default_settings;
 };