4 * Copyright (C) 2008 Adam Williams <broadcast at earthling dot net>
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.
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.
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
23 #include "motion-hv.inc"
25 class MasterLayer : public BC_PopupMenu
28 MasterLayer(MotionHVMain *plugin, MotionHVWindow *gui, int x, int y);
30 void create_objects();
31 static int calculate_w(MotionHVWindow *gui);
32 static int from_text(char *text);
33 static char* to_text(int mode);
38 class ActionType : public BC_PopupMenu
41 ActionType(MotionHVMain *plugin, MotionHVWindow *gui, int x, int y);
43 void create_objects();
44 static int calculate_w(MotionHVWindow *gui);
45 static int from_text(char *text);
46 static char* to_text(int mode);
51 class TrackingType : public BC_PopupMenu
54 TrackingType(MotionHVMain *plugin, MotionHVWindow *gui, int x, int y);
56 void create_objects();
57 static int calculate_w(MotionHVWindow *gui);
58 static int from_text(char *text);
59 static char* to_text(int mode);
64 class TrackDirection : public BC_PopupMenu
67 TrackDirection(MotionHVMain *plugin, MotionHVWindow *gui, int x, int y);
69 void create_objects();
70 static int calculate_w(MotionHVWindow *gui);
71 static void from_text(int *horizontal_only, int *vertical_only, char *text);
72 static char* to_text(int horizontal_only, int vertical_only);
78 class TrackSingleFrame : public BC_Radial
81 TrackSingleFrame(MotionHVMain *plugin,
90 class TrackFrameNumber : public BC_TextBox
93 TrackFrameNumber(MotionHVMain *plugin,
102 class TrackPreviousFrame : public BC_Radial
105 TrackPreviousFrame(MotionHVMain *plugin,
110 MotionHVMain *plugin;
114 class PreviousFrameSameBlock : public BC_Radial
117 PreviousFrameSameBlock(MotionHVMain *plugin,
122 MotionHVMain *plugin;
126 class GlobalRange : public BC_IPot
129 GlobalRange(MotionHVMain *plugin,
134 MotionHVMain *plugin;
138 class RotationRange : public BC_IPot
141 RotationRange(MotionHVMain *plugin,
145 MotionHVMain *plugin;
148 class RotationCenter : public BC_IPot
151 RotationCenter(MotionHVMain *plugin,
155 MotionHVMain *plugin;
158 class BlockSize : public BC_IPot
161 BlockSize(MotionHVMain *plugin,
166 MotionHVMain *plugin;
170 class MotionHVBlockX : public BC_FPot
173 MotionHVBlockX(MotionHVMain *plugin,
179 MotionHVMain *plugin;
182 class MotionHVBlockY : public BC_FPot
185 MotionHVBlockY(MotionHVMain *plugin,
191 MotionHVMain *plugin;
194 class MotionHVBlockXText : public BC_TextBox
197 MotionHVBlockXText(MotionHVMain *plugin,
203 MotionHVMain *plugin;
206 class MotionHVBlockYText : public BC_TextBox
209 MotionHVBlockYText(MotionHVMain *plugin,
215 MotionHVMain *plugin;
218 // class GlobalSearchPositions : public BC_PopupMenu
221 // GlobalSearchPositions(MotionHVMain *plugin,
225 // void create_objects();
226 // int handle_event();
227 // MotionHVMain *plugin;
230 // class RotationSearchPositions : public BC_PopupMenu
233 // RotationSearchPositions(MotionHVMain *plugin,
237 // void create_objects();
238 // int handle_event();
239 // MotionHVMain *plugin;
242 class MotionHVMagnitude : public BC_IPot
245 MotionHVMagnitude(MotionHVMain *plugin,
249 MotionHVMain *plugin;
252 class MotionHVRMagnitude : public BC_IPot
255 MotionHVRMagnitude(MotionHVMain *plugin,
259 MotionHVMain *plugin;
262 class MotionHVReturnSpeed : public BC_IPot
265 MotionHVReturnSpeed(MotionHVMain *plugin,
269 MotionHVMain *plugin;
273 class MotionHVRReturnSpeed : public BC_IPot
276 MotionHVRReturnSpeed(MotionHVMain *plugin,
280 MotionHVMain *plugin;
284 class MotionHVDrawVectors : public BC_CheckBox
287 MotionHVDrawVectors(MotionHVMain *plugin,
292 MotionHVMain *plugin;
296 class AddTrackedFrameOffset : public BC_CheckBox
299 AddTrackedFrameOffset(MotionHVMain *plugin,
305 MotionHVMain *plugin;
308 // class MotionHVGlobal : public BC_CheckBox
311 // MotionHVGlobal(MotionHVMain *plugin,
312 // MotionHVWindow *gui,
315 // int handle_event();
316 // MotionHVWindow *gui;
317 // MotionHVMain *plugin;
320 class MotionHVRotate : public BC_CheckBox
323 MotionHVRotate(MotionHVMain *plugin,
329 MotionHVMain *plugin;
334 class MotionHVWindow : public PluginClientWindow
337 MotionHVWindow(MotionHVMain *plugin);
340 void create_objects();
342 char* get_radius_title();
344 GlobalRange *global_range_w;
345 GlobalRange *global_range_h;
346 RotationRange *rotation_range;
347 RotationCenter *rotation_center;
348 BlockSize *global_block_w;
349 BlockSize *global_block_h;
350 BlockSize *rotation_block_w;
351 BlockSize *rotation_block_h;
352 MotionHVBlockX *block_x;
353 MotionHVBlockY *block_y;
354 MotionHVBlockXText *block_x_text;
355 MotionHVBlockYText *block_y_text;
356 // GlobalSearchPositions *global_search_positions;
357 // RotationSearchPositions *rotation_search_positions;
358 MotionHVMagnitude *magnitude;
359 MotionHVRMagnitude *rotate_magnitude;
360 MotionHVReturnSpeed *return_speed;
361 MotionHVRReturnSpeed *rotate_return_speed;
362 ActionType *action_type;
363 MotionHVDrawVectors *vectors;
364 // MotionHVGlobal *global;
365 MotionHVRotate *rotate;
366 AddTrackedFrameOffset *addtrackedframeoffset;
367 TrackSingleFrame *track_single;
368 TrackFrameNumber *track_frame_number;
369 TrackPreviousFrame *track_previous;
370 PreviousFrameSameBlock *previous_same;
371 MasterLayer *master_layer;
372 TrackingType *tracking_type;
373 TrackDirection *track_direction;
375 MotionHVMain *plugin;