add layout_scale preference, scaling cleanup, rework init bc_resources, init tip_info...
[goodguy/cinelerra.git] / cinelerra-5.1 / plugins / blur / blurwindow.C
index 342d115a7dc40c60c0489fbe90dd078d6f055292..44ba304eff827fd552bbf6e4eea8e556e8257acb 100644 (file)
 
 BlurWindow::BlurWindow(BlurMain *client)
  : PluginClientWindow(client,
-       200,
-       330,
-       200,
-       330,
+       xS(210),
+       yS(360),
+       xS(210),
+       yS(360),
        0)
 {
        this->client = client;
@@ -47,34 +47,53 @@ BlurWindow::~BlurWindow()
 
 void BlurWindow::create_objects()
 {
-       int x = 10, y = 10;
+       int xs10 = xS(10);
+       int ys10 = yS(10), ys20 = yS(20), ys30 = yS(30), ys35 = yS(35), ys40 = yS(40);
+       int x = xs10, y = ys10;
        BC_Title *title;
 
        add_subwindow(new BC_Title(x, y, _("Blur")));
-       y += 20;
+       y += ys20;
        add_subwindow(horizontal = new BlurHorizontal(client, this, x, y));
-       y += 30;
+       y += ys30;
        add_subwindow(vertical = new BlurVertical(client, this, x, y));
-       y += 35;
+       y += ys35;
        add_subwindow(title = new BC_Title(x, y, _("Radius:")));
-       y += title->get_h() + 10;
+       y += title->get_h() + ys10;
        add_subwindow(radius = new BlurRadius(client, this, x, y));
-       add_subwindow(radius_text = new BlurRadiusText(client, this, x + radius->get_w() + 10, y, 100));
-       y += radius->get_h() + 10;
+       add_subwindow(radius_text = new BlurRadiusText(client, this, x + radius->get_w() + xs10, y, 100));
+       y += radius->get_h() + ys10;
        add_subwindow(a_key = new BlurAKey(client, x, y));
-       y += 30;
+       y += ys30;
        add_subwindow(a = new BlurA(client, x, y));
-       y += 30;
+       y += ys30;
        add_subwindow(r = new BlurR(client, x, y));
-       y += 30;
+       y += ys30;
        add_subwindow(g = new BlurG(client, x, y));
-       y += 30;
+       y += ys30;
        add_subwindow(b = new BlurB(client, x, y));
+       y += ys40;
+       add_subwindow(reset = new BlurReset(client, this, x, y));
 
        show_window();
        flush();
 }
 
+// for Reset button
+void BlurWindow::update()
+{
+       horizontal->update(client->config.horizontal);
+       vertical->update(client->config.vertical);
+       radius->update(client->config.radius);
+       radius_text->update((int64_t)client->config.radius);
+       a_key->update(client->config.a_key);
+       a->update(client->config.a);
+       r->update(client->config.r);
+       g->update(client->config.g);
+       b->update(client->config.b);
+}
+
+
 BlurRadius::BlurRadius(BlurMain *client, BlurWindow *gui, int x, int y)
  : BC_IPot(x,
        y,
@@ -225,4 +244,19 @@ int BlurB::handle_event()
        return 1;
 }
 
-
+BlurReset::BlurReset(BlurMain *client, BlurWindow *window, int x, int y)
+ : BC_GenericButton(x, y, _("Reset"))
+{
+       this->client = client;
+       this->window = window;
+}
+BlurReset::~BlurReset()
+{
+}
+int BlurReset::handle_event()
+{
+       client->config.reset();
+       window->update();
+       client->send_configure_change();
+       return 1;
+}