Mercurial > pidgin
annotate src/protocols/msn/userlist.h @ 12468:6faefbebcd24
[gaim-migrate @ 14778]
SF Patch #1372898 from charkins
"This patch updates the unseen conversation api in
gtkconv to ensure consistancy and avoid code
duplication. The ...first_unseen() function is renamed
and expanded to return a list of conversations that
match the specified criteria. A max_count parameter is
used to allow this to short circuit early (using 1
gives old behavior). An additional flag was added to
allow this function to only consider hidden
conversations (used by the buddy list). The blist is
currently inconsistant in which conversations it loops
over for showing the menu tray icon, creating the
tooltip and the unseen menu. This patch fixes that.
The ...find_unseen_list() now handles contact-aware
conversations correctly as well (based on sadrul's
patches in #1362579 which are obsoleted by this patch).
I also included the fix from #1362579 which increments
unseen_count only when state>=UNSEEN_TEXT."
committer: Tailor Script <tailor@pidgin.im>
| author | Richard Laager <rlaager@wiktel.com> |
|---|---|
| date | Mon, 12 Dec 2005 18:59:29 +0000 |
| parents | 65b3156f9f48 |
| children | 442b23efba54 |
| rev | line source |
|---|---|
|
9198
ab6636c5a136
[gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents:
9193
diff
changeset
|
1 /** |
|
ab6636c5a136
[gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents:
9193
diff
changeset
|
2 * @file userlist.h MSN user list support |
|
ab6636c5a136
[gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents:
9193
diff
changeset
|
3 * |
|
ab6636c5a136
[gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents:
9193
diff
changeset
|
4 * gaim |
|
ab6636c5a136
[gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents:
9193
diff
changeset
|
5 * |
|
ab6636c5a136
[gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents:
9193
diff
changeset
|
6 * Gaim is the legal property of its developers, whose names are too numerous |
|
ab6636c5a136
[gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents:
9193
diff
changeset
|
7 * to list here. Please refer to the COPYRIGHT file distributed with this |
|
ab6636c5a136
[gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents:
9193
diff
changeset
|
8 * source distribution. |
|
ab6636c5a136
[gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents:
9193
diff
changeset
|
9 * |
|
ab6636c5a136
[gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents:
9193
diff
changeset
|
10 * This program is free software; you can redistribute it and/or modify |
|
ab6636c5a136
[gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents:
9193
diff
changeset
|
11 * it under the terms of the GNU General Public License as published by |
|
ab6636c5a136
[gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents:
9193
diff
changeset
|
12 * the Free Software Foundation; either version 2 of the License, or |
|
ab6636c5a136
[gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents:
9193
diff
changeset
|
13 * (at your option) any later version. |
|
ab6636c5a136
[gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents:
9193
diff
changeset
|
14 * |
|
ab6636c5a136
[gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents:
9193
diff
changeset
|
15 * This program is distributed in the hope that it will be useful, |
|
ab6636c5a136
[gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents:
9193
diff
changeset
|
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
ab6636c5a136
[gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents:
9193
diff
changeset
|
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
ab6636c5a136
[gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents:
9193
diff
changeset
|
18 * GNU General Public License for more details. |
|
ab6636c5a136
[gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents:
9193
diff
changeset
|
19 * |
|
ab6636c5a136
[gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents:
9193
diff
changeset
|
20 * You should have received a copy of the GNU General Public License |
|
ab6636c5a136
[gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents:
9193
diff
changeset
|
21 * along with this program; if not, write to the Free Software |
|
ab6636c5a136
[gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents:
9193
diff
changeset
|
22 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
ab6636c5a136
[gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents:
9193
diff
changeset
|
23 */ |
| 9193 | 24 #ifndef _MSN_USERLIST_H_ |
| 25 #define _MSN_USERLIST_H_ | |
| 26 | |
| 27 typedef struct _MsnUserList MsnUserList; | |
| 28 | |
| 29 #include "cmdproc.h" | |
| 30 #include "user.h" | |
| 31 #include "group.h" | |
| 32 | |
| 33 typedef enum | |
| 34 { | |
| 35 MSN_LIST_FL, | |
| 36 MSN_LIST_AL, | |
| 37 MSN_LIST_BL, | |
| 38 MSN_LIST_RL | |
| 39 | |
| 40 } MsnListId; | |
| 41 | |
| 42 typedef struct | |
| 43 { | |
| 44 char *who; | |
| 45 char *old_group_name; | |
| 46 | |
| 47 } MsnMoveBuddy; | |
| 48 | |
| 49 struct _MsnUserList | |
| 50 { | |
| 51 MsnSession *session; | |
| 52 | |
| 53 /* MsnUsers *users; */ | |
| 54 /* MsnGroups *groups; */ | |
| 55 | |
| 56 GList *users; | |
| 57 GList *groups; | |
| 58 | |
| 9860 | 59 GQueue *buddy_icon_requests; |
| 60 int buddy_icon_window; | |
| 61 | |
| 9193 | 62 int fl_users_count; |
| 63 | |
| 64 }; | |
| 65 | |
| 66 MsnListId msn_get_list_id(const char *list); | |
| 67 | |
| 68 void msn_got_add_user(MsnSession *session, MsnUser *user, | |
| 69 MsnListId list_id, int group_id); | |
| 70 void msn_got_rem_user(MsnSession *session, MsnUser *user, | |
| 71 MsnListId list_id, int group_id); | |
| 72 void msn_got_lst_user(MsnSession *session, MsnUser *user, | |
| 73 int list_op, GSList *group_ids); | |
| 74 | |
| 75 MsnUserList *msn_userlist_new(MsnSession *session); | |
| 76 void msn_userlist_destroy(MsnUserList *userlist); | |
| 77 void msn_userlist_add_user(MsnUserList *userlist, MsnUser *user); | |
| 78 void msn_userlist_remove_user(MsnUserList *userlist, MsnUser *user); | |
| 79 MsnUser *msn_userlist_find_user(MsnUserList *userlist, | |
| 80 const char *passport); | |
| 81 void msn_userlist_add_group(MsnUserList *userlist, MsnGroup *group); | |
| 82 void msn_userlist_remove_group(MsnUserList *userlist, MsnGroup *group); | |
| 83 MsnGroup *msn_userlist_find_group_with_id(MsnUserList *userlist, int id); | |
| 84 MsnGroup *msn_userlist_find_group_with_name(MsnUserList *userlist, | |
| 85 const char *name); | |
| 86 int msn_userlist_find_group_id(MsnUserList *userlist, | |
| 87 const char *group_name); | |
| 88 const char *msn_userlist_find_group_name(MsnUserList *userlist, | |
| 89 int group_id); | |
| 90 void msn_userlist_rename_group_id(MsnUserList *userlist, int group_id, | |
| 91 const char *new_name); | |
| 92 void msn_userlist_remove_group_id(MsnUserList *userlist, int group_id); | |
| 93 | |
| 94 void msn_userlist_rem_buddy(MsnUserList *userlist, const char *who, | |
| 95 int list_id, const char *group_name); | |
| 96 void msn_userlist_add_buddy(MsnUserList *userlist, const char *who, | |
| 97 int list_id, const char *group_name); | |
| 98 void msn_userlist_move_buddy(MsnUserList *userlist, const char *who, | |
| 99 const char *old_group_name, | |
| 100 const char *new_group_name); | |
| 101 | |
| 102 #endif /* _MSN_USERLIST_H_ */ |
