annotate mcabber/mcabber/roster.h @ 1909:9c14153e2580

Do not display unhandled IQ result messages to the log window We display the message only in the debug log file, because these messages are usually ignored anyway (ideally we would create a handler explicitly when sending the initial IQ request). Thanks to VarLog for the report!
author Mikael Berthe <mikael@lilotux.net>
date Sun, 18 Apr 2010 14:14:05 +0200
parents e45d13074721
children 6febc7d1f760
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1668
41c26b7d2890 Install mcabber headers
Myhailo Danylenko <isbear@ukrpost.net>
parents: 1600
diff changeset
1 #ifndef __MCABBER_ROSTER_H__
41c26b7d2890 Install mcabber headers
Myhailo Danylenko <isbear@ukrpost.net>
parents: 1600
diff changeset
2 #define __MCABBER_ROSTER_H__ 1
72
9b7f0d313e33 [/trunk] Changeset 86 by mikael
mikael
parents:
diff changeset
3
9b7f0d313e33 [/trunk] Changeset 86 by mikael
mikael
parents:
diff changeset
4 #include <glib.h>
625
028c01940490 Show presence timestamps in "/info" and "/room whois"
Mikael Berthe <mikael@lilotux.net>
parents: 610
diff changeset
5 #include <time.h>
72
9b7f0d313e33 [/trunk] Changeset 86 by mikael
mikael
parents:
diff changeset
6
1668
41c26b7d2890 Install mcabber headers
Myhailo Danylenko <isbear@ukrpost.net>
parents: 1600
diff changeset
7 #include <mcabber/pgp.h>
41c26b7d2890 Install mcabber headers
Myhailo Danylenko <isbear@ukrpost.net>
parents: 1600
diff changeset
8 #include <mcabber/config.h>
1043
ebbde723614b Store contacts PGP keys
Mikael Berthe <mikael@lilotux.net>
parents: 987
diff changeset
9
889
ae93e69aaaaf Fix up pending message flag for the status special buffer
Mikael Berthe <mikael@lilotux.net>
parents: 885
diff changeset
10 #define SPECIAL_BUFFER_STATUS_ID "[status]"
ae93e69aaaaf Fix up pending message flag for the status special buffer
Mikael Berthe <mikael@lilotux.net>
parents: 885
diff changeset
11
1802
b135572fcd26 Add urgent flag per screen buffer
Mikael Berthe <mikael@lilotux.net>
parents: 1727
diff changeset
12 // Default UI priorities
b135572fcd26 Add urgent flag per screen buffer
Mikael Berthe <mikael@lilotux.net>
parents: 1727
diff changeset
13 #define ROSTER_UI_PRIO_MUC_MESSAGE 20
b135572fcd26 Add urgent flag per screen buffer
Mikael Berthe <mikael@lilotux.net>
parents: 1727
diff changeset
14 #define ROSTER_UI_PRIO_MUC_HL_MESSAGE 30
b135572fcd26 Add urgent flag per screen buffer
Mikael Berthe <mikael@lilotux.net>
parents: 1727
diff changeset
15 #define ROSTER_UI_PRIO_MUC_PRIV_MESSAGE 40
b135572fcd26 Add urgent flag per screen buffer
Mikael Berthe <mikael@lilotux.net>
parents: 1727
diff changeset
16 #define ROSTER_UI_PRIO_PRIVATE_MESSAGE 50
b135572fcd26 Add urgent flag per screen buffer
Mikael Berthe <mikael@lilotux.net>
parents: 1727
diff changeset
17 #define ROSTER_UI_PRIO_ATTENTION_MESSAGE 100
b135572fcd26 Add urgent flag per screen buffer
Mikael Berthe <mikael@lilotux.net>
parents: 1727
diff changeset
18 #define ROSTER_UI_PRIO_STATUS_WIN_MESSAGE 500
b135572fcd26 Add urgent flag per screen buffer
Mikael Berthe <mikael@lilotux.net>
parents: 1727
diff changeset
19
572
afc2bd38b15c Implement affiliations handling, add "/room whois"
Mikael Berthe <mikael@lilotux.net>
parents: 548
diff changeset
20 enum imstatus {
afc2bd38b15c Implement affiliations handling, add "/room whois"
Mikael Berthe <mikael@lilotux.net>
parents: 548
diff changeset
21 offline,
afc2bd38b15c Implement affiliations handling, add "/room whois"
Mikael Berthe <mikael@lilotux.net>
parents: 548
diff changeset
22 available,
afc2bd38b15c Implement affiliations handling, add "/room whois"
Mikael Berthe <mikael@lilotux.net>
parents: 548
diff changeset
23 freeforchat,
afc2bd38b15c Implement affiliations handling, add "/room whois"
Mikael Berthe <mikael@lilotux.net>
parents: 548
diff changeset
24 dontdisturb,
afc2bd38b15c Implement affiliations handling, add "/room whois"
Mikael Berthe <mikael@lilotux.net>
parents: 548
diff changeset
25 notavail,
afc2bd38b15c Implement affiliations handling, add "/room whois"
Mikael Berthe <mikael@lilotux.net>
parents: 548
diff changeset
26 away,
1311
0dda8238af21 Implement "/roster display"
Mikael Berthe <mikael@lilotux.net>
parents: 1292
diff changeset
27 invisible,
572
afc2bd38b15c Implement affiliations handling, add "/room whois"
Mikael Berthe <mikael@lilotux.net>
parents: 548
diff changeset
28 imstatus_size
afc2bd38b15c Implement affiliations handling, add "/room whois"
Mikael Berthe <mikael@lilotux.net>
parents: 548
diff changeset
29 };
72
9b7f0d313e33 [/trunk] Changeset 86 by mikael
mikael
parents:
diff changeset
30
1311
0dda8238af21 Implement "/roster display"
Mikael Berthe <mikael@lilotux.net>
parents: 1292
diff changeset
31 extern char imstatus2char[]; // Should match enum above
0dda8238af21 Implement "/roster display"
Mikael Berthe <mikael@lilotux.net>
parents: 1292
diff changeset
32
438
b44be19d6229 Handle multiple resources for the same buddy
Mikael Berthe <mikael@lilotux.net>
parents: 364
diff changeset
33 enum imrole {
b44be19d6229 Handle multiple resources for the same buddy
Mikael Berthe <mikael@lilotux.net>
parents: 364
diff changeset
34 role_none,
b44be19d6229 Handle multiple resources for the same buddy
Mikael Berthe <mikael@lilotux.net>
parents: 364
diff changeset
35 role_moderator,
b44be19d6229 Handle multiple resources for the same buddy
Mikael Berthe <mikael@lilotux.net>
parents: 364
diff changeset
36 role_participant,
585
7eff2c1481fa Add "/room affil" and "/room role"
Mikael Berthe <mikael@lilotux.net>
parents: 584
diff changeset
37 role_visitor,
7eff2c1481fa Add "/room affil" and "/room role"
Mikael Berthe <mikael@lilotux.net>
parents: 584
diff changeset
38 imrole_size
438
b44be19d6229 Handle multiple resources for the same buddy
Mikael Berthe <mikael@lilotux.net>
parents: 364
diff changeset
39 };
b44be19d6229 Handle multiple resources for the same buddy
Mikael Berthe <mikael@lilotux.net>
parents: 364
diff changeset
40
584
414fbf558f1e jb_room_setattrib()
Mikael Berthe <mikael@lilotux.net>
parents: 580
diff changeset
41 extern char *strrole[]; // Should match enum above
414fbf558f1e jb_room_setattrib()
Mikael Berthe <mikael@lilotux.net>
parents: 580
diff changeset
42
572
afc2bd38b15c Implement affiliations handling, add "/room whois"
Mikael Berthe <mikael@lilotux.net>
parents: 548
diff changeset
43 enum imaffiliation {
afc2bd38b15c Implement affiliations handling, add "/room whois"
Mikael Berthe <mikael@lilotux.net>
parents: 548
diff changeset
44 affil_none,
afc2bd38b15c Implement affiliations handling, add "/room whois"
Mikael Berthe <mikael@lilotux.net>
parents: 548
diff changeset
45 affil_owner,
afc2bd38b15c Implement affiliations handling, add "/room whois"
Mikael Berthe <mikael@lilotux.net>
parents: 548
diff changeset
46 affil_admin,
afc2bd38b15c Implement affiliations handling, add "/room whois"
Mikael Berthe <mikael@lilotux.net>
parents: 548
diff changeset
47 affil_member,
585
7eff2c1481fa Add "/room affil" and "/room role"
Mikael Berthe <mikael@lilotux.net>
parents: 584
diff changeset
48 affil_outcast,
7eff2c1481fa Add "/room affil" and "/room role"
Mikael Berthe <mikael@lilotux.net>
parents: 584
diff changeset
49 imaffiliation_size
572
afc2bd38b15c Implement affiliations handling, add "/room whois"
Mikael Berthe <mikael@lilotux.net>
parents: 548
diff changeset
50 };
afc2bd38b15c Implement affiliations handling, add "/room whois"
Mikael Berthe <mikael@lilotux.net>
parents: 548
diff changeset
51
584
414fbf558f1e jb_room_setattrib()
Mikael Berthe <mikael@lilotux.net>
parents: 580
diff changeset
52 extern char *straffil[]; // Should match enum above
414fbf558f1e jb_room_setattrib()
Mikael Berthe <mikael@lilotux.net>
parents: 580
diff changeset
53
438
b44be19d6229 Handle multiple resources for the same buddy
Mikael Berthe <mikael@lilotux.net>
parents: 364
diff changeset
54 enum subscr {
603
9516db839e08 Store subscription data
Mikael Berthe <mikael@lilotux.net>
parents: 585
diff changeset
55 sub_none = 0,
9516db839e08 Store subscription data
Mikael Berthe <mikael@lilotux.net>
parents: 585
diff changeset
56 sub_pending = 1,
965
1bdf0f1b16c0 Use U suffix for unsigned defines
Mikael Berthe <mikael@lilotux.net>
parents: 952
diff changeset
57 sub_to = 1 << 1,
1bdf0f1b16c0 Use U suffix for unsigned defines
Mikael Berthe <mikael@lilotux.net>
parents: 952
diff changeset
58 sub_from = 1 << 2,
603
9516db839e08 Store subscription data
Mikael Berthe <mikael@lilotux.net>
parents: 585
diff changeset
59 sub_both = sub_to|sub_from,
965
1bdf0f1b16c0 Use U suffix for unsigned defines
Mikael Berthe <mikael@lilotux.net>
parents: 952
diff changeset
60 sub_remove = 1 << 3
438
b44be19d6229 Handle multiple resources for the same buddy
Mikael Berthe <mikael@lilotux.net>
parents: 364
diff changeset
61 };
b44be19d6229 Handle multiple resources for the same buddy
Mikael Berthe <mikael@lilotux.net>
parents: 364
diff changeset
62
72
9b7f0d313e33 [/trunk] Changeset 86 by mikael
mikael
parents:
diff changeset
63 enum findwhat {
9b7f0d313e33 [/trunk] Changeset 86 by mikael
mikael
parents:
diff changeset
64 jidsearch,
9b7f0d313e33 [/trunk] Changeset 86 by mikael
mikael
parents:
diff changeset
65 namesearch
9b7f0d313e33 [/trunk] Changeset 86 by mikael
mikael
parents:
diff changeset
66 };
9b7f0d313e33 [/trunk] Changeset 86 by mikael
mikael
parents:
diff changeset
67
1802
b135572fcd26 Add urgent flag per screen buffer
Mikael Berthe <mikael@lilotux.net>
parents: 1727
diff changeset
68 enum setuiprio_ops {
b135572fcd26 Add urgent flag per screen buffer
Mikael Berthe <mikael@lilotux.net>
parents: 1727
diff changeset
69 prio_set, // Set priority
b135572fcd26 Add urgent flag per screen buffer
Mikael Berthe <mikael@lilotux.net>
parents: 1727
diff changeset
70 prio_max, // Set priority to max(specified, current)
b135572fcd26 Add urgent flag per screen buffer
Mikael Berthe <mikael@lilotux.net>
parents: 1727
diff changeset
71 prio_inc, // Increment priority
b135572fcd26 Add urgent flag per screen buffer
Mikael Berthe <mikael@lilotux.net>
parents: 1727
diff changeset
72 };
b135572fcd26 Add urgent flag per screen buffer
Mikael Berthe <mikael@lilotux.net>
parents: 1727
diff changeset
73
1377
cd9182f0b5c7 Add /room setopt {print_status,auto_whois}
Mikael Berthe <mikael@lilotux.net>
parents: 1355
diff changeset
74 extern char *strprintstatus[];
cd9182f0b5c7 Add /room setopt {print_status,auto_whois}
Mikael Berthe <mikael@lilotux.net>
parents: 1355
diff changeset
75
cd9182f0b5c7 Add /room setopt {print_status,auto_whois}
Mikael Berthe <mikael@lilotux.net>
parents: 1355
diff changeset
76 // Note: do not change the ordering as these values are visible
cd9182f0b5c7 Add /room setopt {print_status,auto_whois}
Mikael Berthe <mikael@lilotux.net>
parents: 1355
diff changeset
77 // to the user (option 'muc_print_status')!
cd9182f0b5c7 Add /room setopt {print_status,auto_whois}
Mikael Berthe <mikael@lilotux.net>
parents: 1355
diff changeset
78 enum room_printstatus {
cd9182f0b5c7 Add /room setopt {print_status,auto_whois}
Mikael Berthe <mikael@lilotux.net>
parents: 1355
diff changeset
79 status_default,
cd9182f0b5c7 Add /room setopt {print_status,auto_whois}
Mikael Berthe <mikael@lilotux.net>
parents: 1355
diff changeset
80 status_none,
cd9182f0b5c7 Add /room setopt {print_status,auto_whois}
Mikael Berthe <mikael@lilotux.net>
parents: 1355
diff changeset
81 status_in_and_out,
cd9182f0b5c7 Add /room setopt {print_status,auto_whois}
Mikael Berthe <mikael@lilotux.net>
parents: 1355
diff changeset
82 status_all
cd9182f0b5c7 Add /room setopt {print_status,auto_whois}
Mikael Berthe <mikael@lilotux.net>
parents: 1355
diff changeset
83 };
cd9182f0b5c7 Add /room setopt {print_status,auto_whois}
Mikael Berthe <mikael@lilotux.net>
parents: 1355
diff changeset
84
cd9182f0b5c7 Add /room setopt {print_status,auto_whois}
Mikael Berthe <mikael@lilotux.net>
parents: 1355
diff changeset
85 extern char *strautowhois[];
cd9182f0b5c7 Add /room setopt {print_status,auto_whois}
Mikael Berthe <mikael@lilotux.net>
parents: 1355
diff changeset
86
cd9182f0b5c7 Add /room setopt {print_status,auto_whois}
Mikael Berthe <mikael@lilotux.net>
parents: 1355
diff changeset
87 enum room_autowhois {
cd9182f0b5c7 Add /room setopt {print_status,auto_whois}
Mikael Berthe <mikael@lilotux.net>
parents: 1355
diff changeset
88 autowhois_default,
cd9182f0b5c7 Add /room setopt {print_status,auto_whois}
Mikael Berthe <mikael@lilotux.net>
parents: 1355
diff changeset
89 autowhois_off,
cd9182f0b5c7 Add /room setopt {print_status,auto_whois}
Mikael Berthe <mikael@lilotux.net>
parents: 1355
diff changeset
90 autowhois_on
cd9182f0b5c7 Add /room setopt {print_status,auto_whois}
Mikael Berthe <mikael@lilotux.net>
parents: 1355
diff changeset
91 };
cd9182f0b5c7 Add /room setopt {print_status,auto_whois}
Mikael Berthe <mikael@lilotux.net>
parents: 1355
diff changeset
92
584
414fbf558f1e jb_room_setattrib()
Mikael Berthe <mikael@lilotux.net>
parents: 580
diff changeset
93 struct role_affil {
414fbf558f1e jb_room_setattrib()
Mikael Berthe <mikael@lilotux.net>
parents: 580
diff changeset
94 enum { type_role, type_affil } type;
414fbf558f1e jb_room_setattrib()
Mikael Berthe <mikael@lilotux.net>
parents: 580
diff changeset
95 union {
414fbf558f1e jb_room_setattrib()
Mikael Berthe <mikael@lilotux.net>
parents: 580
diff changeset
96 enum imrole role;
414fbf558f1e jb_room_setattrib()
Mikael Berthe <mikael@lilotux.net>
parents: 580
diff changeset
97 enum imaffiliation affil;
414fbf558f1e jb_room_setattrib()
Mikael Berthe <mikael@lilotux.net>
parents: 580
diff changeset
98 } val;
414fbf558f1e jb_room_setattrib()
Mikael Berthe <mikael@lilotux.net>
parents: 580
diff changeset
99 };
414fbf558f1e jb_room_setattrib()
Mikael Berthe <mikael@lilotux.net>
parents: 580
diff changeset
100
72
9b7f0d313e33 [/trunk] Changeset 86 by mikael
mikael
parents:
diff changeset
101 // Roster_type is a set of flags, so values should be 2^n
965
1bdf0f1b16c0 Use U suffix for unsigned defines
Mikael Berthe <mikael@lilotux.net>
parents: 952
diff changeset
102 #define ROSTER_TYPE_USER 1U
1bdf0f1b16c0 Use U suffix for unsigned defines
Mikael Berthe <mikael@lilotux.net>
parents: 952
diff changeset
103 #define ROSTER_TYPE_GROUP (1U<<1)
1bdf0f1b16c0 Use U suffix for unsigned defines
Mikael Berthe <mikael@lilotux.net>
parents: 952
diff changeset
104 #define ROSTER_TYPE_AGENT (1U<<2)
1bdf0f1b16c0 Use U suffix for unsigned defines
Mikael Berthe <mikael@lilotux.net>
parents: 952
diff changeset
105 #define ROSTER_TYPE_ROOM (1U<<3)
1bdf0f1b16c0 Use U suffix for unsigned defines
Mikael Berthe <mikael@lilotux.net>
parents: 952
diff changeset
106 #define ROSTER_TYPE_SPECIAL (1U<<4)
72
9b7f0d313e33 [/trunk] Changeset 86 by mikael
mikael
parents:
diff changeset
107
9b7f0d313e33 [/trunk] Changeset 86 by mikael
mikael
parents:
diff changeset
108 // Flags:
965
1bdf0f1b16c0 Use U suffix for unsigned defines
Mikael Berthe <mikael@lilotux.net>
parents: 952
diff changeset
109 #define ROSTER_FLAG_MSG 1U // Message not read
1bdf0f1b16c0 Use U suffix for unsigned defines
Mikael Berthe <mikael@lilotux.net>
parents: 952
diff changeset
110 #define ROSTER_FLAG_HIDE (1U<<1) // Group hidden (or buddy window closed)
1bdf0f1b16c0 Use U suffix for unsigned defines
Mikael Berthe <mikael@lilotux.net>
parents: 952
diff changeset
111 #define ROSTER_FLAG_LOCK (1U<<2) // Node should not be removed from buddylist
974
36f7753dfb59 Add /roster item_{lock,unlock}
Mikael Berthe <mikael@lilotux.net>
parents: 965
diff changeset
112 #define ROSTER_FLAG_USRLOCK (1U<<3) // Node should not be removed from buddylist
36f7753dfb59 Add /roster item_{lock,unlock}
Mikael Berthe <mikael@lilotux.net>
parents: 965
diff changeset
113 // ROSTER_FLAG_LOCAL (1U<<4) // Buddy not on server's roster (??)
72
9b7f0d313e33 [/trunk] Changeset 86 by mikael
mikael
parents:
diff changeset
114
1692
434b2a32d2a0 Disable XEP-0022 (Message Events) as it's been obsolete for a while
Mikael Berthe <mikael@lilotux.net>
parents: 1691
diff changeset
115 // #define XEP0022 (Officially obsoleted by XMPP Council)
1691
b2e0083891cc Replace JEP with XEP
Mikael Berthe <mikael@lilotux.net>
parents: 1668
diff changeset
116 #define XEP0085
987
f47e312560af Improve JEP22 + JEP85 support
Mikael Berthe <mikael@lilotux.net>
parents: 986
diff changeset
117
1866
e45d13074721 s/jep/xep/
Mikael Berthe <mikael@lilotux.net>
parents: 1811
diff changeset
118 struct xep0022 {
987
f47e312560af Improve JEP22 + JEP85 support
Mikael Berthe <mikael@lilotux.net>
parents: 986
diff changeset
119 guint support;
f47e312560af Improve JEP22 + JEP85 support
Mikael Berthe <mikael@lilotux.net>
parents: 986
diff changeset
120 guint last_state_sent;
f47e312560af Improve JEP22 + JEP85 support
Mikael Berthe <mikael@lilotux.net>
parents: 986
diff changeset
121 gchar *last_msgid_sent;
f47e312560af Improve JEP22 + JEP85 support
Mikael Berthe <mikael@lilotux.net>
parents: 986
diff changeset
122 guint last_state_rcvd;
f47e312560af Improve JEP22 + JEP85 support
Mikael Berthe <mikael@lilotux.net>
parents: 986
diff changeset
123 gchar *last_msgid_rcvd;
f47e312560af Improve JEP22 + JEP85 support
Mikael Berthe <mikael@lilotux.net>
parents: 986
diff changeset
124 };
1866
e45d13074721 s/jep/xep/
Mikael Berthe <mikael@lilotux.net>
parents: 1811
diff changeset
125 struct xep0085 {
987
f47e312560af Improve JEP22 + JEP85 support
Mikael Berthe <mikael@lilotux.net>
parents: 986
diff changeset
126 guint support;
f47e312560af Improve JEP22 + JEP85 support
Mikael Berthe <mikael@lilotux.net>
parents: 986
diff changeset
127 guint last_state_sent;
f47e312560af Improve JEP22 + JEP85 support
Mikael Berthe <mikael@lilotux.net>
parents: 986
diff changeset
128 guint last_state_rcvd;
f47e312560af Improve JEP22 + JEP85 support
Mikael Berthe <mikael@lilotux.net>
parents: 986
diff changeset
129 };
f47e312560af Improve JEP22 + JEP85 support
Mikael Berthe <mikael@lilotux.net>
parents: 986
diff changeset
130
f47e312560af Improve JEP22 + JEP85 support
Mikael Berthe <mikael@lilotux.net>
parents: 986
diff changeset
131 enum chatstate_support {
f47e312560af Improve JEP22 + JEP85 support
Mikael Berthe <mikael@lilotux.net>
parents: 986
diff changeset
132 CHATSTATES_SUPPORT_UNKNOWN = 0,
f47e312560af Improve JEP22 + JEP85 support
Mikael Berthe <mikael@lilotux.net>
parents: 986
diff changeset
133 CHATSTATES_SUPPORT_PROBED,
f47e312560af Improve JEP22 + JEP85 support
Mikael Berthe <mikael@lilotux.net>
parents: 986
diff changeset
134 CHATSTATES_SUPPORT_NONE,
f47e312560af Improve JEP22 + JEP85 support
Mikael Berthe <mikael@lilotux.net>
parents: 986
diff changeset
135 CHATSTATES_SUPPORT_OK
f47e312560af Improve JEP22 + JEP85 support
Mikael Berthe <mikael@lilotux.net>
parents: 986
diff changeset
136 };
986
ed697234bd39 Chat states receival (Alexis Hildebrandt)
Mikael Berthe <mikael@lilotux.net>
parents: 974
diff changeset
137
1043
ebbde723614b Store contacts PGP keys
Mikael Berthe <mikael@lilotux.net>
parents: 987
diff changeset
138 struct pgp_data {
1065
230dca34dbea Extand pgp_data structure
Mikael Berthe <mikael@lilotux.net>
parents: 1043
diff changeset
139 gchar *sign_keyid; // KeyId used by the contact to sign their presence/msg
1043
ebbde723614b Store contacts PGP keys
Mikael Berthe <mikael@lilotux.net>
parents: 987
diff changeset
140 #ifdef HAVE_GPGME
1065
230dca34dbea Extand pgp_data structure
Mikael Berthe <mikael@lilotux.net>
parents: 1043
diff changeset
141 gpgme_sigsum_t last_sigsum; // Last signature summary
1043
ebbde723614b Store contacts PGP keys
Mikael Berthe <mikael@lilotux.net>
parents: 987
diff changeset
142 #endif
ebbde723614b Store contacts PGP keys
Mikael Berthe <mikael@lilotux.net>
parents: 987
diff changeset
143 };
ebbde723614b Store contacts PGP keys
Mikael Berthe <mikael@lilotux.net>
parents: 987
diff changeset
144
986
ed697234bd39 Chat states receival (Alexis Hildebrandt)
Mikael Berthe <mikael@lilotux.net>
parents: 974
diff changeset
145 /* Message event and chat state flags */
ed697234bd39 Chat states receival (Alexis Hildebrandt)
Mikael Berthe <mikael@lilotux.net>
parents: 974
diff changeset
146 #define ROSTER_EVENT_NONE 0U
1691
b2e0083891cc Replace JEP with XEP
Mikael Berthe <mikael@lilotux.net>
parents: 1668
diff changeset
147 /* XEP-22 Message Events */
987
f47e312560af Improve JEP22 + JEP85 support
Mikael Berthe <mikael@lilotux.net>
parents: 986
diff changeset
148 #define ROSTER_EVENT_OFFLINE (1U<<0)
f47e312560af Improve JEP22 + JEP85 support
Mikael Berthe <mikael@lilotux.net>
parents: 986
diff changeset
149 #define ROSTER_EVENT_DELIVERED (1U<<1)
f47e312560af Improve JEP22 + JEP85 support
Mikael Berthe <mikael@lilotux.net>
parents: 986
diff changeset
150 #define ROSTER_EVENT_DISPLAYED (1U<<2)
1691
b2e0083891cc Replace JEP with XEP
Mikael Berthe <mikael@lilotux.net>
parents: 1668
diff changeset
151 /* XEP-22 & XEP-85 */
987
f47e312560af Improve JEP22 + JEP85 support
Mikael Berthe <mikael@lilotux.net>
parents: 986
diff changeset
152 #define ROSTER_EVENT_COMPOSING (1U<<3)
1691
b2e0083891cc Replace JEP with XEP
Mikael Berthe <mikael@lilotux.net>
parents: 1668
diff changeset
153 /* XEP-85 Chat State Notifications */
987
f47e312560af Improve JEP22 + JEP85 support
Mikael Berthe <mikael@lilotux.net>
parents: 986
diff changeset
154 #define ROSTER_EVENT_ACTIVE (1U<<4)
f47e312560af Improve JEP22 + JEP85 support
Mikael Berthe <mikael@lilotux.net>
parents: 986
diff changeset
155 #define ROSTER_EVENT_PAUSED (1U<<5)
f47e312560af Improve JEP22 + JEP85 support
Mikael Berthe <mikael@lilotux.net>
parents: 986
diff changeset
156 #define ROSTER_EVENT_INACTIVE (1U<<6)
f47e312560af Improve JEP22 + JEP85 support
Mikael Berthe <mikael@lilotux.net>
parents: 986
diff changeset
157 #define ROSTER_EVENT_GONE (1U<<7)
986
ed697234bd39 Chat states receival (Alexis Hildebrandt)
Mikael Berthe <mikael@lilotux.net>
parents: 974
diff changeset
158
72
9b7f0d313e33 [/trunk] Changeset 86 by mikael
mikael
parents:
diff changeset
159 extern GList *buddylist;
78
d001d8fb876d [/trunk] Changeset 92 by mikael
mikael
parents: 72
diff changeset
160 extern GList *current_buddy;
330
a9013124ede6 Add "/roster alternate"
Mikael Berthe <mikael@lilotux.net>
parents: 318
diff changeset
161 extern GList *alternate_buddy;
72
9b7f0d313e33 [/trunk] Changeset 86 by mikael
mikael
parents:
diff changeset
162
78
d001d8fb876d [/trunk] Changeset 92 by mikael
mikael
parents: 72
diff changeset
163 // Macros...
d001d8fb876d [/trunk] Changeset 92 by mikael
mikael
parents: 72
diff changeset
164
79
ff8046b6de02 [/trunk] Changeset 93 by mikael
mikael
parents: 78
diff changeset
165 #define BUDDATA(glist_node) ((glist_node)->data)
ff8046b6de02 [/trunk] Changeset 93 by mikael
mikael
parents: 78
diff changeset
166 #define CURRENT_JID buddy_getjid(BUDDATA(current_buddy))
78
d001d8fb876d [/trunk] Changeset 92 by mikael
mikael
parents: 72
diff changeset
167
d001d8fb876d [/trunk] Changeset 92 by mikael
mikael
parents: 72
diff changeset
168 // Prototypes...
848
a9161d2dc414 Introduce special buffer stuff
Mikael Berthe <mikael@lilotux.net>
parents: 819
diff changeset
169 void roster_init(void);
78
d001d8fb876d [/trunk] Changeset 92 by mikael
mikael
parents: 72
diff changeset
170 GSList *roster_add_group(const char *name);
d001d8fb876d [/trunk] Changeset 92 by mikael
mikael
parents: 72
diff changeset
171 GSList *roster_add_user(const char *jid, const char *name, const char *group,
1355
9716cf8a0726 Add on_server flag
Mikael Berthe <mikael@lilotux.net>
parents: 1311
diff changeset
172 guint type, enum subscr esub, gint on_server);
447
03bb57383cea Initial Multi-User Chat support
Mikael Berthe <mikael@lilotux.net>
parents: 439
diff changeset
173 GSList *roster_find(const char *jidname, enum findwhat type, guint roster_type);
78
d001d8fb876d [/trunk] Changeset 92 by mikael
mikael
parents: 72
diff changeset
174 void roster_del_user(const char *jid);
164
faf534be8ff0 [/trunk] Changeset 176 by mikael
mikael
parents: 148
diff changeset
175 void roster_free(void);
438
b44be19d6229 Handle multiple resources for the same buddy
Mikael Berthe <mikael@lilotux.net>
parents: 364
diff changeset
176 void roster_setstatus(const char *jid, const char *resname, gchar prio,
468
644b8bf9ca4d Improve MUC presence messages handling
Mikael Berthe <mikael@lilotux.net>
parents: 447
diff changeset
177 enum imstatus bstat, const char *status_msg,
625
028c01940490 Show presence timestamps in "/info" and "/room whois"
Mikael Berthe <mikael@lilotux.net>
parents: 610
diff changeset
178 time_t timestamp,
572
afc2bd38b15c Implement affiliations handling, add "/room whois"
Mikael Berthe <mikael@lilotux.net>
parents: 548
diff changeset
179 enum imrole role, enum imaffiliation affil,
afc2bd38b15c Implement affiliations handling, add "/room whois"
Mikael Berthe <mikael@lilotux.net>
parents: 548
diff changeset
180 const char *realjid);
80
7fb661f19a77 [/trunk] Changeset 94 by mikael
mikael
parents: 79
diff changeset
181 void roster_setflags(const char *jid, guint flags, guint value);
889
ae93e69aaaaf Fix up pending message flag for the status special buffer
Mikael Berthe <mikael@lilotux.net>
parents: 885
diff changeset
182 void roster_msg_setflag(const char *jid, guint special, guint value);
1802
b135572fcd26 Add urgent flag per screen buffer
Mikael Berthe <mikael@lilotux.net>
parents: 1727
diff changeset
183 void roster_setuiprio(const char *jid, guint special, guint value,
b135572fcd26 Add urgent flag per screen buffer
Mikael Berthe <mikael@lilotux.net>
parents: 1727
diff changeset
184 enum setuiprio_ops action);
b135572fcd26 Add urgent flag per screen buffer
Mikael Berthe <mikael@lilotux.net>
parents: 1727
diff changeset
185 guint roster_getuiprio(const char *jid, guint special);
510
6c3cd3aa4a91 New 'buddy_format' option
Mikael Berthe <mikael@lilotux.net>
parents: 489
diff changeset
186 const char *roster_getname(const char *jid);
863
4f1a93faffea Add roster_getnickname()
Mikael Berthe <mikael@lilotux.net>
parents: 848
diff changeset
187 const char *roster_getnickname(const char *jid);
89
d39f15683c34 [/trunk] Changeset 103 by mikael
mikael
parents: 80
diff changeset
188 void roster_settype(const char *jid, guint type);
438
b44be19d6229 Handle multiple resources for the same buddy
Mikael Berthe <mikael@lilotux.net>
parents: 364
diff changeset
189 enum imstatus roster_getstatus(const char *jid, const char *resname);
b44be19d6229 Handle multiple resources for the same buddy
Mikael Berthe <mikael@lilotux.net>
parents: 364
diff changeset
190 const char *roster_getstatusmsg(const char *jid, const char *resname);
1727
15e6b21df606 Add helper function roster_getprio()
Mikael Berthe <mikael@lilotux.net>
parents: 1692
diff changeset
191 char roster_getprio(const char *jid, const char *resname);
89
d39f15683c34 [/trunk] Changeset 103 by mikael
mikael
parents: 80
diff changeset
192 guint roster_gettype(const char *jid);
819
c2d7d9dd4193 New option 'block_unsubscribed'
Mikael Berthe <mikael@lilotux.net>
parents: 792
diff changeset
193 guint roster_getsubscription(const char *jid);
610
0e8247cf2bd1 Consider buddies as offline when they have cancelled our subscription
Mikael Berthe <mikael@lilotux.net>
parents: 603
diff changeset
194 void roster_unsubscribed(const char *jid);
72
9b7f0d313e33 [/trunk] Changeset 86 by mikael
mikael
parents:
diff changeset
195
166
aa5b635520ef [/trunk] Changeset 178 by mikael
mikael
parents: 164
diff changeset
196 void buddylist_build(void);
aa5b635520ef [/trunk] Changeset 178 by mikael
mikael
parents: 164
diff changeset
197 void buddy_hide_group(gpointer rosterdata, int hide);
aa5b635520ef [/trunk] Changeset 178 by mikael
mikael
parents: 164
diff changeset
198 void buddylist_set_hide_offline_buddies(int hide);
1413
f89844a0448a Remove useless inlines
Mikael Berthe <mikael@lilotux.net>
parents: 1377
diff changeset
199 int buddylist_isset_filter(void);
1504
9fafea381eb8 Show the number of unfiltered contacts in folded groups
franky
parents: 1437
diff changeset
200 int buddylist_is_status_filtered(enum imstatus status);
1311
0dda8238af21 Implement "/roster display"
Mikael Berthe <mikael@lilotux.net>
parents: 1292
diff changeset
201 void buddylist_set_filter(guchar);
0dda8238af21 Implement "/roster display"
Mikael Berthe <mikael@lilotux.net>
parents: 1292
diff changeset
202 guchar buddylist_get_filter(void);
72
9b7f0d313e33 [/trunk] Changeset 86 by mikael
mikael
parents:
diff changeset
203 const char *buddy_getjid(gpointer rosterdata);
207
41fafa0ecfd8 [/trunk] Changeset 219 by mikael
mikael
parents: 166
diff changeset
204 void buddy_setname(gpointer rosterdata, char *newname);
72
9b7f0d313e33 [/trunk] Changeset 86 by mikael
mikael
parents:
diff changeset
205 const char *buddy_getname(gpointer rosterdata);
469
a926523d2392 Use UTF8 to handle resources and room nicknames
Mikael Berthe <mikael@lilotux.net>
parents: 468
diff changeset
206 void buddy_setnickname(gpointer rosterdata, const char *newname);
447
03bb57383cea Initial Multi-User Chat support
Mikael Berthe <mikael@lilotux.net>
parents: 439
diff changeset
207 const char *buddy_getnickname(gpointer rosterdata);
952
527d6f234924 Small code cleanup
Mikael Berthe <mikael@lilotux.net>
parents: 889
diff changeset
208 void buddy_setinsideroom(gpointer rosterdata, guint inside);
527d6f234924 Small code cleanup
Mikael Berthe <mikael@lilotux.net>
parents: 889
diff changeset
209 guint buddy_getinsideroom(gpointer rosterdata);
548
265c50238a48 Add buddy_{get,set}topic()
Mikael Berthe <mikael@lilotux.net>
parents: 539
diff changeset
210 void buddy_settopic(gpointer rosterdata, const char *newtopic);
265c50238a48 Add buddy_{get,set}topic()
Mikael Berthe <mikael@lilotux.net>
parents: 539
diff changeset
211 const char *buddy_gettopic(gpointer rosterdata);
1377
cd9182f0b5c7 Add /room setopt {print_status,auto_whois}
Mikael Berthe <mikael@lilotux.net>
parents: 1355
diff changeset
212 void buddy_setprintstatus(gpointer rosterdata, enum room_printstatus);
cd9182f0b5c7 Add /room setopt {print_status,auto_whois}
Mikael Berthe <mikael@lilotux.net>
parents: 1355
diff changeset
213 enum room_printstatus buddy_getprintstatus(gpointer rosterdata);
cd9182f0b5c7 Add /room setopt {print_status,auto_whois}
Mikael Berthe <mikael@lilotux.net>
parents: 1355
diff changeset
214 void buddy_setautowhois(gpointer rosterdata, enum room_autowhois);
cd9182f0b5c7 Add /room setopt {print_status,auto_whois}
Mikael Berthe <mikael@lilotux.net>
parents: 1355
diff changeset
215 enum room_autowhois buddy_getautowhois(gpointer rosterdata);
489
21ab22a60bcb Auto-convert a roster item to "room" type when receiving a groupchat message
Mikael Berthe <mikael@lilotux.net>
parents: 480
diff changeset
216 void buddy_settype(gpointer rosterdata, guint type);
166
aa5b635520ef [/trunk] Changeset 178 by mikael
mikael
parents: 164
diff changeset
217 guint buddy_gettype(gpointer rosterdata);
603
9516db839e08 Store subscription data
Mikael Berthe <mikael@lilotux.net>
parents: 585
diff changeset
218 guint buddy_getsubscription(gpointer rosterdata);
210
f64818ba3503 [/trunk] Changeset 222 by mikael
mikael
parents: 207
diff changeset
219 void buddy_setgroup(gpointer rosterdata, char *newgroupname);
207
41fafa0ecfd8 [/trunk] Changeset 219 by mikael
mikael
parents: 166
diff changeset
220 const char *buddy_getgroupname(gpointer rosterdata);
166
aa5b635520ef [/trunk] Changeset 178 by mikael
mikael
parents: 164
diff changeset
221 gpointer buddy_getgroup(gpointer rosterdata);
438
b44be19d6229 Handle multiple resources for the same buddy
Mikael Berthe <mikael@lilotux.net>
parents: 364
diff changeset
222 enum imstatus buddy_getstatus(gpointer rosterdata, const char *resname);
b44be19d6229 Handle multiple resources for the same buddy
Mikael Berthe <mikael@lilotux.net>
parents: 364
diff changeset
223 const char *buddy_getstatusmsg(gpointer rosterdata, const char *resname);
625
028c01940490 Show presence timestamps in "/info" and "/room whois"
Mikael Berthe <mikael@lilotux.net>
parents: 610
diff changeset
224 time_t buddy_getstatustime(gpointer rosterdata, const char *resname);
439
63562fd409a1 /info can show multiple resources
Mikael Berthe <mikael@lilotux.net>
parents: 438
diff changeset
225 gchar buddy_getresourceprio(gpointer rosterdata, const char *resname);
652
b243d3b3ff1b We do not need buddy_isresource() anymore
Mikael Berthe <mikael@lilotux.net>
parents: 644
diff changeset
226 //int buddy_isresource(gpointer rosterdata);
439
63562fd409a1 /info can show multiple resources
Mikael Berthe <mikael@lilotux.net>
parents: 438
diff changeset
227 GSList *buddy_getresources(gpointer rosterdata);
792
89ad7b530b3c MUC: Fix completion for UTF-8 nicknames
Mikael Berthe <mikael@lilotux.net>
parents: 652
diff changeset
228 GSList *buddy_getresources_locale(gpointer rosterdata);
468
644b8bf9ca4d Improve MUC presence messages handling
Mikael Berthe <mikael@lilotux.net>
parents: 447
diff changeset
229 void buddy_resource_setname(gpointer rosterdata, const char *resname,
644b8bf9ca4d Improve MUC presence messages handling
Mikael Berthe <mikael@lilotux.net>
parents: 447
diff changeset
230 const char *newname);
986
ed697234bd39 Chat states receival (Alexis Hildebrandt)
Mikael Berthe <mikael@lilotux.net>
parents: 974
diff changeset
231 void buddy_resource_setevents(gpointer rosterdata, const char *resname,
ed697234bd39 Chat states receival (Alexis Hildebrandt)
Mikael Berthe <mikael@lilotux.net>
parents: 974
diff changeset
232 guint event);
ed697234bd39 Chat states receival (Alexis Hildebrandt)
Mikael Berthe <mikael@lilotux.net>
parents: 974
diff changeset
233 guint buddy_resource_getevents(gpointer rosterdata, const char *resname);
1600
c5ee395fbc8c Updated Entity Capabilities support (XEP-0115)
franky
parents: 1504
diff changeset
234 void buddy_resource_setcaps(gpointer rosterdata, const char *resname,
c5ee395fbc8c Updated Entity Capabilities support (XEP-0115)
franky
parents: 1504
diff changeset
235 const char *caps);
c5ee395fbc8c Updated Entity Capabilities support (XEP-0115)
franky
parents: 1504
diff changeset
236 char *buddy_resource_getcaps(gpointer rosterdata, const char *resname);
1866
e45d13074721 s/jep/xep/
Mikael Berthe <mikael@lilotux.net>
parents: 1811
diff changeset
237 struct xep0022 *buddy_resource_xep22(gpointer rosterdata, const char *resname);
e45d13074721 s/jep/xep/
Mikael Berthe <mikael@lilotux.net>
parents: 1811
diff changeset
238 struct xep0085 *buddy_resource_xep85(gpointer rosterdata, const char *resname);
1043
ebbde723614b Store contacts PGP keys
Mikael Berthe <mikael@lilotux.net>
parents: 987
diff changeset
239 struct pgp_data *buddy_resource_pgp(gpointer rosterdata, const char *resname);
572
afc2bd38b15c Implement affiliations handling, add "/room whois"
Mikael Berthe <mikael@lilotux.net>
parents: 548
diff changeset
240 enum imrole buddy_getrole(gpointer rosterdata, const char *resname);
afc2bd38b15c Implement affiliations handling, add "/room whois"
Mikael Berthe <mikael@lilotux.net>
parents: 548
diff changeset
241 enum imaffiliation buddy_getaffil(gpointer rosterdata, const char *resname);
afc2bd38b15c Implement affiliations handling, add "/room whois"
Mikael Berthe <mikael@lilotux.net>
parents: 548
diff changeset
242 const char *buddy_getrjid(gpointer rosterdata, const char *resname);
447
03bb57383cea Initial Multi-User Chat support
Mikael Berthe <mikael@lilotux.net>
parents: 439
diff changeset
243 void buddy_del_all_resources(gpointer rosterdata);
166
aa5b635520ef [/trunk] Changeset 178 by mikael
mikael
parents: 164
diff changeset
244 void buddy_setflags(gpointer rosterdata, guint flags, guint value);
aa5b635520ef [/trunk] Changeset 178 by mikael
mikael
parents: 164
diff changeset
245 guint buddy_getflags(gpointer rosterdata);
1802
b135572fcd26 Add urgent flag per screen buffer
Mikael Berthe <mikael@lilotux.net>
parents: 1727
diff changeset
246 guint buddy_getuiprio(gpointer rosterdata);
1355
9716cf8a0726 Add on_server flag
Mikael Berthe <mikael@lilotux.net>
parents: 1311
diff changeset
247 void buddy_setonserverflag(gpointer rosterdata, guint onserver);
9716cf8a0726 Add on_server flag
Mikael Berthe <mikael@lilotux.net>
parents: 1311
diff changeset
248 guint buddy_getonserverflag(gpointer rosterdata);
1292
382ec54b584e Muc nick coloring functionality
Michal 'vorner' Vaner <vorner@ucw.cz>
parents: 1065
diff changeset
249 GList *buddy_search_jid(const char *jid);
265
49e9e02dd6d0 Add "/roster search" command
mikael@frmp8452
parents: 236
diff changeset
250 GList *buddy_search(char *string);
532
2ac8d8e49e81 Send status changes to chatrooms
Mikael Berthe <mikael@lilotux.net>
parents: 510
diff changeset
251 void foreach_buddy(guint roster_type,
2ac8d8e49e81 Send status changes to chatrooms
Mikael Berthe <mikael@lilotux.net>
parents: 510
diff changeset
252 void (*pfunc)(gpointer rosterdata, void *param),
2ac8d8e49e81 Send status changes to chatrooms
Mikael Berthe <mikael@lilotux.net>
parents: 510
diff changeset
253 void *param);
885
afdd81c2c44d Allow /rename for groups
Mikael Berthe <mikael@lilotux.net>
parents: 863
diff changeset
254 void foreach_group_member(gpointer groupdata,
afdd81c2c44d Allow /rename for groups
Mikael Berthe <mikael@lilotux.net>
parents: 863
diff changeset
255 void (*pfunc)(gpointer rosterdata, void *param),
afdd81c2c44d Allow /rename for groups
Mikael Berthe <mikael@lilotux.net>
parents: 863
diff changeset
256 void *param);
236
72fd1273f2b7 [/trunk] Changeset 249 by mikael
mikael
parents: 225
diff changeset
257 gpointer unread_msg(gpointer rosterdata);
72
9b7f0d313e33 [/trunk] Changeset 86 by mikael
mikael
parents:
diff changeset
258
1437
071c8170b7de Add option 'statefile' to keep track of unread messages across restarts
Mikael Berthe <mikael@lilotux.net>
parents: 1413
diff changeset
259 void unread_jid_add(const char *jid);
071c8170b7de Add option 'statefile' to keep track of unread messages across restarts
Mikael Berthe <mikael@lilotux.net>
parents: 1413
diff changeset
260 GList *unread_jid_get_list(void);
071c8170b7de Add option 'statefile' to keep track of unread messages across restarts
Mikael Berthe <mikael@lilotux.net>
parents: 1413
diff changeset
261
225
d5ae42cbe1fa [/trunk] Changeset 237 by mikael
mikael
parents: 221
diff changeset
262 GSList *compl_list(guint type);
d5ae42cbe1fa [/trunk] Changeset 237 by mikael
mikael
parents: 221
diff changeset
263
1668
41c26b7d2890 Install mcabber headers
Myhailo Danylenko <isbear@ukrpost.net>
parents: 1600
diff changeset
264 #endif /* __MCABBER_ROSTER_H__ */
576
8b3db0b555a1 Add Vim modelines
Mikael Berthe <mikael@lilotux.net>
parents: 572
diff changeset
265
1811
e6d355e50d7a Update Vim modelines
Mikael Berthe <mikael@lilotux.net>
parents: 1802
diff changeset
266 /* vim: set et cindent cinoptions=>2\:2(0 ts=2 sw=2: For Vim users... */