diff options
| author | Jan Djärv | 2006-01-09 19:03:20 +0000 |
|---|---|---|
| committer | Jan Djärv | 2006-01-09 19:03:20 +0000 |
| commit | 4c9ca1a3ebeea5942a2f9e06160e627eec43a1ed (patch) | |
| tree | 4768e6ef80ad8cf3b457c1b34524acffbeef4773 /src | |
| parent | 62c5f375b19025777a5c839536154bf86420d706 (diff) | |
| download | emacs-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/ChangeLog | 8 | ||||
| -rw-r--r-- | src/gtkutil.c | 48 |
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 @@ | |||
| 1 | 2006-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 | |||
| 1 | 2006-01-06 Nick Roberts <nickrob@snap.net.nz> | 9 | 2006-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 | |||
| 1223 | static void | 1226 | static void |
| 1224 | xg_toggle_visibility_cb (widget, data) | 1227 | xg_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 | |||
| 1244 | static void | ||
| 1245 | xg_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) |