r870: Merge 2.1:
[cinelerra_cv.git] / cinelerra / editpanel.h
blob7db212a6ddcfc50f06aa5d09de00ff8ae68049b3
1 #ifndef EDITPANEL_H
2 #define EDITPANEL_H
4 #include "guicast.h"
5 #include "meterpanel.inc"
6 #include "mwindow.inc"
7 #include "manualgoto.inc"
9 class EditPanel;
12 class EditInPoint : public BC_Button
14 public:
15 EditInPoint(MWindow *mwindow, EditPanel *panel, int x, int y);
16 ~EditInPoint();
17 int handle_event();
18 int keypress_event();
19 MWindow *mwindow;
20 EditPanel *panel;
23 class EditOutPoint : public BC_Button
25 public:
26 EditOutPoint(MWindow *mwindow, EditPanel *panel, int x, int y);
27 ~EditOutPoint();
28 int handle_event();
29 int keypress_event();
30 MWindow *mwindow;
31 EditPanel *panel;
34 class EditDelInPoint : public BC_Button
36 public:
37 EditDelInPoint(MWindow *mwindow, EditPanel *panel, int x, int y);
38 ~EditDelInPoint();
39 int handle_event();
40 int keypress_event();
41 MWindow *mwindow;
42 EditPanel *panel;
45 class EditDelOutPoint : public BC_Button
47 public:
48 EditDelOutPoint(MWindow *mwindow, EditPanel *panel, int x, int y);
49 ~EditDelOutPoint();
50 int handle_event();
51 int keypress_event();
52 MWindow *mwindow;
53 EditPanel *panel;
56 class EditSplice : public BC_Button
58 public:
59 EditSplice(MWindow *mwindow, EditPanel *panel, int x, int y);
60 ~EditSplice();
61 int handle_event();
62 int keypress_event();
63 MWindow *mwindow;
64 EditPanel *panel;
67 class EditOverwrite : public BC_Button
69 public:
70 EditOverwrite(MWindow *mwindow, EditPanel *panel, int x, int y);
71 ~EditOverwrite();
72 int handle_event();
73 int keypress_event();
74 MWindow *mwindow;
75 EditPanel *panel;
78 class EditLift : public BC_Button
80 public:
81 EditLift(MWindow *mwindow, EditPanel *panel, int x, int y);
82 ~EditLift();
83 int handle_event();
84 MWindow *mwindow;
85 EditPanel *panel;
88 class EditExtract : public BC_Button
90 public:
91 EditExtract(MWindow *mwindow, EditPanel *panel, int x, int y);
92 ~EditExtract();
93 int handle_event();
94 MWindow *mwindow;
95 EditPanel *panel;
98 class EditToClip : public BC_Button
100 public:
101 EditToClip(MWindow *mwindow, EditPanel *panel, int x, int y);
102 ~EditToClip();
103 int handle_event();
104 int keypress_event();
105 MWindow *mwindow;
106 EditPanel *panel;
109 class EditManualGoto : public BC_Button
111 public:
112 EditManualGoto(MWindow *mwindow, EditPanel *panel, int x, int y);
113 ~EditManualGoto();
114 int handle_event();
115 int keypress_event();
116 MWindow *mwindow;
117 EditPanel *panel;
118 ManualGoto *mangoto;
121 class EditCut : public BC_Button
123 public:
124 EditCut(MWindow *mwindow, EditPanel *panel, int x, int y);
125 ~EditCut();
127 int keypress_event();
128 int handle_event();
130 MWindow *mwindow;
131 EditPanel *panel;
134 class EditCopy : public BC_Button
136 public:
137 EditCopy(MWindow *mwindow, EditPanel *panel, int x, int y);
138 ~EditCopy();
140 int keypress_event();
141 int handle_event();
143 MWindow *mwindow;
144 EditPanel *panel;
147 class EditAppend : public BC_Button
149 public:
150 EditAppend(MWindow *mwindow, EditPanel *panel, int x, int y);
151 ~EditAppend();
153 int handle_event();
155 MWindow *mwindow;
156 EditPanel *panel;
159 class EditInsert : public BC_Button
161 public:
162 EditInsert(MWindow *mwindow, EditPanel *panel, int x, int y);
163 ~EditInsert();
165 int handle_event();
167 MWindow *mwindow;
168 EditPanel *panel;
171 class EditPaste : public BC_Button
173 public:
174 EditPaste(MWindow *mwindow, EditPanel *panel, int x, int y);
175 ~EditPaste();
177 int keypress_event();
178 int handle_event();
180 MWindow *mwindow;
181 EditPanel *panel;
184 class EditTransition : public BC_Button
186 public:
187 EditTransition(MWindow *mwindow, EditPanel *panel, int x, int y);
188 ~EditTransition();
189 int handle_event();
190 MWindow *mwindow;
191 EditPanel *panel;
194 class EditPresentation : public BC_Button
196 public:
197 EditPresentation(MWindow *mwindow, EditPanel *panel, int x, int y);
198 ~EditPresentation();
199 int handle_event();
200 MWindow *mwindow;
201 EditPanel *panel;
204 class EditUndo : public BC_Button
206 public:
207 EditUndo(MWindow *mwindow, EditPanel *panel, int x, int y);
208 ~EditUndo();
209 int keypress_event();
210 int handle_event();
211 MWindow *mwindow;
212 EditPanel *panel;
215 class EditRedo : public BC_Button
217 public:
218 EditRedo(MWindow *mwindow, EditPanel *panel, int x, int y);
219 ~EditRedo();
220 int keypress_event();
221 int handle_event();
222 MWindow *mwindow;
223 EditPanel *panel;
226 class EditLabelbutton : public BC_Button
228 public:
229 EditLabelbutton(MWindow *mwindow, EditPanel *panel, int x, int y);
230 ~EditLabelbutton();
231 int keypress_event();
232 int handle_event();
233 MWindow *mwindow;
234 EditPanel *panel;
237 class EditFit : public BC_Button
239 public:
240 EditFit(MWindow *mwindow, EditPanel *panel, int x, int y);
241 ~EditFit();
242 int keypress_event();
243 int handle_event();
244 MWindow *mwindow;
245 EditPanel *panel;
248 class EditFitAutos : public BC_Button
250 public:
251 EditFitAutos(MWindow *mwindow, EditPanel *panel, int x, int y);
252 ~EditFitAutos();
253 int keypress_event();
254 int handle_event();
255 MWindow *mwindow;
256 EditPanel *panel;
260 class EditPrevLabel : public BC_Button
262 public:
263 EditPrevLabel(MWindow *mwindow,
264 EditPanel *panel,
265 int x,
266 int y,
267 int is_mwindow);
268 ~EditPrevLabel();
270 int keypress_event();
271 int handle_event();
273 MWindow *mwindow;
274 EditPanel *panel;
275 int is_mwindow;
278 class EditNextLabel : public BC_Button
280 public:
281 EditNextLabel(MWindow *mwindow,
282 EditPanel *panel,
283 int x,
284 int y,
285 int is_mwindow);
286 ~EditNextLabel();
288 int keypress_event();
289 int handle_event();
291 MWindow *mwindow;
292 EditPanel *panel;
293 int is_mwindow;
297 class ArrowButton : public BC_Toggle
299 public:
300 ArrowButton(MWindow *mwindow, EditPanel *panel, int x, int y);
301 int handle_event();
302 MWindow *mwindow;
303 EditPanel *panel;
306 class IBeamButton : public BC_Toggle
308 public:
309 IBeamButton(MWindow *mwindow, EditPanel *panel, int x, int y);
310 int handle_event();
311 MWindow *mwindow;
312 EditPanel *panel;
315 class KeyFrameButton : public BC_Toggle
317 public:
318 KeyFrameButton(MWindow *mwindow, int x, int y);
319 int handle_event();
320 MWindow *mwindow;
324 class EditPanel
326 public:
327 EditPanel(MWindow *mwindow,
328 BC_WindowBase *subwindow,
329 int x,
330 int y,
331 int editing_mode, // From edl.inc
332 int use_editing_mode,
333 int use_keyframe,
334 int use_splice, // Extra buttons
335 int use_overwrite,
336 int use_lift,
337 int use_extract,
338 int use_copy, // Use copy when in EDITING_ARROW
339 int use_paste,
340 int use_undo,
341 int use_fit,
342 int use_labels,
343 int use_toclip,
344 int use_meters,
345 int is_mwindow,
346 int use_cut);
347 ~EditPanel();
349 void set_meters(MeterPanel *meter_panel);
350 void update();
351 void delete_buttons();
352 void create_buttons();
353 void reposition_buttons(int x, int y);
354 int create_objects();
355 int get_w();
356 virtual void copy_selection();
357 virtual void splice_selection();
358 virtual void overwrite_selection();
359 virtual void set_inpoint();
360 virtual void set_outpoint();
361 virtual void clear_inpoint();
362 virtual void clear_outpoint();
363 virtual void to_clip();
364 virtual void toggle_label();
365 virtual void prev_label();
366 virtual void next_label();
368 MWindow *mwindow;
369 BC_WindowBase *subwindow;
370 MeterPanel *meter_panel;
372 int use_editing_mode;
373 int use_keyframe;
374 int editing_mode;
375 int use_splice;
376 int use_overwrite;
377 int use_lift;
378 int use_extract;
379 int use_paste;
380 int use_undo;
381 int use_fit;
382 int use_copy;
383 int use_labels;
384 int use_toclip;
385 int use_meters;
386 int x, y, x1, y1;
387 int is_mwindow;
388 int use_cut;
390 EditFit *fit;
391 EditFitAutos *fit_autos;
392 EditInPoint *inpoint;
393 EditOutPoint *outpoint;
394 // EditDelInPoint *delinpoint;
395 // EditDelOutPoint *deloutpoint;
396 EditSplice *splice;
397 EditOverwrite *overwrite;
398 EditLift *lift;
399 EditExtract *extract;
400 EditToClip *clip;
401 EditManualGoto *mangoto;
402 EditCut *cut;
403 EditCopy *copy;
404 EditPaste *paste;
405 EditLabelbutton *labelbutton;
406 EditPrevLabel *prevlabel;
407 EditNextLabel *nextlabel;
408 EditUndo *undo;
409 EditRedo *redo;
410 MeterShow *meters;
411 ArrowButton *arrow;
412 IBeamButton *ibeam;
413 KeyFrameButton *keyframe;
416 #endif