X-Git-Url: https://git.cinelerra-gg.org/git/?p=goodguy%2Fcinelerra.git;a=blobdiff_plain;f=cinelerra-5.1%2Fplugins%2Funsharp%2Funsharpwindow.C;h=495eb82a082f2be35253c5abd76b425cafb709f0;hp=8839464a0dc5454109745eee8eec9893f9231bc4;hb=128492e56ad719c2173a56379f423f6791f14906;hpb=54cc56bff09f5004b2a6cd454375f06e56acf5a0 diff --git a/cinelerra-5.1/plugins/unsharp/unsharpwindow.C b/cinelerra-5.1/plugins/unsharp/unsharpwindow.C index 8839464a..495eb82a 100644 --- a/cinelerra-5.1/plugins/unsharp/unsharpwindow.C +++ b/cinelerra-5.1/plugins/unsharp/unsharpwindow.C @@ -21,20 +21,13 @@ #include "bcdisplayinfo.h" #include "language.h" +#include "theme.h" #include "unsharp.h" #include "unsharpwindow.h" - - - - - - - - UnsharpWindow::UnsharpWindow(UnsharpMain *plugin) - : PluginClientWindow(plugin, 285, 170, 285, 170, 0) + : PluginClientWindow(plugin, xS(285), yS(170), xS(285), yS(170), 0) { this->plugin = plugin; } @@ -45,33 +38,55 @@ UnsharpWindow::~UnsharpWindow() void UnsharpWindow::create_objects() { - int x = 10, y = 10, x1 = 90; + int xs10 = xS(10), xs50 = xS(50), xs90 = xS(90), xs100 = xS(100); + int ys10 = yS(10), ys40 = yS(40), ys50 = yS(50); + int x = xs10, y = ys10, x1 = xs90; + int x2 = 0; int clrBtn_w = xs50; + int defaultBtn_w = xs100; BC_Title *title; - add_subwindow(title = new BC_Title(x, y + 10, _("Radius:"))); + add_subwindow(title = new BC_Title(x, y + ys10, _("Radius:"))); add_subwindow(radius = new UnsharpRadius(plugin, x + x1, y)); + x2 = xS(285) - xs10 - clrBtn_w; + add_subwindow(radiusClr = new UnsharpSliderClr(plugin, this, x2, y + ys10, clrBtn_w, RESET_RADIUS)); - y += 40; - add_subwindow(title = new BC_Title(x, y + 10, _("Amount:"))); + y += ys40; + add_subwindow(title = new BC_Title(x, y + ys10, _("Amount:"))); add_subwindow(amount = new UnsharpAmount(plugin, x + x1, y)); + add_subwindow(amountClr = new UnsharpSliderClr(plugin, this, x2, y + ys10, clrBtn_w, RESET_AMOUNT)); - y += 40; - add_subwindow(title = new BC_Title(x, y + 10, _("Threshold:"))); + y += ys40; + add_subwindow(title = new BC_Title(x, y + ys10, _("Threshold:"))); add_subwindow(threshold = new UnsharpThreshold(plugin, x + x1, y)); + add_subwindow(thresholdClr = new UnsharpSliderClr(plugin, this, x2, y + ys10, clrBtn_w, RESET_THRESHOLD)); - y += 50; + y += ys50; add_subwindow(reset = new UnsharpReset(plugin, this, x, y)); + add_subwindow(default_settings = new UnsharpDefaultSettings(plugin, this, + (xS(285) - xs10 - defaultBtn_w), y, defaultBtn_w)); show_window(); flush(); } -void UnsharpWindow::update() +void UnsharpWindow::update_gui(int clear) { - radius->update(plugin->config.radius); - amount->update(plugin->config.amount); - threshold->update(plugin->config.threshold); + switch(clear) { + case RESET_RADIUS : radius->update(plugin->config.radius); + break; + case RESET_AMOUNT : amount->update(plugin->config.amount); + break; + case RESET_THRESHOLD : threshold->update(plugin->config.threshold); + break; + case RESET_ALL : + case RESET_DEFAULT_SETTINGS : + default: + radius->update(plugin->config.radius); + amount->update(plugin->config.amount); + threshold->update(plugin->config.threshold); + break; + } } @@ -130,10 +145,46 @@ UnsharpReset::~UnsharpReset() } int UnsharpReset::handle_event() { - plugin->config.reset(); - window->update(); + plugin->config.reset(RESET_ALL); + window->update_gui(RESET_ALL); plugin->send_configure_change(); return 1; } +UnsharpDefaultSettings::UnsharpDefaultSettings(UnsharpMain *plugin, UnsharpWindow *window, int x, int y, int w) + : BC_GenericButton(x, y, w, _("Default")) +{ + this->plugin = plugin; + this->window = window; +} +UnsharpDefaultSettings::~UnsharpDefaultSettings() +{ +} +int UnsharpDefaultSettings::handle_event() +{ + plugin->config.reset(RESET_DEFAULT_SETTINGS); + window->update_gui(RESET_DEFAULT_SETTINGS); + plugin->send_configure_change(); + return 1; +} +UnsharpSliderClr::UnsharpSliderClr(UnsharpMain *plugin, UnsharpWindow *window, int x, int y, int w, int clear) + : BC_Button(x, y, w, plugin->get_theme()->get_image_set("reset_button")) +{ + this->plugin = plugin; + this->window = window; + this->clear = clear; +} +UnsharpSliderClr::~UnsharpSliderClr() +{ +} +int UnsharpSliderClr::handle_event() +{ + // clear==1 ==> Radius slider + // clear==2 ==> Amount slider + // clear==3 ==> Threshold slider + plugin->config.reset(clear); + window->update_gui(clear); + plugin->send_configure_change(); + return 1; +}