[gswitchit_plugins] Proper running of the dialogs



commit d64bd0c9b40aff18b73238b847bfed29f3397378
Author: Sergey V. Udaltsov <svu gnome org>
Date:   Sun May 24 12:47:30 2009 +0100

    Proper running of the dialogs
    
    The gtk_gialod_run function returns on any button press - so it is
    replaced with gtk_widget_show (and some related changes)
---
 custlbls/custlbls.c   |   26 ++++++++++++---------
 flags/flags.c         |   35 +++++++++++++++++-----------
 highlight/highlight.c |   60 +++++++++++++-----------------------------------
 3 files changed, 52 insertions(+), 69 deletions(-)

diff --git a/custlbls/custlbls.c b/custlbls/custlbls.c
index 2eb40a9..253c551 100644
--- a/custlbls/custlbls.c
+++ b/custlbls/custlbls.c
@@ -209,12 +209,8 @@ DelLabel (GtkButton * btn)
 static void
 ListSelectionChanged (GtkTreeSelection * selection)
 {
-	GtkWidget *list =
-	    GTK_WIDGET (gtk_builder_get_object (builder, "lstLabels"));
 	GtkWidget *btnDel =
 	    GTK_WIDGET (gtk_builder_get_object (builder, "btnDelete"));
-	GtkWidget *txtLabel =
-	    GTK_WIDGET (gtk_builder_get_object (builder, "txtLabel"));
 
 	GtkTreeIter selectedIter;
 	gboolean isAnythingSelected = FALSE;
@@ -228,6 +224,16 @@ ListSelectionChanged (GtkTreeSelection * selection)
 }
 
 static void
+CfgDlgResponse (GtkWidget * dlg, gint response_id)
+{
+	if (response_id) {
+		if (response_id == GTK_RESPONSE_CLOSE)
+			gtk_widget_destroy (dlg);
+		container = NULL;
+	}
+}
+
+static void
 ConfigurePlugin (GkbdIndicatorPluginContainer * pc, GtkWindow * parent)
 {
 	GtkWidget *dialog;
@@ -254,12 +260,12 @@ ConfigurePlugin (GkbdIndicatorPluginContainer * pc, GtkWindow * parent)
 	gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
 	gtk_window_set_transient_for (GTK_WINDOW (dialog), parent);
 
-	g_signal_connect (GTK_WIDGET
-			  (gtk_builder_get_object (builder, "btnAdd")),
+	g_signal_connect (gtk_builder_get_object (builder, "btnAdd"),
 			  "clicked", G_CALLBACK (AddLabel), NULL);
-	g_signal_connect (GTK_WIDGET
-			  (gtk_builder_get_object (builder, "btnDelete")),
+	g_signal_connect (gtk_builder_get_object (builder, "btnDelete"),
 			  "clicked", G_CALLBACK (DelLabel), NULL);
+	g_signal_connect (G_OBJECT (dialog), "response",
+			  G_CALLBACK (CfgDlgResponse), NULL);
 
 	list = GTK_WIDGET (gtk_builder_get_object (builder, "lstLabels"));
 
@@ -272,9 +278,7 @@ ConfigurePlugin (GkbdIndicatorPluginContainer * pc, GtkWindow * parent)
 
 	UpdateList ();
 
-	gtk_dialog_run (GTK_DIALOG (dialog));
-	gtk_widget_destroy (dialog);
-	container = NULL;
+	gtk_widget_show (dialog);
 }
 
 static GtkWidget *
diff --git a/flags/flags.c b/flags/flags.c
index 45be9da..1675182 100644
--- a/flags/flags.c
+++ b/flags/flags.c
@@ -386,6 +386,19 @@ DoStartDownloadFlags ()
 }
 
 static void
+CfgDlgResponse (GtkWidget * dialog, gint response_id)
+{
+	if (response_id) {
+		if (response_id == GTK_RESPONSE_CLOSE)
+			gtk_widget_destroy (dialog);
+		StopListening ();
+
+		builder = NULL;
+		container = NULL;
+	}
+}
+
+static void
 ConfigurePlugin (GkbdIndicatorPluginContainer * pc, GtkWindow * parent)
 {
 	GtkWidget *dialog;
@@ -403,27 +416,21 @@ ConfigurePlugin (GkbdIndicatorPluginContainer * pc, GtkWindow * parent)
 	gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
 	gtk_window_set_transient_for (GTK_WINDOW (dialog), parent);
 
-	g_signal_connect (GTK_WIDGET
-			  (gtk_builder_get_object
-			   (builder, "chkEnableFlags")), "toggled",
+	g_signal_connect (gtk_builder_get_object
+			  (builder, "chkEnableFlags"), "toggled",
 			  G_CALLBACK (ChangeShowFlag), NULL);
-	g_signal_connect (GTK_WIDGET
-			  (gtk_builder_get_object
-			   (builder, "btnStartDownload")), "clicked",
+	g_signal_connect (gtk_builder_get_object
+			  (builder, "btnStartDownload"), "clicked",
 			  G_CALLBACK (DoStartDownloadFlags), NULL);
-	g_signal_connect (GTK_WIDGET
-			  (gtk_builder_get_object
-			   (builder, "btnCancelDownload")), "clicked",
+	g_signal_connect (gtk_builder_get_object
+			  (builder, "btnCancelDownload"), "clicked",
 			  G_CALLBACK (DoCancelDownloadFlags), NULL);
+	g_signal_connect (G_OBJECT (dialog),
+			  "response", G_CALLBACK (CfgDlgResponse), NULL);
 
 	ConfigChangedCallback (NULL, 0, NULL, TRUE);
 	StartGConfListening (TRUE);
 	gtk_dialog_run (GTK_DIALOG (dialog));
-	StopListening ();
-	gtk_widget_destroy (dialog);
-
-	builder = NULL;
-	container = NULL;
 }
 
 G_MODULE_EXPORT const GkbdIndicatorPlugin *
diff --git a/highlight/highlight.c b/highlight/highlight.c
index 8e54fe5..f9c248a 100644
--- a/highlight/highlight.c
+++ b/highlight/highlight.c
@@ -212,8 +212,8 @@ ChooseColor (GtkButton * btn, GdkColor * color)
 	if (GTK_RESPONSE_OK == dr) {
 		gtk_color_selection_get_current_color (GTK_COLOR_SELECTION
 						       (GTK_COLOR_SELECTION_DIALOG
-							(dlgSelection)->colorsel),
-						       color);
+							(dlgSelection)->
+							colorsel), color);
 		UpdateColorChooserButtons ();
 		SaveConfig ();
 	}
@@ -221,6 +221,16 @@ ChooseColor (GtkButton * btn, GdkColor * color)
 }
 
 static void
+CfgDlgResponse (GtkWidget * dlg, gint response_id)
+{
+	if (response_id) {
+		if (response_id == GTK_RESPONSE_CLOSE)
+			gtk_widget_destroy (dlg);
+		container = NULL;
+	}
+}
+
+static void
 ConfigurePlugin (GkbdIndicatorPluginContainer * pc, GtkWindow * parent)
 {
 	GtkWidget *dialog;
@@ -243,36 +253,14 @@ ConfigurePlugin (GkbdIndicatorPluginContainer * pc, GtkWindow * parent)
 	g_signal_connect (GTK_WIDGET
 			  (gtk_builder_get_object (builder, "btnFgColor")),
 			  "clicked", G_CALLBACK (ChooseColor), &fgColor);
-	g_signal_connect (GTK_WIDGET
-			  (gtk_builder_get_object (builder, "btnBgColor")),
+	g_signal_connect (gtk_builder_get_object (builder, "btnBgColor"),
 			  "clicked", G_CALLBACK (ChooseColor), &bgColor);
-
+	g_signal_connect (G_OBJECT (dialog),
+			  "response", G_CALLBACK (CfgDlgResponse), NULL);
 
 	UpdateColorChooserButtons ();
 
-	gtk_dialog_run (GTK_DIALOG (dialog));
-	gtk_widget_destroy (dialog);
-	container = NULL;
-}
-
-static void
-ClearBGPixmaps (GtkWidget * widget, GtkRcStyle * rc_style)
-{
-	/* Just resetting the styles to the theme - 
-	   no funny transparent BG or anything */
-	gtk_widget_set_style (widget, NULL);
-	gtk_widget_modify_style (widget, rc_style);
-
-	/* go down */
-	if (GTK_IS_CONTAINER (widget)) {
-		GList *child =
-		    gtk_container_get_children (GTK_CONTAINER (widget));
-		while (child != NULL) {
-			ClearBGPixmaps (GTK_WIDGET (child->data),
-					rc_style);
-			child = child->next;
-		}
-	}
+	gtk_widget_show (dialog);
 }
 
 static GtkWidget *
@@ -287,22 +275,6 @@ FindChildLabel (GtkWidget * widget)
 	return GTK_IS_LABEL (child) ? child : NULL;
 }
 
-static void
-SetColorsOnWidgets (GtkWidget * widget)
-{
-	GtkWidget *label = FindChildLabel (widget);
-	GtkRcStyle *rc_style = gtk_rc_style_new ();
-
-	ClearBGPixmaps (widget, rc_style);
-	g_object_unref (rc_style);
-
-	printf ("SetColorsOnWidgets\n");
-	gtk_widget_modify_bg (widget, GTK_STATE_NORMAL, &bgColor);
-
-/*	if (label != NULL)
-		gtk_widget_modify_fg (label, GTK_STATE_NORMAL, &fgColor); */
-}
-
 static GtkWidget *
 HighlightWidget (GtkWidget * widget, const gint group, const char
 		 *groupDescription, GkbdKeyboardConfig * config)



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]