initial commit
[goodguy/cinelerra.git] / cinelerra-5.1 / plugins / sharpen / sharpenwindow.C
1
2 /*
3  * CINELERRA
4  * Copyright (C) 2008 Adam Williams <broadcast at earthling dot net>
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software
18  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19  *
20  */
21
22 #include "bcdisplayinfo.h"
23 #include "language.h"
24 #include "sharpenwindow.h"
25
26
27
28
29
30
31
32
33
34
35 SharpenWindow::SharpenWindow(SharpenMain *client)
36  : PluginClientWindow(client, 230, 150, 230, 150, 0)
37 {
38         this->client = client;
39 }
40
41 SharpenWindow::~SharpenWindow()
42 {
43 }
44
45 void SharpenWindow::create_objects()
46 {
47         int x = 10, y = 10;
48         add_tool(new BC_Title(x, y, _("Sharpness")));
49         y += 20;
50         add_tool(sharpen_slider = new SharpenSlider(client, &(client->config.sharpness), x, y));
51         y += 30;
52         add_tool(sharpen_interlace = new SharpenInterlace(client, x, y));
53         y += 30;
54         add_tool(sharpen_horizontal = new SharpenHorizontal(client, x, y));
55         y += 30;
56         add_tool(sharpen_luminance = new SharpenLuminance(client, x, y));
57         show_window();
58         flush();
59 }
60
61
62
63
64
65
66 SharpenSlider::SharpenSlider(SharpenMain *client, float *output, int x, int y)
67  : BC_ISlider(x,
68         y,
69         0,
70         200,
71         200,
72         0,
73         MAXSHARPNESS,
74         (int)*output,
75         0,
76         0,
77         0)
78 {
79         this->client = client;
80         this->output = output;
81 }
82 SharpenSlider::~SharpenSlider()
83 {
84 }
85 int SharpenSlider::handle_event()
86 {
87         *output = get_value();
88         client->send_configure_change();
89         return 1;
90 }
91
92
93
94
95 SharpenInterlace::SharpenInterlace(SharpenMain *client, int x, int y)
96  : BC_CheckBox(x, y, client->config.interlace, _("Interlace"))
97 {
98         this->client = client;
99 }
100 SharpenInterlace::~SharpenInterlace()
101 {
102 }
103 int SharpenInterlace::handle_event()
104 {
105         client->config.interlace = get_value();
106         client->send_configure_change();
107         return 1;
108 }
109
110
111
112
113 SharpenHorizontal::SharpenHorizontal(SharpenMain *client, int x, int y)
114  : BC_CheckBox(x, y, client->config.horizontal, _("Horizontal only"))
115 {
116         this->client = client;
117 }
118 SharpenHorizontal::~SharpenHorizontal()
119 {
120 }
121 int SharpenHorizontal::handle_event()
122 {
123         client->config.horizontal = get_value();
124         client->send_configure_change();
125         return 1;
126 }
127
128
129
130 SharpenLuminance::SharpenLuminance(SharpenMain *client, int x, int y)
131  : BC_CheckBox(x, y, client->config.luminance, _("Luminance only"))
132 {
133         this->client = client;
134 }
135 SharpenLuminance::~SharpenLuminance()
136 {
137 }
138 int SharpenLuminance::handle_event()
139 {
140         client->config.luminance = get_value();
141         client->send_configure_change();
142         return 1;
143 }
144