aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJan Djärv2006-01-09 19:03:20 +0000
committerJan Djärv2006-01-09 19:03:20 +0000
commit4c9ca1a3ebeea5942a2f9e06160e627eec43a1ed (patch)
tree4768e6ef80ad8cf3b457c1b34524acffbeef4773 /src
parent62c5f375b19025777a5c839536154bf86420d706 (diff)
downloademacs-4c9ca1a3ebeea5942a2f9e06160e627eec43a1ed.tar.gz
emacs-4c9ca1a3ebeea5942a2f9e06160e627eec43a1ed.zip
* gtkutil.c (xg_toggle_notify_cb): New function.
(xg_toggle_visibility_cb): Move setting of x_gtk_show_hidden_files to xg_toggle_notify_cb. (xg_get_file_with_chooser): Add callback to xg_toggle_notify_cb when parameter value changes so the toggle button gets updated.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog8
-rw-r--r--src/gtkutil.c48
2 files changed, 53 insertions, 3 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 54c41d66413..89576a60718 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,11 @@
12006-01-09 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
2
3 * gtkutil.c (xg_toggle_notify_cb): New function.
4 (xg_toggle_visibility_cb): Move setting of x_gtk_show_hidden_files to
5 xg_toggle_notify_cb.
6 (xg_get_file_with_chooser): Add callback to xg_toggle_notify_cb when
7 parameter value changes so the toggle button gets updated.
8
12006-01-06 Nick Roberts <nickrob@snap.net.nz> 92006-01-06 Nick Roberts <nickrob@snap.net.nz>
2 10
3 * .gdbinit: Fix typo. 11 * .gdbinit: Fix typo.
diff --git a/src/gtkutil.c b/src/gtkutil.c
index ce66c5de35e..065adeb4937 100644
--- a/src/gtkutil.c
+++ b/src/gtkutil.c
@@ -1220,6 +1220,9 @@ xg_get_file_name_from_chooser (w)
1220 return gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (w)); 1220 return gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (w));
1221} 1221}
1222 1222
1223/* Callback called when the "Show hidden files" toggle is pressed.
1224 WIDGET is the toggle widget, DATA is the file chooser dialog. */
1225
1223static void 1226static void
1224xg_toggle_visibility_cb (widget, data) 1227xg_toggle_visibility_cb (widget, data)
1225 GtkWidget *widget; 1228 GtkWidget *widget;
@@ -1227,10 +1230,47 @@ xg_toggle_visibility_cb (widget, data)
1227{ 1230{
1228 GtkFileChooser *dialog = GTK_FILE_CHOOSER (data); 1231 GtkFileChooser *dialog = GTK_FILE_CHOOSER (data);
1229 gboolean visible; 1232 gboolean visible;
1230 extern int x_gtk_show_hidden_files;
1231 g_object_get (G_OBJECT (dialog), "show-hidden", &visible, NULL); 1233 g_object_get (G_OBJECT (dialog), "show-hidden", &visible, NULL);
1232 g_object_set (G_OBJECT (dialog), "show-hidden", !visible, NULL); 1234 g_object_set (G_OBJECT (dialog), "show-hidden", !visible, NULL);
1233 x_gtk_show_hidden_files = !visible; 1235}
1236
1237
1238/* Callback called when a property changes in a file chooser.
1239 GOBJECT is the file chooser dialog, ARG1 describes the property.
1240 USER_DATA is the toggle widget in the file chooser dialog.
1241 We use this to update the "Show hidden files" toggle when the user
1242 changes that property by right clicking in the file list. */
1243
1244static void
1245xg_toggle_notify_cb (gobject, arg1, user_data)
1246 GObject *gobject;
1247 GParamSpec *arg1;
1248 gpointer user_data;
1249{
1250 extern int x_gtk_show_hidden_files;
1251
1252 if (strcmp (arg1->name, "show-hidden") == 0)
1253 {
1254 GtkFileChooser *dialog = GTK_FILE_CHOOSER (gobject);
1255 GtkWidget *wtoggle = GTK_WIDGET (user_data);
1256 gboolean visible, toggle_on;
1257
1258 g_object_get (G_OBJECT (gobject), "show-hidden", &visible, NULL);
1259 toggle_on = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (wtoggle));
1260
1261 if (!!visible != !!toggle_on)
1262 {
1263 g_signal_handlers_block_by_func (G_OBJECT (wtoggle),
1264 G_CALLBACK (xg_toggle_visibility_cb),
1265 gobject);
1266 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (wtoggle), visible);
1267 g_signal_handlers_unblock_by_func
1268 (G_OBJECT (wtoggle),
1269 G_CALLBACK (xg_toggle_visibility_cb),
1270 gobject);
1271 }
1272 x_gtk_show_hidden_files = visible;
1273 }
1234} 1274}
1235 1275
1236/* Read a file name from the user using a file chooser dialog. 1276/* Read a file name from the user using a file chooser dialog.
@@ -1283,7 +1323,9 @@ xg_get_file_with_chooser (f, prompt, default_filename,
1283 } 1323 }
1284 gtk_widget_show (wtoggle); 1324 gtk_widget_show (wtoggle);
1285 g_signal_connect (G_OBJECT (wtoggle), "clicked", 1325 g_signal_connect (G_OBJECT (wtoggle), "clicked",
1286 G_CALLBACK (xg_toggle_visibility_cb), G_OBJECT(filewin)); 1326 G_CALLBACK (xg_toggle_visibility_cb), filewin);
1327 g_signal_connect (G_OBJECT (filewin), "notify",
1328 G_CALLBACK (xg_toggle_notify_cb), wtoggle);
1287 1329
1288 message[0] = '\0'; 1330 message[0] = '\0';
1289 if (action != GTK_FILE_CHOOSER_ACTION_SAVE) 1331 if (action != GTK_FILE_CHOOSER_ACTION_SAVE)