X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fmwindowgui.C;h=66f118714a3636111bcbb06e651c85ab2d7a2bf6;hb=9f0e523f895dabf635f694efc854f2be479d712c;hp=f27896434edf87f15a9e511f2d98937690bb1093;hpb=540f653df26e5e2d1249de1f7a1a3d888dddf341;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/cinelerra/mwindowgui.C b/cinelerra-5.1/cinelerra/mwindowgui.C index f2789643..66f11871 100644 --- a/cinelerra-5.1/cinelerra/mwindowgui.C +++ b/cinelerra-5.1/cinelerra/mwindowgui.C @@ -251,6 +251,7 @@ void MWindowGUI::get_scrollbars(int flush) void MWindowGUI::create_objects() { + lock_window("MWindowGUI::create_objects"); const int debug = 0; resource_thread = new ResourceThread(mwindow, this); @@ -373,6 +374,7 @@ void MWindowGUI::create_objects() pane[TOP_LEFT_PANE]->canvas->activate(); if(debug) printf("MWindowGUI::create_objects %d\n", __LINE__); + unlock_window(); } void MWindowGUI::redraw_time_dependancies() @@ -662,6 +664,29 @@ void MWindowGUI::update_patchbay() } } +void MWindowGUI::update_proxy_toggle() +{ + int value = mwindow->edl->session->proxy_scale == 1 ? 1 : 0; + proxy_toggle->set_value(value); + if( mwindow->edl->session->proxy_scale == 1 && + mwindow->edl->session->proxy_disabled_scale == 1 ) + proxy_toggle->hide(); + else + proxy_toggle->show(); +} + +void MWindowGUI::update_plugintoggles() +{ + for(int i = 0; i < TOTAL_PANES; i++) + { + if(pane[i]) + { + pane[i]->canvas->refresh_plugintoggles(); + } + } + +} + void MWindowGUI::draw_indexes(Indexable *indexable) { for(int i = 0; i < TOTAL_PANES; i++) @@ -711,11 +736,7 @@ void MWindowGUI::flash_canvas(int flush) int MWindowGUI::show_window(int flush) { int ret = BC_WindowBase::show_window(flush); - if( mwindow->edl->session->proxy_scale == 1 && - mwindow->edl->session->proxy_disabled_scale == 1 ) - proxy_toggle->hide_window(); - else - proxy_toggle->show_window(); + update_proxy_toggle(); return ret; } @@ -774,18 +795,6 @@ void MWindowGUI::set_playing_back(int value) } } -void MWindowGUI::update_plugintoggles() -{ - for(int i = 0; i < TOTAL_PANES; i++) - { - if(pane[i]) - { - pane[i]->canvas->refresh_plugintoggles(); - } - } - -} - void MWindowGUI::update_scrollbars(int flush) { for(int i = 0; i < TOTAL_PANES; i++) @@ -1402,14 +1411,6 @@ int MWindowGUI::menu_h() return mainmenu->get_h(); } -int MWindowGUI::mbuttons_w() -{ - int w = get_w(); - w -= mwindow->theme->ffmpeg_toggle[0]->get_w()+2; - w -= mwindow->theme->ffmpeg_toggle[0]->get_w()+2; - return w; -} - void MWindowGUI::start_x_pane_drag() { if(!x_pane_drag) @@ -2391,15 +2392,36 @@ int FFMpegToggle::handle_event() ProxyToggle::ProxyToggle(MWindow *mwindow, MButtons *mbuttons, int x, int y) - : BC_Toggle(x, y, mwindow->theme->proxy_toggle, + : BC_Toggle(x, y, ( !mwindow->edl->session->proxy_use_scaler ? + mwindow->theme->proxy_p_toggle : + mwindow->theme->proxy_s_toggle ), mwindow->edl->session->proxy_disabled_scale != 1) { this->mwindow = mwindow; this->mbuttons = mbuttons; + scaler_images = mwindow->edl->session->proxy_use_scaler; set_tooltip(mwindow->edl->session->proxy_disabled_scale==1 ? _("Disable proxy") : _("Enable proxy")); } +void ProxyToggle::show() +{ + int use_scaler = mwindow->edl->session->proxy_use_scaler; + if( scaler_images != use_scaler ) + set_images(!(scaler_images=use_scaler) ? + mwindow->theme->proxy_p_toggle : + mwindow->theme->proxy_s_toggle ); + draw_face(1, 0); + if( is_hidden() ) + show_window(); +} + +void ProxyToggle::hide() +{ + if( !is_hidden() ) + hide_window(); +} + ProxyToggle::~ProxyToggle() { }