remove unimpl shortcuts ctrl/shft-e for collect/paste effects
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / editpanel.h
index 9b5fe1a4fc037c639598570af21456ccc2c8dd4a..b81d9fed0d385d4e654d424435fec4e7407cb313 100644 (file)
 #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; }