X-Git-Url: https://git.cinelerra-gg.org/git/?p=goodguy%2Fcinelerra.git;a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fzwindowgui.C;h=62bcb93e17e58d76747ced7436a3b137089feb7f;hp=9657b5731380f31eeb1daeb7503646e7b3946bfb;hb=b78b166faf60a1c7357f990b1e2fb0e70be29fee;hpb=e8453fdab4d5ed7b384279a5b37c92010ac13295 diff --git a/cinelerra-5.1/cinelerra/zwindowgui.C b/cinelerra-5.1/cinelerra/zwindowgui.C index 9657b573..62bcb93e 100644 --- a/cinelerra-5.1/cinelerra/zwindowgui.C +++ b/cinelerra-5.1/cinelerra/zwindowgui.C @@ -39,7 +39,7 @@ ZWindowGUI::ZWindowGUI(MWindow *mwindow, ZWindow *zwindow, Mixer *mixer) : BC_Window(zwindow->title, mixer->x, mixer->y, mixer->w, mixer->h, - 100, 75, 1, 1, 0) + xS(100), yS(75), 1, 1, 0) { this->mwindow = mwindow; this->zwindow = zwindow; @@ -59,7 +59,8 @@ void ZWindowGUI::create_objects() { lock_window("ZWindowGUI::create_objects"); - canvas = new ZWindowCanvas(mwindow, this, 10,10, get_w()-20,get_h()-20); + canvas = new ZWindowCanvas(mwindow, this, + xS(10),yS(10), get_w()-xS(20),get_h()-yS(20)); canvas->create_objects(mwindow->edl); playback_engine = new PlaybackEngine(mwindow, canvas); playback_engine->create_objects(); @@ -71,7 +72,8 @@ void ZWindowGUI::create_objects() int ZWindowGUI::resize_event(int w, int h) { - canvas->reposition_window(0, 10,10, w-20,h-20); + canvas->reposition_window(0, + xS(10),yS(10), w-xS(20),h-yS(20)); zwindow->reposition(get_x(), get_y(), w, h); BC_WindowBase::resize_event(w, h); return 1; @@ -94,26 +96,22 @@ int ZWindowGUI::keypress_event() close_event(); return 1; } - unlock_window(); int result = 1; switch( key ) { case 'f': - if( canvas->get_fullscreen() ) - canvas->stop_fullscreen(); - else - canvas->start_fullscreen(); + canvas->set_fullscreen(canvas->get_fullscreen() ? 0 : 1); break; case ESC: - if( canvas->get_fullscreen() ) - canvas->stop_fullscreen(); + canvas->set_fullscreen(0); break; default: + unlock_window(); mwindow->gui->lock_window("ZWindowGUI::keypress_event"); result = mwindow->gui->mbuttons->transport->do_keypress(key); mwindow->gui->unlock_window(); + lock_window("ZWindowGUI::keypress_event 1"); } - lock_window("ZWindowGUI::keypress_event 1"); return result; } @@ -246,3 +244,17 @@ void ZWindowCanvas::draw_refresh(int flush) cvs->flash(flush); } +float ZWindowCanvas::get_auto_zoom() +{ + EDL *edl = gui->zwindow->edl; + if( !edl ) edl = mwindow->edl; + float conformed_w, conformed_h; + edl->calculate_conformed_dimensions(0, conformed_w, conformed_h); + BC_WindowBase *window = get_canvas(); + int cw = window ? window->get_w() : w; + int ch = window ? window->get_h() : h; + float zoom_x = cw / conformed_w; + float zoom_y = ch / conformed_h; + return zoom_x < zoom_y ? zoom_x : zoom_y; +} +