add dragcheckbox, fix transition plugin title, sams opencv icons, drop libipp in...
[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 FindObjLayer;
31 class FindObjScanFloat;
32 class FindObjScanFloatText;
33 class FindObjDrawSceneBorder;
34 class FindObjDrawKeypoints;
35 class FindObjReplace;
36 class FindObjDrawObjectBorder;
37 class FindObjDragObject;
38 class FindObjDragScene;
39 class FindObjAlgorithm;
40 class FindObjBlend;
41 class FindObjWindow;
42
43 class FindObjLayer : public BC_TumbleTextBox
44 {
45 public:
46         FindObjLayer(FindObjMain *plugin, FindObjWindow *gui,
47                 int x, int y, int *value);
48         int handle_event();
49         static int calculate_w(FindObjWindow *gui);
50         FindObjMain *plugin;
51         FindObjWindow *gui;
52         int *value;
53 };
54
55 class FindObjScanFloat : public BC_FPot
56 {
57 public:
58         FindObjScanFloat(FindObjMain *plugin, FindObjWindow *gui, int x, int y, float *value);
59         int handle_event();
60         void update(float v);
61         FindObjMain *plugin;
62         FindObjWindow *gui;
63         FindObjScanFloatText *center_text;
64         float *value;
65 };
66
67 class FindObjScanFloatText : public BC_TextBox
68 {
69 public:
70         FindObjScanFloatText(FindObjMain *plugin, FindObjWindow *gui, int x, int y, float *value);
71         int handle_event();
72         FindObjWindow *gui;
73         FindObjMain *plugin;
74         FindObjScanFloat *center;
75         float *value;
76 };
77
78
79 class FindObjDrawSceneBorder : public BC_CheckBox
80 {
81 public:
82         FindObjDrawSceneBorder(FindObjMain *plugin, FindObjWindow *gui, int x, int y);
83         int handle_event();
84         FindObjMain *plugin;
85         FindObjWindow *gui;
86 };
87
88 class FindObjDrawObjectBorder : public BC_CheckBox
89 {
90 public:
91         FindObjDrawObjectBorder(FindObjMain *plugin, FindObjWindow *gui, int x, int y);
92         int handle_event();
93         FindObjMain *plugin;
94         FindObjWindow *gui;
95 };
96
97 class FindObjDrawKeypoints : public BC_CheckBox
98 {
99 public:
100         FindObjDrawKeypoints(FindObjMain *plugin, FindObjWindow *gui, int x, int y);
101         int handle_event();
102         FindObjMain *plugin;
103         FindObjWindow *gui;
104 };
105
106 class FindObjReplace : public BC_CheckBox
107 {
108 public:
109         FindObjReplace(FindObjMain *plugin, FindObjWindow *gui, int x, int y);
110         int handle_event();
111         FindObjMain *plugin;
112         FindObjWindow *gui;
113 };
114
115 class FindObjDragScene : public DragCheckBox
116 {
117 public:
118         FindObjDragScene(FindObjMain *plugin, FindObjWindow *gui, int x, int y,
119                 float drag_x, float drag_y, float drag_w, float drag_h);
120         ~FindObjDragScene();
121         int handle_event();
122         Track *get_drag_track();
123         int64_t get_drag_position();
124         void update_gui();
125
126         FindObjMain *plugin;
127         FindObjWindow *gui;
128
129 };
130
131 class FindObjDragObject : public DragCheckBox
132 {
133 public:
134         FindObjDragObject(FindObjMain *plugin, FindObjWindow *gui, int x, int y,
135                 float drag_x, float drag_y, float drag_w, float drag_h);
136         ~FindObjDragObject();
137
138         int handle_event();
139         Track *get_drag_track();
140         int64_t get_drag_position();
141         void update_gui();
142
143         FindObjMain *plugin;
144         FindObjWindow *gui;
145 };
146
147 class FindObjAlgorithm : public BC_PopupMenu
148 {
149 public:
150         FindObjAlgorithm(FindObjMain *plugin, FindObjWindow *gui, int x, int y);
151         int handle_event();
152         void create_objects();
153         static int calculate_w(FindObjWindow *gui);
154         static int from_text(char *text);
155         static char* to_text(int mode);
156         FindObjMain *plugin;
157         FindObjWindow *gui;
158 };
159
160 class FindObjUseFlann : public BC_CheckBox
161 {
162 public:
163         FindObjUseFlann(FindObjMain *plugin, FindObjWindow *gui, int x, int y);
164         int handle_event();
165         FindObjMain *plugin;
166         FindObjWindow *gui;
167 };
168
169 class FindObjBlend : public BC_IPot
170 {
171 public:
172         FindObjBlend(FindObjMain *plugin, int x, int y, int *value);
173         int handle_event();
174         FindObjMain *plugin;
175         int *value;
176 };
177
178 class FindObjWindow : public PluginClientWindow
179 {
180 public:
181         FindObjWindow(FindObjMain *plugin);
182         ~FindObjWindow();
183         void create_objects();
184         void update_drag();
185
186         FindObjAlgorithm *algorithm;
187         FindObjUseFlann *use_flann;
188         FindObjScanFloat *object_x, *object_y, *object_w, *object_h;
189         FindObjScanFloatText *object_x_text, *object_y_text, *object_w_text, *object_h_text;
190         FindObjScanFloat *scene_x, *scene_y, *scene_w, *scene_h;
191         FindObjScanFloatText *scene_x_text, *scene_y_text, *scene_w_text, *scene_h_text;
192         FindObjDrawKeypoints *draw_keypoints;
193         FindObjDrawSceneBorder *draw_scene_border;
194         FindObjReplace *replace_object;
195         FindObjDrawObjectBorder *draw_object_border;
196         FindObjDragObject *drag_object;
197         FindObjDragScene *drag_scene;
198         FindObjLayer *object_layer;
199         FindObjLayer *scene_layer;
200         FindObjLayer *replace_layer;
201         FindObjBlend *blend;
202         FindObjMain *plugin;
203 };
204
205 #endif