X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fplugins%2Foilpainting%2Foil.C;h=0e2c039dda68cdf1d3a72d195d23b569469c50b0;hb=1529091cdf16df199a901aabe6e8fa1813a933af;hp=9dbe1e241b4ec089f7c5e5b20a69ac7c065223f7;hpb=7fd85fb66168f6b518c5f2d73e04036e87faa0e1;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/plugins/oilpainting/oil.C b/cinelerra-5.1/plugins/oilpainting/oil.C index 9dbe1e24..0e2c039d 100644 --- a/cinelerra-5.1/plugins/oilpainting/oil.C +++ b/cinelerra-5.1/plugins/oilpainting/oil.C @@ -44,13 +44,16 @@ class OilEffect; - +class OilWindow; +class OilReset; class OilConfig { public: OilConfig(); + void reset(); + void copy_from(OilConfig &src); int equivalent(OilConfig &src); void interpolate(OilConfig &prev, @@ -79,16 +82,28 @@ public: OilEffect *plugin; }; +class OilReset : public BC_GenericButton +{ +public: + OilReset(OilEffect *plugin, OilWindow *window, int x, int y); + ~OilReset(); + int handle_event(); + OilEffect *plugin; + OilWindow *window; +}; + + class OilWindow : public PluginClientWindow { public: OilWindow(OilEffect *plugin); ~OilWindow(); void create_objects(); - + void update(); OilEffect *plugin; OilRadius *radius; OilIntensity *intensity; + OilReset *reset; }; @@ -159,9 +174,12 @@ public: - - OilConfig::OilConfig() +{ + reset(); +} + +void OilConfig::reset() { radius = 5; use_intensity = 0; @@ -208,8 +226,8 @@ OilRadius::OilRadius(OilEffect *plugin, int x, int y) : BC_FSlider(x, y, 0, - 200, - 200, + xS(200), + yS(200), (float)0, (float)30, plugin->config.radius) @@ -242,6 +260,22 @@ int OilIntensity::handle_event() } +OilReset::OilReset(OilEffect *plugin, OilWindow *window, int x, int y) + : BC_GenericButton(x, y, _("Reset")) +{ + this->plugin = plugin; + this->window = window; +} +OilReset::~OilReset() +{ +} +int OilReset::handle_event() +{ + plugin->config.reset(); + window->update(); + plugin->send_configure_change(); + return 1; +} @@ -249,10 +283,10 @@ int OilIntensity::handle_event() OilWindow::OilWindow(OilEffect *plugin) : PluginClientWindow(plugin, - 300, - 160, - 300, - 160, + xS(300), + yS(120), + xS(300), + yS(120), 0) { this->plugin = plugin; @@ -264,18 +298,27 @@ OilWindow::~OilWindow() void OilWindow::create_objects() { - int x = 10, y = 10; + int xs10 = xS(10), xs70 = xS(70); + int ys10 = yS(10), ys40 = yS(40); + int x = xs10, y = ys10; add_subwindow(new BC_Title(x, y, _("Radius:"))); - add_subwindow(radius = new OilRadius(plugin, x + 70, y)); - y += 40; + add_subwindow(radius = new OilRadius(plugin, x + xs70, y)); + y += ys40; add_subwindow(intensity = new OilIntensity(plugin, x, y)); + y += ys40; + add_subwindow(reset = new OilReset(plugin, this, x, y)); show_window(); flush(); } - +// for Reset button +void OilWindow::update() +{ + radius->update(plugin->config.radius); + intensity->update(plugin->config.use_intensity); +}