Anonymous Contribution of new Mirror plugin
[goodguy/cinelerra.git] / cinelerra-5.1 / plugins / radialblur / radialblur.h
index d16facf8bf5b700f06a893cfc197902d6edf3c6a..11b1c183e62e40eb5ade8961f361bc8a29f6c0ef 100644 (file)
 #include "language.h"
 #include "loadbalance.h"
 #include "pluginvclient.h"
+#include "theme.h"
 #include "vframe.h"
 
+#define RESET_DEFAULT_SETTINGS 10
+#define RESET_ALL     0
+#define RESET_XSLIDER 1
+#define RESET_YSLIDER 2
+#define RESET_ANGLE   3
+#define RESET_STEPS   4
+
+#define XY_MIN      0
+#define XY_MAX    100
+#define ANGLE_MIN   0
+#define ANGLE_MAX 360
+#define STEPS_MIN   1
+#define STEPS_MAX 100
 
 class RadialBlurMain;
 class RadialBlurWindow;
 class RadialBlurEngine;
+class RadialBlurIText;
+class RadialBlurISlider;
+class RadialBlurToggle;
 class RadialBlurReset;
+class RadialBlurDefaultSettings;
+class RadialBlurClr;
 
 
 
@@ -53,7 +72,7 @@ class RadialBlurConfig
 public:
        RadialBlurConfig();
 
-       void reset();
+       void reset(int clear);
        int equivalent(RadialBlurConfig &that);
        void copy_from(RadialBlurConfig &that);
        void interpolate(RadialBlurConfig &prev,
@@ -73,18 +92,30 @@ public:
 };
 
 
+class RadialBlurIText : public BC_TumbleTextBox
+{
+public:
+       RadialBlurIText(RadialBlurWindow *gui, RadialBlurMain *plugin,
+               RadialBlurISlider *slider, int *output, int x, int y, int min, int max);
+       ~RadialBlurIText();
+       int handle_event();
+       RadialBlurWindow *gui;
+       RadialBlurMain *plugin;
+       RadialBlurISlider *slider;
+       int *output;
+       int min, max;
+};
 
-class RadialBlurSize : public BC_ISlider
+class RadialBlurISlider : public BC_ISlider
 {
 public:
-       RadialBlurSize(RadialBlurMain *plugin,
-               int x,
-               int y,
-               int *output,
-               int min,
-               int max);
+       RadialBlurISlider(RadialBlurMain *plugin,
+               RadialBlurIText *text, int *output, int x, int y,
+               int min, int max, int w);
+       ~RadialBlurISlider();
        int handle_event();
        RadialBlurMain *plugin;
+       RadialBlurIText *text;
        int *output;
 };
 
@@ -111,6 +142,27 @@ public:
        RadialBlurWindow *gui;
 };
 
+class RadialBlurDefaultSettings : public BC_GenericButton
+{
+public:
+       RadialBlurDefaultSettings(RadialBlurMain *plugin, RadialBlurWindow *gui, int x, int y, int w);
+       ~RadialBlurDefaultSettings();
+       int handle_event();
+       RadialBlurMain *plugin;
+       RadialBlurWindow *gui;
+};
+
+class RadialBlurClr : public BC_Button
+{
+public:
+       RadialBlurClr(RadialBlurMain *plugin, RadialBlurWindow *gui, int x, int y, int clear);
+       ~RadialBlurClr();
+       int handle_event();
+       RadialBlurMain *plugin;
+       RadialBlurWindow *gui;
+       int clear;
+};
+
 class RadialBlurWindow : public PluginClientWindow
 {
 public:
@@ -118,12 +170,29 @@ public:
        ~RadialBlurWindow();
 
        void create_objects();
-       void update();
+       void update_gui(int clear);
+
+
+       RadialBlurIText *x_text;
+       RadialBlurISlider *x_slider;
+       RadialBlurClr *x_Clr;
+
+       RadialBlurIText *y_text;
+       RadialBlurISlider *y_slider;
+       RadialBlurClr *y_Clr;
+
+       RadialBlurIText *angle_text;
+       RadialBlurISlider *angle_slider;
+       RadialBlurClr *angle_Clr;
+
+       RadialBlurIText *steps_text;
+       RadialBlurISlider *steps_slider;
+       RadialBlurClr *steps_Clr;
 
-       RadialBlurSize *x, *y, *steps, *angle;
        RadialBlurToggle *r, *g, *b, *a;
        RadialBlurMain *plugin;
        RadialBlurReset *reset;
+       RadialBlurDefaultSettings *default_settings;
 };