X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Feditpanel.h;h=b81d9fed0d385d4e654d424435fec4e7407cb313;hb=a76213673ecbfe4d860fb20de1b79ebc0d99c004;hp=67ce8a1e67e98cf68831cd5613f7e75249b1fef7;hpb=7fd85fb66168f6b518c5f2d73e04036e87faa0e1;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/cinelerra/editpanel.h b/cinelerra-5.1/cinelerra/editpanel.h index 67ce8a1e..b81d9fed 100644 --- a/cinelerra-5.1/cinelerra/editpanel.h +++ b/cinelerra-5.1/cinelerra/editpanel.h @@ -22,11 +22,15 @@ #ifndef EDITPANEL_H #define EDITPANEL_H +#include "bcdialog.h" #include "guicast.h" #include "editpanel.inc" #include "meterpanel.inc" #include "mwindow.inc" #include "manualgoto.inc" +#include "scopewindow.h" + + class EditPanel; @@ -97,26 +101,6 @@ public: EditPanel *panel; }; -class EditLift : public BC_Button -{ -public: - EditLift(MWindow *mwindow, EditPanel *panel, int x, int y); - ~EditLift(); - int handle_event(); - MWindow *mwindow; - EditPanel *panel; -}; - -class EditExtract : public BC_Button -{ -public: - EditExtract(MWindow *mwindow, EditPanel *panel, int x, int y); - ~EditExtract(); - int handle_event(); - MWindow *mwindow; - EditPanel *panel; -}; - class EditToClip : public BC_Button { public: @@ -192,30 +176,6 @@ public: EditPanel *panel; }; -class EditAppend : public BC_Button -{ -public: - EditAppend(MWindow *mwindow, EditPanel *panel, int x, int y); - ~EditAppend(); - - int handle_event(); - - MWindow *mwindow; - EditPanel *panel; -}; - -class EditInsert : public BC_Button -{ -public: - EditInsert(MWindow *mwindow, EditPanel *panel, int x, int y); - ~EditInsert(); - - int handle_event(); - - MWindow *mwindow; - EditPanel *panel; -}; - class EditPaste : public BC_Button { public: @@ -229,26 +189,6 @@ public: EditPanel *panel; }; -class EditTransition : public BC_Button -{ -public: - EditTransition(MWindow *mwindow, EditPanel *panel, int x, int y); - ~EditTransition(); - int handle_event(); - MWindow *mwindow; - EditPanel *panel; -}; - -class EditPresentation : public BC_Button -{ -public: - EditPresentation(MWindow *mwindow, EditPanel *panel, int x, int y); - ~EditPresentation(); - int handle_event(); - MWindow *mwindow; - EditPanel *panel; -}; - class EditUndo : public BC_Button { public: @@ -386,11 +326,66 @@ public: EditPanel *panel; }; +class SpanKeyFrameButton : public BC_Toggle +{ +public: + SpanKeyFrameButton(MWindow *mwindow, EditPanel *panel, int x, int y); + int handle_event(); + MWindow *mwindow; + EditPanel *panel; +}; + class LockLabelsButton : public BC_Toggle { public: - LockLabelsButton(MWindow *mwindow, int x, int y); + LockLabelsButton(MWindow *mwindow, EditPanel *panel, int x, int y); + int handle_event(); + MWindow *mwindow; + EditPanel *panel; +}; + + +class EditPanelScopeGUI : public ScopeGUI +{ +public: + EditPanelScopeGUI(MWindow *mwindow, EditPanelScopeDialog *dialog); + ~EditPanelScopeGUI(); + + void create_objects(); + void toggle_event(); + int translation_event(); + int resize_event(int w, int h); + void update_scope(); + + MWindow *mwindow; + EditPanelScopeDialog *dialog; +}; + +class EditPanelScopeDialog : public BC_DialogThread +{ +public: + EditPanelScopeDialog(MWindow *mwindow, EditPanel *panel); + ~EditPanelScopeDialog(); + + void handle_close_event(int result); + void handle_done_event(int result); + BC_Window* new_gui(); + void process(VFrame *output_frame); + + MWindow *mwindow; + EditPanel *panel; + EditPanelScopeGUI *scope_gui; + Mutex *gui_lock; + VFrame *output_frame; +}; + +class EditPanelScope : public BC_Toggle +{ +public: + EditPanelScope(MWindow *mwindow, EditPanel *panel, int x, int y); + ~EditPanelScope(); int handle_event(); + EditPanel *panel; MWindow *mwindow; }; @@ -405,8 +400,6 @@ public: int use_keyframe, int use_splice, // Extra buttons int use_overwrite, - int use_lift, - int use_extract, int use_copy, // Use copy when in EDITING_ARROW int use_paste, int use_undo, @@ -418,7 +411,8 @@ public: int use_cut, int use_commerical, int use_goto, - int use_clk2play); + int use_clk2play, + int use_scope); ~EditPanel(); void set_meters(MeterPanel *meter_panel); @@ -430,20 +424,32 @@ public: void reposition_buttons(int x, int y); void create_objects(); int get_w(); - virtual void copy_selection(); - virtual void splice_selection(); - virtual void overwrite_selection(); - virtual void set_inpoint(); - virtual void set_outpoint(); - virtual void unset_inoutpoint(); - virtual void to_clip() = 0; - virtual void toggle_label(); - virtual void prev_label(int cut); - virtual void next_label(int cut); - virtual void prev_edit(int cut); - virtual void next_edit(int cut); - virtual double get_position(); - virtual void set_position(double position); + + virtual double get_position() = 0; + virtual void set_position(double position) = 0; + virtual void set_click_to_play(int v) = 0; + + virtual void panel_stop_transport() = 0; + virtual void panel_toggle_label() = 0; + virtual void panel_next_label(int cut) = 0; + virtual void panel_prev_label(int cut) = 0; + virtual void panel_prev_edit(int cut) = 0; + virtual void panel_next_edit(int cut) = 0; + virtual void panel_copy_selection() = 0; + virtual void panel_overwrite_selection() = 0; + virtual void panel_splice_selection() = 0; + virtual void panel_set_inpoint() = 0; + virtual void panel_set_outpoint() = 0; + virtual void panel_unset_inoutpoint() = 0; + virtual void panel_to_clip() = 0; + virtual void panel_cut() = 0; + virtual void panel_paste() = 0; + virtual void panel_fit_selection() = 0; + virtual void panel_fit_autos(int all) = 0; + virtual void panel_set_editing_mode(int mode) = 0; + virtual void panel_set_auto_keyframes(int v) = 0; + virtual void panel_set_span_keyframes(int v) = 0; + virtual void panel_set_labels_follow_edits(int v) = 0; MWindow *mwindow; BC_WindowBase *subwindow; @@ -456,8 +462,6 @@ public: int use_keyframe; int use_splice; int use_overwrite; - int use_lift; - int use_extract; int use_paste; int use_undo; int use_fit; @@ -470,6 +474,7 @@ public: int use_commercial; int use_goto; int use_clk2play; + int use_scope; EditFit *fit; EditFitAutos *fit_autos; @@ -479,13 +484,13 @@ public: // EditDelOutPoint *deloutpoint; EditSplice *splice; EditOverwrite *overwrite; - EditLift *lift; - EditExtract *extract; EditToClip *clip; EditCut *cut; EditCommercial *commercial; EditManualGoto *mangoto; EditClick2Play *click2play; + EditPanelScope *scope; + EditPanelScopeDialog *scope_dialog; EditCopy *copy; EditPaste *paste; EditLabelbutton *labelbutton; @@ -499,6 +504,7 @@ public: ArrowButton *arrow; IBeamButton *ibeam; KeyFrameButton *keyframe; + SpanKeyFrameButton *span_keyframe; LockLabelsButton *locklabels; int is_mwindow() { return window_id == MWINDOW_ID; }