src/gtkblist.h

Sun, 14 Nov 2004 21:01:27 +0000

author
Mark Doliner <markdoliner@pidgin.im>
date
Sun, 14 Nov 2004 21:01:27 +0000
changeset 10182
960939362f7f
parent 10079
d4eaff5517fb
child 10354
997ffe337bad
permissions
-rw-r--r--

[gaim-migrate @ 11297]
Remove some away message pref stuff from prefs.c. It's going to have to
change eventually. This gets rid of the gdk assert warning or whatever it
was when closing prefs.

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
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3 * @ingroup gtkui
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4 *
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5 * gaim
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
6 *
8046
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 7636
diff changeset
7 * Gaim is the legal property of its developers, whose names are too numerous
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 7636
diff changeset
8 * 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
9 * source distribution.
5906
b9e4aaf4ae51 [gaim-migrate @ 6338]
Nathan Walp <nwalp@pidgin.im>
parents: 5872
diff changeset
10 *
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
11 * This program is free software; you can redistribute it and/or modify
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
12 * 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
13 * the Free Software Foundation; either version 2 of the License, or
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
14 * (at your option) any later version.
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
15 *
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
16 * This program is distributed in the hope that it will be useful,
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
19 * GNU General Public License for more details.
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
20 *
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
21 * You should have received a copy of the GNU General Public License
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
22 * along with this program; if not, write to the Free Software
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
24 */
9713
bb37562302a1 [gaim-migrate @ 10574]
Mark Doliner <markdoliner@pidgin.im>
parents: 9051
diff changeset
25 #ifndef _GAIM_GTKBLIST_H_
bb37562302a1 [gaim-migrate @ 10574]
Mark Doliner <markdoliner@pidgin.im>
parents: 9051
diff changeset
26 #define _GAIM_GTKBLIST_H_
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
27
10008
1de3454a0dca [gaim-migrate @ 10925]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
28 typedef struct _GaimGtkBuddyList GaimGtkBuddyList;
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5631
diff changeset
29
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
30 enum {
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
31 STATUS_ICON_COLUMN,
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
32 STATUS_ICON_VISIBLE_COLUMN,
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
33 NAME_COLUMN,
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
34 WARNING_COLUMN,
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
35 IDLE_COLUMN,
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
36 BUDDY_ICON_COLUMN,
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
37 NODE_COLUMN,
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
38 BLIST_COLUMNS
10008
1de3454a0dca [gaim-migrate @ 10925]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
39
1de3454a0dca [gaim-migrate @ 10925]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
40 };
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
41
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
42 typedef enum {
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
43 GAIM_STATUS_ICON_LARGE,
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
44 GAIM_STATUS_ICON_SMALL
7098
22eabd4f5ed4 [gaim-migrate @ 7663]
Christian Hammond <chipx86@chipx86.com>
parents: 7035
diff changeset
45
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
46 } GaimStatusIconSize;
7098
22eabd4f5ed4 [gaim-migrate @ 7663]
Christian Hammond <chipx86@chipx86.com>
parents: 7035
diff changeset
47
10008
1de3454a0dca [gaim-migrate @ 10925]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
48 #include "gtkgaim.h"
1de3454a0dca [gaim-migrate @ 10925]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
49 #include "blist.h"
1de3454a0dca [gaim-migrate @ 10925]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
50
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
51 /**************************************************************************
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
52 * @name Structures
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 /**
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
55 * Like, everything you need to know about the gtk buddy list
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
56 */
10008
1de3454a0dca [gaim-migrate @ 10925]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
57 struct _GaimGtkBuddyList {
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
58 GtkWidget *window;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
59 GtkWidget *vbox; /**< This is the vbox that everything gets packed into. Your plugin might
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
60 want to pack something in it itself. Go, plugins! */
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
61
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
62 GtkWidget *treeview; /**< It's a treeview... d'uh. */
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
63 GtkTreeStore *treemodel; /**< This is the treemodel. */
6695
2a63688f0d6d [gaim-migrate @ 7221]
Nathan Walp <nwalp@pidgin.im>
parents: 5936
diff changeset
64 GtkTreeViewColumn *idle_column,
2a63688f0d6d [gaim-migrate @ 7221]
Nathan Walp <nwalp@pidgin.im>
parents: 5936
diff changeset
65 *warning_column,
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
66 *buddy_icon_column;
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
67
5427
a45fa07ef20d [gaim-migrate @ 5806]
Mark Doliner <markdoliner@pidgin.im>
parents: 5422
diff changeset
68 GtkItemFactory *ift;
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
69 GtkWidget *bpmenu; /**< The buddy pounce menu. */
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
70
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
71 guint refresh_timer; /**< The timer for refreshing every 30 seconds */
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
72
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
73 guint timeout; /**< The timeout for the tooltip. */
7636
34f4cb560c8e [gaim-migrate @ 8278]
Sean Egan <seanegan@pidgin.im>
parents: 7304
diff changeset
74 GdkRectangle tip_rect; /**< This is the bounding rectangle of the
34f4cb560c8e [gaim-migrate @ 8278]
Sean Egan <seanegan@pidgin.im>
parents: 7304
diff changeset
75 cell we're currently hovering over. This is
34f4cb560c8e [gaim-migrate @ 8278]
Sean Egan <seanegan@pidgin.im>
parents: 7304
diff changeset
76 used for tooltips. */
34f4cb560c8e [gaim-migrate @ 8278]
Sean Egan <seanegan@pidgin.im>
parents: 7304
diff changeset
77 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
78 and its children. This is used for auto-expand on
34f4cb560c8e [gaim-migrate @ 8278]
Sean Egan <seanegan@pidgin.im>
parents: 7304
diff changeset
79 mouseover. */
34f4cb560c8e [gaim-migrate @ 8278]
Sean Egan <seanegan@pidgin.im>
parents: 7304
diff changeset
80 GaimBlistNode *mouseover_contact; /**< This is the contact currently mouse-over expanded */
34f4cb560c8e [gaim-migrate @ 8278]
Sean Egan <seanegan@pidgin.im>
parents: 7304
diff changeset
81
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
82 GtkWidget *tipwindow; /**< The window used by the tooltip */
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
83
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
84 GaimBlistNode *selected_node; /**< The currently selected node */
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
85
7304
6dd96b6aad23 [gaim-migrate @ 7888]
Sean Egan <seanegan@pidgin.im>
parents: 7098
diff changeset
86 GdkPixbuf *east, *south; /**< Drop shadow stuff */
6dd96b6aad23 [gaim-migrate @ 7888]
Sean Egan <seanegan@pidgin.im>
parents: 7098
diff changeset
87 GdkWindow *east_shadow, *south_shadow; /**< Drop shadow stuff */
6dd96b6aad23 [gaim-migrate @ 7888]
Sean Egan <seanegan@pidgin.im>
parents: 7098
diff changeset
88
10008
1de3454a0dca [gaim-migrate @ 10925]
Mark Doliner <markdoliner@pidgin.im>
parents: 9791
diff changeset
89 };
7098
22eabd4f5ed4 [gaim-migrate @ 7663]
Christian Hammond <chipx86@chipx86.com>
parents: 7035
diff changeset
90
22eabd4f5ed4 [gaim-migrate @ 7663]
Christian Hammond <chipx86@chipx86.com>
parents: 7035
diff changeset
91 #define GAIM_GTK_BLIST(list) ((GaimGtkBuddyList *)(list)->ui_data)
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
92 #define GAIM_IS_GTK_BLIST(list) \
7035
76bca80cd91d [gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents: 6695
diff changeset
93 ((list)->ui_ops == gaim_gtk_blist_get_ui_ops())
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
94
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
95 /**************************************************************************
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
96 * @name GTK+ Buddy List API
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
97 **************************************************************************/
5906
b9e4aaf4ae51 [gaim-migrate @ 6338]
Nathan Walp <nwalp@pidgin.im>
parents: 5872
diff changeset
98
b9e4aaf4ae51 [gaim-migrate @ 6338]
Nathan Walp <nwalp@pidgin.im>
parents: 5872
diff changeset
99 /**
8815
efd18a7c99dd [gaim-migrate @ 9577]
Gary Kramlich <grim@pidgin.im>
parents: 8305
diff changeset
100 * Get the handle for the GTK+ blist system.
efd18a7c99dd [gaim-migrate @ 9577]
Gary Kramlich <grim@pidgin.im>
parents: 8305
diff changeset
101 *
efd18a7c99dd [gaim-migrate @ 9577]
Gary Kramlich <grim@pidgin.im>
parents: 8305
diff changeset
102 * @return the handle to the blist system
efd18a7c99dd [gaim-migrate @ 9577]
Gary Kramlich <grim@pidgin.im>
parents: 8305
diff changeset
103 */
efd18a7c99dd [gaim-migrate @ 9577]
Gary Kramlich <grim@pidgin.im>
parents: 8305
diff changeset
104 void *gaim_gtk_blist_get_handle();
efd18a7c99dd [gaim-migrate @ 9577]
Gary Kramlich <grim@pidgin.im>
parents: 8305
diff changeset
105
efd18a7c99dd [gaim-migrate @ 9577]
Gary Kramlich <grim@pidgin.im>
parents: 8305
diff changeset
106 /**
5906
b9e4aaf4ae51 [gaim-migrate @ 6338]
Nathan Walp <nwalp@pidgin.im>
parents: 5872
diff changeset
107 * Initializes the GTK+ blist system.
b9e4aaf4ae51 [gaim-migrate @ 6338]
Nathan Walp <nwalp@pidgin.im>
parents: 5872
diff changeset
108 */
b9e4aaf4ae51 [gaim-migrate @ 6338]
Nathan Walp <nwalp@pidgin.im>
parents: 5872
diff changeset
109 void gaim_gtk_blist_init(void);
b9e4aaf4ae51 [gaim-migrate @ 6338]
Nathan Walp <nwalp@pidgin.im>
parents: 5872
diff changeset
110
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
111 /**
8815
efd18a7c99dd [gaim-migrate @ 9577]
Gary Kramlich <grim@pidgin.im>
parents: 8305
diff changeset
112 * Uninitializes the GTK+ blist system.
efd18a7c99dd [gaim-migrate @ 9577]
Gary Kramlich <grim@pidgin.im>
parents: 8305
diff changeset
113 */
efd18a7c99dd [gaim-migrate @ 9577]
Gary Kramlich <grim@pidgin.im>
parents: 8305
diff changeset
114 void gaim_gtk_blist_uninit(void);
efd18a7c99dd [gaim-migrate @ 9577]
Gary Kramlich <grim@pidgin.im>
parents: 8305
diff changeset
115
efd18a7c99dd [gaim-migrate @ 9577]
Gary Kramlich <grim@pidgin.im>
parents: 8305
diff changeset
116 /**
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
117 * Returns the UI operations structure for the buddy list.
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
118 *
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
119 * @return The GTK list operations structure.
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
120 */
7098
22eabd4f5ed4 [gaim-migrate @ 7663]
Christian Hammond <chipx86@chipx86.com>
parents: 7035
diff changeset
121 GaimBlistUiOps *gaim_gtk_blist_get_ui_ops(void);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
122
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
123 /**
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
124 * Returns the base image to represent the account, based on the currently selected theme
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
125 *
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
126 * @param account The account.
6695
2a63688f0d6d [gaim-migrate @ 7221]
Nathan Walp <nwalp@pidgin.im>
parents: 5936
diff changeset
127 *
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
128 * @return The icon
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
129 */
5563
d5a7852aa0cb [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5427
diff changeset
130 GdkPixbuf *create_prpl_icon(GaimAccount *account);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
131
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
132 /**
9774
220712654b8e [gaim-migrate @ 10642]
Gary Kramlich <grim@pidgin.im>
parents: 9713
diff changeset
133 * 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
134 *
220712654b8e [gaim-migrate @ 10642]
Gary Kramlich <grim@pidgin.im>
parents: 9713
diff changeset
135 * @param menu The menu to populate
220712654b8e [gaim-migrate @ 10642]
Gary Kramlich <grim@pidgin.im>
parents: 9713
diff changeset
136 * @param buddy The buddy who's menu to get
220712654b8e [gaim-migrate @ 10642]
Gary Kramlich <grim@pidgin.im>
parents: 9713
diff changeset
137 */
220712654b8e [gaim-migrate @ 10642]
Gary Kramlich <grim@pidgin.im>
parents: 9713
diff changeset
138 void gaim_gtk_blist_make_buddy_menu(GtkWidget *menu, GaimBuddy *buddy);
220712654b8e [gaim-migrate @ 10642]
Gary Kramlich <grim@pidgin.im>
parents: 9713
diff changeset
139
220712654b8e [gaim-migrate @ 10642]
Gary Kramlich <grim@pidgin.im>
parents: 9713
diff changeset
140 /**
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
141 * Refreshes all the nodes of the buddy list.
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
142 * 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
143 *
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
144 * @param list This is the core list that gets updated from
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
145 */
7098
22eabd4f5ed4 [gaim-migrate @ 7663]
Christian Hammond <chipx86@chipx86.com>
parents: 7035
diff changeset
146 void gaim_gtk_blist_refresh(GaimBuddyList *list);
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
147
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
148 /**
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
149 * Tells the buddy list to update its toolbar based on the preferences
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
150 *
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
151 */
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
152 void gaim_gtk_blist_update_toolbar();
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 /**
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
155 * Useful for the docklet plugin and also for the win32 tray icon
6695
2a63688f0d6d [gaim-migrate @ 7221]
Nathan Walp <nwalp@pidgin.im>
parents: 5936
diff changeset
156 * This is called when one of those is clicked--it will show/hide the
2a63688f0d6d [gaim-migrate @ 7221]
Nathan Walp <nwalp@pidgin.im>
parents: 5936
diff changeset
157 * buddy list/login window--depending on which is active
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
158 */
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
159 void gaim_gtk_blist_docklet_toggle();
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
160 void gaim_gtk_blist_docklet_add();
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
161 void gaim_gtk_blist_docklet_remove();
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
162 void gaim_gtk_blist_update_columns();
5411
b3683d2acbb4 [gaim-migrate @ 5787]
Mark Doliner <markdoliner@pidgin.im>
parents: 5248
diff changeset
163 void gaim_gtk_blist_update_refresh_timeout();
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
164
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
165 /**
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
166 * Useful for the buddy ticker
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
167 */
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5228
diff changeset
168 GdkPixbuf *gaim_gtk_blist_get_status_icon(GaimBlistNode *node,
5228
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
169 GaimStatusIconSize size);
83adaad2deb1 [gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
170
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
171 /**************************************************************************
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
172 * @name GTK+ Buddy List sorting functions
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
173 **************************************************************************/
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
174
7098
22eabd4f5ed4 [gaim-migrate @ 7663]
Christian Hammond <chipx86@chipx86.com>
parents: 7035
diff changeset
175 typedef GtkTreeIter (*gaim_gtk_blist_sort_function)(GaimBlistNode *new, GaimBuddyList *blist, GtkTreeIter group, GtkTreeIter *cur);
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
176
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
177 extern GSList *gaim_gtk_blist_sort_methods;
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
178
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
179 struct gaim_gtk_blist_sort_method {
5631
7f510b22ccf5 [gaim-migrate @ 6038]
Nathan Walp <nwalp@pidgin.im>
parents: 5563
diff changeset
180 char *id;
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
181 char *name;
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
182 gaim_gtk_blist_sort_function func;
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
183 };
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
184
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
185 /**
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
186 * Registers a buddy list sorting method.
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
187 *
5631
7f510b22ccf5 [gaim-migrate @ 6038]
Nathan Walp <nwalp@pidgin.im>
parents: 5563
diff changeset
188 * @param id The unique ID of the sorting method
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
189 * @param name The method's name.
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
190 * @param func A pointer to the function.
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
191 *
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
192 */
5631
7f510b22ccf5 [gaim-migrate @ 6038]
Nathan Walp <nwalp@pidgin.im>
parents: 5563
diff changeset
193 void gaim_gtk_blist_sort_method_reg(const char *id, const char *name, gaim_gtk_blist_sort_function func);
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
194
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
195 /**
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
196 * Unregisters a buddy list sorting method.
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
197 *
5631
7f510b22ccf5 [gaim-migrate @ 6038]
Nathan Walp <nwalp@pidgin.im>
parents: 5563
diff changeset
198 * @param id The method's id
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
199 */
5631
7f510b22ccf5 [gaim-migrate @ 6038]
Nathan Walp <nwalp@pidgin.im>
parents: 5563
diff changeset
200 void gaim_gtk_blist_sort_method_unreg(const char *id);
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
201
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
202 /**
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
203 * Sets a buddy list sorting method.
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
204 *
5631
7f510b22ccf5 [gaim-migrate @ 6038]
Nathan Walp <nwalp@pidgin.im>
parents: 5563
diff changeset
205 * @param id The method's id.
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
206 */
5631
7f510b22ccf5 [gaim-migrate @ 6038]
Nathan Walp <nwalp@pidgin.im>
parents: 5563
diff changeset
207 void gaim_gtk_blist_sort_method_set(const char *id);
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
208
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
209 /**
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
210 * Sets up the programs default sort methods
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
211 */
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
212 void gaim_gtk_blist_setup_sort_methods();
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
213
5936
4bac764cc792 [gaim-migrate @ 6376]
Christian Hammond <chipx86@chipx86.com>
parents: 5906
diff changeset
214 /**
4bac764cc792 [gaim-migrate @ 6376]
Christian Hammond <chipx86@chipx86.com>
parents: 5906
diff changeset
215 * Updates the protocol actions menu on the GTK+ buddy list window.
4bac764cc792 [gaim-migrate @ 6376]
Christian Hammond <chipx86@chipx86.com>
parents: 5906
diff changeset
216 */
4bac764cc792 [gaim-migrate @ 6376]
Christian Hammond <chipx86@chipx86.com>
parents: 5906
diff changeset
217 void gaim_gtk_blist_update_protocol_actions();
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
218
8305
5a6d1168a8b3 [gaim-migrate @ 9029]
Christian Hammond <chipx86@chipx86.com>
parents: 8046
diff changeset
219 /**
8986
30ba617356bb [gaim-migrate @ 9761]
Christopher O'Brien <siege@pidgin.im>
parents: 8940
diff changeset
220 * 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
221 */
30ba617356bb [gaim-migrate @ 9761]
Christopher O'Brien <siege@pidgin.im>
parents: 8940
diff changeset
222 void gaim_gtk_blist_update_plugin_actions();
30ba617356bb [gaim-migrate @ 9761]
Christopher O'Brien <siege@pidgin.im>
parents: 8940
diff changeset
223
30ba617356bb [gaim-migrate @ 9761]
Christopher O'Brien <siege@pidgin.im>
parents: 8940
diff changeset
224 /**
8940
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8815
diff changeset
225 * Determines if showing the join chat dialog is a valid action.
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8815
diff changeset
226 *
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8815
diff changeset
227 * @return Returns TRUE if there are accounts online capable of
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8815
diff changeset
228 * joining chat rooms. Otherwise returns FALSE.
8305
5a6d1168a8b3 [gaim-migrate @ 9029]
Christian Hammond <chipx86@chipx86.com>
parents: 8046
diff changeset
229 */
8940
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8815
diff changeset
230 gboolean gaim_gtk_blist_joinchat_is_showable(void);
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8815
diff changeset
231
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8815
diff changeset
232 /**
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8815
diff changeset
233 * Shows the join chat dialog.
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8815
diff changeset
234 */
3e22cf150db0 [gaim-migrate @ 9710]
Mark Doliner <markdoliner@pidgin.im>
parents: 8815
diff changeset
235 void gaim_gtk_blist_joinchat_show(void);
5422
066c98fd4fa8 [gaim-migrate @ 5801]
Sean Egan <seanegan@pidgin.im>
parents: 5411
diff changeset
236
9051
aebb592d4529 [gaim-migrate @ 9827]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8986
diff changeset
237 /**
aebb592d4529 [gaim-migrate @ 9827]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8986
diff changeset
238 * Appends the protocol specific menu items for a GaimBlistNode
aebb592d4529 [gaim-migrate @ 9827]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8986
diff changeset
239 */
aebb592d4529 [gaim-migrate @ 9827]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8986
diff changeset
240 void gaim_gtk_append_blist_node_proto_menu (GtkWidget *menu, GaimConnection *gc, GaimBlistNode *node);
aebb592d4529 [gaim-migrate @ 9827]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8986
diff changeset
241
aebb592d4529 [gaim-migrate @ 9827]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8986
diff changeset
242 /**
aebb592d4529 [gaim-migrate @ 9827]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8986
diff changeset
243 * Appends the extended menu items for a GaimBlistNode
aebb592d4529 [gaim-migrate @ 9827]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8986
diff changeset
244 */
aebb592d4529 [gaim-migrate @ 9827]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8986
diff changeset
245 void gaim_gtk_append_blist_node_extended_menu(GtkWidget *menu, GaimBlistNode *node);
aebb592d4529 [gaim-migrate @ 9827]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8986
diff changeset
246
9713
bb37562302a1 [gaim-migrate @ 10574]
Mark Doliner <markdoliner@pidgin.im>
parents: 9051
diff changeset
247 #endif /* _GAIM_GTKBLIST_H_ */

mercurial