00001 #include "bcdisplayinfo.h"
00002 #include "sharpenwindow.h"
00003
00004 #include <libintl.h>
00005 #define _(String) gettext(String)
00006 #define gettext_noop(String) String
00007 #define N_(String) gettext_noop (String)
00008
00009
00010 PLUGIN_THREAD_OBJECT(SharpenMain, SharpenThread, SharpenWindow)
00011
00012
00013
00014
00015
00016
00017
00018 SharpenWindow::SharpenWindow(SharpenMain *client, int x, int y)
00019 : BC_Window(client->gui_string,
00020 x,
00021 y,
00022 210,
00023 120,
00024 210,
00025 120,
00026 0,
00027 0,
00028 1)
00029 {
00030 this->client = client;
00031 }
00032
00033 SharpenWindow::~SharpenWindow()
00034 {
00035 }
00036
00037 int SharpenWindow::create_objects()
00038 {
00039 int x = 10, y = 10;
00040 add_tool(new BC_Title(x, y, _("Sharpness")));
00041 y += 20;
00042 add_tool(sharpen_slider = new SharpenSlider(client, &(client->config.sharpness), x, y));
00043 y += 30;
00044 add_tool(sharpen_interlace = new SharpenInterlace(client, x, y));
00045 y += 30;
00046 add_tool(sharpen_horizontal = new SharpenHorizontal(client, x, y));
00047 y += 30;
00048 add_tool(sharpen_luminance = new SharpenLuminance(client, x, y));
00049 show_window();
00050 flush();
00051 return 0;
00052 }
00053
00054 int SharpenWindow::close_event()
00055 {
00056
00057 set_done(1);
00058 return 1;
00059 }
00060
00061 SharpenSlider::SharpenSlider(SharpenMain *client, float *output, int x, int y)
00062 : BC_ISlider(x,
00063 y,
00064 0,
00065 200,
00066 200,
00067 0,
00068 MAXSHARPNESS,
00069 (int)*output,
00070 0,
00071 0,
00072 0)
00073 {
00074 this->client = client;
00075 this->output = output;
00076 }
00077 SharpenSlider::~SharpenSlider()
00078 {
00079 }
00080 int SharpenSlider::handle_event()
00081 {
00082 *output = get_value();
00083 client->send_configure_change();
00084 return 1;
00085 }
00086
00087
00088
00089
00090 SharpenInterlace::SharpenInterlace(SharpenMain *client, int x, int y)
00091 : BC_CheckBox(x, y, client->config.interlace, _("Interlace"))
00092 {
00093 this->client = client;
00094 }
00095 SharpenInterlace::~SharpenInterlace()
00096 {
00097 }
00098 int SharpenInterlace::handle_event()
00099 {
00100 client->config.interlace = get_value();
00101 client->send_configure_change();
00102 return 1;
00103 }
00104
00105
00106
00107
00108 SharpenHorizontal::SharpenHorizontal(SharpenMain *client, int x, int y)
00109 : BC_CheckBox(x, y, client->config.horizontal, _("Horizontal only"))
00110 {
00111 this->client = client;
00112 }
00113 SharpenHorizontal::~SharpenHorizontal()
00114 {
00115 }
00116 int SharpenHorizontal::handle_event()
00117 {
00118 client->config.horizontal = get_value();
00119 client->send_configure_change();
00120 return 1;
00121 }
00122
00123
00124
00125 SharpenLuminance::SharpenLuminance(SharpenMain *client, int x, int y)
00126 : BC_CheckBox(x, y, client->config.luminance, _("Luminance only"))
00127 {
00128 this->client = client;
00129 }
00130 SharpenLuminance::~SharpenLuminance()
00131 {
00132 }
00133 int SharpenLuminance::handle_event()
00134 {
00135 client->config.luminance = get_value();
00136 client->send_configure_change();
00137 return 1;
00138 }
00139