improved Blur plugin
[goodguy/cinelerra.git] / cinelerra-5.1 / plugins / blur / blurwindow.h
index 03dc14d902bf025848f1af4fd1445074c7a36455..e2f9180b4087a6b73cf8986706af539486f11655 100644 (file)
@@ -31,17 +31,22 @@ class BlurWindow;
 #include "guicast.h"
 #include "mutex.h"
 #include "thread.h"
+#include "theme.h"
 
+#define RESET_ALL 0
+#define RESET_RADIUS 1
 
 class BlurVertical;
 class BlurHorizontal;
-class BlurRadius;
+class BlurRadiusSlider;
 class BlurRadiusText;
+class BlurRadiusClr;
 class BlurA;
 class BlurR;
 class BlurG;
 class BlurB;
 class BlurAKey;
+class BlurReset;
 
 class BlurWindow : public PluginClientWindow
 {
@@ -50,17 +55,20 @@ public:
        ~BlurWindow();
 
        void create_objects();
+       void update(int clear);
 
        BlurMain *client;
        BlurVertical *vertical;
        BlurHorizontal *horizontal;
-       BlurRadius *radius;
+       BlurRadiusSlider *radius_slider;
        BlurRadiusText *radius_text;
+       BlurRadiusClr *radius_Clr;
        BlurA *a;
        BlurR *r;
        BlurG *g;
        BlurB *b;
        BlurAKey *a_key;
+       BlurReset *reset;
 };
 
 class BlurAKey : public BC_CheckBox
@@ -101,20 +109,21 @@ public:
 };
 
 
-class BlurRadius : public BC_IPot
+class BlurRadiusSlider : public BC_ISlider
 {
 public:
-       BlurRadius(BlurMain *client, BlurWindow *gui, int x, int y);
-       ~BlurRadius();
+       BlurRadiusSlider(BlurMain *client, BlurWindow *gui, int x, int y, int w);
+       ~BlurRadiusSlider();
        int handle_event();
        BlurMain *client;
        BlurWindow *gui;
 };
 
-class BlurRadiusText : public BC_TextBox
+class BlurRadiusText : public BC_TumbleTextBox
 {
 public:
-       BlurRadiusText(BlurMain *client, BlurWindow *gui, int x, int y, int w);
+       BlurRadiusText(BlurMain *client, BlurWindow *gui, int x, int y);
+       ~BlurRadiusText();
        int handle_event();
        BlurMain *client;
        BlurWindow *gui;
@@ -142,5 +151,25 @@ public:
        BlurWindow *window;
 };
 
+class BlurReset : public BC_GenericButton
+{
+public:
+       BlurReset(BlurMain *client, BlurWindow *window, int x, int y);
+       ~BlurReset();
+       int handle_event();
+       BlurMain *client;
+       BlurWindow *window;
+};
+
+class BlurRadiusClr : public BC_Button
+{
+public:
+       BlurRadiusClr(BlurMain *client, BlurWindow *gui, int x, int y);
+       ~BlurRadiusClr();
+       int handle_event();
+       BlurMain *client;
+       BlurWindow *gui;
+};
+
 
 #endif