Mercurial > pidgin
comparison src/gtkutils.c @ 8289:e39ea2b4f6cd
[gaim-migrate @ 9013]
- Moved GaimCheckAccountFunc into account.h, and renamed it to
GaimFilterAccountFunc.
- Added filter functions to the account field in the gaim_request_fields
API.
committer: Tailor Script <tailor@pidgin.im>
| author | Christian Hammond <chipx86@chipx86.com> |
|---|---|
| date | Thu, 19 Feb 2004 07:25:31 +0000 |
| parents | 4a6448907382 |
| children | 19459d9eead2 |
comparison
equal
deleted
inserted
replaced
| 8288:dde73afb3283 | 8289:e39ea2b4f6cd |
|---|---|
| 759 user_data); | 759 user_data); |
| 760 } | 760 } |
| 761 | 761 |
| 762 static void | 762 static void |
| 763 create_account_menu(GtkWidget *optmenu, GaimAccount *default_account, | 763 create_account_menu(GtkWidget *optmenu, GaimAccount *default_account, |
| 764 GaimCheckAccountFunc check_account_func, gboolean show_all) | 764 GaimFilterAccountFunc filter_func, gboolean show_all) |
| 765 { | 765 { |
| 766 GaimAccount *account; | 766 GaimAccount *account; |
| 767 GtkWidget *menu; | 767 GtkWidget *menu; |
| 768 GtkWidget *item; | 768 GtkWidget *item; |
| 769 GtkWidget *image; | 769 GtkWidget *image; |
| 799 GaimConnection *gc = (GaimConnection *)p->data; | 799 GaimConnection *gc = (GaimConnection *)p->data; |
| 800 | 800 |
| 801 account = gaim_connection_get_account(gc); | 801 account = gaim_connection_get_account(gc); |
| 802 } | 802 } |
| 803 | 803 |
| 804 if (check_account_func && !check_account_func(account)) { | 804 if (filter_func && !filter_func(account)) { |
| 805 i--; | 805 i--; |
| 806 continue; | 806 continue; |
| 807 } | 807 } |
| 808 | 808 |
| 809 plugin = gaim_find_prpl(gaim_account_get_protocol_id(account)); | 809 plugin = gaim_find_prpl(gaim_account_get_protocol_id(account)); |
| 889 { | 889 { |
| 890 GtkWidget *menu; | 890 GtkWidget *menu; |
| 891 GtkWidget *item; | 891 GtkWidget *item; |
| 892 gboolean show_all; | 892 gboolean show_all; |
| 893 GaimAccount *account; | 893 GaimAccount *account; |
| 894 GaimCheckAccountFunc check_account_func; | 894 GaimFilterAccountFunc filter_func; |
| 895 | 895 |
| 896 menu = gtk_option_menu_get_menu(GTK_OPTION_MENU(optmenu)); | 896 menu = gtk_option_menu_get_menu(GTK_OPTION_MENU(optmenu)); |
| 897 item = gtk_menu_get_active(GTK_MENU(menu)); | 897 item = gtk_menu_get_active(GTK_MENU(menu)); |
| 898 account = g_object_get_data(G_OBJECT(item), "account"); | 898 account = g_object_get_data(G_OBJECT(item), "account"); |
| 899 | 899 |
| 900 show_all = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(optmenu), | 900 show_all = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(optmenu), |
| 901 "show_all")); | 901 "show_all")); |
| 902 | 902 |
| 903 check_account_func = g_object_get_data(G_OBJECT(optmenu), | 903 filter_func = g_object_get_data(G_OBJECT(optmenu), |
| 904 "check_account_func"); | 904 "filter_func"); |
| 905 | 905 |
| 906 gtk_option_menu_remove_menu(GTK_OPTION_MENU(optmenu)); | 906 gtk_option_menu_remove_menu(GTK_OPTION_MENU(optmenu)); |
| 907 | 907 |
| 908 create_account_menu(optmenu, account, check_account_func, show_all); | 908 create_account_menu(optmenu, account, filter_func, show_all); |
| 909 } | 909 } |
| 910 | 910 |
| 911 static void | 911 static void |
| 912 account_menu_sign_on_off_cb(GaimConnection *gc, GtkWidget *optmenu) | 912 account_menu_sign_on_off_cb(GaimConnection *gc, GtkWidget *optmenu) |
| 913 { | 913 { |
| 930 } | 930 } |
| 931 | 931 |
| 932 GtkWidget * | 932 GtkWidget * |
| 933 gaim_gtk_account_option_menu_new(GaimAccount *default_account, | 933 gaim_gtk_account_option_menu_new(GaimAccount *default_account, |
| 934 gboolean show_all, GCallback cb, | 934 gboolean show_all, GCallback cb, |
| 935 GaimCheckAccountFunc check_account_func, | 935 GaimFilterAccountFunc filter_func, |
| 936 gpointer user_data) | 936 gpointer user_data) |
| 937 { | 937 { |
| 938 GtkWidget *optmenu; | 938 GtkWidget *optmenu; |
| 939 | 939 |
| 940 /* Create the option menu */ | 940 /* Create the option menu */ |
| 959 optmenu); | 959 optmenu); |
| 960 | 960 |
| 961 /* Set some data. */ | 961 /* Set some data. */ |
| 962 g_object_set_data(G_OBJECT(optmenu), "user_data", user_data); | 962 g_object_set_data(G_OBJECT(optmenu), "user_data", user_data); |
| 963 g_object_set_data(G_OBJECT(optmenu), "show_all", GINT_TO_POINTER(show_all)); | 963 g_object_set_data(G_OBJECT(optmenu), "show_all", GINT_TO_POINTER(show_all)); |
| 964 g_object_set_data(G_OBJECT(optmenu), "check_account_func", | 964 g_object_set_data(G_OBJECT(optmenu), "filter_func", |
| 965 check_account_func); | 965 filter_func); |
| 966 | 966 |
| 967 /* Create and set the actual menu. */ | 967 /* Create and set the actual menu. */ |
| 968 create_account_menu(optmenu, default_account, check_account_func, show_all); | 968 create_account_menu(optmenu, default_account, filter_func, show_all); |
| 969 | 969 |
| 970 /* And now the last callback. */ | 970 /* And now the last callback. */ |
| 971 g_signal_connect(G_OBJECT(optmenu), "changed", | 971 g_signal_connect(G_OBJECT(optmenu), "changed", |
| 972 G_CALLBACK(account_menu_cb), cb); | 972 G_CALLBACK(account_menu_cb), cb); |
| 973 | 973 |
