X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=gtk%2Fsrc%2Fpreview.c;h=7d8b690fd6d6db09f25e987e17e13bac57f06fb3;hb=b9de509bdbecf022aeade8c57e33e7ffe3f56cf6;hp=9fd92bf5319d13cc35b389e12f6c49c15adf0dac;hpb=3e4cd1e0f7d8428ee2ad6f4e93d2b1ac08deef3e;p=handbrake-jp%2Fhandbrake-jp-git.git diff --git a/gtk/src/preview.c b/gtk/src/preview.c index 9fd92bf5..7d8b690f 100644 --- a/gtk/src/preview.c +++ b/gtk/src/preview.c @@ -156,7 +156,11 @@ ghb_preview_init(signal_user_data_t *ud) GstBus *bus; GstElement *xover; +#if !defined(_WIN32) ud->preview->xid = GDK_DRAWABLE_XID(ud->preview->view->window); +#else + ud->preview->xid = GDK_WINDOW_HWND(ud->preview->view->window); +#endif ud->preview->play = gst_element_factory_make("playbin", "play"); //xover = gst_element_factory_make("xvimagesink", "xover"); //xover = gst_element_factory_make("ximagesink", "xover"); @@ -209,8 +213,13 @@ create_window(GstBus *bus, GstMessage *msg, gpointer data) { if (!gst_structure_has_name(msg->structure, "prepare-xwindow-id")) return GST_BUS_PASS; +#if !defined(_WIN32) gst_x_overlay_set_xwindow_id( GST_X_OVERLAY(GST_MESSAGE_SRC(msg)), preview->xid); +#else + gst_directdraw_sink_set_window_id( + GST_X_OVERLAY(GST_MESSAGE_SRC(msg)), preview->xid); +#endif gst_message_unref(msg); return GST_BUS_DROP; } break; @@ -831,25 +840,38 @@ set_visible(GtkWidget *widget, gboolean visible) } } -G_MODULE_EXPORT void -preview_button_clicked_cb(GtkWidget *xwidget, signal_user_data_t *ud) +void +ghb_preview_set_visible(signal_user_data_t *ud) { gint titleindex; + GtkWidget *widget; + gboolean settings_active; - g_debug("preview_button_clicked_cb()"); + settings_active = ghb_settings_get_boolean(ud->settings, "show_picture"); + widget = GHB_WIDGET (ud->builder, "preview_window"); titleindex = ghb_settings_combo_int(ud->settings, "title"); - if (titleindex >= 0) + if (settings_active && titleindex >= 0) { gint x, y; - GtkWidget *widget = GHB_WIDGET (ud->builder, "preview_window"); x = ghb_settings_get_int(ud->settings, "preview_x"); y = ghb_settings_get_int(ud->settings, "preview_y"); if (x >= 0 && y >= 0) gtk_window_move(GTK_WINDOW(widget), x, y); - set_visible(widget, gtk_toggle_button_get_active( - GTK_TOGGLE_BUTTON(xwidget))); + set_visible(widget, + ghb_settings_get_boolean(ud->settings, "show_preview")); + } + else + { + set_visible(widget, FALSE); } +} + +G_MODULE_EXPORT void +preview_button_clicked_cb(GtkWidget *xwidget, signal_user_data_t *ud) +{ + g_debug("preview_button_clicked_cb()"); ghb_widget_to_setting (ud->settings, xwidget); + ghb_preview_set_visible(ud); ghb_check_dependency(ud, xwidget, NULL); const gchar *name = gtk_widget_get_name(xwidget); ghb_pref_save(ud->settings, name); @@ -858,33 +880,23 @@ preview_button_clicked_cb(GtkWidget *xwidget, signal_user_data_t *ud) G_MODULE_EXPORT void picture_settings_clicked_cb(GtkWidget *xwidget, signal_user_data_t *ud) { - GtkWidget *widget, *toggle; + GtkWidget *widget; gboolean active, hide_settings; gint x, y; g_debug("picture_settings_clicked_cb()"); - toggle = GHB_WIDGET (ud->builder, "hide_settings"); - hide_settings = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(toggle)); + ghb_widget_to_setting (ud->settings, xwidget); + hide_settings = ghb_settings_get_boolean(ud->settings, "hide_settings"); + + active = ghb_settings_get_boolean(ud->settings, "show_picture"); widget = GHB_WIDGET (ud->builder, "settings_window"); - active = gtk_toggle_tool_button_get_active(GTK_TOGGLE_TOOL_BUTTON(xwidget)); x = ghb_settings_get_int(ud->settings, "settings_x"); y = ghb_settings_get_int(ud->settings, "settings_y"); if (x >= 0 && y >= 0) gtk_window_move(GTK_WINDOW(widget), x, y); set_visible(widget, active && !hide_settings); - if (ghb_settings_get_boolean(ud->settings, "show_preview")) - { - widget = GHB_WIDGET (ud->builder, "preview_window"); - x = ghb_settings_get_int(ud->settings, "preview_x"); - y = ghb_settings_get_int(ud->settings, "preview_y"); - if (x >= 0 && y >= 0) - gtk_window_move(GTK_WINDOW(widget), x, y); - set_visible(widget, active); - // The window may be hidden behind the main window, raise it - if (active) - gtk_window_present(GTK_WINDOW(widget)); - } + ghb_preview_set_visible(ud); } G_MODULE_EXPORT void @@ -949,8 +961,10 @@ picture_settings_alt2_clicked_cb(GtkWidget *xwidget, signal_user_data_t *ud) GtkWidget *window; g_debug("picture_settings_alt2_clicked_cb()"); + ghb_widget_to_setting (ud->settings, xwidget); + active = ghb_settings_get_boolean(ud->settings, "hide_settings"); + toggle = GHB_WIDGET (ud->builder, "hide_settings"); - active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(toggle)); window = GHB_WIDGET(ud->builder, "settings_window"); if (!active) {