02feee23bd21941503372df59e011acc8b7634d8
[goodguy/history.git] / cinelerra-5.1 / plugins / findobj / findobjwindow.h
1
2 /*
3  * CINELERRA
4  * Copyright (C) 1997-2012 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
23 #ifndef __FINDOBJWINDOW_H__
24 #define __FINDOBJWINDOW_H__
25
26 #include "dragcheckbox.h"
27 #include "findobj.inc"
28 #include "guicast.h"
29
30 class FindObjReset;
31 class FindObjLayer;
32 class FindObjScanFloat;
33 class FindObjScanFloatText;
34 class FindObjDrawSceneBorder;
35 class FindObjDrawKeypoints;
36 class FindObjReplace;
37 class FindObjDrawObjectBorder;
38 class FindObjDrawReplaceBorder;
39 class FindObjDragObject;
40 class FindObjDragScene;
41 class FindObjDragReplace;
42 class FindObjAlgorithm;
43 class FindObjMode;
44 class FindObjScale;
45 class FindObjRotate;
46 class FindObjTranslate;
47 class FindObjBlend;
48 class FindObjWindow;
49
50 class FindObjReset : public BC_GenericButton
51 {
52 public:
53         FindObjReset(FindObjMain *plugin, FindObjWindow *gui, int x, int y);
54         int handle_event();
55         FindObjMain *plugin;
56         FindObjWindow *gui;
57 };
58
59 class FindObjLayer : public BC_TumbleTextBox
60 {
61 public:
62         FindObjLayer(FindObjMain *plugin, FindObjWindow *gui,
63                 int x, int y, int *value);
64         int handle_event();
65         static int calculate_w(FindObjWindow *gui);
66         FindObjMain *plugin;
67         FindObjWindow *gui;
68         int *value;
69 };
70
71 class FindObjScanFloat : public BC_FPot
72 {
73 public:
74         FindObjScanFloat(FindObjMain *plugin, FindObjWindow *gui, int x, int y,
75                 float *value, float min=0., float max=100.);
76         int handle_event();
77         void update(float v);
78         FindObjMain *plugin;
79         FindObjWindow *gui;
80         FindObjScanFloatText *center_text;
81         float *value;
82 };
83
84 class FindObjScanFloatText : public BC_TextBox
85 {
86 public:
87         FindObjScanFloatText(FindObjMain *plugin, FindObjWindow *gui, int x, int y, float *value);
88         int handle_event();
89         FindObjWindow *gui;
90         FindObjMain *plugin;
91         FindObjScanFloat *center;
92         float *value;
93 };
94
95
96 class FindObjDrawSceneBorder : public BC_CheckBox
97 {
98 public:
99         FindObjDrawSceneBorder(FindObjMain *plugin, FindObjWindow *gui, int x, int y);
100         int handle_event();
101         FindObjMain *plugin;
102         FindObjWindow *gui;
103 };
104
105 class FindObjDrawObjectBorder : public BC_CheckBox
106 {
107 public:
108         FindObjDrawObjectBorder(FindObjMain *plugin, FindObjWindow *gui, int x, int y);
109         int handle_event();
110         FindObjMain *plugin;
111         FindObjWindow *gui;
112 };
113
114 class FindObjDrawReplaceBorder : public BC_CheckBox
115 {
116 public:
117         FindObjDrawReplaceBorder(FindObjMain *plugin, FindObjWindow *gui, int x, int y);
118         int handle_event();
119         FindObjMain *plugin;
120         FindObjWindow *gui;
121 };
122
123 class FindObjDrawKeypoints : public BC_CheckBox
124 {
125 public:
126         FindObjDrawKeypoints(FindObjMain *plugin, FindObjWindow *gui, int x, int y);
127         int handle_event();
128         FindObjMain *plugin;
129         FindObjWindow *gui;
130 };
131
132 class FindObjReplace : public BC_CheckBox
133 {
134 public:
135         FindObjReplace(FindObjMain *plugin, FindObjWindow *gui, int x, int y);
136         int handle_event();
137         FindObjMain *plugin;
138         FindObjWindow *gui;
139 };
140
141 class FindObjDragScene : public DragCheckBox
142 {
143 public:
144         FindObjDragScene(FindObjMain *plugin, FindObjWindow *gui, int x, int y,
145                 float drag_x, float drag_y, float drag_w, float drag_h);
146         ~FindObjDragScene();
147         int handle_event();
148         Track *get_drag_track();
149         int64_t get_drag_position();
150         void update_gui();
151
152         FindObjMain *plugin;
153         FindObjWindow *gui;
154
155 };
156
157 class FindObjDragObject : public DragCheckBox
158 {
159 public:
160         FindObjDragObject(FindObjMain *plugin, FindObjWindow *gui, int x, int y,
161                 float drag_x, float drag_y, float drag_w, float drag_h);
162         ~FindObjDragObject();
163
164         int handle_event();
165         Track *get_drag_track();
166         int64_t get_drag_position();
167         void update_gui();
168
169         FindObjMain *plugin;
170         FindObjWindow *gui;
171 };
172
173 class FindObjDragReplace : public DragCheckBox
174 {
175 public:
176         FindObjDragReplace(FindObjMain *plugin, FindObjWindow *gui, int x, int y,
177                 float drag_x, float drag_y, float drag_w, float drag_h);
178         ~FindObjDragReplace();
179
180         int handle_event();
181         Track *get_drag_track();
182         int64_t get_drag_position();
183         void update_gui();
184
185         FindObjMain *plugin;
186         FindObjWindow *gui;
187 };
188
189 class FindObjAlgorithm : public BC_PopupMenu
190 {
191 public:
192         FindObjAlgorithm(FindObjMain *plugin, FindObjWindow *gui, int x, int y);
193         int handle_event();
194         void create_objects();
195         void update(int mode);
196         static int calculate_w(FindObjWindow *gui);
197         static int from_text(char *text);
198         static char* to_text(int mode);
199         FindObjMain *plugin;
200         FindObjWindow *gui;
201 };
202
203 class FindObjUseFlann : public BC_CheckBox
204 {
205 public:
206         FindObjUseFlann(FindObjMain *plugin, FindObjWindow *gui, int x, int y);
207         int handle_event();
208         FindObjMain *plugin;
209         FindObjWindow *gui;
210 };
211
212 class FindObjScale : public BC_CheckBox
213 {
214 public:
215         FindObjScale(FindObjMain *plugin, FindObjWindow *gui, int x, int y);
216         int handle_event();
217         FindObjMain *plugin;
218         FindObjWindow *gui;
219 };
220
221 class FindObjRotate : public BC_CheckBox
222 {
223 public:
224         FindObjRotate(FindObjMain *plugin, FindObjWindow *gui, int x, int y);
225         int handle_event();
226         FindObjMain *plugin;
227         FindObjWindow *gui;
228 };
229
230 class FindObjTranslate : public BC_CheckBox
231 {
232 public:
233         FindObjTranslate(FindObjMain *plugin, FindObjWindow *gui, int x, int y);
234         int handle_event();
235         FindObjMain *plugin;
236         FindObjWindow *gui;
237 };
238
239 class FindObjMode : public BC_PopupMenu
240 {
241 public:
242         FindObjMode(FindObjMain *plugin, FindObjWindow *gui, int x, int y);
243         int handle_event();
244         void create_objects();
245         void update(int mode);
246         static int calculate_w(FindObjWindow *gui);
247         static int from_text(char *text);
248         static char *to_text(int mode);
249         FindObjMain *plugin;
250         FindObjWindow *gui;
251 };
252
253 class FindObjBlend : public BC_IPot
254 {
255 public:
256         FindObjBlend(FindObjMain *plugin, int x, int y, int *value);
257         int handle_event();
258         FindObjMain *plugin;
259         int *value;
260 };
261
262 class FindObjWindow : public PluginClientWindow
263 {
264 public:
265         FindObjWindow(FindObjMain *plugin);
266         ~FindObjWindow();
267         void create_objects();
268         void update_drag();
269         void update_gui();
270
271         FindObjReset *reset;
272         FindObjAlgorithm *algorithm;
273         FindObjUseFlann *use_flann;
274         FindObjMode *mode;
275         FindObjScale *scale;
276         FindObjRotate *rotate;
277         FindObjTranslate *translate;
278         FindObjScanFloat *object_x, *object_y, *object_w, *object_h;
279         FindObjScanFloatText *object_x_text, *object_y_text, *object_w_text, *object_h_text;
280         FindObjScanFloat *scene_x, *scene_y, *scene_w, *scene_h;
281         FindObjScanFloatText *scene_x_text, *scene_y_text, *scene_w_text, *scene_h_text;
282         FindObjScanFloat *replace_x, *replace_y, *replace_w, *replace_h;
283         FindObjScanFloatText *replace_x_text, *replace_y_text, *replace_w_text, *replace_h_text;
284         FindObjScanFloat *replace_dx, *replace_dy;
285         FindObjScanFloatText *replace_dx_text, *replace_dy_text;
286         FindObjDrawKeypoints *draw_keypoints;
287         FindObjDrawSceneBorder *draw_scene_border;
288         FindObjReplace *replace_object;
289         FindObjDrawObjectBorder *draw_object_border;
290         FindObjDrawReplaceBorder *draw_replace_border;
291         FindObjDragObject *drag_object;
292         FindObjDragScene *drag_scene;
293         FindObjDragReplace *drag_replace;
294         FindObjLayer *object_layer;
295         FindObjLayer *scene_layer;
296         FindObjLayer *replace_layer;
297         FindObjBlend *blend;
298         FindObjMain *plugin;
299 };
300
301 #endif