version update
[goodguy/history.git] / cinelerra-5.1 / cinelerra / mwindowgui.C
index 660c6d88b18ede9b7fcd41b55c7c7f65147605c6..ed12ca654267b0dbce7b66ec9464669c1324a8f7 100644 (file)
@@ -120,6 +120,7 @@ MWindowGUI::MWindowGUI(MWindow *mwindow)
        plugin_menu = 0;
        keyframe_menu = 0;
        keyframe_hide = 0;
+       keyvalue_popup = 0;
        transition_menu = 0;
        remote_control = 0;
        cwindow_remote_handler = 0;
@@ -134,6 +135,7 @@ MWindowGUI::~MWindowGUI()
        delete cwindow_remote_handler;
        delete record_remote_handler;
        delete remote_control;
+       delete keyvalue_popup;
 //     delete samplescroll;
 //     delete trackscroll;
        for(int i = 0; i < TOTAL_PANES; i++)
@@ -403,11 +405,12 @@ int MWindowGUI::resize_event(int w, int h)
        int x = w - MainShBtns::calculate_w(0);
        mainmenu->resize_event(x, mainmenu->get_h());
        mainshbtns->reposition_window(x, -1);
+       ffmpeg_toggle->reposition_window(menu_w(), menu_h()+2);
        mwindow->theme->get_mwindow_sizes(this, w, h);
        mwindow->theme->draw_mwindow_bg(this);
        mbuttons->resize_event();
-       ffmpeg_toggle->reposition_window(menu_w(), menu_h()+2);
        statusbar->resize_event();
+       zoombar->resize_event();
 
        resource_thread->stop_draw(1);
 
@@ -527,17 +530,12 @@ int MWindowGUI::resize_event(int w, int h)
                                pane[BOTTOM_RIGHT_PANE]->y);
        }
 
-       resource_thread->start_draw();
-
        update_pane_dividers();
-       zoombar->resize_event();
        pane_button->reposition_window(w - mwindow->theme->get_image_set("pane")[0]->get_w(),
                mwindow->theme->mzoom_y + 1 - mwindow->theme->get_image_set("pane")[0]->get_h());
-//     get_scrollbars(0);
-//     canvas->resize_event();
-//printf("MWindowGUI::resize_event %d\n", __LINE__);
-// required to get new widgets to appear after a pane deletion
-       show_window();
+       resource_thread->start_draw();
+
+       flash(1);
        return 0;
 }
 
@@ -1059,7 +1057,8 @@ void MWindowGUI::default_positions()
 {
 //printf("MWindowGUI::default_positions 1\n");
        VWindow *vwindow = mwindow->vwindows.size() > DEFAULT_VWINDOW ?
-               mwindow->vwindows.get(0) : 0;
+               mwindow->vwindows.get(DEFAULT_VWINDOW) : 0;
+       if( vwindow && !vwindow->is_running() ) vwindow = 0;
        if( vwindow ) vwindow->gui->lock_window("MWindowGUI::default_positions");
        mwindow->cwindow->gui->lock_window("MWindowGUI::default_positions");
        mwindow->awindow->gui->lock_window("MWindowGUI::default_positions");
@@ -1112,19 +1111,13 @@ 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)
@@ -1249,6 +1242,7 @@ int MWindowGUI::keypress_event()
        case LEFTTAB:
                Track *this_track = 0;
                for( int i=0; i<TOTAL_PANES; ++i ) {
+                       if( !pane[i] ) continue;
                        if( (this_track = pane[i]->over_track()) != 0 ) break;
                        if( (this_track = pane[i]->over_patchbay()) != 0 ) break;
                }
@@ -1283,7 +1277,6 @@ int MWindowGUI::keypress_event()
        return result;
 }
 
-
 int MWindowGUI::keyboard_listener(BC_WindowBase *wp)
 {
        return key_listener(wp->get_keypress());
@@ -1300,7 +1293,7 @@ int MWindowGUI::key_listener(int key)
                        record->record_gui->interrupt_thread->start(0);
                break;
        case KPHAND:
-               mwindow->quit(0);
+               mwindow->quit();
                break;
 #ifdef HAVE_DVB
        case KPBOOK:
@@ -2005,7 +1998,7 @@ void MWindowGUI::load_panes()
                                                cursor_y,
                                        mwindow->theme->mcanvas_x +
                                                mwindow->theme->mcanvas_w -
-                                               cursor_x,
+                                               cursor_x -  mwindow->theme->pane_w,
                                        mwindow->theme->mcanvas_h -
                                                cursor_y);
                                pane[TOP_RIGHT_PANE]->create_objects();
@@ -2036,7 +2029,7 @@ void MWindowGUI::load_panes()
                                                cursor_y,
                                        mwindow->theme->mcanvas_x +
                                                mwindow->theme->mcanvas_w -
-                                               cursor_x,
+                                               cursor_x - mwindow->theme->pane_w,
                                        mwindow->theme->mcanvas_h -
                                                cursor_y);
                                pane[BOTTOM_RIGHT_PANE]->resize_event(
@@ -2273,19 +2266,18 @@ int PaneButton::cursor_motion_event()
 int PaneButton::button_release_event()
 {
        mwindow->gui->stop_pane_drag();
-
        int result = BC_Button::button_release_event();
        return result;
 }
 
 
 FFMpegToggle::FFMpegToggle(MWindow *mwindow, MButtons *mbuttons, int x, int y)
- : BC_Toggle(x, y, mwindow->theme->ffmpeg_toggle, mwindow->preferences->ffmpeg_early_probe)
+ : BC_Toggle(x, y, mwindow->theme->ffmpeg_toggle,
+        mwindow->preferences->get_file_probe_armed("FFMPEG_Early") > 0 ? 1 : 0)
 {
        this->mwindow = mwindow;
        this->mbuttons = mbuttons;
-       set_tooltip( mwindow->preferences->ffmpeg_early_probe ?
-               _("Try FFMpeg first") : _("Try FFMpeg last"));
+       set_tooltip( !get_value() ? _("Try FFMpeg first") : _("Try FFMpeg last") );
 }
 
 FFMpegToggle::~FFMpegToggle()
@@ -2294,9 +2286,11 @@ FFMpegToggle::~FFMpegToggle()
 
 int FFMpegToggle::handle_event()
 {
-       mwindow->preferences->ffmpeg_early_probe = get_value();
-       set_tooltip( mwindow->preferences->ffmpeg_early_probe ?
-               _("Try FFMpeg first") : _("Try FFMpeg last"));
+       int ffmpeg_early_probe = get_value();
+       set_tooltip( !ffmpeg_early_probe ?  _("Try FFMpeg first") : _("Try FFMpeg last"));
+       mwindow->preferences->set_file_probe_armed("FFMPEG_Early", ffmpeg_early_probe);
+       mwindow->preferences->set_file_probe_armed("FFMPEG_Late", !ffmpeg_early_probe);
+       
        mwindow->show_warning(&mwindow->preferences->warn_indexes,
                _("Changing the base codecs may require rebuilding indexes."));
        return 1;