X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Feditpanel.h;h=b81d9fed0d385d4e654d424435fec4e7407cb313;hb=a76213673ecbfe4d860fb20de1b79ebc0d99c004;hp=9b5fe1a4fc037c639598570af21456ccc2c8dd4a;hpb=0c7b0aebb5e9f85f4eb7abb69b800d8d37b30b0f;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/cinelerra/editpanel.h b/cinelerra-5.1/cinelerra/editpanel.h index 9b5fe1a4..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; @@ -322,6 +326,15 @@ 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: @@ -332,6 +345,51 @@ public: }; +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; +}; + + class EditPanel { public: @@ -353,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); @@ -389,6 +448,7 @@ public: 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; @@ -414,6 +474,7 @@ public: int use_commercial; int use_goto; int use_clk2play; + int use_scope; EditFit *fit; EditFitAutos *fit_autos; @@ -428,6 +489,8 @@ public: EditCommercial *commercial; EditManualGoto *mangoto; EditClick2Play *click2play; + EditPanelScope *scope; + EditPanelScopeDialog *scope_dialog; EditCopy *copy; EditPaste *paste; EditLabelbutton *labelbutton; @@ -441,6 +504,7 @@ public: ArrowButton *arrow; IBeamButton *ibeam; KeyFrameButton *keyframe; + SpanKeyFrameButton *span_keyframe; LockLabelsButton *locklabels; int is_mwindow() { return window_id == MWINDOW_ID; }