#include "tracks.h"
#include "transportque.h"
#include "vtrack.h"
+#include "zoombar.h"
static double my_zoom_table[] =
canvas = new CWindowCanvas(mwindow, this);
canvas->create_objects(mwindow->edl);
- canvas->use_cwindow();
-
add_subwindow(timebar = new CTimeBar(mwindow,
this,
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 ) {
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
1, // use_cut
0, // use_commerical
0, // use_goto
- 1) // use_clk2play
+ 1, // use_clk2play
+ 1) // use_scope
{
this->mwindow = mwindow;
this->cwindow = cwindow;
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)
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()
return 1;
}
+int CWindowCanvas::scope_on()
+{
+ EditPanelScopeDialog *scope_dialog = gui->edit_panel->scope_dialog;
+ if( !scope_dialog || !scope_dialog->scope_gui ) return 0;
+ if( scope_dialog->scope_gui->use_refresh ) return 0;
+ if( scope_dialog->scope_gui->use_release ) return 0;
+ return scope_dialog->running();
+}
+
+void CWindowCanvas::draw_scope(VFrame *output, int refresh)
+{
+ if( !output ) return;
+ EditPanelScopeDialog *scope_dialog = gui->edit_panel->scope_dialog;
+ if( !scope_dialog || !scope_dialog->scope_gui ) return;
+ if( scope_dialog->scope_gui->use_refresh && !refresh ) return;
+ if( scope_dialog->scope_gui->use_release && refresh >= 0 ) return;
+ scope_dialog->process(output);
+}
+
void CWindowCanvas::draw_refresh(int flush)
{
BC_WindowBase *window = get_canvas();
z_keyframe->set_value(1);
gui->sync_parameters(CHANGE_PARAMS, 1, 1);
+ MWindowGUI *mgui = mwindow->gui;
+ mgui->lock_window("CWindowCanvas::reset_keyframe");
+ gui->mwindow->edl->local_session->reset_view_limits();
+ gui->mwindow->gui->zoombar->update_autozoom();
+ mgui->unlock_window();
}
}
{
int result = 0;
const char *undo_label = 0;
+ BC_WindowBase *window = get_canvas();
+ if( window && !window->get_video_on() )
+ draw_scope(refresh_frame, -1);
switch( gui->current_operation ) {
case CWINDOW_SCROLL:
gui->resize_event(gui->get_w(), gui->get_h());
}
-int CWindowCanvas::get_cwindow_controls()
+int CWindowCanvas::get_controls()
{
return mwindow->session->cwindow_controls;
}