| 97 void (*callback)(const char*,gpointer); |
97 void (*callback)(const char*,gpointer); |
| 98 gpointer data; |
98 gpointer data; |
| 99 }; |
99 }; |
| 100 |
100 |
| 101 /****************************************************************************** |
101 /****************************************************************************** |
| 102 * Globals |
|
| 103 *****************************************************************************/ |
|
| 104 |
|
| 105 static guint accels_save_timer = 0; |
|
| 106 |
|
| 107 /****************************************************************************** |
|
| 108 * Code |
102 * Code |
| 109 *****************************************************************************/ |
103 *****************************************************************************/ |
| 110 |
104 |
| 111 GtkWidget *pidgin_separator(GtkWidget *menu) |
105 GtkWidget *pidgin_separator(GtkWidget *menu) |
| 112 { |
106 { |
| 278 } |
272 } |
| 279 } while (gtk_tree_model_iter_next(model, &iter)); |
273 } while (gtk_tree_model_iter_next(model, &iter)); |
| 280 } |
274 } |
| 281 } |
275 } |
| 282 |
276 |
| 283 void |
|
| 284 pidgin_save_accels_cb(GtkAccelGroup *accel_group, guint arg1, |
|
| 285 GdkModifierType arg2, GClosure *arg3, |
|
| 286 gpointer data) |
|
| 287 { |
|
| 288 purple_debug_misc("accels", "accel changed, scheduling save."); |
|
| 289 |
|
| 290 if (!accels_save_timer) |
|
| 291 accels_save_timer = g_timeout_add_seconds(5, pidgin_save_accels, |
|
| 292 NULL); |
|
| 293 } |
|
| 294 |
|
| 295 gboolean |
|
| 296 pidgin_save_accels(gpointer data) |
|
| 297 { |
|
| 298 char *filename = NULL; |
|
| 299 |
|
| 300 filename = g_build_filename(purple_config_dir(), "accels", NULL); |
|
| 301 purple_debug_misc("accels", "saving accels to %s", filename); |
|
| 302 gtk_accel_map_save(filename); |
|
| 303 g_free(filename); |
|
| 304 |
|
| 305 accels_save_timer = 0; |
|
| 306 return FALSE; |
|
| 307 } |
|
| 308 |
|
| 309 void |
|
| 310 pidgin_load_accels() |
|
| 311 { |
|
| 312 char *filename = NULL; |
|
| 313 |
|
| 314 filename = g_build_filename(purple_config_dir(), "accels", NULL); |
|
| 315 gtk_accel_map_load(filename); |
|
| 316 g_free(filename); |
|
| 317 } |
|
| 318 |
|
| 319 static void |
277 static void |
| 320 show_retrieveing_info(PurpleConnection *conn, const char *name) |
278 show_retrieveing_info(PurpleConnection *conn, const char *name) |
| 321 { |
279 { |
| 322 PurpleNotifyUserInfo *info = purple_notify_user_info_new(); |
280 PurpleNotifyUserInfo *info = purple_notify_user_info_new(); |
| 323 purple_notify_user_info_add_pair_plaintext(info, _("Information"), _("Retrieving...")); |
281 purple_notify_user_info_add_pair_plaintext(info, _("Information"), _("Retrieving...")); |
| 936 gboolean |
894 gboolean |
| 937 pidgin_screenname_autocomplete_default_filter(const PidginBuddyCompletionEntry *completion_entry, gpointer all_accounts) { |
895 pidgin_screenname_autocomplete_default_filter(const PidginBuddyCompletionEntry *completion_entry, gpointer all_accounts) { |
| 938 gboolean all = GPOINTER_TO_INT(all_accounts); |
896 gboolean all = GPOINTER_TO_INT(all_accounts); |
| 939 |
897 |
| 940 return all || purple_account_is_connected(purple_buddy_get_account(completion_entry->buddy)); |
898 return all || purple_account_is_connected(purple_buddy_get_account(completion_entry->buddy)); |
| 941 } |
|
| 942 |
|
| 943 void pidgin_set_cursor(GtkWidget *widget, GdkCursorType cursor_type) |
|
| 944 { |
|
| 945 GdkDisplay *display; |
|
| 946 GdkCursor *cursor; |
|
| 947 |
|
| 948 g_return_if_fail(widget != NULL); |
|
| 949 if (gtk_widget_get_window(widget) == NULL) |
|
| 950 return; |
|
| 951 |
|
| 952 display = gtk_widget_get_display(widget); |
|
| 953 cursor = gdk_cursor_new_for_display(display, cursor_type); |
|
| 954 gdk_window_set_cursor(gtk_widget_get_window(widget), cursor); |
|
| 955 |
|
| 956 g_object_unref(cursor); |
|
| 957 |
|
| 958 gdk_display_flush(gdk_window_get_display(gtk_widget_get_window(widget))); |
|
| 959 } |
|
| 960 |
|
| 961 void pidgin_clear_cursor(GtkWidget *widget) |
|
| 962 { |
|
| 963 g_return_if_fail(widget != NULL); |
|
| 964 if (gtk_widget_get_window(widget) == NULL) |
|
| 965 return; |
|
| 966 |
|
| 967 gdk_window_set_cursor(gtk_widget_get_window(widget), NULL); |
|
| 968 } |
899 } |
| 969 |
900 |
| 970 static void |
901 static void |
| 971 icon_filesel_choose_cb(GtkWidget *widget, gint response, struct _icon_chooser *dialog) |
902 icon_filesel_choose_cb(GtkWidget *widget, gint response, struct _icon_chooser *dialog) |
| 972 { |
903 { |