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
25 class MasterLayer : public BC_PopupMenu
28 MasterLayer(MotionMain *plugin, MotionWindow *gui, int x, int y);
30 void create_objects();
31 static int calculate_w(MotionWindow *gui);
32 static int from_text(char *text);
33 static char* to_text(int mode);
38 class ActionType : public BC_PopupMenu
41 ActionType(MotionMain *plugin, MotionWindow *gui, int x, int y);
43 void create_objects();
44 static int calculate_w(MotionWindow *gui);
45 static int from_text(char *text);
46 static char* to_text(int mode);
51 class TrackingType : public BC_PopupMenu
54 TrackingType(MotionMain *plugin, MotionWindow *gui, int x, int y);
56 void create_objects();
57 static int calculate_w(MotionWindow *gui);
58 static int from_text(char *text);
59 static char* to_text(int mode);
64 class TrackDirection : public BC_PopupMenu
67 TrackDirection(MotionMain *plugin, MotionWindow *gui, int x, int y);
69 void create_objects();
70 static int calculate_w(MotionWindow *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(MotionMain *plugin, MotionWindow *gui, int x, int y);
87 class TrackFrameNumber : public BC_TextBox
90 TrackFrameNumber(MotionMain *plugin, MotionWindow *gui, int x, int y);
96 class TrackPreviousFrame : public BC_Radial
99 TrackPreviousFrame(MotionMain *plugin, MotionWindow *gui, int x, int y);
105 class PreviousFrameSameBlock : public BC_Radial
108 PreviousFrameSameBlock(MotionMain *plugin, MotionWindow *gui, int x, int y);
114 class GlobalRange : public BC_IPot
117 GlobalRange(MotionMain *plugin, int x, int y, int *value);
123 class RotationRange : public BC_IPot
126 RotationRange(MotionMain *plugin, int x, int y);
131 class RotationCenter : public BC_IPot
134 RotationCenter(MotionMain *plugin, int x, int y);
139 class BlockSize : public BC_IPot
142 BlockSize(MotionMain *plugin, int x, int y, int *value);
148 class MotionBlockX : public BC_FPot
151 MotionBlockX(MotionMain *plugin, MotionWindow *gui, int x, int y);
157 class MotionBlockY : public BC_FPot
160 MotionBlockY(MotionMain *plugin, MotionWindow *gui, int x, int y);
166 class MotionBlockXText : public BC_TextBox
169 MotionBlockXText(MotionMain *plugin, MotionWindow *gui, int x, int y);
175 class MotionBlockYText : public BC_TextBox
178 MotionBlockYText(MotionMain *plugin, MotionWindow *gui, int x, int y);
184 class GlobalSearchPositions : public BC_PopupMenu
187 GlobalSearchPositions(MotionMain *plugin, int x, int y, int w);
188 void create_objects();
193 class RotationSearchPositions : public BC_PopupMenu
196 RotationSearchPositions(MotionMain *plugin, int x, int y, int w);
197 void create_objects();
202 class MotionMagnitude : public BC_IPot
205 MotionMagnitude(MotionMain *plugin, int x, int y);
210 class MotionRMagnitude : public BC_IPot
213 MotionRMagnitude(MotionMain *plugin, int x, int y);
218 class MotionReturnSpeed : public BC_IPot
221 MotionReturnSpeed(MotionMain *plugin, int x, int y);
227 class MotionRReturnSpeed : public BC_IPot
230 MotionRReturnSpeed(MotionMain *plugin, int x, int y);
236 class MotionNoiseLevel : public BC_FPot
239 MotionNoiseLevel(MotionMain *plugin, MotionWindow *gui, int x, int y);
245 class MotionNoiseLevelText : public BC_TextBox
248 MotionNoiseLevelText(MotionMain *plugin, MotionWindow *gui, int x, int y);
254 class MotionNoiseRotation : public BC_FPot
257 MotionNoiseRotation(MotionMain *plugin, MotionWindow *gui, int x, int y);
263 class MotionNoiseRotationText : public BC_TextBox
266 MotionNoiseRotationText(MotionMain *plugin, MotionWindow *gui, int x, int y);
273 class MotionDrawVectors : public BC_CheckBox
276 MotionDrawVectors(MotionMain *plugin, MotionWindow *gui, int x, int y);
282 class AddTrackedFrameOffset : public BC_CheckBox
285 AddTrackedFrameOffset(MotionMain *plugin, MotionWindow *gui, int x, int y);
291 class MotionTrackingFile : public BC_TextBox
294 MotionTrackingFile(MotionMain *plugin, const char *filename,
295 MotionWindow *gui, int x, int y);
301 class MotionResetTracking : public BC_GenericButton
304 MotionResetTracking(MotionMain *plugin, MotionWindow *gui, int x, int y);
310 class MotionClearTracking : public BC_GenericButton
313 MotionClearTracking(MotionMain *plugin, MotionWindow *gui, int x, int y);
319 class MotionFrameCurrent : public BC_GenericButton
322 MotionFrameCurrent(MotionMain *plugin, MotionWindow *gui, int x, int y);
328 class MotionGlobal : public BC_CheckBox
331 MotionGlobal(MotionMain *plugin, MotionWindow *gui, int x, int y);
337 class MotionRotate : public BC_CheckBox
340 MotionRotate(MotionMain *plugin, MotionWindow *gui, int x, int y);
346 class MotionTwopass : public BC_CheckBox
349 MotionTwopass(MotionMain *plugin, MotionWindow *gui, int x, int y);
357 class MotionWindow : public PluginClientWindow
360 MotionWindow(MotionMain *plugin);
363 void create_objects();
365 char* get_radius_title();
367 GlobalRange *global_range_w;
368 GlobalRange *global_range_h;
369 RotationRange *rotation_range;
370 RotationCenter *rotation_center;
371 BlockSize *global_block_w;
372 BlockSize *global_block_h;
373 BlockSize *rotation_block_w;
374 BlockSize *rotation_block_h;
375 MotionBlockX *block_x;
376 MotionBlockY *block_y;
377 MotionBlockXText *block_x_text;
378 MotionBlockYText *block_y_text;
379 GlobalSearchPositions *global_search_positions;
380 RotationSearchPositions *rotation_search_positions;
381 MotionMagnitude *magnitude;
382 MotionRMagnitude *rotate_magnitude;
383 MotionReturnSpeed *return_speed;
384 MotionRReturnSpeed *rotate_return_speed;
385 MotionNoiseLevel *noise_level;
386 MotionNoiseLevelText *noise_level_text;
387 MotionNoiseRotation *noise_rotation;
388 MotionNoiseRotationText *noise_rotation_text;
389 ActionType *action_type;
390 MotionDrawVectors *vectors;
391 MotionTrackingFile *tracking_file;
392 MotionResetTracking *reset_tracking;
393 MotionClearTracking *clear_tracking;
394 MotionFrameCurrent *frame_current;
395 MotionGlobal *global;
396 MotionRotate *rotate;
397 MotionTwopass *twopass;
398 AddTrackedFrameOffset *addtrackedframeoffset;
399 TrackSingleFrame *track_single;
400 TrackFrameNumber *track_frame_number;
401 TrackPreviousFrame *track_previous;
402 PreviousFrameSameBlock *previous_same;
403 MasterLayer *master_layer;
404 TrackingType *tracking_type;
405 TrackDirection *track_direction;