00001 #include "bcdisplayinfo.h"
00002 #include "quarkwindow.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 SharpenThread::SharpenThread(SharpenMain *client)
00011 : Thread()
00012 {
00013 this->client = client;
00014 set_synchronous(0);
00015 gui_started.lock();
00016 completion.lock();
00017 }
00018
00019 SharpenThread::~SharpenThread()
00020 {
00021
00022 delete window;
00023 }
00024
00025 void SharpenThread::run()
00026 {
00027 BC_DisplayInfo info;
00028 window = new SharpenWindow(client,
00029 info.get_abs_cursor_x() - 105,
00030 info.get_abs_cursor_y() - 60);
00031 window->create_objects();
00032 gui_started.unlock();
00033 int result = window->run_window();
00034 completion.unlock();
00035
00036 if(result) client->client_side_close();
00037 }
00038
00039
00040
00041
00042
00043
00044 SharpenWindow::SharpenWindow(SharpenMain *client, int x, int y)
00045 : BC_Window(client->gui_string,
00046 x,
00047 y,
00048 210,
00049 120,
00050 210,
00051 120,
00052 0,
00053 0,
00054 1)
00055 {
00056 this->client = client;
00057 }
00058
00059 SharpenWindow::~SharpenWindow()
00060 {
00061 }
00062
00063 int SharpenWindow::create_objects()
00064 {
00065 int x = 10, y = 10;
00066 add_tool(new BC_Title(x, y, _("Sharpness")));
00067 y += 20;
00068 add_tool(sharpen_slider = new SharpenSlider(client, &(client->sharpness), x, y));
00069 y += 30;
00070 add_tool(sharpen_interlace = new SharpenInterlace(client, x, y));
00071 y += 30;
00072 add_tool(sharpen_horizontal = new SharpenHorizontal(client, x, y));
00073 y += 30;
00074 add_tool(sharpen_luminance = new SharpenLuminance(client, x, y));
00075 show_window();
00076 flush();
00077 return 0;
00078 }
00079
00080 int SharpenWindow::close_event()
00081 {
00082
00083 set_done(1);
00084 return 1;
00085 }
00086
00087 SharpenSlider::SharpenSlider(SharpenMain *client, float *output, int x, int y)
00088 : BC_ISlider(x,
00089 y,
00090 0,
00091 200,
00092 200,
00093 0,
00094 MAXSHARPNESS,
00095 (int)*output,
00096 0,
00097 0,
00098 0)
00099 {
00100 this->client = client;
00101 this->output = output;
00102 }
00103 SharpenSlider::~SharpenSlider()
00104 {
00105 }
00106 int SharpenSlider::handle_event()
00107 {
00108 *output = get_value();
00109 client->send_configure_change();
00110 return 1;
00111 }
00112
00113
00114
00115
00116 SharpenInterlace::SharpenInterlace(SharpenMain *client, int x, int y)
00117 : BC_CheckBox(x, y, client->interlace, _("Interlace"))
00118 {
00119 this->client = client;
00120 }
00121 SharpenInterlace::~SharpenInterlace()
00122 {
00123 }
00124 int SharpenInterlace::handle_event()
00125 {
00126 client->interlace = get_value();
00127 client->send_configure_change();
00128 return 1;
00129 }
00130
00131
00132
00133
00134 SharpenHorizontal::SharpenHorizontal(SharpenMain *client, int x, int y)
00135 : BC_CheckBox(x, y, client->horizontal, _("Horizontal only"))
00136 {
00137 this->client = client;
00138 }
00139 SharpenHorizontal::~SharpenHorizontal()
00140 {
00141 }
00142 int SharpenHorizontal::handle_event()
00143 {
00144 client->horizontal = get_value();
00145 client->send_configure_change();
00146 return 1;
00147 }
00148
00149
00150
00151 SharpenLuminance::SharpenLuminance(SharpenMain *client, int x, int y)
00152 : BC_CheckBox(x, y, client->luminance, _("Luminance only"))
00153 {
00154 this->client = client;
00155 }
00156 SharpenLuminance::~SharpenLuminance()
00157 {
00158 }
00159 int SharpenLuminance::handle_event()
00160 {
00161 client->luminance = get_value();
00162 client->send_configure_change();
00163 return 1;
00164 }
00165