upgrades to scopewindow, add blurbox, bd.sh sed tab test, tweak clk2play over window...
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / cwindowgui.C
index 052a713d9a3eb5d831c7666ea464c15829a600c6..beac0f8184b22e87b9538b2781b7573a56c03a44 100644 (file)
@@ -163,8 +163,6 @@ void CWindowGUI::create_objects()
        canvas = new CWindowCanvas(mwindow, this);
 
        canvas->create_objects(mwindow->edl);
-       canvas->use_cwindow();
-
 
        add_subwindow(timebar = new CTimeBar(mwindow,
                this,
@@ -283,7 +281,7 @@ int CWindowGUI::button_press_event()
        if( current_operation == CWINDOW_NONE &&
            mwindow->edl != 0 && canvas->get_canvas() &&
            mwindow->edl->session->cwindow_click2play &&
-           canvas->get_canvas()->get_cursor_over_window() ) {
+           canvas->get_canvas()->cursor_above() ) {
                switch( get_buttonpress() ) {
                case LEFT_BUTTON:
                        if( !cwindow->playback_engine->is_playing_back ) {
@@ -746,7 +744,7 @@ CWindowEditing::CWindowEditing(MWindow *mwindow, CWindow *cwindow)
                mwindow->theme->cedit_x, mwindow->theme->cedit_y,
                mwindow->edl->session->editing_mode,
                0, // use_editing_mode
-               1, // use_keyframe
+               0, // use_keyframe
                0, // use_splice
                0, // use_overwrite
                1, // use_copy
@@ -760,7 +758,8 @@ CWindowEditing::CWindowEditing(MWindow *mwindow, CWindow *cwindow)
                1, // use_cut
                0, // use_commerical
                0, // use_goto
-               1) // use_clk2play
+               1, // use_clk2play
+               1) // use_scope
 {
        this->mwindow = mwindow;
        this->cwindow = cwindow;
@@ -972,6 +971,22 @@ void CWindowTransport::goto_end()
        gui->lock_window("CWindowTransport::goto_end 2");
 }
 
+CWindowCanvasToggleControls::CWindowCanvasToggleControls(CWindowCanvas *canvas)
+ : BC_MenuItem(calculate_text(canvas->get_controls()))
+{
+       this->canvas = canvas;
+}
+int CWindowCanvasToggleControls::handle_event()
+{
+       canvas->toggle_controls();
+       set_text(calculate_text(canvas->get_controls()));
+       return 1;
+}
+
+const char *CWindowCanvasToggleControls::calculate_text(int controls)
+{
+       return !controls ? _("Show controls") : _("Hide controls");
+}
 
 
 CWindowCanvas::CWindowCanvas(MWindow *mwindow, CWindowGUI *gui)
@@ -985,6 +1000,19 @@ CWindowCanvas::CWindowCanvas(MWindow *mwindow, CWindowGUI *gui)
        last_xscroll = 0;
        last_yscroll = 0;
        last_zoom = 0;
+       controls = 0;
+}
+
+void CWindowCanvas::create_objects(EDL *edl)
+{
+       Canvas::create_objects(edl);
+       canvas_menu->add_item(new CanvasPopupAuto(this));
+       canvas_menu->add_item(new CanvasPopupResetCamera(this));
+       canvas_menu->add_item(new CanvasPopupResetProjector(this));
+       canvas_menu->add_item(new CanvasPopupCameraKeyframe(this));
+       canvas_menu->add_item(new CanvasPopupProjectorKeyframe(this));
+       canvas_menu->add_item(controls = new CWindowCanvasToggleControls(this));
+       fullscreen_menu->add_item(new CanvasPopupAuto(this));
 }
 
 void CWindowCanvas::status_event()
@@ -1064,6 +1092,18 @@ int CWindowCanvas::do_scroll(EDL *edl, float cursor_x, float cursor_y)
        return 1;
 }
 
+int CWindowCanvas::scope_on()
+{
+       return !gui->edit_panel->scope_dialog ? 0 :
+               gui->edit_panel->scope_dialog->running();
+}
+
+void CWindowCanvas::draw_scope(VFrame *output)
+{
+       if( gui->edit_panel->scope_dialog && output )
+               gui->edit_panel->scope_dialog->process(output);
+}
+
 void CWindowCanvas::draw_refresh(int flush)
 {
        BC_WindowBase *window = get_canvas();
@@ -3373,7 +3413,7 @@ void CWindowCanvas::toggle_controls()
        gui->resize_event(gui->get_w(), gui->get_h());
 }
 
-int CWindowCanvas::get_cwindow_controls()
+int CWindowCanvas::get_controls()
 {
        return mwindow->session->cwindow_controls;
 }