pidgin/gtkblist.h

Tue, 07 May 2013 05:04:46 -0400

author
Elliott Sales de Andrade <qulogic@pidgin.im>
date
Tue, 07 May 2013 05:04:46 -0400
changeset 33923
0fcc5635daba
parent 33167
fce72d79861f
child 34699
09b2c9219b57
permissions
-rw-r--r--

Rewrite debug window filter in JS.

Note, this does cause a couple regressions, but they are probably not
that big a deal. First, the JS regular expression syntax is slightly
different. Second, the JS regex API lacks a way to reliably determine
the location of matched groups, so we can't highlight just the groups
and must highlight the entire expression.

I suspect that none of our users ever had to use any fancy regex in the
debug window, and that most of our developers didn't even know it could
be done. So I doubt these regressions will cause much pain.

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
25630
f9fb8da4b5ec Sprinkle some @copydoc directives around to shut up some doxygen whining.
Etan Reisner <deryni@pidgin.im>
parents: 21307
diff changeset
30 /** @copydoc _PidginBuddyList */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
31 typedef struct _PidginBuddyList PidginBuddyList;
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5631
diff changeset
32
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
33 enum {
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
34 STATUS_ICON_COLUMN,
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
35 STATUS_ICON_VISIBLE_COLUMN,
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
36 NAME_COLUMN,
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
37 IDLE_COLUMN,
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14253
diff changeset
38 IDLE_VISIBLE_COLUMN,
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
39 BUDDY_ICON_COLUMN,
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14253
diff changeset
40 BUDDY_ICON_VISIBLE_COLUMN,
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
41 NODE_COLUMN,
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14253
diff changeset
42 BGCOLOR_COLUMN,
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14253
diff changeset
43 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
44 GROUP_EXPANDER_VISIBLE_COLUMN,
14471
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14253
diff changeset
45 CONTACT_EXPANDER_COLUMN,
edec88079240 [gaim-migrate @ 17117]
Sean Egan <seanegan@pidgin.im>
parents: 14253
diff changeset
46 CONTACT_EXPANDER_VISIBLE_COLUMN,
15524
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15458
diff changeset
47 EMBLEM_COLUMN,
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15458
diff changeset
48 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
49 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
50 PROTOCOL_ICON_VISIBLE_COLUMN,
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
51 BLIST_COLUMNS
10008
1de3454a0dca [gaim-migrate @ 10925]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
52
1de3454a0dca [gaim-migrate @ 10925]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
53 };
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
54
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
55 typedef enum {
15569
e85adc8d3b5c gtkblist changes to pidgin
Sean Egan <seanegan@pidgin.im>
parents: 15562
diff changeset
56 PIDGIN_STATUS_ICON_LARGE,
e85adc8d3b5c gtkblist changes to pidgin
Sean Egan <seanegan@pidgin.im>
parents: 15562
diff changeset
57 PIDGIN_STATUS_ICON_SMALL
7098
22eabd4f5ed4 [gaim-migrate @ 7663]
Christian Hammond <chipx86@chipx86.com>
parents: 7035
diff changeset
58
15569
e85adc8d3b5c gtkblist changes to pidgin
Sean Egan <seanegan@pidgin.im>
parents: 15562
diff changeset
59 } PidginStatusIconSize;
7098
22eabd4f5ed4 [gaim-migrate @ 7663]
Christian Hammond <chipx86@chipx86.com>
parents: 7035
diff changeset
60
15577
b8129373f65e More pidgin changes
Sean Egan <seanegan@pidgin.im>
parents: 15572
diff changeset
61 #include "pidgin.h"
10008
1de3454a0dca [gaim-migrate @ 10925]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
62 #include "blist.h"
23656
d4acd51c1446 start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 21307
diff changeset
63 #include "gtkblist-theme.h"
10008
1de3454a0dca [gaim-migrate @ 10925]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
64
5228
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 * @name Structures
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
67 **************************************************************************/
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
68 /**
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
69 * Like, everything you need to know about the gtk buddy list
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
70 */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
71 struct _PidginBuddyList {
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
72 GtkWidget *window;
15692
ecda27df58b9 Some more pidgininfication
Daniel Atallah <datallah@pidgin.im>
parents: 15577
diff changeset
73 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
74 instructions page */
c680354b7c95 [gaim-migrate @ 17806]
Sean Egan <seanegan@pidgin.im>
parents: 14865
diff changeset
75 GtkWidget *main_vbox; /**< This vbox contains the menu and notebook */
15692
ecda27df58b9 Some more pidgininfication
Daniel Atallah <datallah@pidgin.im>
parents: 15577
diff changeset
76 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
77 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
78
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
79 GtkWidget *treeview; /**< It's a treeview... d'uh. */
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
80 GtkTreeStore *treemodel; /**< This is the treemodel. */
14518
abe8c4704aaf [gaim-migrate @ 17170]
Sean Egan <seanegan@pidgin.im>
parents: 14510
diff changeset
81 GtkTreeViewColumn *text_column; /**< Column */
11016
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10884
diff changeset
82
9990e360ee9c [gaim-migrate @ 12885]
Sean Egan <seanegan@pidgin.im>
parents: 10884
diff changeset
83 GtkCellRenderer *text_rend;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
84
32348
305b415e90d6 Start converting Buddy List to new UI Manager code. Some auto-generated
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25911
diff changeset
85 GtkUIManager *ui;
12116
17bf39d2678f [gaim-migrate @ 14416]
Casey Harkins <charkins@pidgin.im>
parents: 12080
diff changeset
86 GtkWidget *menutray; /**< The menu tray widget. */
17bf39d2678f [gaim-migrate @ 14416]
Casey Harkins <charkins@pidgin.im>
parents: 12080
diff changeset
87 GtkWidget *menutrayicon; /**< The menu tray icon. */
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
88
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
15094
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents: 15086
diff changeset
106 GtkWidget *scrollbook; /**< Scrollbook for alerts */
33115
d01bb4e26cb7 Hide some internal buddy list stuff.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32989
diff changeset
107 GtkWidget *headline; /**< Widget for headline notifications */
d01bb4e26cb7 Hide some internal buddy list stuff.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32989
diff changeset
108 GtkWidget *headline_label; /**< Label for headline notifications */
15243
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15094
diff changeset
109 GtkWidget *headline_image; /**< Image for headline notifications */
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15094
diff changeset
110 GCallback headline_callback; /**< Callback for headline notifications */
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15094
diff changeset
111 gpointer headline_data; /**< User data for headline notifications */
15386
2cfff7893ed0 [gaim-migrate @ 18115]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15380
diff changeset
112 GDestroyNotify headline_destroy; /**< Callback to use for destroying the headline-data */
15692
ecda27df58b9 Some more pidgininfication
Daniel Atallah <datallah@pidgin.im>
parents: 15577
diff changeset
113
13015
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 12583
diff changeset
114 GtkWidget *statusbox; /**< The status selector dropdown */
15458
39c79dc7c965 A lot of status icon changes:
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
115 GdkPixbuf *empty_avatar; /**< A 32x32 transparent pixbuf */
21307
63bb9b16256e Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <resiak@pidgin.im>
parents: 21296
diff changeset
116
63bb9b16256e Group all NAME_IN_USE errors together into one neat mini-dialog on the buddy
Will Thompson <resiak@pidgin.im>
parents: 21296
diff changeset
117 gpointer priv; /**< Pointer to opaque private data */
10008
1de3454a0dca [gaim-migrate @ 10925]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
118 };
7098
22eabd4f5ed4 [gaim-migrate @ 7663]
Christian Hammond <chipx86@chipx86.com>
parents: 7035
diff changeset
119
29673
d2759164a4a3 a bunch more struct hiding fixes, but too much for me at the moment
Gary Kramlich <grim@reaperworld.com>
parents: 25911
diff changeset
120 #define PIDGIN_BLIST(list) ((PidginBuddyList *)purple_blist_get_ui_data())
15692
ecda27df58b9 Some more pidgininfication
Daniel Atallah <datallah@pidgin.im>
parents: 15577
diff changeset
121 #define PIDGIN_IS_PIDGIN_BLIST(list) \
29673
d2759164a4a3 a bunch more struct hiding fixes, but too much for me at the moment
Gary Kramlich <grim@reaperworld.com>
parents: 25911
diff changeset
122 (purple_blist_get_ui_ops() == pidgin_blist_get_ui_ops())
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
123
32790
b95c7c504118 Add G_BEGIN/END_DECLS to Pidgin public headers, most of which did
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32604
diff changeset
124 G_BEGIN_DECLS
b95c7c504118 Add G_BEGIN/END_DECLS to Pidgin public headers, most of which did
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32604
diff changeset
125
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
126 /**************************************************************************
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
127 * @name GTK+ Buddy List API
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
128 **************************************************************************/
5906
b9e4aaf4ae51 [gaim-migrate @ 6338]
Nathan Walp <nwalp@pidgin.im>
parents: 5872
diff changeset
129
b9e4aaf4ae51 [gaim-migrate @ 6338]
Nathan Walp <nwalp@pidgin.im>
parents: 5872
diff changeset
130 /**
8815
efd18a7c99dd [gaim-migrate @ 9577]
Gary Kramlich <grim@pidgin.im>
parents: 8305
diff changeset
131 * Get the handle for the GTK+ blist system.
efd18a7c99dd [gaim-migrate @ 9577]
Gary Kramlich <grim@pidgin.im>
parents: 8305
diff changeset
132 *
efd18a7c99dd [gaim-migrate @ 9577]
Gary Kramlich <grim@pidgin.im>
parents: 8305
diff changeset
133 * @return the handle to the blist system
efd18a7c99dd [gaim-migrate @ 9577]
Gary Kramlich <grim@pidgin.im>
parents: 8305
diff changeset
134 */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
135 void *pidgin_blist_get_handle(void);
8815
efd18a7c99dd [gaim-migrate @ 9577]
Gary Kramlich <grim@pidgin.im>
parents: 8305
diff changeset
136
efd18a7c99dd [gaim-migrate @ 9577]
Gary Kramlich <grim@pidgin.im>
parents: 8305
diff changeset
137 /**
5906
b9e4aaf4ae51 [gaim-migrate @ 6338]
Nathan Walp <nwalp@pidgin.im>
parents: 5872
diff changeset
138 * Initializes the GTK+ blist system.
b9e4aaf4ae51 [gaim-migrate @ 6338]
Nathan Walp <nwalp@pidgin.im>
parents: 5872
diff changeset
139 */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
140 void pidgin_blist_init(void);
5906
b9e4aaf4ae51 [gaim-migrate @ 6338]
Nathan Walp <nwalp@pidgin.im>
parents: 5872
diff changeset
141
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
142 /**
8815
efd18a7c99dd [gaim-migrate @ 9577]
Gary Kramlich <grim@pidgin.im>
parents: 8305
diff changeset
143 * Uninitializes the GTK+ blist system.
efd18a7c99dd [gaim-migrate @ 9577]
Gary Kramlich <grim@pidgin.im>
parents: 8305
diff changeset
144 */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
145 void pidgin_blist_uninit(void);
8815
efd18a7c99dd [gaim-migrate @ 9577]
Gary Kramlich <grim@pidgin.im>
parents: 8305
diff changeset
146
efd18a7c99dd [gaim-migrate @ 9577]
Gary Kramlich <grim@pidgin.im>
parents: 8305
diff changeset
147 /**
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
148 * Returns the UI operations structure for the buddy list.
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
149 *
10814
7e17cb56b019 [gaim-migrate @ 12468]
Luke Schierer <lschiere@pidgin.im>
parents: 10643
diff changeset
150 * @return The GTK+ list operations structure.
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
151 */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15692
diff changeset
152 PurpleBlistUiOps *pidgin_blist_get_ui_ops(void);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
153
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
154 /**
10643
70f67d7c84c4 [gaim-migrate @ 12153]
Sean Egan <seanegan@pidgin.im>
parents: 10484
diff changeset
155 * Returns the default gtk buddy list
11732
aba36f84241a [gaim-migrate @ 14023]
Tim Ringenbach <marv@pidgin.im>
parents: 11709
diff changeset
156 *
10643
70f67d7c84c4 [gaim-migrate @ 12153]
Sean Egan <seanegan@pidgin.im>
parents: 10484
diff changeset
157 * 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
158 * 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
159 * cleaner than an externed global.
11732
aba36f84241a [gaim-migrate @ 14023]
Tim Ringenbach <marv@pidgin.im>
parents: 11709
diff changeset
160 *
10814
7e17cb56b019 [gaim-migrate @ 12468]
Luke Schierer <lschiere@pidgin.im>
parents: 10643
diff changeset
161 * @return The default GTK+ buddy list
10643
70f67d7c84c4 [gaim-migrate @ 12153]
Sean Egan <seanegan@pidgin.im>
parents: 10484
diff changeset
162 */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
163 PidginBuddyList *pidgin_blist_get_default_gtk_blist(void);
10643
70f67d7c84c4 [gaim-migrate @ 12153]
Sean Egan <seanegan@pidgin.im>
parents: 10484
diff changeset
164
70f67d7c84c4 [gaim-migrate @ 12153]
Sean Egan <seanegan@pidgin.im>
parents: 10484
diff changeset
165 /**
9774
220712654b8e [gaim-migrate @ 10642]
Gary Kramlich <grim@pidgin.im>
parents: 9713
diff changeset
166 * 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
167 *
220712654b8e [gaim-migrate @ 10642]
Gary Kramlich <grim@pidgin.im>
parents: 9713
diff changeset
168 * @param menu The menu to populate
14200
799dfae258cf [gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents: 13015
diff changeset
169 * @param buddy The buddy whose menu to get
10484
ce32d1314494 [gaim-migrate @ 11774]
Nathan Walp <nwalp@pidgin.im>
parents: 10354
diff changeset
170 * @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
171 */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15692
diff changeset
172 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
173
220712654b8e [gaim-migrate @ 10642]
Gary Kramlich <grim@pidgin.im>
parents: 9713
diff changeset
174 /**
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
175 * Refreshes all the nodes of the buddy list.
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
176 * 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
177 *
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
178 * @param list This is the core list that gets updated from
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
179 */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15692
diff changeset
180 void pidgin_blist_refresh(PurpleBuddyList *list);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
181
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
182 void pidgin_blist_update_columns(void);
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
183 void pidgin_blist_update_refresh_timeout(void);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
184
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
185 /**
29728
62c59080a6bf Update pidgin_blist_get_emblem() docs to be accurate.
Daniel Atallah <datallah@pidgin.im>
parents: 29673
diff changeset
186 * Returns the blist emblem.
62c59080a6bf Update pidgin_blist_get_emblem() docs to be accurate.
Daniel Atallah <datallah@pidgin.im>
parents: 29673
diff changeset
187 *
62c59080a6bf Update pidgin_blist_get_emblem() docs to be accurate.
Daniel Atallah <datallah@pidgin.im>
parents: 29673
diff changeset
188 * This may be an existing pixbuf that has been given an additional ref,
62c59080a6bf Update pidgin_blist_get_emblem() docs to be accurate.
Daniel Atallah <datallah@pidgin.im>
parents: 29673
diff changeset
189 * so it shouldn't be modified.
15524
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15458
diff changeset
190 *
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15458
diff changeset
191 * @param node The node to return an emblem for
15692
ecda27df58b9 Some more pidgininfication
Daniel Atallah <datallah@pidgin.im>
parents: 15577
diff changeset
192 *
29728
62c59080a6bf Update pidgin_blist_get_emblem() docs to be accurate.
Daniel Atallah <datallah@pidgin.im>
parents: 29673
diff changeset
193 * @return A GdkPixbuf for the emblem to show, or NULL
15524
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15458
diff changeset
194 */
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15458
diff changeset
195 GdkPixbuf *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15692
diff changeset
196 pidgin_blist_get_emblem(PurpleBlistNode *node);
15524
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15458
diff changeset
197
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15458
diff changeset
198 /**
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
199 * Useful for the buddy ticker
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
200 */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15692
diff changeset
201 GdkPixbuf *pidgin_blist_get_status_icon(PurpleBlistNode *node,
15569
e85adc8d3b5c gtkblist changes to pidgin
Sean Egan <seanegan@pidgin.im>
parents: 15562
diff changeset
202 PidginStatusIconSize size);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
203
11018
a3843543f132 [gaim-migrate @ 12888]
Richard Laager <rlaager@pidgin.im>
parents: 11016
diff changeset
204 /**
a3843543f132 [gaim-migrate @ 12888]
Richard Laager <rlaager@pidgin.im>
parents: 11016
diff changeset
205 * 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
206 *
a3843543f132 [gaim-migrate @ 12888]
Richard Laager <rlaager@pidgin.im>
parents: 11016
diff changeset
207 * 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
208 * for other types of nodes.
a3843543f132 [gaim-migrate @ 12888]
Richard Laager <rlaager@pidgin.im>
parents: 11016
diff changeset
209 *
a3843543f132 [gaim-migrate @ 12888]
Richard Laager <rlaager@pidgin.im>
parents: 11016
diff changeset
210 * @param node The node in question.
a3843543f132 [gaim-migrate @ 12888]
Richard Laager <rlaager@pidgin.im>
parents: 11016
diff changeset
211 * @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
212 */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15692
diff changeset
213 gboolean pidgin_blist_node_is_contact_expanded(PurpleBlistNode *node);
11018
a3843543f132 [gaim-migrate @ 12888]
Richard Laager <rlaager@pidgin.im>
parents: 11016
diff changeset
214
12017
576096d84889 [gaim-migrate @ 14310]
Daniel Atallah <datallah@pidgin.im>
parents: 11890
diff changeset
215 /**
576096d84889 [gaim-migrate @ 14310]
Daniel Atallah <datallah@pidgin.im>
parents: 11890
diff changeset
216 * Intelligently toggles the visibility of the buddy list. If the buddy
576096d84889 [gaim-migrate @ 14310]
Daniel Atallah <datallah@pidgin.im>
parents: 11890
diff changeset
217 * 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
218 * it is hidden. If it is hidden it is shown.
576096d84889 [gaim-migrate @ 14310]
Daniel Atallah <datallah@pidgin.im>
parents: 11890
diff changeset
219 */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
220 void pidgin_blist_toggle_visibility(void);
12017
576096d84889 [gaim-migrate @ 14310]
Daniel Atallah <datallah@pidgin.im>
parents: 11890
diff changeset
221
576096d84889 [gaim-migrate @ 14310]
Daniel Atallah <datallah@pidgin.im>
parents: 11890
diff changeset
222 /**
15692
ecda27df58b9 Some more pidgininfication
Daniel Atallah <datallah@pidgin.im>
parents: 15577
diff changeset
223 * Increases the reference count of visibility managers. Callers should
ecda27df58b9 Some more pidgininfication
Daniel Atallah <datallah@pidgin.im>
parents: 15577
diff changeset
224 * call the complementary remove function when no longer managing
ecda27df58b9 Some more pidgininfication
Daniel Atallah <datallah@pidgin.im>
parents: 15577
diff changeset
225 * visibility.
12017
576096d84889 [gaim-migrate @ 14310]
Daniel Atallah <datallah@pidgin.im>
parents: 11890
diff changeset
226 *
576096d84889 [gaim-migrate @ 14310]
Daniel Atallah <datallah@pidgin.im>
parents: 11890
diff changeset
227 * A visibility manager is something that provides some method for
576096d84889 [gaim-migrate @ 14310]
Daniel Atallah <datallah@pidgin.im>
parents: 11890
diff changeset
228 * 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
229 */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
230 void pidgin_blist_visibility_manager_add(void);
12017
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 /**
576096d84889 [gaim-migrate @ 14310]
Daniel Atallah <datallah@pidgin.im>
parents: 11890
diff changeset
233 * Decreases the reference count of visibility managers. If the count
576096d84889 [gaim-migrate @ 14310]
Daniel Atallah <datallah@pidgin.im>
parents: 11890
diff changeset
234 * drops below zero, the buddy list is shown.
576096d84889 [gaim-migrate @ 14310]
Daniel Atallah <datallah@pidgin.im>
parents: 11890
diff changeset
235 */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
236 void pidgin_blist_visibility_manager_remove(void);
12017
576096d84889 [gaim-migrate @ 14310]
Daniel Atallah <datallah@pidgin.im>
parents: 11890
diff changeset
237
15094
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents: 15086
diff changeset
238 /**
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents: 15086
diff changeset
239 * Adds a mini-alert to the blist scrollbook
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents: 15086
diff changeset
240 *
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents: 15086
diff changeset
241 * @param widget The widget to add
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents: 15086
diff changeset
242 */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
243 void pidgin_blist_add_alert(GtkWidget *widget);
15094
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents: 15086
diff changeset
244
23656
d4acd51c1446 start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 21307
diff changeset
245 /**
d4acd51c1446 start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 21307
diff changeset
246 * Sets the current theme for Pidgin to use
d4acd51c1446 start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 21307
diff changeset
247 *
d4acd51c1446 start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 21307
diff changeset
248 * @param theme the new theme to use
d4acd51c1446 start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 21307
diff changeset
249 */
23659
8251d0f67df5 restructured much of the loader and themes for the buddy list, along with a basic trial of group background
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23656
diff changeset
250 void pidgin_blist_set_theme(PidginBlistTheme *theme);
23656
d4acd51c1446 start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 21307
diff changeset
251
d4acd51c1446 start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 21307
diff changeset
252 /**
d4acd51c1446 start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 21307
diff changeset
253 * Gets Pidgin's current buddy list theme
d4acd51c1446 start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 21307
diff changeset
254 *
25885
5b5e2ca316b2 Add @since 2.6.0 doxygen comments to some of our new functions, and
Mark Doliner <markdoliner@pidgin.im>
parents: 23659
diff changeset
255 * @returns the current theme
23656
d4acd51c1446 start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 21307
diff changeset
256 */
23659
8251d0f67df5 restructured much of the loader and themes for the buddy list, along with a basic trial of group background
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23656
diff changeset
257 PidginBlistTheme *pidgin_blist_get_theme(void);
12017
576096d84889 [gaim-migrate @ 14310]
Daniel Atallah <datallah@pidgin.im>
parents: 11890
diff changeset
258
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
259 /**************************************************************************
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
260 * @name GTK+ Buddy List sorting functions
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
261 **************************************************************************/
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
262
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15692
diff changeset
263 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
264
11796
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11732
diff changeset
265 /**
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11732
diff changeset
266 * Gets the current list of sort methods.
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11732
diff changeset
267 *
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11732
diff changeset
268 * @return A GSlist of sort methods
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11732
diff changeset
269 */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
270 GList *pidgin_blist_get_sort_methods(void);
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
271
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
272 struct pidgin_blist_sort_method {
5631
7f510b22ccf5 [gaim-migrate @ 6038]
Nathan Walp <nwalp@pidgin.im>
parents: 5563
diff changeset
273 char *id;
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
274 char *name;
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
275 pidgin_blist_sort_function func;
5422
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
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
278 typedef struct pidgin_blist_sort_method PidginBlistSortMethod;
11796
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11732
diff changeset
279
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
280 /**
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
281 * Registers a buddy list sorting method.
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
282 *
5631
7f510b22ccf5 [gaim-migrate @ 6038]
Nathan Walp <nwalp@pidgin.im>
parents: 5563
diff changeset
283 * @param id The unique ID of the sorting method
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
284 * @param name The method's name.
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
285 * @param func A pointer to the function.
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
286 *
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_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
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 * Unregisters a buddy list sorting method.
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
292 *
5631
7f510b22ccf5 [gaim-migrate @ 6038]
Nathan Walp <nwalp@pidgin.im>
parents: 5563
diff changeset
293 * @param id The method's id
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
294 */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
295 void pidgin_blist_sort_method_unreg(const char *id);
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
296
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
297 /**
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
298 * Sets a buddy list sorting method.
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
299 *
5631
7f510b22ccf5 [gaim-migrate @ 6038]
Nathan Walp <nwalp@pidgin.im>
parents: 5563
diff changeset
300 * @param id The method's id.
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
301 */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
302 void pidgin_blist_sort_method_set(const char *id);
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
303
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
304 /**
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
305 * Sets up the programs default sort methods
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
306 */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
307 void pidgin_blist_setup_sort_methods(void);
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
308
5936
4bac764cc792 [gaim-migrate @ 6376]
Christian Hammond <chipx86@chipx86.com>
parents: 5906
diff changeset
309 /**
12296
488cc1a84a50 [gaim-migrate @ 14600]
Etan Reisner <deryni@pidgin.im>
parents: 12136
diff changeset
310 * Updates the accounts menu on the GTK+ buddy list window.
5936
4bac764cc792 [gaim-migrate @ 6376]
Christian Hammond <chipx86@chipx86.com>
parents: 5906
diff changeset
311 */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
312 void pidgin_blist_update_accounts_menu(void);
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
313
8305
5a6d1168a8b3 [gaim-migrate @ 9029]
Christian Hammond <chipx86@chipx86.com>
parents: 8046
diff changeset
314 /**
8986
30ba617356bb [gaim-migrate @ 9761]
Christopher O'Brien <siege@pidgin.im>
parents: 8940
diff changeset
315 * 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
316 */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
317 void pidgin_blist_update_plugin_actions(void);
8986
30ba617356bb [gaim-migrate @ 9761]
Christopher O'Brien <siege@pidgin.im>
parents: 8940
diff changeset
318
30ba617356bb [gaim-migrate @ 9761]
Christopher O'Brien <siege@pidgin.im>
parents: 8940
diff changeset
319 /**
11796
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11732
diff changeset
320 * Updates the Sorting menu on the GTK+ buddy list window.
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11732
diff changeset
321 */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
322 void pidgin_blist_update_sort_methods(void);
11796
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11732
diff changeset
323
bc7e0950806e [gaim-migrate @ 14087]
Sean Egan <seanegan@pidgin.im>
parents: 11732
diff changeset
324 /**
8940
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8815
diff changeset
325 * Determines if showing the join chat dialog is a valid action.
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8815
diff changeset
326 *
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8815
diff changeset
327 * @return Returns TRUE if there are accounts online capable of
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8815
diff changeset
328 * joining chat rooms. Otherwise returns FALSE.
8305
5a6d1168a8b3 [gaim-migrate @ 9029]
Christian Hammond <chipx86@chipx86.com>
parents: 8046
diff changeset
329 */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
330 gboolean pidgin_blist_joinchat_is_showable(void);
8940
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8815
diff changeset
331
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8815
diff changeset
332 /**
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8815
diff changeset
333 * Shows the join chat dialog.
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8815
diff changeset
334 */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
335 void pidgin_blist_joinchat_show(void);
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
336
9051
aebb592d4529 [gaim-migrate @ 9827]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8986
diff changeset
337 /**
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15692
diff changeset
338 * Appends the privacy menu items for a PurpleBlistNode
15380
1171796358b3 [gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15300
diff changeset
339 * TODO: Rename these.
1171796358b3 [gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15300
diff changeset
340 */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15692
diff changeset
341 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
342
1171796358b3 [gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15300
diff changeset
343 /**
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15692
diff changeset
344 * Appends the protocol specific menu items for a PurpleBlistNode
13015
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 12583
diff changeset
345 * TODO: Rename these.
9051
aebb592d4529 [gaim-migrate @ 9827]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8986
diff changeset
346 */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15692
diff changeset
347 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
348
aebb592d4529 [gaim-migrate @ 9827]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8986
diff changeset
349 /**
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15692
diff changeset
350 * Appends the extended menu items for a PurpleBlistNode
13015
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 12583
diff changeset
351 * TODO: Rename these.
9051
aebb592d4529 [gaim-migrate @ 9827]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8986
diff changeset
352 */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15692
diff changeset
353 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
354
13015
79ca1e6153bd [gaim-migrate @ 15368]
Mark Doliner <markdoliner@pidgin.im>
parents: 12583
diff changeset
355 /**
15243
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15094
diff changeset
356 * Sets a headline notification
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15094
diff changeset
357 *
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15094
diff changeset
358 * 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
359 * Only the most recent headline will be shown.
15692
ecda27df58b9 Some more pidgininfication
Daniel Atallah <datallah@pidgin.im>
parents: 15577
diff changeset
360 *
15243
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15094
diff changeset
361 * @param text Pango Markup for the label text
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15094
diff changeset
362 * @param pixbuf The GdkPixbuf for the icon
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15094
diff changeset
363 * @param callback The callback to call when headline is clicked
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15094
diff changeset
364 * @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
365 * @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
366 */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
367 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
368 GDestroyNotify destroy);
15243
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15094
diff changeset
369
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
370 /**
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 * 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
372 *
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 * @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
374 * @param selected Whether this buddy is selected. If TRUE, the markup will not change the color.
25889
26d9ca30335c Change "screen name" to "username" or "buddy name" in a whole bunch of
Mark Doliner <markdoliner@pidgin.im>
parents: 25885
diff changeset
375 * @param aliased TRUE to return the appropriate alias of this buddy, FALSE to return its username 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
376 * @return The markup for this buddy
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
377 */
18274
b4eb1720fddf Show screenname instead of alias in conversation infopanes
Sean Egan <seanegan@pidgin.im>
parents: 18253
diff changeset
378 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
379
18970
ef13a2231e36 Tooltips in infopanes
Sean Egan <seanegan@pidgin.im>
parents: 18274
diff changeset
380 /**
ef13a2231e36 Tooltips in infopanes
Sean Egan <seanegan@pidgin.im>
parents: 18274
diff changeset
381 * 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
382 *
ef13a2231e36 Tooltips in infopanes
Sean Egan <seanegan@pidgin.im>
parents: 18274
diff changeset
383 * 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
384 * is called
ef13a2231e36 Tooltips in infopanes
Sean Egan <seanegan@pidgin.im>
parents: 18274
diff changeset
385 *
19862
3aa48ac21c45 This will silence a few warnings when building the Doxygen docs.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 19859
diff changeset
386 * @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
387 * @param widget The widget to draw the tooltip on
ef13a2231e36 Tooltips in infopanes
Sean Egan <seanegan@pidgin.im>
parents: 18274
diff changeset
388 */
ef13a2231e36 Tooltips in infopanes
Sean Egan <seanegan@pidgin.im>
parents: 18274
diff changeset
389 void pidgin_blist_draw_tooltip(PurpleBlistNode *node, GtkWidget *widget);
ef13a2231e36 Tooltips in infopanes
Sean Egan <seanegan@pidgin.im>
parents: 18274
diff changeset
390
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 * Destroys the current (if any) Buddy List tooltip
ef13a2231e36 Tooltips in infopanes
Sean Egan <seanegan@pidgin.im>
parents: 18274
diff changeset
393 */
ef13a2231e36 Tooltips in infopanes
Sean Egan <seanegan@pidgin.im>
parents: 18274
diff changeset
394 void pidgin_blist_tooltip_destroy(void);
ef13a2231e36 Tooltips in infopanes
Sean Egan <seanegan@pidgin.im>
parents: 18274
diff changeset
395
32790
b95c7c504118 Add G_BEGIN/END_DECLS to Pidgin public headers, most of which did
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32604
diff changeset
396 G_END_DECLS
18970
ef13a2231e36 Tooltips in infopanes
Sean Egan <seanegan@pidgin.im>
parents: 18274
diff changeset
397
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
398 #endif /* _PIDGINBLIST_H_ */

mercurial