Andrew contribution to add preference method for Fast/Slow speed
[goodguy/cinelerra.git] / cinelerra-5.1 / plugins / gamma / gammawindow.h
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 #ifndef LINEARIZEWINDOW_H
23 #define LINEARIZEWINDOW_H
24
25
26 class GammaThread;
27 class GammaWindow;
28 class MaxSlider;
29 class MaxText;
30 class GammaSlider;
31 class GammaText;
32 class GammaAuto;
33 class GammaPlot;
34 class GammaColorPicker;
35 class GammaReset;
36
37 #include "filexml.h"
38 #include "guicast.h"
39 #include "mutex.h"
40 #include "gamma.h"
41 #include "pluginclient.h"
42
43
44
45 class GammaWindow : public PluginClientWindow
46 {
47 public:
48         GammaWindow(GammaMain *client);
49
50         void create_objects();
51         void update();
52         void update_histogram();
53
54
55         BC_SubWindow *histogram;
56         GammaMain *client;
57         MaxSlider *max_slider;
58         MaxText *max_text;
59         GammaSlider *gamma_slider;
60         GammaText *gamma_text;
61         GammaAuto *automatic;
62         GammaPlot *plot;
63         GammaReset *reset;
64 };
65
66 class MaxSlider : public BC_FSlider
67 {
68 public:
69         MaxSlider(GammaMain *client,
70                 GammaWindow *gui,
71                 int x,
72                 int y,
73                 int w);
74         int handle_event();
75         GammaMain *client;
76         GammaWindow *gui;
77 };
78
79 class MaxText : public BC_TextBox
80 {
81 public:
82         MaxText(GammaMain *client,
83                 GammaWindow *gui,
84                 int x,
85                 int y,
86                 int w);
87         int handle_event();
88         GammaMain *client;
89         GammaWindow *gui;
90 };
91
92 class GammaSlider : public BC_FSlider
93 {
94 public:
95         GammaSlider(GammaMain *client,
96                 GammaWindow *gui,
97                 int x,
98                 int y,
99                 int w);
100         int handle_event();
101         GammaMain *client;
102         GammaWindow *gui;
103 };
104
105 class GammaText : public BC_TextBox
106 {
107 public:
108         GammaText(GammaMain *client,
109                 GammaWindow *gui,
110                 int x,
111                 int y,
112                 int w);
113         int handle_event();
114         GammaMain *client;
115         GammaWindow *gui;
116 };
117
118 class GammaAuto : public BC_CheckBox
119 {
120 public:
121         GammaAuto(GammaMain *plugin, int x, int y);
122         int handle_event();
123         GammaMain *plugin;
124 };
125
126 class GammaPlot : public BC_CheckBox
127 {
128 public:
129         GammaPlot(GammaMain *plugin, int x, int y);
130         int handle_event();
131         GammaMain *plugin;
132 };
133
134 class GammaColorPicker : public BC_GenericButton
135 {
136 public:
137         GammaColorPicker(GammaMain *plugin,
138                 GammaWindow *gui,
139                 int x,
140                 int y);
141         int handle_event();
142         GammaMain *plugin;
143         GammaWindow *gui;
144 };
145
146 class GammaReset : public BC_GenericButton
147 {
148 public:
149         GammaReset(GammaMain *plugin, GammaWindow *gui, int x, int y);
150         int handle_event();
151         GammaMain *plugin;
152         GammaWindow *gui;
153 };
154
155 #endif