00001 #include "guicast.h"
00002 #include "motion.inc"
00003
00004 class MasterLayer : public BC_PopupMenu
00005 {
00006 public:
00007 MasterLayer(MotionMain *plugin, MotionWindow *gui, int x, int y);
00008 int handle_event();
00009 void create_objects();
00010 static int calculate_w(MotionWindow *gui);
00011 static int from_text(char *text);
00012 static char* to_text(int mode);
00013 MotionMain *plugin;
00014 MotionWindow *gui;
00015 };
00016
00017 class Mode1 : public BC_PopupMenu
00018 {
00019 public:
00020 Mode1(MotionMain *plugin, MotionWindow *gui, int x, int y);
00021 int handle_event();
00022 void create_objects();
00023 static int calculate_w(MotionWindow *gui);
00024 static int from_text(char *text);
00025 static char* to_text(int mode);
00026 MotionMain *plugin;
00027 MotionWindow *gui;
00028 };
00029
00030 class Mode2 : public BC_PopupMenu
00031 {
00032 public:
00033 Mode2(MotionMain *plugin, MotionWindow *gui, int x, int y);
00034 int handle_event();
00035 void create_objects();
00036 static int calculate_w(MotionWindow *gui);
00037 static int from_text(char *text);
00038 static char* to_text(int mode);
00039 MotionMain *plugin;
00040 MotionWindow *gui;
00041 };
00042
00043 class Mode3 : public BC_PopupMenu
00044 {
00045 public:
00046 Mode3(MotionMain *plugin, MotionWindow *gui, int x, int y);
00047 int handle_event();
00048 void create_objects();
00049 static int calculate_w(MotionWindow *gui);
00050 static void from_text(int *horizontal_only, int *vertical_only, char *text);
00051 static char* to_text(int horizontal_only, int vertical_only);
00052 MotionMain *plugin;
00053 MotionWindow *gui;
00054 };
00055
00056
00057 class TrackSingleFrame : public BC_Radial
00058 {
00059 public:
00060 TrackSingleFrame(MotionMain *plugin,
00061 MotionWindow *gui,
00062 int x,
00063 int y);
00064 int handle_event();
00065 MotionMain *plugin;
00066 MotionWindow *gui;
00067 };
00068
00069 class TrackFrameNumber : public BC_TextBox
00070 {
00071 public:
00072 TrackFrameNumber(MotionMain *plugin,
00073 MotionWindow *gui,
00074 int x,
00075 int y);
00076 int handle_event();
00077 MotionMain *plugin;
00078 MotionWindow *gui;
00079 };
00080
00081 class TrackPreviousFrame : public BC_Radial
00082 {
00083 public:
00084 TrackPreviousFrame(MotionMain *plugin,
00085 MotionWindow *gui,
00086 int x,
00087 int y);
00088 int handle_event();
00089 MotionMain *plugin;
00090 MotionWindow *gui;
00091 };
00092
00093 class PreviousFrameSameBlock : public BC_Radial
00094 {
00095 public:
00096 PreviousFrameSameBlock(MotionMain *plugin,
00097 MotionWindow *gui,
00098 int x,
00099 int y);
00100 int handle_event();
00101 MotionMain *plugin;
00102 MotionWindow *gui;
00103 };
00104
00105 class GlobalRange : public BC_IPot
00106 {
00107 public:
00108 GlobalRange(MotionMain *plugin,
00109 int x,
00110 int y,
00111 int *value);
00112 int handle_event();
00113 MotionMain *plugin;
00114 int *value;
00115 };
00116
00117 class RotationRange : public BC_IPot
00118 {
00119 public:
00120 RotationRange(MotionMain *plugin,
00121 int x,
00122 int y);
00123 int handle_event();
00124 MotionMain *plugin;
00125 };
00126
00127 class BlockSize : public BC_IPot
00128 {
00129 public:
00130 BlockSize(MotionMain *plugin,
00131 int x,
00132 int y,
00133 int *value);
00134 int handle_event();
00135 MotionMain *plugin;
00136 int *value;
00137 };
00138
00139 class MotionBlockX : public BC_FPot
00140 {
00141 public:
00142 MotionBlockX(MotionMain *plugin,
00143 MotionWindow *gui,
00144 int x,
00145 int y);
00146 int handle_event();
00147 MotionWindow *gui;
00148 MotionMain *plugin;
00149 };
00150
00151 class MotionBlockY : public BC_FPot
00152 {
00153 public:
00154 MotionBlockY(MotionMain *plugin,
00155 MotionWindow *gui,
00156 int x,
00157 int y);
00158 int handle_event();
00159 MotionWindow *gui;
00160 MotionMain *plugin;
00161 };
00162
00163 class MotionBlockXText : public BC_TextBox
00164 {
00165 public:
00166 MotionBlockXText(MotionMain *plugin,
00167 MotionWindow *gui,
00168 int x,
00169 int y);
00170 int handle_event();
00171 MotionWindow *gui;
00172 MotionMain *plugin;
00173 };
00174
00175 class MotionBlockYText : public BC_TextBox
00176 {
00177 public:
00178 MotionBlockYText(MotionMain *plugin,
00179 MotionWindow *gui,
00180 int x,
00181 int y);
00182 int handle_event();
00183 MotionWindow *gui;
00184 MotionMain *plugin;
00185 };
00186
00187 class GlobalSearchPositions : public BC_PopupMenu
00188 {
00189 public:
00190 GlobalSearchPositions(MotionMain *plugin,
00191 int x,
00192 int y,
00193 int w);
00194 void create_objects();
00195 int handle_event();
00196 MotionMain *plugin;
00197 };
00198
00199 class RotationSearchPositions : public BC_PopupMenu
00200 {
00201 public:
00202 RotationSearchPositions(MotionMain *plugin,
00203 int x,
00204 int y,
00205 int w);
00206 void create_objects();
00207 int handle_event();
00208 MotionMain *plugin;
00209 };
00210
00211 class MotionMagnitude : public BC_IPot
00212 {
00213 public:
00214 MotionMagnitude(MotionMain *plugin,
00215 int x,
00216 int y);
00217 int handle_event();
00218 MotionMain *plugin;
00219 };
00220
00221 class MotionReturnSpeed : public BC_IPot
00222 {
00223 public:
00224 MotionReturnSpeed(MotionMain *plugin,
00225 int x,
00226 int y);
00227 int handle_event();
00228 MotionMain *plugin;
00229 };
00230
00231
00232
00233 class MotionDrawVectors : public BC_CheckBox
00234 {
00235 public:
00236 MotionDrawVectors(MotionMain *plugin,
00237 MotionWindow *gui,
00238 int x,
00239 int y);
00240 int handle_event();
00241 MotionMain *plugin;
00242 MotionWindow *gui;
00243 };
00244
00245 class AddTrackedFrameOffset : public BC_CheckBox
00246 {
00247 public:
00248 AddTrackedFrameOffset(MotionMain *plugin,
00249 MotionWindow *gui,
00250 int x,
00251 int y);
00252 int handle_event();
00253 MotionWindow *gui;
00254 MotionMain *plugin;
00255 };
00256
00257 class MotionGlobal : public BC_CheckBox
00258 {
00259 public:
00260 MotionGlobal(MotionMain *plugin,
00261 MotionWindow *gui,
00262 int x,
00263 int y);
00264 int handle_event();
00265 MotionWindow *gui;
00266 MotionMain *plugin;
00267 };
00268
00269 class MotionRotate : public BC_CheckBox
00270 {
00271 public:
00272 MotionRotate(MotionMain *plugin,
00273 MotionWindow *gui,
00274 int x,
00275 int y);
00276 int handle_event();
00277 MotionWindow *gui;
00278 MotionMain *plugin;
00279 };
00280
00281
00282
00283 class MotionWindow : public BC_Window
00284 {
00285 public:
00286 MotionWindow(MotionMain *plugin, int x, int y);
00287 ~MotionWindow();
00288
00289 int create_objects();
00290 int close_event();
00291 void update_mode();
00292 char* get_radius_title();
00293
00294 GlobalRange *global_range_w;
00295 GlobalRange *global_range_h;
00296 RotationRange *rotation_range;
00297 BlockSize *global_block_w;
00298 BlockSize *global_block_h;
00299 BlockSize *rotation_block_w;
00300 BlockSize *rotation_block_h;
00301 MotionBlockX *block_x;
00302 MotionBlockY *block_y;
00303 MotionBlockXText *block_x_text;
00304 MotionBlockYText *block_y_text;
00305 GlobalSearchPositions *global_search_positions;
00306 RotationSearchPositions *rotation_search_positions;
00307 MotionMagnitude *magnitude;
00308 MotionReturnSpeed *return_speed;
00309 Mode1 *mode1;
00310 MotionDrawVectors *vectors;
00311 MotionGlobal *global;
00312 MotionRotate *rotate;
00313 AddTrackedFrameOffset *addtrackedframeoffset;
00314 TrackSingleFrame *track_single;
00315 TrackFrameNumber *track_frame_number;
00316 TrackPreviousFrame *track_previous;
00317 PreviousFrameSameBlock *previous_same;
00318 MasterLayer *master_layer;
00319 Mode2 *mode2;
00320 Mode3 *mode3;
00321
00322 MotionMain *plugin;
00323 };
00324
00325
00326
00327 PLUGIN_THREAD_HEADER(MotionMain, MotionThread, MotionWindow)
00328
00329
00330
00331
00332