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 class LockLabelsButton : public BC_Toggle
00324 {
00325 public:
00326 LockLabelsButton(MWindow *mwindow, int x, int y);
00327 int handle_event();
00328 MWindow *mwindow;
00329 };
00330
00331
00332 class EditPanel
00333 {
00334 public:
00335 EditPanel(MWindow *mwindow,
00336 BC_WindowBase *subwindow,
00337 int x,
00338 int y,
00339 int editing_mode,
00340 int use_editing_mode,
00341 int use_keyframe,
00342 int use_splice,
00343 int use_overwrite,
00344 int use_lift,
00345 int use_extract,
00346 int use_copy,
00347 int use_paste,
00348 int use_undo,
00349 int use_fit,
00350 int use_locklabels,
00351 int use_labels,
00352 int use_toclip,
00353 int use_meters,
00354 int is_mwindow,
00355 int use_cut);
00356 ~EditPanel();
00357
00358 void set_meters(MeterPanel *meter_panel);
00359 void update();
00360 void delete_buttons();
00361 void create_buttons();
00362 void reposition_buttons(int x, int y);
00363 int create_objects();
00364 int get_w();
00365 virtual void copy_selection();
00366 virtual void splice_selection();
00367 virtual void overwrite_selection();
00368 virtual void set_inpoint();
00369 virtual void set_outpoint();
00370 virtual void clear_inpoint();
00371 virtual void clear_outpoint();
00372 virtual void to_clip();
00373 virtual void toggle_label();
00374 virtual void prev_label();
00375 virtual void next_label();
00376
00377 MWindow *mwindow;
00378 BC_WindowBase *subwindow;
00379 MeterPanel *meter_panel;
00380
00381 int use_editing_mode;
00382 int use_keyframe;
00383 int editing_mode;
00384 int use_splice;
00385 int use_overwrite;
00386 int use_lift;
00387 int use_extract;
00388 int use_paste;
00389 int use_undo;
00390 int use_fit;
00391 int use_copy;
00392 int use_locklabels;
00393 int use_labels;
00394 int use_toclip;
00395 int use_meters;
00396 int x, y, x1, y1;
00397 int is_mwindow;
00398 int use_cut;
00399
00400 EditFit *fit;
00401 EditFitAutos *fit_autos;
00402 EditInPoint *inpoint;
00403 EditOutPoint *outpoint;
00404
00405
00406 EditSplice *splice;
00407 EditOverwrite *overwrite;
00408 EditLift *lift;
00409 EditExtract *extract;
00410 EditToClip *clip;
00411 EditManualGoto *mangoto;
00412 EditCut *cut;
00413 EditCopy *copy;
00414 EditPaste *paste;
00415 EditLabelbutton *labelbutton;
00416 EditPrevLabel *prevlabel;
00417 EditNextLabel *nextlabel;
00418 EditUndo *undo;
00419 EditRedo *redo;
00420 MeterShow *meters;
00421 ArrowButton *arrow;
00422 IBeamButton *ibeam;
00423 KeyFrameButton *keyframe;
00424 LockLabelsButton *locklabels;
00425 };
00426
00427 #endif