00001 #include "bcdisplayinfo.h"
00002 #include "despikewindow.h"
00003
00004 #include <string.h>
00005
00006 #include <libintl.h>
00007 #define _(String) gettext(String)
00008 #define gettext_noop(String) String
00009 #define N_(String) gettext_noop (String)
00010
00011
00012 PLUGIN_THREAD_OBJECT(Despike, DespikeThread, DespikeWindow)
00013
00014
00015
00016
00017
00018
00019 DespikeWindow::DespikeWindow(Despike *despike, int x, int y)
00020 : BC_Window(despike->gui_string,
00021 x,
00022 y,
00023 230,
00024 110,
00025 230,
00026 110,
00027 0,
00028 0,
00029 1)
00030 {
00031 this->despike = despike;
00032 }
00033
00034 DespikeWindow::~DespikeWindow()
00035 {
00036 }
00037
00038 int DespikeWindow::create_objects()
00039 {
00040 int x = 10, y = 10;
00041 add_tool(new BC_Title(5, y, _("Maximum level:")));
00042 y += 20;
00043 add_tool(level = new DespikeLevel(despike, x, y));
00044 y += 30;
00045 add_tool(new BC_Title(5, y, _("Maximum rate of change:")));
00046 y += 20;
00047 add_tool(slope = new DespikeSlope(despike, x, y));
00048 show_window();
00049 flush();
00050 return 0;
00051 }
00052
00053 int DespikeWindow::close_event()
00054 {
00055
00056 set_done(1);
00057 return 1;
00058 }
00059
00060
00061
00062
00063
00064 DespikeLevel::DespikeLevel(Despike *despike, int x, int y)
00065 : BC_FSlider(x,
00066 y,
00067 0,
00068 200,
00069 200,
00070 INFINITYGAIN,
00071 0,
00072 despike->config.level)
00073 {
00074 this->despike = despike;
00075 }
00076 int DespikeLevel::handle_event()
00077 {
00078 despike->config.level = get_value();
00079 despike->send_configure_change();
00080 return 1;
00081 }
00082
00083 DespikeSlope::DespikeSlope(Despike *despike, int x, int y)
00084 : BC_FSlider(x,
00085 y,
00086 0,
00087 200,
00088 200,
00089 INFINITYGAIN,
00090 0,
00091 despike->config.slope)
00092 {
00093 this->despike = despike;
00094 }
00095 int DespikeSlope::handle_event()
00096 {
00097 despike->config.slope = get_value();
00098 despike->send_configure_change();
00099 return 1;
00100 }