[Xfce4-commits] xfce4-settings:bluesabre/display-settings Connected Advanced button in minimal dialog.

2013-12-09 Thread Nick Schermer
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.

2012-10-04 Thread Sean Davis
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