fixes for full timeline updates, replace nums with syms for update interface
[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
36 #include "filexml.h"
37 #include "guicast.h"
38 #include "mutex.h"
39 #include "gamma.h"
40 #include "pluginclient.h"
41
42
43
44 class GammaWindow : public PluginClientWindow
45 {
46 public:
47         GammaWindow(GammaMain *client);
48
49         void create_objects();
50         void update();
51         void update_histogram();
52
53
54         BC_SubWindow *histogram;
55         GammaMain *client;
56         MaxSlider *max_slider;
57         MaxText *max_text;
58         GammaSlider *gamma_slider;
59         GammaText *gamma_text;
60         GammaAuto *automatic;
61         GammaPlot *plot;
62 };
63
64 class MaxSlider : public BC_FSlider
65 {
66 public:
67         MaxSlider(GammaMain *client,
68                 GammaWindow *gui,
69                 int x,
70                 int y,
71                 int w);
72         int handle_event();
73         GammaMain *client;
74         GammaWindow *gui;
75 };
76
77 class MaxText : public BC_TextBox
78 {
79 public:
80         MaxText(GammaMain *client,
81                 GammaWindow *gui,
82                 int x,
83                 int y,
84                 int w);
85         int handle_event();
86         GammaMain *client;
87         GammaWindow *gui;
88 };
89
90 class GammaSlider : public BC_FSlider
91 {
92 public:
93         GammaSlider(GammaMain *client,
94                 GammaWindow *gui,
95                 int x,
96                 int y,
97                 int w);
98         int handle_event();
99         GammaMain *client;
100         GammaWindow *gui;
101 };
102
103 class GammaText : public BC_TextBox
104 {
105 public:
106         GammaText(GammaMain *client,
107                 GammaWindow *gui,
108                 int x,
109                 int y,
110                 int w);
111         int handle_event();
112         GammaMain *client;
113         GammaWindow *gui;
114 };
115
116 class GammaAuto : public BC_CheckBox
117 {
118 public:
119         GammaAuto(GammaMain *plugin, int x, int y);
120         int handle_event();
121         GammaMain *plugin;
122 };
123
124 class GammaPlot : public BC_CheckBox
125 {
126 public:
127         GammaPlot(GammaMain *plugin, int x, int y);
128         int handle_event();
129         GammaMain *plugin;
130 };
131
132 class GammaColorPicker : public BC_GenericButton
133 {
134 public:
135         GammaColorPicker(GammaMain *plugin,
136                 GammaWindow *gui,
137                 int x,
138                 int y);
139         int handle_event();
140         GammaMain *plugin;
141         GammaWindow *gui;
142 };
143
144 #endif