X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fcanvas.C;h=14e4351db0e84d2fc13f97ed8cc749b0c2d33cf6;hb=3932d2c16e903573db3cacdb3102dea9639c6ca4;hp=2b3953002d58cc03f8dc56321dd223baea9ede1e;hpb=7fd85fb66168f6b518c5f2d73e04036e87faa0e1;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/cinelerra/canvas.C b/cinelerra-5.1/cinelerra/canvas.C index 2b395300..14e4351d 100644 --- a/cinelerra-5.1/cinelerra/canvas.C +++ b/cinelerra-5.1/cinelerra/canvas.C @@ -88,6 +88,7 @@ void Canvas::reset() canvas_subwindow = 0; canvas_fullscreen = 0; is_processing = 0; + is_fullscreen = 0; cursor_inside = 0; } @@ -135,6 +136,16 @@ void Canvas::use_vwindow() canvas_menu->use_vwindow(); } +int Canvas::get_fullscreen() +{ + return is_fullscreen; +} + +void Canvas::set_fullscreen(int value) +{ + is_fullscreen = value; +} + // Get dimensions given a zoom void Canvas::calculate_sizes(float aspect_ratio, int output_w, @@ -576,6 +587,22 @@ void Canvas::get_scrollbars(EDL *edl, //printf("Canvas::get_scrollbars 5 %d %d\n", get_xscroll(), get_yscroll()); } + +void Canvas::update_geometry(EDL *edl, int x, int y, int w, int h) +{ + int redraw = 0; + if( this->x != x || this->y != y || + this->w != w || this->h != h ) redraw = 1; + if( !redraw ) { + int vx = x, vy = y, vw = w, vh = h; + get_scrollbars(edl, vx, vy, vw, vh); + if( vx != view_x || vy != view_y || + vw != view_w || vh != view_h ) redraw = 1; + } + if( !redraw ) return; + reposition_window(edl, x, y, w, y); +} + void Canvas::reposition_window(EDL *edl, int x, int y, int w, int h) { this->x = view_x = x; this->y = view_y = y; @@ -596,8 +623,6 @@ void Canvas::reposition_window(EDL *edl, int x, int y, int w, int h) canvas_subwindow->flash(0); } } - - draw_refresh(0); } @@ -1036,19 +1061,36 @@ CanvasPopup::~CanvasPopup() { } +CanvasZoomSize::CanvasZoomSize(Canvas *canvas) + : BC_MenuItem(_("Zoom...")) +{ + this->canvas = canvas; +} + +CanvasSizeSubMenu::CanvasSizeSubMenu(CanvasZoomSize *zoom_size) +{ + this->zoom_size = zoom_size; +} + void CanvasPopup::create_objects() { add_item(new BC_MenuItem("-")); add_item(new CanvasFullScreenItem(canvas)); - add_item(new CanvasPopupSize(canvas, _("Zoom 25%"), 0.25)); - add_item(new CanvasPopupSize(canvas, _("Zoom 33%"), 0.33)); - add_item(new CanvasPopupSize(canvas, _("Zoom 50%"), 0.5)); - add_item(new CanvasPopupSize(canvas, _("Zoom 75%"), 0.75)); - add_item(new CanvasPopupSize(canvas, _("Zoom 100%"), 1.0)); - add_item(new CanvasPopupSize(canvas, _("Zoom 150%"), 1.5)); - add_item(new CanvasPopupSize(canvas, _("Zoom 200%"), 2.0)); - add_item(new CanvasPopupSize(canvas, _("Zoom 300%"), 3.0)); - add_item(new CanvasPopupSize(canvas, _("Zoom 400%"), 4.0)); + + CanvasZoomSize *zoom_size = new CanvasZoomSize(canvas); + add_item(zoom_size); + CanvasSizeSubMenu *submenu = new CanvasSizeSubMenu(zoom_size); + zoom_size->add_submenu(submenu); + + submenu->add_submenuitem(new CanvasPopupSize(canvas, _("Zoom 25%"), 0.25)); + submenu->add_submenuitem(new CanvasPopupSize(canvas, _("Zoom 33%"), 0.33)); + submenu->add_submenuitem(new CanvasPopupSize(canvas, _("Zoom 50%"), 0.5)); + submenu->add_submenuitem(new CanvasPopupSize(canvas, _("Zoom 75%"), 0.75)); + submenu->add_submenuitem(new CanvasPopupSize(canvas, _("Zoom 100%"), 1.0)); + submenu->add_submenuitem(new CanvasPopupSize(canvas, _("Zoom 150%"), 1.5)); + submenu->add_submenuitem(new CanvasPopupSize(canvas, _("Zoom 200%"), 2.0)); + submenu->add_submenuitem(new CanvasPopupSize(canvas, _("Zoom 300%"), 3.0)); + submenu->add_submenuitem(new CanvasPopupSize(canvas, _("Zoom 400%"), 4.0)); } void CanvasPopup::use_cwindow() @@ -1056,6 +1098,8 @@ void CanvasPopup::use_cwindow() add_item(new CanvasPopupAuto(canvas)); add_item(new CanvasPopupResetCamera(canvas)); add_item(new CanvasPopupResetProjector(canvas)); + add_item(new CanvasPopupCameraKeyframe(canvas)); + add_item(new CanvasPopupProjectorKeyframe(canvas)); add_item(toggle_controls = new CanvasToggleControls(canvas)); } @@ -1101,7 +1145,7 @@ int CanvasPopupSize::handle_event() CanvasPopupResetCamera::CanvasPopupResetCamera(Canvas *canvas) - : BC_MenuItem(_("Reset camera"), "F11", KEY_F11) + : BC_MenuItem(_("Reset camera"), _("F11"), KEY_F11) { this->canvas = canvas; } @@ -1111,10 +1155,8 @@ int CanvasPopupResetCamera::handle_event() return 1; } - - CanvasPopupResetProjector::CanvasPopupResetProjector(Canvas *canvas) - : BC_MenuItem(_("Reset projector"), "F12", KEY_F12) + : BC_MenuItem(_("Reset projector"), _("F12"), KEY_F12) { this->canvas = canvas; } @@ -1125,6 +1167,31 @@ int CanvasPopupResetProjector::handle_event() } +CanvasPopupCameraKeyframe::CanvasPopupCameraKeyframe(Canvas *canvas) + : BC_MenuItem(_("Camera keyframe"), _("Shift-F11"), KEY_F11) +{ + this->canvas = canvas; + set_shift(1); +} +int CanvasPopupCameraKeyframe::handle_event() +{ + canvas->camera_keyframe(); + return 1; +} + +CanvasPopupProjectorKeyframe::CanvasPopupProjectorKeyframe(Canvas *canvas) + : BC_MenuItem(_("Projector keyframe"), _("Shift-F12"), KEY_F12) +{ + this->canvas = canvas; + set_shift(1); +} +int CanvasPopupProjectorKeyframe::handle_event() +{ + canvas->projector_keyframe(); + return 1; +} + + CanvasPopupResetTranslation::CanvasPopupResetTranslation(Canvas *canvas) : BC_MenuItem(_("Reset translation"))