2 * Cinelerra :: Blue Banana - color modification plugin for Cinelerra-CV
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 #ifndef BLUEBANANAWINDOW_H
22 #define BLUEBANANAWINDOW_H
25 #include "pluginvclient.h"
26 #include "pluginserver.h"
29 class BluebananaWindow;
31 class BluebananaThread;
33 class BluebananaActive;
35 class BluebananaA2Sel;
37 class BluebananaUnmask;
39 class BluebananaHActive;
40 class BluebananaSActive;
41 class BluebananaVActive;
42 class BluebananaFActive;
43 class BluebananaErode;
44 class BluebananaHAActive;
45 class BluebananaSAActive;
46 class BluebananaVAActive;
47 class BluebananaRAActive;
48 class BluebananaGAActive;
49 class BluebananaBAActive;
50 class BluebananaOAActive;
51 class BluebananaAAActive;
53 class BluebananaHSSlider;
54 class BluebananaSSSlider;
55 class BluebananaVSSlider;
56 class BluebananaFSSlider;
57 class BluebananaHASlider;
58 class BluebananaSASlider;
59 class BluebananaVASlider;
60 class BluebananaRASlider;
61 class BluebananaGASlider;
62 class BluebananaBASlider;
63 class BluebananaOASlider;
64 class BluebananaAASlider;
66 class BluebananaHSReadout0;
67 class BluebananaHSReadout1;
68 class BluebananaHSReadout2;
69 class BluebananaSSReadout0;
70 class BluebananaSSReadout1;
71 class BluebananaSSReadout2;
72 class BluebananaVSReadout0;
73 class BluebananaVSReadout1;
74 class BluebananaVSReadout2;
75 class BluebananaFSReadout0;
76 class BluebananaFSReadout1;
77 class BluebananaFSReadout2;
78 class BluebananaFSReadout3;
79 class BluebananaHAReadout;
80 class BluebananaSAReadout0;
81 class BluebananaSAReadout1;
82 class BluebananaSAReadout2;
83 class BluebananaVAReadout0;
84 class BluebananaVAReadout1;
85 class BluebananaVAReadout2;
86 class BluebananaRAReadout0;
87 class BluebananaRAReadout1;
88 class BluebananaRAReadout2;
89 class BluebananaGAReadout0;
90 class BluebananaGAReadout1;
91 class BluebananaGAReadout2;
92 class BluebananaBAReadout0;
93 class BluebananaBAReadout1;
94 class BluebananaBAReadout2;
95 class BluebananaOAReadout;
96 class BluebananaAAReadout;
98 class BluebananaPreserve;
100 class BB_Tumble : public BC_TextBox {
102 BB_Tumble(BluebananaMain *plugin,
103 BluebananaWindow *gui,
110 virtual ~BB_Tumble() {}
113 virtual int value_event() { return 1; }
114 int update(float value){ return BC_TextBox::update(value); }
116 void reposition_window(int x, int y){
119 BC_TextBox::reposition_window(x,y,text_w,1);
127 BluebananaMain *plugin;
128 BluebananaWindow *gui;
133 int button_press_event();
134 int keypress_event();
140 class BluebananaWindow : public PluginClientWindow {
142 BluebananaWindow(BluebananaMain *plugin);
149 int slider_top_x_tumblers;
150 int slider_top_w_tumblers;
151 int slider_bottom_x_tumblers;
152 int slider_bottom_w_tumblers;
154 void create_objects();
156 void enter_config_change();
157 void commit_config_change();
158 void leave_config_change();
159 int flush_config_change();
169 void update_histograms(BluebananaMain *plugin);
170 int repeat_event(int64_t duration);
172 BluebananaMain *plugin;
174 BluebananaMark *mark;
176 BluebananaActive *active;
177 BluebananaA2Sel *use_mask;
178 BluebananaUnmask *capture_mask;
179 BluebananaIS *invert_selection;
181 BluebananaHActive *Hsel_active;
182 BluebananaSActive *Ssel_active;
183 BluebananaVActive *Vsel_active;
184 BluebananaFActive *Fsel_active;
185 BluebananaErode *Fsel_erode;
187 BluebananaHAActive *Hadj_active;
188 BluebananaSAActive *Sadj_active;
189 BluebananaVAActive *Vadj_active;
190 BluebananaRAActive *Radj_active;
191 BluebananaGAActive *Gadj_active;
192 BluebananaBAActive *Badj_active;
193 BluebananaOAActive *Oadj_active;
194 BluebananaAAActive *Aadj_active;
196 BluebananaHSSlider *Hsel_slider;
197 BluebananaHSReadout0 *Hsel_readout0;
198 BluebananaHSReadout1 *Hsel_readout1;
199 BluebananaHSReadout2 *Hsel_readout2;
201 BluebananaSSSlider *Ssel_slider;
202 BluebananaSSReadout0 *Ssel_readout0;
203 BluebananaSSReadout1 *Ssel_readout1;
204 BluebananaSSReadout2 *Ssel_readout2;
206 BluebananaVSSlider *Vsel_slider;
207 BluebananaVSReadout0 *Vsel_readout0;
208 BluebananaVSReadout1 *Vsel_readout1;
209 BluebananaVSReadout2 *Vsel_readout2;
211 BluebananaFSSlider *Fsel_slider;
212 BluebananaFSReadout0 *Fsel_readout0;
213 BluebananaFSReadout1 *Fsel_readout1;
214 BluebananaFSReadout2 *Fsel_readout2;
215 BluebananaFSReadout3 *Fsel_readout3;
217 BluebananaHASlider *Hadj_slider;
218 BluebananaHAReadout *Hadj_readout;
220 BluebananaSASlider *Sadj_slider;
221 BluebananaSAReadout0 *Sadj_readout0;
222 BluebananaSAReadout1 *Sadj_readout1;
223 BluebananaSAReadout2 *Sadj_readout2;
225 BluebananaVASlider *Vadj_slider;
226 BluebananaVAReadout0 *Vadj_readout0;
227 BluebananaVAReadout1 *Vadj_readout1;
228 BluebananaVAReadout2 *Vadj_readout2;
230 BluebananaRASlider *Radj_slider;
231 BluebananaRAReadout0 *Radj_readout0;
232 BluebananaRAReadout1 *Radj_readout1;
233 BluebananaRAReadout2 *Radj_readout2;
235 BluebananaGASlider *Gadj_slider;
236 BluebananaGAReadout0 *Gadj_readout0;
237 BluebananaGAReadout1 *Gadj_readout1;
238 BluebananaGAReadout2 *Gadj_readout2;
240 BluebananaBASlider *Badj_slider;
241 BluebananaBAReadout0 *Badj_readout0;
242 BluebananaBAReadout1 *Badj_readout1;
243 BluebananaBAReadout2 *Badj_readout2;
245 BluebananaOASlider *Oadj_slider;
246 BluebananaOAReadout *Oadj_readout;
247 BluebananaAASlider *Aadj_slider;
248 BluebananaAAReadout *Aadj_readout;
250 //BluebananaPreserve *preserve_luma;
252 BC_Title *slider_labels[12];
253 BC_Title *erode_label;