pidgin/gtkblist.h

Sun, 28 Oct 2007 18:13:50 +0000

author
Casey Harkins <charkins@pidgin.im>
date
Sun, 28 Oct 2007 18:13:50 +0000
changeset 21113
09118de8bda6
parent 20940
925d3d68b3af
child 21296
406dbf97ff66
permissions
-rw-r--r--

Track the actual visibility for the buddy list (unobscured, partially and
fully obscured). This maintains the behavior from the previous commit
(raising partially obscured buddy list instead of hiding), but also
maintains refreshing of the buddy list when partially obscured which the
previous commit broke.

5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1 /**
5248
f4f944f4dbe0 [gaim-migrate @ 5620]
Mark Doliner <markdoliner@pidgin.im>
parents: 5234
diff changeset
2 * @file gtkblist.h GTK+ Buddy List API
16254
eeb2bba4dc94 Rename the Doxygen group from gtkui to pidgin.
Richard Laager <rlaager@pidgin.im>
parents: 16182
diff changeset
3 * @ingroup pidgin
20890
c4253dc37ac0 ChangeLog by resiak@soc.pidgin.im:
Will Thompson <resiak@pidgin.im>
parents: 20147
diff changeset
4 * @see @ref gtkblist-signals
20147
66f05a854eee applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@pidgin.im>
parents: 19862
diff changeset
5 */
66f05a854eee applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@pidgin.im>
parents: 19862
diff changeset
6
66f05a854eee applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@pidgin.im>
parents: 19862
diff changeset
7 /* pidgin
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
8 *
15572
e069b22c1fc4 headers to pidgin
Sean Egan <seanegan@pidgin.im>
parents: 15569
diff changeset
9 * Pidgin is the legal property of its developers, whose names are too numerous
8046
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 7636
diff changeset
10 * to list here. Please refer to the COPYRIGHT file distributed with this
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 7636
diff changeset
11 * source distribution.
5906
b9e4aaf4ae51 [gaim-migrate @ 6338]
Nathan Walp <nwalp@pidgin.im>
parents: 5872
diff changeset
12 *
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
13 * This program is free software; you can redistribute it and/or modify
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
14 * it under the terms of the GNU General Public License as published by
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
15 * the Free Software Foundation; either version 2 of the License, or
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
16 * (at your option) any later version.
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
17 *
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
18 * This program is distributed in the hope that it will be useful,
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
21 * GNU General Public License for more details.
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
22 *
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
23 * You should have received a copy of the GNU General Public License
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
24 * along with this program; if not, write to the Free Software
19859
71d37b57eff2 The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 19652
diff changeset
25 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
26 */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
27 #ifndef _PIDGINBLIST_H_
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
28 #define _PIDGINBLIST_H_
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
29
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
30 typedef struct _PidginBuddyList PidginBuddyList;
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5631
diff changeset
31
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
32 enum {
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
33 STATUS_ICON_COLUMN,
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
34 STATUS_ICON_VISIBLE_COLUMN,
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
35 NAME_COLUMN,
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
36 IDLE_COLUMN,
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14253
diff changeset
37 IDLE_VISIBLE_COLUMN,
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
38 BUDDY_ICON_COLUMN,
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14253
diff changeset
39 BUDDY_ICON_VISIBLE_COLUMN,
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
40 NODE_COLUMN,
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14253
diff changeset
41 BGCOLOR_COLUMN,
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14253
diff changeset
42 GROUP_EXPANDER_COLUMN,
16182
88b7040408c8 Set the disable maximize button hint on the blist. I couldn't find a window manager that supports this, but I bet win32 does.
Sean Egan <seanegan@pidgin.im>
parents: 15931
diff changeset
43 GROUP_EXPANDER_VISIBLE_COLUMN,
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14253
diff changeset
44 CONTACT_EXPANDER_COLUMN,
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14253
diff changeset
45 CONTACT_EXPANDER_VISIBLE_COLUMN,
15524
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15458
diff changeset
46 EMBLEM_COLUMN,
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15458
diff changeset
47 EMBLEM_VISIBLE_COLUMN,
19652
b0a14d85e2e5 Fixes #2146. Adds a Show Protocol Icon option and groups related Show menu items into a submenu. Patch from Justin Heiner
Sean Egan <seanegan@pidgin.im>
parents: 19057
diff changeset
48 PROTOCOL_ICON_COLUMN,
b0a14d85e2e5 Fixes #2146. Adds a Show Protocol Icon option and groups related Show menu items into a submenu. Patch from Justin Heiner
Sean Egan <seanegan@pidgin.im>
parents: 19057
diff changeset
49 PROTOCOL_ICON_VISIBLE_COLUMN,
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
50 BLIST_COLUMNS
10008
1de3454a0dca [gaim-migrate @ 10925]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
51
1de3454a0dca [gaim-migrate @ 10925]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
52 };
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
53
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
54 typedef enum {
15569
e85adc8d3b5c gtkblist changes to pidgin
Sean Egan <seanegan@pidgin.im>
parents: 15562
diff changeset
55 PIDGIN_STATUS_ICON_LARGE,
e85adc8d3b5c gtkblist changes to pidgin
Sean Egan <seanegan@pidgin.im>
parents: 15562
diff changeset
56 PIDGIN_STATUS_ICON_SMALL
7098
22eabd4f5ed4 [gaim-migrate @ 7663]
Christian Hammond <chipx86@chipx86.com>
parents: 7035
diff changeset
57
15569
e85adc8d3b5c gtkblist changes to pidgin
Sean Egan <seanegan@pidgin.im>
parents: 15562
diff changeset
58 } PidginStatusIconSize;
7098
22eabd4f5ed4 [gaim-migrate @ 7663]
Christian Hammond <chipx86@chipx86.com>
parents: 7035
diff changeset
59
15577
b8129373f65e More pidgin changes
Sean Egan <seanegan@pidgin.im>
parents: 15572
diff changeset
60 #include "pidgin.h"
10008
1de3454a0dca [gaim-migrate @ 10925]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
61 #include "blist.h"
1de3454a0dca [gaim-migrate @ 10925]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
62
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
63 /**************************************************************************
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
64 * @name Structures
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
65 **************************************************************************/
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
66 /**
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
67 * Like, everything you need to know about the gtk buddy list
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
68 */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
69 struct _PidginBuddyList {
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
70 GtkWidget *window;
15692
ecda27df58b9 Some more pidgininfication
Daniel Atallah <datallah@pidgin.im>
parents: 15577
diff changeset
71 GtkWidget *notebook; /**< The notebook that switches between the real buddy list and the helpful
15086
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 14865
diff changeset
72 instructions page */
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 14865
diff changeset
73 GtkWidget *main_vbox; /**< This vbox contains the menu and notebook */
15692
ecda27df58b9 Some more pidgininfication
Daniel Atallah <datallah@pidgin.im>
parents: 15577
diff changeset
74 GtkWidget *vbox; /**< This is the vbox that everything important gets packed into.
15086
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 14865
diff changeset
75 Your plugin might want to pack something in it itself. Go, plugins! */
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
76
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
77 GtkWidget *treeview; /**< It's a treeview... d'uh. */
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
78 GtkTreeStore *treemodel; /**< This is the treemodel. */
14518
abe8c4704aaf [gaim-migrate @ 17170]
Sean Egan <seanegan@pidgin.im>
parents: 14510
diff changeset
79 GtkTreeViewColumn *text_column; /**< Column */
11016
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10884
diff changeset
80
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10884
diff changeset
81 GtkCellRenderer *text_rend;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
82
5427
a45fa07ef20d [gaim-migrate @ 5806]
Mark Doliner <markdoliner@pidgin.im>
parents: 5422
diff changeset
83 GtkItemFactory *ift;
12116
17bf39d2678f [gaim-migrate @ 14416]
Casey Harkins <charkins@pidgin.im>
parents: 12080
diff changeset
84 GtkWidget *menutray; /**< The menu tray widget. */
17bf39d2678f [gaim-migrate @ 14416]
Casey Harkins <charkins@pidgin.im>
parents: 12080
diff changeset
85 GtkWidget *menutrayicon; /**< The menu tray icon. */
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
86
13015
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 12583
diff changeset
87 GHashTable *connection_errors; /**< Caches connection error messages and accounts. */
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 12583
diff changeset
88
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
89 guint refresh_timer; /**< The timer for refreshing every 30 seconds */
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
90
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
91 guint timeout; /**< The timeout for the tooltip. */
10354
997ffe337bad [gaim-migrate @ 11571]
Sean Egan <seanegan@pidgin.im>
parents: 10079
diff changeset
92 guint drag_timeout; /**< The timeout for expanding contacts on drags */
7636
34f4cb560c8e [gaim-migrate @ 8278]
Sean Egan <seanegan@pidgin.im>
parents: 7304
diff changeset
93 GdkRectangle tip_rect; /**< This is the bounding rectangle of the
34f4cb560c8e [gaim-migrate @ 8278]
Sean Egan <seanegan@pidgin.im>
parents: 7304
diff changeset
94 cell we're currently hovering over. This is
34f4cb560c8e [gaim-migrate @ 8278]
Sean Egan <seanegan@pidgin.im>
parents: 7304
diff changeset
95 used for tooltips. */
34f4cb560c8e [gaim-migrate @ 8278]
Sean Egan <seanegan@pidgin.im>
parents: 7304
diff changeset
96 GdkRectangle contact_rect; /**< This is the bounding rectangle of the contact node
34f4cb560c8e [gaim-migrate @ 8278]
Sean Egan <seanegan@pidgin.im>
parents: 7304
diff changeset
97 and its children. This is used for auto-expand on
34f4cb560c8e [gaim-migrate @ 8278]
Sean Egan <seanegan@pidgin.im>
parents: 7304
diff changeset
98 mouseover. */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15692
diff changeset
99 PurpleBlistNode *mouseover_contact; /**< This is the contact currently mouse-over expanded */
7636
34f4cb560c8e [gaim-migrate @ 8278]
Sean Egan <seanegan@pidgin.im>
parents: 7304
diff changeset
100
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
101 GtkWidget *tipwindow; /**< The window used by the tooltip */
11890
3126a9d03cbd [gaim-migrate @ 14181]
Nathan Walp <nwalp@pidgin.im>
parents: 11796
diff changeset
102 GList *tooltipdata; /**< The data for each "chunk" of the tooltip */
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
103
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15692
diff changeset
104 PurpleBlistNode *selected_node; /**< The currently selected node */
15243
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15094
diff changeset
105
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15094
diff changeset
106 GdkCursor *hand_cursor; /**< Hand cursor */
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15094
diff changeset
107 GdkCursor *arrow_cursor; /**< Arrow cursor */
15692
ecda27df58b9 Some more pidgininfication
Daniel Atallah <datallah@pidgin.im>
parents: 15577
diff changeset
108
15094
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents: 15086
diff changeset
109 GtkWidget *scrollbook; /**< Scrollbook for alerts */
15243
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15094
diff changeset
110 GtkWidget *headline_hbox; /**< Hbox for headline notification */
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15094
diff changeset
111 GtkWidget *headline_label; /**< Label for headline notifications */
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15094
diff changeset
112 GtkWidget *headline_image; /**< Image for headline notifications */
15300
454ddc38e700 [gaim-migrate @ 18028]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15246
diff changeset
113 GdkPixbuf *headline_close; /**< Close image for closing the headline without triggering the callback */
15243
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15094
diff changeset
114 GCallback headline_callback; /**< Callback for headline notifications */
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15094
diff changeset
115 gpointer headline_data; /**< User data for headline notifications */
15386
2cfff7893ed0 [gaim-migrate @ 18115]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
116 GDestroyNotify headline_destroy; /**< Callback to use for destroying the headline-data */
15246
9663c7183a75 [gaim-migrate @ 17973]
Sean Egan <seanegan@pidgin.im>
parents: 15243
diff changeset
117 gboolean changing_style; /**< True when changing GTK+ theme style */
15692
ecda27df58b9 Some more pidgininfication
Daniel Atallah <datallah@pidgin.im>
parents: 15577
diff changeset
118
13015
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 12583
diff changeset
119 GtkWidget *error_buttons; /**< Box containing the connection error buttons */
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 12583
diff changeset
120 GtkWidget *statusbox; /**< The status selector dropdown */
15458
39c79dc7c965 A lot of status icon changes:
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
121 GdkPixbuf *empty_avatar; /**< A 32x32 transparent pixbuf */
10008
1de3454a0dca [gaim-migrate @ 10925]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
122 };
7098
22eabd4f5ed4 [gaim-migrate @ 7663]
Christian Hammond <chipx86@chipx86.com>
parents: 7035
diff changeset
123
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
124 #define PIDGIN_BLIST(list) ((PidginBuddyList *)(list)->ui_data)
15692
ecda27df58b9 Some more pidgininfication
Daniel Atallah <datallah@pidgin.im>
parents: 15577
diff changeset
125 #define PIDGIN_IS_PIDGIN_BLIST(list) \
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
126 ((list)->ui_ops == pidgin_blist_get_ui_ops())
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
127
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
128 /**************************************************************************
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
129 * @name GTK+ Buddy List API
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
130 **************************************************************************/
5906
b9e4aaf4ae51 [gaim-migrate @ 6338]
Nathan Walp <nwalp@pidgin.im>
parents: 5872
diff changeset
131
b9e4aaf4ae51 [gaim-migrate @ 6338]
Nathan Walp <nwalp@pidgin.im>
parents: 5872
diff changeset
132 /**
8815
efd18a7c99dd [gaim-migrate @ 9577]
Gary Kramlich <grim@pidgin.im>
parents: 8305
diff changeset
133 * Get the handle for the GTK+ blist system.
efd18a7c99dd [gaim-migrate @ 9577]
Gary Kramlich <grim@pidgin.im>
parents: 8305
diff changeset
134 *
efd18a7c99dd [gaim-migrate @ 9577]
Gary Kramlich <grim@pidgin.im>
parents: 8305
diff changeset
135 * @return the handle to the blist system
efd18a7c99dd [gaim-migrate @ 9577]
Gary Kramlich <grim@pidgin.im>
parents: 8305
diff changeset
136 */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
137 void *pidgin_blist_get_handle(void);
8815
efd18a7c99dd [gaim-migrate @ 9577]
Gary Kramlich <grim@pidgin.im>
parents: 8305
diff changeset
138
efd18a7c99dd [gaim-migrate @ 9577]
Gary Kramlich <grim@pidgin.im>
parents: 8305
diff changeset
139 /**
5906
b9e4aaf4ae51 [gaim-migrate @ 6338]
Nathan Walp <nwalp@pidgin.im>
parents: 5872
diff changeset
140 * Initializes the GTK+ blist system.
b9e4aaf4ae51 [gaim-migrate @ 6338]
Nathan Walp <nwalp@pidgin.im>
parents: 5872
diff changeset
141 */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
142 void pidgin_blist_init(void);
5906
b9e4aaf4ae51 [gaim-migrate @ 6338]
Nathan Walp <nwalp@pidgin.im>
parents: 5872
diff changeset
143
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
144 /**
8815
efd18a7c99dd [gaim-migrate @ 9577]
Gary Kramlich <grim@pidgin.im>
parents: 8305
diff changeset
145 * Uninitializes the GTK+ blist system.
efd18a7c99dd [gaim-migrate @ 9577]
Gary Kramlich <grim@pidgin.im>
parents: 8305
diff changeset
146 */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
147 void pidgin_blist_uninit(void);
8815
efd18a7c99dd [gaim-migrate @ 9577]
Gary Kramlich <grim@pidgin.im>
parents: 8305
diff changeset
148
efd18a7c99dd [gaim-migrate @ 9577]
Gary Kramlich <grim@pidgin.im>
parents: 8305
diff changeset
149 /**
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
150 * Returns the UI operations structure for the buddy list.
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
151 *
10814
7e17cb56b019 [gaim-migrate @ 12468]
Luke Schierer <lschiere@pidgin.im>
parents: 10643
diff changeset
152 * @return The GTK+ list operations structure.
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
153 */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15692
diff changeset
154 PurpleBlistUiOps *pidgin_blist_get_ui_ops(void);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
155
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
156 /**
10643
70f67d7c84c4 [gaim-migrate @ 12153]
Sean Egan <seanegan@pidgin.im>
parents: 10484
diff changeset
157 * Returns the default gtk buddy list
11732
aba36f84241a [gaim-migrate @ 14023]
Tim Ringenbach <marv@pidgin.im>
parents: 11709
diff changeset
158 *
10643
70f67d7c84c4 [gaim-migrate @ 12153]
Sean Egan <seanegan@pidgin.im>
parents: 10484
diff changeset
159 * There's normally only one buddy list window, but that isn't a necessity. This function
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
160 * returns the PidginBuddyList we're most likely wanting to work with. This is slightly
10643
70f67d7c84c4 [gaim-migrate @ 12153]
Sean Egan <seanegan@pidgin.im>
parents: 10484
diff changeset
161 * cleaner than an externed global.
11732
aba36f84241a [gaim-migrate @ 14023]
Tim Ringenbach <marv@pidgin.im>
parents: 11709
diff changeset
162 *
10814
7e17cb56b019 [gaim-migrate @ 12468]
Luke Schierer <lschiere@pidgin.im>
parents: 10643
diff changeset
163 * @return The default GTK+ buddy list
10643
70f67d7c84c4 [gaim-migrate @ 12153]
Sean Egan <seanegan@pidgin.im>
parents: 10484
diff changeset
164 */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
165 PidginBuddyList *pidgin_blist_get_default_gtk_blist(void);
10643
70f67d7c84c4 [gaim-migrate @ 12153]
Sean Egan <seanegan@pidgin.im>
parents: 10484
diff changeset
166
70f67d7c84c4 [gaim-migrate @ 12153]
Sean Egan <seanegan@pidgin.im>
parents: 10484
diff changeset
167 /**
9774
220712654b8e [gaim-migrate @ 10642]
Gary Kramlich <grim@pidgin.im>
parents: 9713
diff changeset
168 * Populates a menu with the items shown on the buddy list for a buddy.
220712654b8e [gaim-migrate @ 10642]
Gary Kramlich <grim@pidgin.im>
parents: 9713
diff changeset
169 *
220712654b8e [gaim-migrate @ 10642]
Gary Kramlich <grim@pidgin.im>
parents: 9713
diff changeset
170 * @param menu The menu to populate
14200
799dfae258cf [gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13015
diff changeset
171 * @param buddy The buddy whose menu to get
10484
ce32d1314494 [gaim-migrate @ 11774]
Nathan Walp <nwalp@pidgin.im>
parents: 10354
diff changeset
172 * @param sub TRUE if this is a sub-menu, FALSE otherwise
9774
220712654b8e [gaim-migrate @ 10642]
Gary Kramlich <grim@pidgin.im>
parents: 9713
diff changeset
173 */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15692
diff changeset
174 void pidgin_blist_make_buddy_menu(GtkWidget *menu, PurpleBuddy *buddy, gboolean sub);
9774
220712654b8e [gaim-migrate @ 10642]
Gary Kramlich <grim@pidgin.im>
parents: 9713
diff changeset
175
220712654b8e [gaim-migrate @ 10642]
Gary Kramlich <grim@pidgin.im>
parents: 9713
diff changeset
176 /**
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
177 * Refreshes all the nodes of the buddy list.
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
178 * This should only be called when something changes to affect most of the nodes (such as a ui preference changing)
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
179 *
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
180 * @param list This is the core list that gets updated from
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
181 */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15692
diff changeset
182 void pidgin_blist_refresh(PurpleBuddyList *list);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
183
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
184 void pidgin_blist_update_columns(void);
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
185 void pidgin_blist_update_refresh_timeout(void);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
186
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
187 /**
15524
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15458
diff changeset
188 * Returns the blist emblem
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15458
diff changeset
189 *
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15458
diff changeset
190 * @param node The node to return an emblem for
15692
ecda27df58b9 Some more pidgininfication
Daniel Atallah <datallah@pidgin.im>
parents: 15577
diff changeset
191 *
15524
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15458
diff changeset
192 * @return A newly created GdkPixbuf, or NULL
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15458
diff changeset
193 */
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15458
diff changeset
194 GdkPixbuf *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15692
diff changeset
195 pidgin_blist_get_emblem(PurpleBlistNode *node);
15524
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15458
diff changeset
196
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15458
diff changeset
197 /**
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
198 * Useful for the buddy ticker
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
199 */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15692
diff changeset
200 GdkPixbuf *pidgin_blist_get_status_icon(PurpleBlistNode *node,
15569
e85adc8d3b5c gtkblist changes to pidgin
Sean Egan <seanegan@pidgin.im>
parents: 15562
diff changeset
201 PidginStatusIconSize size);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
202
11018
a3843543f132 [gaim-migrate @ 12888]
Richard Laager <rlaager@pidgin.im>
parents: 11016
diff changeset
203 /**
a3843543f132 [gaim-migrate @ 12888]
Richard Laager <rlaager@pidgin.im>
parents: 11016
diff changeset
204 * Returns a boolean indicating if @a node is part of an expanded contact.
a3843543f132 [gaim-migrate @ 12888]
Richard Laager <rlaager@pidgin.im>
parents: 11016
diff changeset
205 *
a3843543f132 [gaim-migrate @ 12888]
Richard Laager <rlaager@pidgin.im>
parents: 11016
diff changeset
206 * This only makes sense for contact and buddy nodes. @c FALSE is returned
a3843543f132 [gaim-migrate @ 12888]
Richard Laager <rlaager@pidgin.im>
parents: 11016
diff changeset
207 * for other types of nodes.
a3843543f132 [gaim-migrate @ 12888]
Richard Laager <rlaager@pidgin.im>
parents: 11016
diff changeset
208 *
a3843543f132 [gaim-migrate @ 12888]
Richard Laager <rlaager@pidgin.im>
parents: 11016
diff changeset
209 * @param node The node in question.
a3843543f132 [gaim-migrate @ 12888]
Richard Laager <rlaager@pidgin.im>
parents: 11016
diff changeset
210 * @return A boolean indicating if @a node is part of an expanded contact.
a3843543f132 [gaim-migrate @ 12888]
Richard Laager <rlaager@pidgin.im>
parents: 11016
diff changeset
211 */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15692
diff changeset
212 gboolean pidgin_blist_node_is_contact_expanded(PurpleBlistNode *node);
11018
a3843543f132 [gaim-migrate @ 12888]
Richard Laager <rlaager@pidgin.im>
parents: 11016
diff changeset
213
12017
576096d84889 [gaim-migrate @ 14310]
Daniel Atallah <datallah@pidgin.im>
parents: 11890
diff changeset
214 /**
576096d84889 [gaim-migrate @ 14310]
Daniel Atallah <datallah@pidgin.im>
parents: 11890
diff changeset
215 * Intelligently toggles the visibility of the buddy list. If the buddy
576096d84889 [gaim-migrate @ 14310]
Daniel Atallah <datallah@pidgin.im>
parents: 11890
diff changeset
216 * list is obscured, it is brought to the front. If it is not obscured,
576096d84889 [gaim-migrate @ 14310]
Daniel Atallah <datallah@pidgin.im>
parents: 11890
diff changeset
217 * it is hidden. If it is hidden it is shown.
576096d84889 [gaim-migrate @ 14310]
Daniel Atallah <datallah@pidgin.im>
parents: 11890
diff changeset
218 */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
219 void pidgin_blist_toggle_visibility(void);
12017
576096d84889 [gaim-migrate @ 14310]
Daniel Atallah <datallah@pidgin.im>
parents: 11890
diff changeset
220
576096d84889 [gaim-migrate @ 14310]
Daniel Atallah <datallah@pidgin.im>
parents: 11890
diff changeset
221 /**
15692
ecda27df58b9 Some more pidgininfication
Daniel Atallah <datallah@pidgin.im>
parents: 15577
diff changeset
222 * Increases the reference count of visibility managers. Callers should
ecda27df58b9 Some more pidgininfication
Daniel Atallah <datallah@pidgin.im>
parents: 15577
diff changeset
223 * call the complementary remove function when no longer managing
ecda27df58b9 Some more pidgininfication
Daniel Atallah <datallah@pidgin.im>
parents: 15577
diff changeset
224 * visibility.
12017
576096d84889 [gaim-migrate @ 14310]
Daniel Atallah <datallah@pidgin.im>
parents: 11890
diff changeset
225 *
576096d84889 [gaim-migrate @ 14310]
Daniel Atallah <datallah@pidgin.im>
parents: 11890
diff changeset
226 * A visibility manager is something that provides some method for
576096d84889 [gaim-migrate @ 14310]
Daniel Atallah <datallah@pidgin.im>
parents: 11890
diff changeset
227 * showing the buddy list after it is hidden (e.g. docklet plugin).
576096d84889 [gaim-migrate @ 14310]
Daniel Atallah <datallah@pidgin.im>
parents: 11890
diff changeset
228 */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
229 void pidgin_blist_visibility_manager_add(void);
12017
576096d84889 [gaim-migrate @ 14310]
Daniel Atallah <datallah@pidgin.im>
parents: 11890
diff changeset
230
576096d84889 [gaim-migrate @ 14310]
Daniel Atallah <datallah@pidgin.im>
parents: 11890
diff changeset
231 /**
576096d84889 [gaim-migrate @ 14310]
Daniel Atallah <datallah@pidgin.im>
parents: 11890
diff changeset
232 * Decreases the reference count of visibility managers. If the count
576096d84889 [gaim-migrate @ 14310]
Daniel Atallah <datallah@pidgin.im>
parents: 11890
diff changeset
233 * drops below zero, the buddy list is shown.
576096d84889 [gaim-migrate @ 14310]
Daniel Atallah <datallah@pidgin.im>
parents: 11890
diff changeset
234 */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
235 void pidgin_blist_visibility_manager_remove(void);
12017
576096d84889 [gaim-migrate @ 14310]
Daniel Atallah <datallah@pidgin.im>
parents: 11890
diff changeset
236
15094
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents: 15086
diff changeset
237 /**
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents: 15086
diff changeset
238 * Adds a mini-alert to the blist scrollbook
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents: 15086
diff changeset
239 *
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents: 15086
diff changeset
240 * @param widget The widget to add
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents: 15086
diff changeset
241 */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
242 void pidgin_blist_add_alert(GtkWidget *widget);
15094
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents: 15086
diff changeset
243
12017
576096d84889 [gaim-migrate @ 14310]
Daniel Atallah <datallah@pidgin.im>
parents: 11890
diff changeset
244
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
245 /**************************************************************************
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
246 * @name GTK+ Buddy List sorting functions
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
247 **************************************************************************/
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
248
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15692
diff changeset
249 typedef void (*pidgin_blist_sort_function)(PurpleBlistNode *new, PurpleBuddyList *blist, GtkTreeIter group, GtkTreeIter *cur, GtkTreeIter *iter);
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
250
11796
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11732
diff changeset
251 /**
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11732
diff changeset
252 * Gets the current list of sort methods.
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11732
diff changeset
253 *
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11732
diff changeset
254 * @return A GSlist of sort methods
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11732
diff changeset
255 */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
256 GList *pidgin_blist_get_sort_methods(void);
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
257
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
258 struct pidgin_blist_sort_method {
5631
7f510b22ccf5 [gaim-migrate @ 6038]
Nathan Walp <nwalp@pidgin.im>
parents: 5563
diff changeset
259 char *id;
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
260 char *name;
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
261 pidgin_blist_sort_function func;
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
262 };
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
263
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
264 typedef struct pidgin_blist_sort_method PidginBlistSortMethod;
11796
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11732
diff changeset
265
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
266 /**
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
267 * Registers a buddy list sorting method.
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
268 *
5631
7f510b22ccf5 [gaim-migrate @ 6038]
Nathan Walp <nwalp@pidgin.im>
parents: 5563
diff changeset
269 * @param id The unique ID of the sorting method
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
270 * @param name The method's name.
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
271 * @param func A pointer to the function.
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
272 *
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
273 */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
274 void pidgin_blist_sort_method_reg(const char *id, const char *name, pidgin_blist_sort_function func);
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
275
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
276 /**
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
277 * Unregisters a buddy list sorting method.
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
278 *
5631
7f510b22ccf5 [gaim-migrate @ 6038]
Nathan Walp <nwalp@pidgin.im>
parents: 5563
diff changeset
279 * @param id The method's id
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
280 */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
281 void pidgin_blist_sort_method_unreg(const char *id);
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
282
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
283 /**
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
284 * Sets a buddy list sorting method.
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
285 *
5631
7f510b22ccf5 [gaim-migrate @ 6038]
Nathan Walp <nwalp@pidgin.im>
parents: 5563
diff changeset
286 * @param id The method's id.
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
287 */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
288 void pidgin_blist_sort_method_set(const char *id);
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
289
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
290 /**
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
291 * Sets up the programs default sort methods
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
292 */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
293 void pidgin_blist_setup_sort_methods(void);
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
294
5936
4bac764cc792 [gaim-migrate @ 6376]
Christian Hammond <chipx86@chipx86.com>
parents: 5906
diff changeset
295 /**
12296
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12136
diff changeset
296 * Updates the accounts menu on the GTK+ buddy list window.
5936
4bac764cc792 [gaim-migrate @ 6376]
Christian Hammond <chipx86@chipx86.com>
parents: 5906
diff changeset
297 */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
298 void pidgin_blist_update_accounts_menu(void);
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
299
8305
5a6d1168a8b3 [gaim-migrate @ 9029]
Christian Hammond <chipx86@chipx86.com>
parents: 8046
diff changeset
300 /**
8986
30ba617356bb [gaim-migrate @ 9761]
Christopher O'Brien <siege@pidgin.im>
parents: 8940
diff changeset
301 * Updates the plugin actions menu on the GTK+ buddy list window.
30ba617356bb [gaim-migrate @ 9761]
Christopher O'Brien <siege@pidgin.im>
parents: 8940
diff changeset
302 */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
303 void pidgin_blist_update_plugin_actions(void);
8986
30ba617356bb [gaim-migrate @ 9761]
Christopher O'Brien <siege@pidgin.im>
parents: 8940
diff changeset
304
30ba617356bb [gaim-migrate @ 9761]
Christopher O'Brien <siege@pidgin.im>
parents: 8940
diff changeset
305 /**
11796
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11732
diff changeset
306 * Updates the Sorting menu on the GTK+ buddy list window.
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11732
diff changeset
307 */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
308 void pidgin_blist_update_sort_methods(void);
11796
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11732
diff changeset
309
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11732
diff changeset
310 /**
8940
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8815
diff changeset
311 * Determines if showing the join chat dialog is a valid action.
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8815
diff changeset
312 *
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8815
diff changeset
313 * @return Returns TRUE if there are accounts online capable of
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8815
diff changeset
314 * joining chat rooms. Otherwise returns FALSE.
8305
5a6d1168a8b3 [gaim-migrate @ 9029]
Christian Hammond <chipx86@chipx86.com>
parents: 8046
diff changeset
315 */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
316 gboolean pidgin_blist_joinchat_is_showable(void);
8940
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8815
diff changeset
317
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8815
diff changeset
318 /**
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8815
diff changeset
319 * Shows the join chat dialog.
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8815
diff changeset
320 */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
321 void pidgin_blist_joinchat_show(void);
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
322
9051
aebb592d4529 [gaim-migrate @ 9827]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8986
diff changeset
323 /**
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15692
diff changeset
324 * Appends the privacy menu items for a PurpleBlistNode
15380
1171796358b3 [gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15300
diff changeset
325 * TODO: Rename these.
1171796358b3 [gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15300
diff changeset
326 */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15692
diff changeset
327 void pidgin_append_blist_node_privacy_menu(GtkWidget *menu, PurpleBlistNode *node);
15380
1171796358b3 [gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15300
diff changeset
328
1171796358b3 [gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15300
diff changeset
329 /**
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15692
diff changeset
330 * Appends the protocol specific menu items for a PurpleBlistNode
13015
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 12583
diff changeset
331 * TODO: Rename these.
9051
aebb592d4529 [gaim-migrate @ 9827]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8986
diff changeset
332 */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15692
diff changeset
333 void pidgin_append_blist_node_proto_menu (GtkWidget *menu, PurpleConnection *gc, PurpleBlistNode *node);
9051
aebb592d4529 [gaim-migrate @ 9827]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8986
diff changeset
334
aebb592d4529 [gaim-migrate @ 9827]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8986
diff changeset
335 /**
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15692
diff changeset
336 * Appends the extended menu items for a PurpleBlistNode
13015
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 12583
diff changeset
337 * TODO: Rename these.
9051
aebb592d4529 [gaim-migrate @ 9827]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8986
diff changeset
338 */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15692
diff changeset
339 void pidgin_append_blist_node_extended_menu(GtkWidget *menu, PurpleBlistNode *node);
9051
aebb592d4529 [gaim-migrate @ 9827]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8986
diff changeset
340
13015
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 12583
diff changeset
341 /**
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 12583
diff changeset
342 * Used by the connection API to tell the blist if an account
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 12583
diff changeset
343 * has a connection error or no longer has a connection error.
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 12583
diff changeset
344 *
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 12583
diff changeset
345 * @param account The account that either has a connection error
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 12583
diff changeset
346 * or no longer has a connection error.
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 12583
diff changeset
347 * @param message The connection error message, or NULL if this
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 12583
diff changeset
348 * account is no longer in an error state.
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 12583
diff changeset
349 */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15692
diff changeset
350 void pidgin_blist_update_account_error_state(PurpleAccount *account, const char *message);
13015
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 12583
diff changeset
351
15243
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15094
diff changeset
352 /**
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15094
diff changeset
353 * Sets a headline notification
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15094
diff changeset
354 *
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15094
diff changeset
355 * This is currently used for mail notification, but could theoretically be used for anything.
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15094
diff changeset
356 * Only the most recent headline will be shown.
15692
ecda27df58b9 Some more pidgininfication
Daniel Atallah <datallah@pidgin.im>
parents: 15577
diff changeset
357 *
15243
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15094
diff changeset
358 * @param text Pango Markup for the label text
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15094
diff changeset
359 * @param pixbuf The GdkPixbuf for the icon
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15094
diff changeset
360 * @param callback The callback to call when headline is clicked
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15094
diff changeset
361 * @param user_data The userdata to include in the callback
15386
2cfff7893ed0 [gaim-migrate @ 18115]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
362 * @param destroy The callback to call when headline is closed or replaced by another headline.
15243
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15094
diff changeset
363 */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
364 void pidgin_blist_set_headline(const char *text, GdkPixbuf *pixbuf, GCallback callback, gpointer user_data,
15386
2cfff7893ed0 [gaim-migrate @ 18115]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
365 GDestroyNotify destroy);
15243
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15094
diff changeset
366
18253
e25dd002e0be Start work on blist pane in conversation. Looks like: http://pidgin.im/~seanegan/infopane.png Certainly much to be done yet.
Sean Egan <seanegan@pidgin.im>
parents: 16254
diff changeset
367 /**
e25dd002e0be Start work on blist pane in conversation. Looks like: http://pidgin.im/~seanegan/infopane.png Certainly much to be done yet.
Sean Egan <seanegan@pidgin.im>
parents: 16254
diff changeset
368 * Returns a buddy's Pango markup appropriate for setting in a GtkCellRenderer.
e25dd002e0be Start work on blist pane in conversation. Looks like: http://pidgin.im/~seanegan/infopane.png Certainly much to be done yet.
Sean Egan <seanegan@pidgin.im>
parents: 16254
diff changeset
369 *
e25dd002e0be Start work on blist pane in conversation. Looks like: http://pidgin.im/~seanegan/infopane.png Certainly much to be done yet.
Sean Egan <seanegan@pidgin.im>
parents: 16254
diff changeset
370 * @param buddy The buddy to return markup from
e25dd002e0be Start work on blist pane in conversation. Looks like: http://pidgin.im/~seanegan/infopane.png Certainly much to be done yet.
Sean Egan <seanegan@pidgin.im>
parents: 16254
diff changeset
371 * @param selected Whether this buddy is selected. If TRUE, the markup will not change the color.
19057
59fae1cbeee6 show status messages in infopane even if not in buddy list. Fixes #2321
Sean Egan <seanegan@pidgin.im>
parents: 18970
diff changeset
372 * @param aliased TRUE to return the appropriate alias of this buddy, FALSE to return its screenname and status information
18253
e25dd002e0be Start work on blist pane in conversation. Looks like: http://pidgin.im/~seanegan/infopane.png Certainly much to be done yet.
Sean Egan <seanegan@pidgin.im>
parents: 16254
diff changeset
373 * @return The markup for this buddy
20940
925d3d68b3af Doxygen @since tags for libpurple and pidgin.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20890
diff changeset
374 *
925d3d68b3af Doxygen @since tags for libpurple and pidgin.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20890
diff changeset
375 * @since 2.1.0
18253
e25dd002e0be Start work on blist pane in conversation. Looks like: http://pidgin.im/~seanegan/infopane.png Certainly much to be done yet.
Sean Egan <seanegan@pidgin.im>
parents: 16254
diff changeset
376 */
18274
b4eb1720fddf Show screenname instead of alias in conversation infopanes
Sean Egan <seanegan@pidgin.im>
parents: 18253
diff changeset
377 gchar *pidgin_blist_get_name_markup(PurpleBuddy *buddy, gboolean selected, gboolean aliased);
18253
e25dd002e0be Start work on blist pane in conversation. Looks like: http://pidgin.im/~seanegan/infopane.png Certainly much to be done yet.
Sean Egan <seanegan@pidgin.im>
parents: 16254
diff changeset
378
18970
ef13a2231e36 Tooltips in infopanes
Sean Egan <seanegan@pidgin.im>
parents: 18274
diff changeset
379 /**
ef13a2231e36 Tooltips in infopanes
Sean Egan <seanegan@pidgin.im>
parents: 18274
diff changeset
380 * Creates the Buddy List tooltip at the current pointer location for the given buddy list node.
ef13a2231e36 Tooltips in infopanes
Sean Egan <seanegan@pidgin.im>
parents: 18274
diff changeset
381 *
ef13a2231e36 Tooltips in infopanes
Sean Egan <seanegan@pidgin.im>
parents: 18274
diff changeset
382 * This tooltip will be destroyed the next time this function is called, or when XXXX
ef13a2231e36 Tooltips in infopanes
Sean Egan <seanegan@pidgin.im>
parents: 18274
diff changeset
383 * is called
ef13a2231e36 Tooltips in infopanes
Sean Egan <seanegan@pidgin.im>
parents: 18274
diff changeset
384 *
19862
3aa48ac21c45 This will silence a few warnings when building the Doxygen docs.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 19859
diff changeset
385 * @param node The buddy list node to show a tooltip for
18970
ef13a2231e36 Tooltips in infopanes
Sean Egan <seanegan@pidgin.im>
parents: 18274
diff changeset
386 * @param widget The widget to draw the tooltip on
20940
925d3d68b3af Doxygen @since tags for libpurple and pidgin.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20890
diff changeset
387 *
925d3d68b3af Doxygen @since tags for libpurple and pidgin.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20890
diff changeset
388 * @since 2.1.0
18970
ef13a2231e36 Tooltips in infopanes
Sean Egan <seanegan@pidgin.im>
parents: 18274
diff changeset
389 */
ef13a2231e36 Tooltips in infopanes
Sean Egan <seanegan@pidgin.im>
parents: 18274
diff changeset
390 void pidgin_blist_draw_tooltip(PurpleBlistNode *node, GtkWidget *widget);
ef13a2231e36 Tooltips in infopanes
Sean Egan <seanegan@pidgin.im>
parents: 18274
diff changeset
391
ef13a2231e36 Tooltips in infopanes
Sean Egan <seanegan@pidgin.im>
parents: 18274
diff changeset
392 /**
ef13a2231e36 Tooltips in infopanes
Sean Egan <seanegan@pidgin.im>
parents: 18274
diff changeset
393 * Destroys the current (if any) Buddy List tooltip
20940
925d3d68b3af Doxygen @since tags for libpurple and pidgin.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20890
diff changeset
394 *
925d3d68b3af Doxygen @since tags for libpurple and pidgin.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20890
diff changeset
395 * @since 2.1.0
18970
ef13a2231e36 Tooltips in infopanes
Sean Egan <seanegan@pidgin.im>
parents: 18274
diff changeset
396 */
ef13a2231e36 Tooltips in infopanes
Sean Egan <seanegan@pidgin.im>
parents: 18274
diff changeset
397 void pidgin_blist_tooltip_destroy(void);
ef13a2231e36 Tooltips in infopanes
Sean Egan <seanegan@pidgin.im>
parents: 18274
diff changeset
398
ef13a2231e36 Tooltips in infopanes
Sean Egan <seanegan@pidgin.im>
parents: 18274
diff changeset
399
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
400 #endif /* _PIDGINBLIST_H_ */

mercurial