[Xfce4-commits] xfce4-settings:bluesabre/display-settings Connected Advanced button in minimal dialog.
Updating branch refs/heads/bluesabre/display-settings to 2e57f485c4e66edaf405583f880945b9e7ace5a7 (commit) from 1499a6c1cc8cf74dd4b5b453830cd9b25302d8fe (commit) commit 2e57f485c4e66edaf405583f880945b9e7ace5a7 Author: Sean Davis smd.seanda...@gmail.com Date: Thu Oct 4 15:55:34 2012 -0400 Connected Advanced button in minimal dialog. dialogs/display-settings/main.c | 257 --- 1 file changed, 156 insertions(+), 101 deletions(-) diff --git a/dialogs/display-settings/main.c b/dialogs/display-settings/main.c index 03ebbc5..3b4edb1 100644 --- a/dialogs/display-settings/main.c +++ b/dialogs/display-settings/main.c @@ -60,6 +60,13 @@ enum N_COMBO_COLUMNS }; +typedef struct { +GtkBuilder *builder; +GdkDisplay *display; +gint event_base; +GError *error; +} minimal_advanced_context; + /* Xrandr rotation name conversion */ @@ -1556,15 +1563,158 @@ screen_on_event (GdkXEvent *xevent, return GDK_FILTER_CONTINUE; } +static void +display_settings_show_main_dialog (GdkDisplay *display, + gint event_base, + GError *error) +{ +GtkBuilder *builder; +GtkWidget *dialog; + +GtkWidget *plug; +GObject *plug_child; + +/* Load the Gtk user-interface file */ +builder = gtk_builder_new (); +if (gtk_builder_add_from_string (builder, display_dialog_ui, + display_dialog_ui_length, error) != 0) +{ +/* Build the dialog */ +dialog = display_settings_dialog_new (builder); +XFCE_RANDR_EVENT_BASE (xfce_randr) = event_base; +/* Set up notifications */ +XRRSelectInput (gdk_x11_display_get_xdisplay (display), +GDK_WINDOW_XID (gdk_get_default_root_window ()), +RRScreenChangeNotifyMask); +gdk_x11_register_standard_event_type (display, + event_base, + RRNotify + 1); +gdk_window_add_filter (gdk_get_default_root_window (), screen_on_event, builder); + +if (G_UNLIKELY (opt_socket_id == 0)) +{ +g_signal_connect (G_OBJECT (dialog), response, +G_CALLBACK (display_settings_dialog_response), builder); + +/* Show the dialog */ +gtk_window_present (GTK_WINDOW (dialog)); +} +else +{ +/* Create plug widget */ +plug = gtk_plug_new (opt_socket_id); +g_signal_connect (plug, delete-event, G_CALLBACK (gtk_main_quit), NULL); +gtk_widget_show (plug); + +/* Get plug child widget */ +plug_child = gtk_builder_get_object (builder, plug-child); +gtk_widget_reparent (GTK_WIDGET (plug_child), plug); +gtk_widget_show (GTK_WIDGET (plug_child)); +} + +/* To prevent the settings dialog to be saved in the session */ +gdk_set_sm_client_id (FAKE ID); + +/* Enter the main loop */ +gtk_main (); + +gtk_widget_destroy (dialog); +} +else +{ +g_error (Failed to load the UI file: %s., error-message); +g_error_free (error); +} + +gdk_window_remove_filter (gdk_get_default_root_window (), screen_on_event, builder); + +/* Release the builder */ +g_object_unref (G_OBJECT (builder)); +} + +static void +display_settings_minimal_advanced_clicked(GtkButton *button, + minimal_advanced_context *context) +{ +GtkWidget *dialog; + +dialog = (GtkWidget *) gtk_builder_get_object (context-builder, dialog); +gtk_widget_hide( dialog ); + +display_settings_show_main_dialog( context-display, context-event_base, context-error ); + +gtk_main_quit(); +} + +static void +display_settings_show_minimal_dialog (GdkDisplay *display, + gint event_base, + GError *error) +{ +GtkBuilder *builder; +GtkWidget *dialog, *cancel; + +builder = gtk_builder_new (); + +if (gtk_builder_add_from_string (builder, minimal_display_dialog_ui, + minimal_display_dialog_ui_length, error) != 0) +{ +GObject *only_display1; +GObject *only_display2; +GObject *mirror_displays; +GObject *extend_right; +GObject *advanced; +minimal_advanced_context context; + +context.builder = builder; +context.display = display; +context.event_base = event_base; +context.error = error; + +/* Build the minimal dialog */ +dialog = (GtkWidget *) gtk_builder_get_object (builder, dialog); +cancel = (GtkWidget *) gtk_builder_get_object (builder, cancel_button); + +g_signal_connect (dialog, delete-event, G_CALLBACK
[Xfce4-commits] xfce4-settings:bluesabre/display-settings Connected Advanced button in minimal dialog.
Updating branch refs/heads/bluesabre/display-settings to a4317a8b9994bc6d52392d4ac743009eb38e0f5c (commit) from 422122c9d6236b4bf7010fbcd78eea35f3b823e5 (commit) commit a4317a8b9994bc6d52392d4ac743009eb38e0f5c Author: Sean Davis smd.seanda...@gmail.com Date: Thu Oct 4 15:55:34 2012 -0400 Connected Advanced button in minimal dialog. dialogs/display-settings/main.c | 257 --- 1 files changed, 156 insertions(+), 101 deletions(-) diff --git a/dialogs/display-settings/main.c b/dialogs/display-settings/main.c index 03ebbc5..3b4edb1 100644 --- a/dialogs/display-settings/main.c +++ b/dialogs/display-settings/main.c @@ -60,6 +60,13 @@ enum N_COMBO_COLUMNS }; +typedef struct { +GtkBuilder *builder; +GdkDisplay *display; +gint event_base; +GError *error; +} minimal_advanced_context; + /* Xrandr rotation name conversion */ @@ -1556,15 +1563,158 @@ screen_on_event (GdkXEvent *xevent, return GDK_FILTER_CONTINUE; } +static void +display_settings_show_main_dialog (GdkDisplay *display, + gint event_base, + GError *error) +{ +GtkBuilder *builder; +GtkWidget *dialog; + +GtkWidget *plug; +GObject *plug_child; + +/* Load the Gtk user-interface file */ +builder = gtk_builder_new (); +if (gtk_builder_add_from_string (builder, display_dialog_ui, + display_dialog_ui_length, error) != 0) +{ +/* Build the dialog */ +dialog = display_settings_dialog_new (builder); +XFCE_RANDR_EVENT_BASE (xfce_randr) = event_base; +/* Set up notifications */ +XRRSelectInput (gdk_x11_display_get_xdisplay (display), +GDK_WINDOW_XID (gdk_get_default_root_window ()), +RRScreenChangeNotifyMask); +gdk_x11_register_standard_event_type (display, + event_base, + RRNotify + 1); +gdk_window_add_filter (gdk_get_default_root_window (), screen_on_event, builder); + +if (G_UNLIKELY (opt_socket_id == 0)) +{ +g_signal_connect (G_OBJECT (dialog), response, +G_CALLBACK (display_settings_dialog_response), builder); + +/* Show the dialog */ +gtk_window_present (GTK_WINDOW (dialog)); +} +else +{ +/* Create plug widget */ +plug = gtk_plug_new (opt_socket_id); +g_signal_connect (plug, delete-event, G_CALLBACK (gtk_main_quit), NULL); +gtk_widget_show (plug); + +/* Get plug child widget */ +plug_child = gtk_builder_get_object (builder, plug-child); +gtk_widget_reparent (GTK_WIDGET (plug_child), plug); +gtk_widget_show (GTK_WIDGET (plug_child)); +} + +/* To prevent the settings dialog to be saved in the session */ +gdk_set_sm_client_id (FAKE ID); + +/* Enter the main loop */ +gtk_main (); + +gtk_widget_destroy (dialog); +} +else +{ +g_error (Failed to load the UI file: %s., error-message); +g_error_free (error); +} + +gdk_window_remove_filter (gdk_get_default_root_window (), screen_on_event, builder); + +/* Release the builder */ +g_object_unref (G_OBJECT (builder)); +} + +static void +display_settings_minimal_advanced_clicked(GtkButton *button, + minimal_advanced_context *context) +{ +GtkWidget *dialog; + +dialog = (GtkWidget *) gtk_builder_get_object (context-builder, dialog); +gtk_widget_hide( dialog ); + +display_settings_show_main_dialog( context-display, context-event_base, context-error ); + +gtk_main_quit(); +} + +static void +display_settings_show_minimal_dialog (GdkDisplay *display, + gint event_base, + GError *error) +{ +GtkBuilder *builder; +GtkWidget *dialog, *cancel; + +builder = gtk_builder_new (); + +if (gtk_builder_add_from_string (builder, minimal_display_dialog_ui, + minimal_display_dialog_ui_length, error) != 0) +{ +GObject *only_display1; +GObject *only_display2; +GObject *mirror_displays; +GObject *extend_right; +GObject *advanced; +minimal_advanced_context context; + +context.builder = builder; +context.display = display; +context.event_base = event_base; +context.error = error; + +/* Build the minimal dialog */ +dialog = (GtkWidget *) gtk_builder_get_object (builder, dialog); +cancel = (GtkWidget *) gtk_builder_get_object (builder, cancel_button); + +g_signal_connect (dialog, delete-event, G_CALLBACK