00001 #ifndef EDITPANEL_H
00002 #define EDITPANEL_H
00003
00004 #include "guicast.h"
00005 #include "meterpanel.inc"
00006 #include "mwindow.inc"
00007 #include "manualgoto.inc"
00008
00009 class EditPanel;
00010
00011
00012 class EditInPoint : public BC_Button
00013 {
00014 public:
00015 EditInPoint(MWindow *mwindow, EditPanel *panel, int x, int y);
00016 ~EditInPoint();
00017 int handle_event();
00018 int keypress_event();
00019 MWindow *mwindow;
00020 EditPanel *panel;
00021 };
00022
00023 class EditOutPoint : public BC_Button
00024 {
00025 public:
00026 EditOutPoint(MWindow *mwindow, EditPanel *panel, int x, int y);
00027 ~EditOutPoint();
00028 int handle_event();
00029 int keypress_event();
00030 MWindow *mwindow;
00031 EditPanel *panel;
00032 };
00033
00034 class EditDelInPoint : public BC_Button
00035 {
00036 public:
00037 EditDelInPoint(MWindow *mwindow, EditPanel *panel, int x, int y);
00038 ~EditDelInPoint();
00039 int handle_event();
00040 int keypress_event();
00041 MWindow *mwindow;
00042 EditPanel *panel;
00043 };
00044
00045 class EditDelOutPoint : public BC_Button
00046 {
00047 public:
00048 EditDelOutPoint(MWindow *mwindow, EditPanel *panel, int x, int y);
00049 ~EditDelOutPoint();
00050 int handle_event();
00051 int keypress_event();
00052 MWindow *mwindow;
00053 EditPanel *panel;
00054 };
00055
00056 class EditSplice : public BC_Button
00057 {
00058 public:
00059 EditSplice(MWindow *mwindow, EditPanel *panel, int x, int y);
00060 ~EditSplice();
00061 int handle_event();
00062 int keypress_event();
00063 MWindow *mwindow;
00064 EditPanel *panel;
00065 };
00066
00067 class EditOverwrite : public BC_Button
00068 {
00069 public:
00070 EditOverwrite(MWindow *mwindow, EditPanel *panel, int x, int y);
00071 ~EditOverwrite();
00072 int handle_event();
00073 int keypress_event();
00074 MWindow *mwindow;
00075 EditPanel *panel;
00076 };
00077
00078 class EditLift : public BC_Button
00079 {
00080 public:
00081 EditLift(MWindow *mwindow, EditPanel *panel, int x, int y);
00082 ~EditLift();
00083 int handle_event();
00084 MWindow *mwindow;
00085 EditPanel *panel;
00086 };
00087
00088 class EditExtract : public BC_Button
00089 {
00090 public:
00091 EditExtract(MWindow *mwindow, EditPanel *panel, int x, int y);
00092 ~EditExtract();
00093 int handle_event();
00094 MWindow *mwindow;
00095 EditPanel *panel;
00096 };
00097
00098 class EditToClip : public BC_Button
00099 {
00100 public:
00101 EditToClip(MWindow *mwindow, EditPanel *panel, int x, int y);
00102 ~EditToClip();
00103 int handle_event();
00104 int keypress_event();
00105 MWindow *mwindow;
00106 EditPanel *panel;
00107 };
00108
00109 class EditManualGoto : public BC_Button
00110 {
00111 public:
00112 EditManualGoto(MWindow *mwindow, EditPanel *panel, int x, int y);
00113 ~EditManualGoto();
00114 int handle_event();
00115 int keypress_event();
00116 MWindow *mwindow;
00117 EditPanel *panel;
00118 ManualGoto *mangoto;
00119 };
00120
00121 class EditCut : public BC_Button
00122 {
00123 public:
00124 EditCut(MWindow *mwindow, EditPanel *panel, int x, int y);
00125 ~EditCut();
00126
00127 int keypress_event();
00128 int handle_event();
00129
00130 MWindow *mwindow;
00131 EditPanel *panel;
00132 };
00133
00134 class EditCopy : public BC_Button
00135 {
00136 public:
00137 EditCopy(MWindow *mwindow, EditPanel *panel, int x, int y);
00138 ~EditCopy();
00139
00140 int keypress_event();
00141 int handle_event();
00142
00143 MWindow *mwindow;
00144 EditPanel *panel;
00145 };
00146
00147 class EditAppend : public BC_Button
00148 {
00149 public:
00150 EditAppend(MWindow *mwindow, EditPanel *panel, int x, int y);
00151 ~EditAppend();
00152
00153 int handle_event();
00154
00155 MWindow *mwindow;
00156 EditPanel *panel;
00157 };
00158
00159 class EditInsert : public BC_Button
00160 {
00161 public:
00162 EditInsert(MWindow *mwindow, EditPanel *panel, int x, int y);
00163 ~EditInsert();
00164
00165 int handle_event();
00166
00167 MWindow *mwindow;
00168 EditPanel *panel;
00169 };
00170
00171 class EditPaste : public BC_Button
00172 {
00173 public:
00174 EditPaste(MWindow *mwindow, EditPanel *panel, int x, int y);
00175 ~EditPaste();
00176
00177 int keypress_event();
00178 int handle_event();
00179
00180 MWindow *mwindow;
00181 EditPanel *panel;
00182 };
00183
00184 class EditTransition : public BC_Button
00185 {
00186 public:
00187 EditTransition(MWindow *mwindow, EditPanel *panel, int x, int y);
00188 ~EditTransition();
00189 int handle_event();
00190 MWindow *mwindow;
00191 EditPanel *panel;
00192 };
00193
00194 class EditPresentation : public BC_Button
00195 {
00196 public:
00197 EditPresentation(MWindow *mwindow, EditPanel *panel, int x, int y);
00198 ~EditPresentation();
00199 int handle_event();
00200 MWindow *mwindow;
00201 EditPanel *panel;
00202 };
00203
00204 class EditUndo : public BC_Button
00205 {
00206 public:
00207 EditUndo(MWindow *mwindow, EditPanel *panel, int x, int y);
00208 ~EditUndo();
00209 int keypress_event();
00210 int handle_event();
00211 MWindow *mwindow;
00212 EditPanel *panel;
00213 };
00214
00215 class EditRedo : public BC_Button
00216 {
00217 public:
00218 EditRedo(MWindow *mwindow, EditPanel *panel, int x, int y);
00219 ~EditRedo();
00220 int keypress_event();
00221 int handle_event();
00222 MWindow *mwindow;
00223 EditPanel *panel;
00224 };
00225
00226 class EditLabelbutton : public BC_Button
00227 {
00228 public:
00229 EditLabelbutton(MWindow *mwindow, EditPanel *panel, int x, int y);
00230 ~EditLabelbutton();
00231 int keypress_event();
00232 int handle_event();
00233 MWindow *mwindow;
00234 EditPanel *panel;
00235 };
00236
00237 class EditFit : public BC_Button
00238 {
00239 public:
00240 EditFit(MWindow *mwindow, EditPanel *panel, int x, int y);
00241 ~EditFit();
00242 int keypress_event();
00243 int handle_event();
00244 MWindow *mwindow;
00245 EditPanel *panel;
00246 };
00247
00248 class EditFitAutos : public BC_Button
00249 {
00250 public:
00251 EditFitAutos(MWindow *mwindow, EditPanel *panel, int x, int y);
00252 ~EditFitAutos();
00253 int keypress_event();
00254 int handle_event();
00255 MWindow *mwindow;
00256 EditPanel *panel;
00257 };
00258
00259
00260 class EditPrevLabel : public BC_Button
00261 {
00262 public:
00263 EditPrevLabel(MWindow *mwindow,
00264 EditPanel *panel,
00265 int x,
00266 int y,
00267 int is_mwindow);
00268 ~EditPrevLabel();
00269
00270 int keypress_event();
00271 int handle_event();
00272
00273 MWindow *mwindow;
00274 EditPanel *panel;
00275 int is_mwindow;
00276 };
00277
00278 class EditNextLabel : public BC_Button
00279 {
00280 public:
00281 EditNextLabel(MWindow *mwindow,
00282 EditPanel *panel,
00283 int x,
00284 int y,
00285 int is_mwindow);
00286 ~EditNextLabel();
00287
00288 int keypress_event();
00289 int handle_event();
00290
00291 MWindow *mwindow;
00292 EditPanel *panel;
00293 int is_mwindow;
00294 };
00295
00296
00297 class ArrowButton : public BC_Toggle
00298 {
00299 public:
00300 ArrowButton(MWindow *mwindow, EditPanel *panel, int x, int y);
00301 int handle_event();
00302 MWindow *mwindow;
00303 EditPanel *panel;
00304 };
00305
00306 class IBeamButton : public BC_Toggle
00307 {
00308 public:
00309 IBeamButton(MWindow *mwindow, EditPanel *panel, int x, int y);
00310 int handle_event();
00311 MWindow *mwindow;
00312 EditPanel *panel;
00313 };
00314
00315 class KeyFrameButton : public BC_Toggle
00316 {
00317 public:
00318 KeyFrameButton(MWindow *mwindow, int x, int y);
00319 int handle_event();
00320 MWindow *mwindow;
00321 };
00322
00323
00324 class EditPanel
00325 {
00326 public:
00327 EditPanel(MWindow *mwindow,
00328 BC_WindowBase *subwindow,
00329 int x,
00330 int y,
00331 int editing_mode,
00332 int use_editing_mode,
00333 int use_keyframe,
00334 int use_splice,
00335 int use_overwrite,
00336 int use_lift,
00337 int use_extract,
00338 int use_copy,
00339 int use_paste,
00340 int use_undo,
00341 int use_fit,
00342 int use_labels,
00343 int use_toclip,
00344 int use_meters,
00345 int is_mwindow,
00346 int use_cut);
00347 ~EditPanel();
00348
00349 void set_meters(MeterPanel *meter_panel);
00350 void update();
00351 void delete_buttons();
00352 void create_buttons();
00353 void reposition_buttons(int x, int y);
00354 int create_objects();
00355 int get_w();
00356 virtual void copy_selection();
00357 virtual void splice_selection();
00358 virtual void overwrite_selection();
00359 virtual void set_inpoint();
00360 virtual void set_outpoint();
00361 virtual void clear_inpoint();
00362 virtual void clear_outpoint();
00363 virtual void to_clip();
00364 virtual void toggle_label();
00365 virtual void prev_label();
00366 virtual void next_label();
00367
00368 MWindow *mwindow;
00369 BC_WindowBase *subwindow;
00370 MeterPanel *meter_panel;
00371
00372 int use_editing_mode;
00373 int use_keyframe;
00374 int editing_mode;
00375 int use_splice;
00376 int use_overwrite;
00377 int use_lift;
00378 int use_extract;
00379 int use_paste;
00380 int use_undo;
00381 int use_fit;
00382 int use_copy;
00383 int use_labels;
00384 int use_toclip;
00385 int use_meters;
00386 int x, y, x1, y1;
00387 int is_mwindow;
00388 int use_cut;
00389
00390 EditFit *fit;
00391 EditFitAutos *fit_autos;
00392 EditInPoint *inpoint;
00393 EditOutPoint *outpoint;
00394
00395
00396 EditSplice *splice;
00397 EditOverwrite *overwrite;
00398 EditLift *lift;
00399 EditExtract *extract;
00400 EditToClip *clip;
00401 EditManualGoto *mangoto;
00402 EditCut *cut;
00403 EditCopy *copy;
00404 EditPaste *paste;
00405 EditLabelbutton *labelbutton;
00406 EditPrevLabel *prevlabel;
00407 EditNextLabel *nextlabel;
00408 EditUndo *undo;
00409 EditRedo *redo;
00410 MeterShow *meters;
00411 ArrowButton *arrow;
00412 IBeamButton *ibeam;
00413 KeyFrameButton *keyframe;
00414 };
00415
00416 #endif