[Xfce4-commits] <xfce4-settings:bluesabre/display-settings> Added radio states to minimal dialog.
Nick Schermer
noreply at xfce.org
Mon Dec 9 12:56:16 CET 2013
Updating branch refs/heads/bluesabre/display-settings
to 7ec05479b669a0bf9300101d692b79bf11ed1448 (commit)
from 8d1ed825c1e739b63d87083401b4efdee357b09f (commit)
commit 7ec05479b669a0bf9300101d692b79bf11ed1448
Author: Sean Davis <smd.seandavis at gmail.com>
Date: Wed Sep 26 06:39:19 2012 -0400
Added radio states to minimal dialog.
dialogs/display-settings/main.c | 119 +++++++++++++++++++++++++++++++++++++++
1 file changed, 119 insertions(+)
diff --git a/dialogs/display-settings/main.c b/dialogs/display-settings/main.c
index 86dd15e..fccc3e0 100644
--- a/dialogs/display-settings/main.c
+++ b/dialogs/display-settings/main.c
@@ -112,6 +112,18 @@ static gboolean bound_to_channel = FALSE;
/* Pointer to the used randr structure */
XfceRandr *xfce_randr = NULL;
+static void
+display_settings_minimal_extend_left_toggled (GtkToggleButton *button,
+ GtkBuilder *builder);
+
+static void
+display_settings_minimal_mirror_displays_toggled (GtkToggleButton *button,
+ GtkBuilder *builder);
+
+static void
+display_settings_minimal_extend_right_toggled (GtkToggleButton *button,
+ GtkBuilder *builder);
+
static guint
@@ -1113,6 +1125,99 @@ display_settings_dialog_new (GtkBuilder *builder)
return GTK_WIDGET (gtk_builder_get_object (builder, "display-dialog"));
}
+static void
+display_settings_minimal_extend_left_toggled (GtkToggleButton *button,
+ GtkBuilder *builder)
+{
+ GObject *mirror_displays;
+ GObject *extend_right;
+
+ mirror_displays = gtk_builder_get_object(builder, "mirror");
+ extend_right = gtk_builder_get_object(builder, "extend_right");
+
+ g_object_disconnect (mirror_displays, "any_signal::toggled",
+ display_settings_minimal_mirror_displays_toggled,
+ builder, NULL);
+
+ g_object_disconnect (extend_right, "any_signal::toggled",
+ display_settings_minimal_extend_right_toggled,
+ builder, NULL);
+
+ /* Since this signal will only be called when a toggle button is activated. */
+ gtk_toggle_button_set_active (button, TRUE);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(mirror_displays), FALSE);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(extend_right), FALSE);
+
+ /* Reconnect the signals */
+ g_signal_connect (mirror_displays, "toggled", G_CALLBACK (display_settings_minimal_mirror_displays_toggled),
+ builder);
+
+ g_signal_connect (extend_right, "toggled", G_CALLBACK (display_settings_minimal_extend_right_toggled),
+ builder);
+}
+
+static void
+display_settings_minimal_mirror_displays_toggled (GtkToggleButton *button,
+ GtkBuilder *builder)
+{
+ GObject *extend_left;
+ GObject *extend_right;
+
+ extend_left = gtk_builder_get_object(builder, "extend_left");
+ extend_right = gtk_builder_get_object(builder, "extend_right");
+
+ g_object_disconnect (extend_left, "any_signal::toggled",
+ display_settings_minimal_extend_left_toggled,
+ builder, NULL);
+
+ g_object_disconnect (extend_right, "any_signal::toggled",
+ display_settings_minimal_extend_right_toggled,
+ builder, NULL);
+
+ /* Since this signal will only be called when a toggle button is activated. */
+ gtk_toggle_button_set_active (button, TRUE);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(extend_left), FALSE);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(extend_right), FALSE);
+
+ /* Reconnect the signals */
+ g_signal_connect (extend_left, "toggled", G_CALLBACK (display_settings_minimal_extend_left_toggled),
+ builder);
+
+ g_signal_connect (extend_right, "toggled", G_CALLBACK (display_settings_minimal_extend_right_toggled),
+ builder);
+}
+
+static void
+display_settings_minimal_extend_right_toggled (GtkToggleButton *button,
+ GtkBuilder *builder)
+{
+ GObject *mirror_displays;
+ GObject *extend_left;
+
+ mirror_displays = gtk_builder_get_object(builder, "mirror");
+ extend_left = gtk_builder_get_object(builder, "extend_left");
+
+ g_object_disconnect (mirror_displays, "any_signal::toggled",
+ display_settings_minimal_mirror_displays_toggled,
+ builder, NULL);
+
+ g_object_disconnect (extend_left, "any_signal::toggled",
+ display_settings_minimal_extend_left_toggled,
+ builder, NULL);
+
+ /* Since this signal will only be called when a toggle button is activated. */
+ gtk_toggle_button_set_active (button, TRUE);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(mirror_displays), FALSE);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(extend_left), FALSE);
+
+ /* Reconnect the signals */
+ g_signal_connect (mirror_displays, "toggled", G_CALLBACK (display_settings_minimal_mirror_displays_toggled),
+ builder);
+
+ g_signal_connect (extend_left, "toggled", G_CALLBACK (display_settings_minimal_extend_left_toggled),
+ builder);
+}
+
static GdkFilterReturn
@@ -1327,10 +1432,24 @@ main (gint argc, gchar **argv)
if (gtk_builder_add_from_string (builder, minimal_display_dialog_ui,
minimal_display_dialog_ui_length, &error) != 0)
{
+ GObject *extend_left;
+ GObject *mirror_displays;
+ GObject *extend_right;
/* Build the minimal dialog */
dialog = (GtkWidget *) gtk_builder_get_object (builder, "dialog");
g_signal_connect (dialog, "delete-event", G_CALLBACK (gtk_main_quit), NULL);
+
+ extend_left = gtk_builder_get_object (builder, "extend_left");
+ mirror_displays = gtk_builder_get_object (builder, "mirror");
+ extend_right = gtk_builder_get_object (builder, "extend_right");
+
+ g_signal_connect (extend_left, "toggled", G_CALLBACK (display_settings_minimal_extend_left_toggled),
+ builder);
+ g_signal_connect (mirror_displays, "toggled", G_CALLBACK (display_settings_minimal_mirror_displays_toggled),
+ builder);
+ g_signal_connect (extend_right, "toggled", G_CALLBACK (display_settings_minimal_extend_right_toggled),
+ builder);
/* Show the minimal dialog and start the main loop */
gtk_window_present (GTK_WINDOW (dialog));
More information about the Xfce4-commits
mailing list