rework histogram_bezier, init wm icon set_icon(gg), update de.po+msg/txt
[goodguy/history.git] / cinelerra-5.1 / cinelerra / mwindowgui.C
index f27896434edf87f15a9e511f2d98937690bb1093..70c4808a959ea8b8c25a72b13fc6abb471ef0227 100644 (file)
@@ -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++)
@@ -1135,15 +1144,6 @@ void MWindowGUI::default_positions()
 }
 
 
-int MWindowGUI::button_release_event()
-{
-       if( keyvalue_popup ) {
-               delete keyvalue_popup;  keyvalue_popup = 0;
-       }
-       return 0;
-}
-
-
 int MWindowGUI::repeat_event(int64_t duration)
 {
 // if(duration == 100)
@@ -1402,14 +1402,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 +2383,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()
 {
 }