| 64 |
63 |
| 65 /************************************************************************** |
64 /************************************************************************** |
| 66 * @name Structures |
65 * @name Structures |
| 67 **************************************************************************/ |
66 **************************************************************************/ |
| 68 /** |
67 /** |
| |
68 * PidginBuddyList: |
| |
69 * @notebook: The notebook that switches between the real buddy list |
| |
70 * and the helpful instructions page |
| |
71 * @main_vbox: This vbox contains the menu and notebook |
| |
72 * @vbox: This is the vbox that everything important gets packed |
| |
73 * into. Your plugin might want to pack something in it |
| |
74 * itself. Go, plugins! |
| |
75 * @treeview: It's a treeview... d'uh. |
| |
76 * @treemodel: This is the treemodel. |
| |
77 * @text_column: Column |
| |
78 * @menutray: The menu tray widget. |
| |
79 * @menutrayicon: The menu tray icon. |
| |
80 * @refresh_timer: The timer for refreshing every 30 seconds |
| |
81 * @timeout: The timeout for the tooltip. |
| |
82 * @drag_timeout: The timeout for expanding contacts on drags |
| |
83 * @tip_rect: This is the bounding rectangle of the cell we're |
| |
84 * currently hovering over. This is used for tooltips. |
| |
85 * @contact_rect: This is the bounding rectangle of the contact node and |
| |
86 * its children. This is used for auto-expand on mouseover. |
| |
87 * @mouseover_contact: This is the contact currently mouse-over expanded |
| |
88 * @tipwindow: The window used by the tooltip |
| |
89 * @tooltipdata: The data for each "chunk" of the tooltip |
| |
90 * @selected_node: The currently selected node |
| |
91 * @scrollbook: Scrollbook for alerts |
| |
92 * @headline: Widget for headline notifications |
| |
93 * @headline_label: Label for headline notifications |
| |
94 * @headline_image: Image for headline notifications |
| |
95 * @headline_callback: Callback for headline notifications |
| |
96 * @headline_data: User data for headline notifications |
| |
97 * @headline_destroy: Callback to use for destroying the headline-data |
| |
98 * @statusbox: The status selector dropdown |
| |
99 * @empty_avatar: A 32x32 transparent pixbuf |
| |
100 * @priv: Pointer to opaque private data |
| |
101 * |
| 69 * Like, everything you need to know about the gtk buddy list |
102 * Like, everything you need to know about the gtk buddy list |
| 70 */ |
103 */ |
| 71 struct _PidginBuddyList { |
104 struct _PidginBuddyList { |
| 72 GtkWidget *window; |
105 GtkWidget *window; |
| 73 GtkWidget *notebook; /**< The notebook that switches between the real buddy list and the helpful |
106 GtkWidget *notebook; |
| 74 instructions page */ |
107 GtkWidget *main_vbox; |
| 75 GtkWidget *main_vbox; /**< This vbox contains the menu and notebook */ |
108 GtkWidget *vbox; |
| 76 GtkWidget *vbox; /**< This is the vbox that everything important gets packed into. |
109 |
| 77 Your plugin might want to pack something in it itself. Go, plugins! */ |
110 GtkWidget *treeview; |
| 78 |
111 GtkTreeStore *treemodel; |
| 79 GtkWidget *treeview; /**< It's a treeview... d'uh. */ |
112 GtkTreeViewColumn *text_column; |
| 80 GtkTreeStore *treemodel; /**< This is the treemodel. */ |
|
| 81 GtkTreeViewColumn *text_column; /**< Column */ |
|
| 82 |
113 |
| 83 GtkCellRenderer *text_rend; |
114 GtkCellRenderer *text_rend; |
| 84 |
115 |
| 85 GtkUIManager *ui; |
116 GtkUIManager *ui; |
| 86 GtkWidget *menutray; /**< The menu tray widget. */ |
117 GtkWidget *menutray; |
| 87 GtkWidget *menutrayicon; /**< The menu tray icon. */ |
118 GtkWidget *menutrayicon; |
| 88 |
119 |
| 89 guint refresh_timer; /**< The timer for refreshing every 30 seconds */ |
120 guint refresh_timer; |
| 90 |
121 |
| 91 guint timeout; /**< The timeout for the tooltip. */ |
122 guint timeout; |
| 92 guint drag_timeout; /**< The timeout for expanding contacts on drags */ |
123 guint drag_timeout; |
| 93 GdkRectangle tip_rect; /**< This is the bounding rectangle of the |
124 GdkRectangle tip_rect; |
| 94 cell we're currently hovering over. This is |
125 GdkRectangle contact_rect; |
| 95 used for tooltips. */ |
126 PurpleBlistNode *mouseover_contact; |
| 96 GdkRectangle contact_rect; /**< This is the bounding rectangle of the contact node |
127 |
| 97 and its children. This is used for auto-expand on |
128 GtkWidget *tipwindow; |
| 98 mouseover. */ |
129 GList *tooltipdata; |
| 99 PurpleBlistNode *mouseover_contact; /**< This is the contact currently mouse-over expanded */ |
130 |
| 100 |
131 PurpleBlistNode *selected_node; |
| 101 GtkWidget *tipwindow; /**< The window used by the tooltip */ |
132 |
| 102 GList *tooltipdata; /**< The data for each "chunk" of the tooltip */ |
133 GtkWidget *scrollbook; |
| 103 |
134 GtkWidget *headline; |
| 104 PurpleBlistNode *selected_node; /**< The currently selected node */ |
135 GtkWidget *headline_label; |
| 105 |
136 GtkWidget *headline_image; |
| 106 GtkWidget *scrollbook; /**< Scrollbook for alerts */ |
137 GCallback headline_callback; |
| 107 GtkWidget *headline; /**< Widget for headline notifications */ |
138 gpointer headline_data; |
| 108 GtkWidget *headline_label; /**< Label for headline notifications */ |
139 GDestroyNotify headline_destroy; |
| 109 GtkWidget *headline_image; /**< Image for headline notifications */ |
140 |
| 110 GCallback headline_callback; /**< Callback for headline notifications */ |
141 GtkWidget *statusbox; |
| 111 gpointer headline_data; /**< User data for headline notifications */ |
142 GdkPixbuf *empty_avatar; |
| 112 GDestroyNotify headline_destroy; /**< Callback to use for destroying the headline-data */ |
143 |
| 113 |
144 gpointer priv; |
| 114 GtkWidget *statusbox; /**< The status selector dropdown */ |
|
| 115 GdkPixbuf *empty_avatar; /**< A 32x32 transparent pixbuf */ |
|
| 116 |
|
| 117 gpointer priv; /**< Pointer to opaque private data */ |
|
| 118 }; |
145 }; |
| 119 |
146 |
| 120 #define PIDGIN_BLIST(list) ((PidginBuddyList *)purple_blist_get_ui_data()) |
147 #define PIDGIN_BLIST(list) ((PidginBuddyList *)purple_blist_get_ui_data()) |
| 121 #define PIDGIN_IS_PIDGIN_BLIST(list) \ |
148 #define PIDGIN_IS_PIDGIN_BLIST(list) \ |
| 122 (purple_blist_get_ui_ops() == pidgin_blist_get_ui_ops()) |
149 (purple_blist_get_ui_ops() == pidgin_blist_get_ui_ops()) |
| 126 /************************************************************************** |
153 /************************************************************************** |
| 127 * @name GTK+ Buddy List API |
154 * @name GTK+ Buddy List API |
| 128 **************************************************************************/ |
155 **************************************************************************/ |
| 129 |
156 |
| 130 /** |
157 /** |
| |
158 * pidgin_blist_get_handle: |
| |
159 * |
| 131 * Get the handle for the GTK+ blist system. |
160 * Get the handle for the GTK+ blist system. |
| 132 * |
161 * |
| 133 * Returns: the handle to the blist system |
162 * Returns: the handle to the blist system |
| 134 */ |
163 */ |
| 135 void *pidgin_blist_get_handle(void); |
164 void *pidgin_blist_get_handle(void); |
| 136 |
165 |
| 137 /** |
166 /** |
| |
167 * pidgin_blist_init: |
| |
168 * |
| 138 * Initializes the GTK+ blist system. |
169 * Initializes the GTK+ blist system. |
| 139 */ |
170 */ |
| 140 void pidgin_blist_init(void); |
171 void pidgin_blist_init(void); |
| 141 |
172 |
| 142 /** |
173 /** |
| |
174 * pidgin_blist_uninit: |
| |
175 * |
| 143 * Uninitializes the GTK+ blist system. |
176 * Uninitializes the GTK+ blist system. |
| 144 */ |
177 */ |
| 145 void pidgin_blist_uninit(void); |
178 void pidgin_blist_uninit(void); |
| 146 |
179 |
| 147 /** |
180 /** |
| |
181 * pidgin_blist_get_ui_ops: |
| |
182 * |
| 148 * Returns the UI operations structure for the buddy list. |
183 * Returns the UI operations structure for the buddy list. |
| 149 * |
184 * |
| 150 * Returns: The GTK+ list operations structure. |
185 * Returns: The GTK+ list operations structure. |
| 151 */ |
186 */ |
| 152 PurpleBlistUiOps *pidgin_blist_get_ui_ops(void); |
187 PurpleBlistUiOps *pidgin_blist_get_ui_ops(void); |
| 153 |
188 |
| 154 /** |
189 /** |
| |
190 * pidgin_blist_get_default_gtk_blist: |
| |
191 * |
| 155 * Returns the default gtk buddy list |
192 * Returns the default gtk buddy list |
| 156 * |
193 * |
| 157 * There's normally only one buddy list window, but that isn't a necessity. This function |
194 * There's normally only one buddy list window, but that isn't a necessity. This function |
| 158 * returns the PidginBuddyList we're most likely wanting to work with. This is slightly |
195 * returns the PidginBuddyList we're most likely wanting to work with. This is slightly |
| 159 * cleaner than an externed global. |
196 * cleaner than an externed global. |
| 161 * Returns: The default GTK+ buddy list |
198 * Returns: The default GTK+ buddy list |
| 162 */ |
199 */ |
| 163 PidginBuddyList *pidgin_blist_get_default_gtk_blist(void); |
200 PidginBuddyList *pidgin_blist_get_default_gtk_blist(void); |
| 164 |
201 |
| 165 /** |
202 /** |
| 166 * Populates a menu with the items shown on the buddy list for a buddy. |
203 * pidgin_blist_make_buddy_menu: |
| 167 * |
|
| 168 * @menu: The menu to populate |
204 * @menu: The menu to populate |
| 169 * @buddy: The buddy whose menu to get |
205 * @buddy: The buddy whose menu to get |
| 170 * @sub: TRUE if this is a sub-menu, FALSE otherwise |
206 * @sub: %TRUE if this is a sub-menu, %FALSE otherwise |
| |
207 * |
| |
208 * Populates a menu with the items shown on the buddy list for a buddy. |
| 171 */ |
209 */ |
| 172 void pidgin_blist_make_buddy_menu(GtkWidget *menu, PurpleBuddy *buddy, gboolean sub); |
210 void pidgin_blist_make_buddy_menu(GtkWidget *menu, PurpleBuddy *buddy, gboolean sub); |
| 173 |
211 |
| 174 /** |
212 /** |
| |
213 * pidgin_blist_refresh: |
| |
214 * @list: This is the core list that gets updated from |
| |
215 * |
| 175 * Refreshes all the nodes of the buddy list. |
216 * Refreshes all the nodes of the buddy list. |
| 176 * This should only be called when something changes to affect most of the nodes (such as a ui preference changing) |
217 * This should only be called when something changes to affect most of the nodes (such as a ui preference changing) |
| 177 * |
|
| 178 * @list: This is the core list that gets updated from |
|
| 179 */ |
218 */ |
| 180 void pidgin_blist_refresh(PurpleBuddyList *list); |
219 void pidgin_blist_refresh(PurpleBuddyList *list); |
| 181 |
220 |
| 182 void pidgin_blist_update_columns(void); |
221 void pidgin_blist_update_columns(void); |
| 183 void pidgin_blist_update_refresh_timeout(void); |
222 void pidgin_blist_update_refresh_timeout(void); |
| 184 |
223 |
| 185 /** |
224 /** |
| |
225 * pidgin_blist_get_emblem: |
| |
226 * @node: The node to return an emblem for |
| |
227 * |
| 186 * Returns the blist emblem. |
228 * Returns the blist emblem. |
| 187 * |
229 * |
| 188 * This may be an existing pixbuf that has been given an additional ref, |
230 * This may be an existing pixbuf that has been given an additional ref, |
| 189 * so it shouldn't be modified. |
231 * so it shouldn't be modified. |
| 190 * |
232 * |
| 191 * @node: The node to return an emblem for |
|
| 192 * |
|
| 193 * Returns: A GdkPixbuf for the emblem to show, or NULL |
233 * Returns: A GdkPixbuf for the emblem to show, or NULL |
| 194 */ |
234 */ |
| 195 GdkPixbuf * |
235 GdkPixbuf * |
| 196 pidgin_blist_get_emblem(PurpleBlistNode *node); |
236 pidgin_blist_get_emblem(PurpleBlistNode *node); |
| 197 |
237 |
| 198 /** |
238 /** |
| |
239 * pidgin_blist_get_status_icon: |
| |
240 * |
| 199 * Useful for the buddy ticker |
241 * Useful for the buddy ticker |
| 200 */ |
242 */ |
| 201 GdkPixbuf *pidgin_blist_get_status_icon(PurpleBlistNode *node, |
243 GdkPixbuf *pidgin_blist_get_status_icon(PurpleBlistNode *node, |
| 202 PidginStatusIconSize size); |
244 PidginStatusIconSize size); |
| 203 |
245 |
| 204 /** |
246 /** |
| 205 * Returns a boolean indicating if @a node is part of an expanded contact. |
247 * pidgin_blist_node_is_contact_expanded: |
| |
248 * @node: The node in question. |
| |
249 * |
| |
250 * Returns a boolean indicating if @node is part of an expanded contact. |
| 206 * |
251 * |
| 207 * This only makes sense for contact and buddy nodes. %FALSE is returned |
252 * This only makes sense for contact and buddy nodes. %FALSE is returned |
| 208 * for other types of nodes. |
253 * for other types of nodes. |
| 209 * |
254 * |
| 210 * @node: The node in question. |
255 * Returns: A boolean indicating if @node is part of an expanded contact. |
| 211 * Returns: A boolean indicating if @a node is part of an expanded contact. |
|
| 212 */ |
256 */ |
| 213 gboolean pidgin_blist_node_is_contact_expanded(PurpleBlistNode *node); |
257 gboolean pidgin_blist_node_is_contact_expanded(PurpleBlistNode *node); |
| 214 |
258 |
| 215 /** |
259 /** |
| |
260 * pidgin_blist_toggle_visibility: |
| |
261 * |
| 216 * Intelligently toggles the visibility of the buddy list. If the buddy |
262 * Intelligently toggles the visibility of the buddy list. If the buddy |
| 217 * list is obscured, it is brought to the front. If it is not obscured, |
263 * list is obscured, it is brought to the front. If it is not obscured, |
| 218 * it is hidden. If it is hidden it is shown. |
264 * it is hidden. If it is hidden it is shown. |
| 219 */ |
265 */ |
| 220 void pidgin_blist_toggle_visibility(void); |
266 void pidgin_blist_toggle_visibility(void); |
| 221 |
267 |
| 222 /** |
268 /** |
| |
269 * pidgin_blist_visibility_manager_add: |
| |
270 * |
| 223 * Increases the reference count of visibility managers. Callers should |
271 * Increases the reference count of visibility managers. Callers should |
| 224 * call the complementary remove function when no longer managing |
272 * call the complementary remove function when no longer managing |
| 225 * visibility. |
273 * visibility. |
| 226 * |
274 * |
| 227 * A visibility manager is something that provides some method for |
275 * A visibility manager is something that provides some method for |
| 228 * showing the buddy list after it is hidden (e.g. docklet plugin). |
276 * showing the buddy list after it is hidden (e.g. docklet plugin). |
| 229 */ |
277 */ |
| 230 void pidgin_blist_visibility_manager_add(void); |
278 void pidgin_blist_visibility_manager_add(void); |
| 231 |
279 |
| 232 /** |
280 /** |
| |
281 * pidgin_blist_visibility_manager_remove: |
| |
282 * |
| 233 * Decreases the reference count of visibility managers. If the count |
283 * Decreases the reference count of visibility managers. If the count |
| 234 * drops below zero, the buddy list is shown. |
284 * drops below zero, the buddy list is shown. |
| 235 */ |
285 */ |
| 236 void pidgin_blist_visibility_manager_remove(void); |
286 void pidgin_blist_visibility_manager_remove(void); |
| 237 |
287 |
| 238 /** |
288 /** |
| |
289 * pidgin_blist_add_alert: |
| |
290 * @widget: The widget to add |
| |
291 * |
| 239 * Adds a mini-alert to the blist scrollbook |
292 * Adds a mini-alert to the blist scrollbook |
| 240 * |
|
| 241 * @widget: The widget to add |
|
| 242 */ |
293 */ |
| 243 void pidgin_blist_add_alert(GtkWidget *widget); |
294 void pidgin_blist_add_alert(GtkWidget *widget); |
| 244 |
295 |
| 245 /** |
296 /** |
| |
297 * pidgin_blist_set_theme: |
| |
298 * @theme: the new theme to use |
| |
299 * |
| 246 * Sets the current theme for Pidgin to use |
300 * Sets the current theme for Pidgin to use |
| 247 * |
|
| 248 * @theme: the new theme to use |
|
| 249 */ |
301 */ |
| 250 void pidgin_blist_set_theme(PidginBlistTheme *theme); |
302 void pidgin_blist_set_theme(PidginBlistTheme *theme); |
| 251 |
303 |
| 252 /** |
304 /** |
| |
305 * pidgin_blist_get_theme: |
| |
306 * |
| 253 * Gets Pidgin's current buddy list theme |
307 * Gets Pidgin's current buddy list theme |
| 254 * |
308 * |
| 255 * Returns: the current theme |
309 * Returns: the current theme |
| 256 */ |
310 */ |
| 257 PidginBlistTheme *pidgin_blist_get_theme(void); |
311 PidginBlistTheme *pidgin_blist_get_theme(void); |
| 276 }; |
332 }; |
| 277 |
333 |
| 278 typedef struct pidgin_blist_sort_method PidginBlistSortMethod; |
334 typedef struct pidgin_blist_sort_method PidginBlistSortMethod; |
| 279 |
335 |
| 280 /** |
336 /** |
| 281 * Registers a buddy list sorting method. |
337 * pidgin_blist_sort_method_reg: |
| 282 * |
|
| 283 * @id: The unique ID of the sorting method |
338 * @id: The unique ID of the sorting method |
| 284 * @name: The method's name. |
339 * @name: The method's name. |
| 285 * @func: A pointer to the function. |
340 * @func: A pointer to the function. |
| 286 * |
341 * |
| |
342 * Registers a buddy list sorting method. |
| 287 */ |
343 */ |
| 288 void pidgin_blist_sort_method_reg(const char *id, const char *name, pidgin_blist_sort_function func); |
344 void pidgin_blist_sort_method_reg(const char *id, const char *name, pidgin_blist_sort_function func); |
| 289 |
345 |
| 290 /** |
346 /** |
| |
347 * pidgin_blist_sort_method_unreg: |
| |
348 * @id: The method's id |
| |
349 * |
| 291 * Unregisters a buddy list sorting method. |
350 * Unregisters a buddy list sorting method. |
| 292 * |
|
| 293 * @id: The method's id |
|
| 294 */ |
351 */ |
| 295 void pidgin_blist_sort_method_unreg(const char *id); |
352 void pidgin_blist_sort_method_unreg(const char *id); |
| 296 |
353 |
| 297 /** |
354 /** |
| |
355 * pidgin_blist_sort_method_set: |
| |
356 * @id: The method's id. |
| |
357 * |
| 298 * Sets a buddy list sorting method. |
358 * Sets a buddy list sorting method. |
| 299 * |
|
| 300 * @id: The method's id. |
|
| 301 */ |
359 */ |
| 302 void pidgin_blist_sort_method_set(const char *id); |
360 void pidgin_blist_sort_method_set(const char *id); |
| 303 |
361 |
| 304 /** |
362 /** |
| |
363 * pidgin_blist_setup_sort_methods: |
| |
364 * |
| 305 * Sets up the programs default sort methods |
365 * Sets up the programs default sort methods |
| 306 */ |
366 */ |
| 307 void pidgin_blist_setup_sort_methods(void); |
367 void pidgin_blist_setup_sort_methods(void); |
| 308 |
368 |
| 309 /** |
369 /** |
| |
370 * pidgin_blist_update_accounts_menu: |
| |
371 * |
| 310 * Updates the accounts menu on the GTK+ buddy list window. |
372 * Updates the accounts menu on the GTK+ buddy list window. |
| 311 */ |
373 */ |
| 312 void pidgin_blist_update_accounts_menu(void); |
374 void pidgin_blist_update_accounts_menu(void); |
| 313 |
375 |
| 314 /** |
376 /** |
| |
377 * pidgin_blist_update_plugin_actions: |
| |
378 * |
| 315 * Updates the plugin actions menu on the GTK+ buddy list window. |
379 * Updates the plugin actions menu on the GTK+ buddy list window. |
| 316 */ |
380 */ |
| 317 void pidgin_blist_update_plugin_actions(void); |
381 void pidgin_blist_update_plugin_actions(void); |
| 318 |
382 |
| 319 /** |
383 /** |
| |
384 * pidgin_blist_update_sort_methods: |
| |
385 * |
| 320 * Updates the Sorting menu on the GTK+ buddy list window. |
386 * Updates the Sorting menu on the GTK+ buddy list window. |
| 321 */ |
387 */ |
| 322 void pidgin_blist_update_sort_methods(void); |
388 void pidgin_blist_update_sort_methods(void); |
| 323 |
389 |
| 324 /** |
390 /** |
| |
391 * pidgin_blist_joinchat_is_showable: |
| |
392 * |
| 325 * Determines if showing the join chat dialog is a valid action. |
393 * Determines if showing the join chat dialog is a valid action. |
| 326 * |
394 * |
| 327 * Returns: Returns TRUE if there are accounts online capable of |
395 * Returns: Returns TRUE if there are accounts online capable of |
| 328 * joining chat rooms. Otherwise returns FALSE. |
396 * joining chat rooms. Otherwise returns FALSE. |
| 329 */ |
397 */ |
| 330 gboolean pidgin_blist_joinchat_is_showable(void); |
398 gboolean pidgin_blist_joinchat_is_showable(void); |
| 331 |
399 |
| 332 /** |
400 /** |
| |
401 * pidgin_blist_joinchat_show: |
| |
402 * |
| 333 * Shows the join chat dialog. |
403 * Shows the join chat dialog. |
| 334 */ |
404 */ |
| 335 void pidgin_blist_joinchat_show(void); |
405 void pidgin_blist_joinchat_show(void); |
| 336 |
406 |
| 337 /** |
407 /** |
| |
408 * pidgin_append_blist_node_privacy_menu: |
| |
409 * |
| 338 * Appends the privacy menu items for a PurpleBlistNode |
410 * Appends the privacy menu items for a PurpleBlistNode |
| 339 * TODO: Rename these. |
411 * @todo Rename these. |
| 340 */ |
412 */ |
| 341 void pidgin_append_blist_node_privacy_menu(GtkWidget *menu, PurpleBlistNode *node); |
413 void pidgin_append_blist_node_privacy_menu(GtkWidget *menu, PurpleBlistNode *node); |
| 342 |
414 |
| 343 /** |
415 /** |
| |
416 * pidgin_append_blist_node_proto_menu: |
| |
417 * |
| 344 * Appends the protocol specific menu items for a PurpleBlistNode |
418 * Appends the protocol specific menu items for a PurpleBlistNode |
| 345 * TODO: Rename these. |
419 * @todo Rename these. |
| 346 */ |
420 */ |
| 347 void pidgin_append_blist_node_proto_menu (GtkWidget *menu, PurpleConnection *gc, PurpleBlistNode *node); |
421 void pidgin_append_blist_node_proto_menu (GtkWidget *menu, PurpleConnection *gc, PurpleBlistNode *node); |
| 348 |
422 |
| 349 /** |
423 /** |
| |
424 * pidgin_append_blist_node_extended_menu: |
| |
425 * |
| 350 * Appends the extended menu items for a PurpleBlistNode |
426 * Appends the extended menu items for a PurpleBlistNode |
| 351 * TODO: Rename these. |
427 * @todo Rename these. |
| 352 */ |
428 */ |
| 353 void pidgin_append_blist_node_extended_menu(GtkWidget *menu, PurpleBlistNode *node); |
429 void pidgin_append_blist_node_extended_menu(GtkWidget *menu, PurpleBlistNode *node); |
| 354 |
430 |
| 355 /** |
431 /** |
| 356 * Sets a headline notification |
432 * pidgin_blist_set_headline: |
| 357 * |
|
| 358 * This is currently used for mail notification, but could theoretically be used for anything. |
|
| 359 * Only the most recent headline will be shown. |
|
| 360 * |
|
| 361 * @text: Pango Markup for the label text |
433 * @text: Pango Markup for the label text |
| 362 * @pixbuf: The GdkPixbuf for the icon |
434 * @pixbuf: The GdkPixbuf for the icon |
| 363 * @callback: The callback to call when headline is clicked |
435 * @callback: The callback to call when headline is clicked |
| 364 * @user_data: The userdata to include in the callback |
436 * @user_data: The userdata to include in the callback |
| 365 * @destroy: The callback to call when headline is closed or replaced by another headline. |
437 * @destroy: The callback to call when headline is closed or replaced by another headline. |
| |
438 * |
| |
439 * Sets a headline notification |
| |
440 * |
| |
441 * This is currently used for mail notification, but could theoretically be used for anything. |
| |
442 * Only the most recent headline will be shown. |
| 366 */ |
443 */ |
| 367 void pidgin_blist_set_headline(const char *text, GdkPixbuf *pixbuf, GCallback callback, gpointer user_data, |
444 void pidgin_blist_set_headline(const char *text, GdkPixbuf *pixbuf, GCallback callback, gpointer user_data, |
| 368 GDestroyNotify destroy); |
445 GDestroyNotify destroy); |
| 369 |
446 |
| 370 /** |
447 /** |
| 371 * Returns a buddy's Pango markup appropriate for setting in a GtkCellRenderer. |
448 * pidgin_blist_get_name_markup: |
| 372 * |
|
| 373 * @buddy: The buddy to return markup from |
449 * @buddy: The buddy to return markup from |
| 374 * @selected: Whether this buddy is selected. If TRUE, the markup will not change the color. |
450 * @selected: Whether this buddy is selected. If TRUE, the markup will not change the color. |
| 375 * @aliased: TRUE to return the appropriate alias of this buddy, FALSE to return its username and status information |
451 * @aliased: TRUE to return the appropriate alias of this buddy, FALSE to return its username and status information |
| |
452 * |
| |
453 * Returns a buddy's Pango markup appropriate for setting in a GtkCellRenderer. |
| |
454 * |
| 376 * Returns: The markup for this buddy |
455 * Returns: The markup for this buddy |
| 377 */ |
456 */ |
| 378 gchar *pidgin_blist_get_name_markup(PurpleBuddy *buddy, gboolean selected, gboolean aliased); |
457 gchar *pidgin_blist_get_name_markup(PurpleBuddy *buddy, gboolean selected, gboolean aliased); |
| 379 |
458 |
| 380 /** |
459 /** |
| |
460 * pidgin_blist_draw_tooltip: |
| |
461 * @node: The buddy list node to show a tooltip for |
| |
462 * @widget: The widget to draw the tooltip on |
| |
463 * |
| 381 * Creates the Buddy List tooltip at the current pointer location for the given buddy list node. |
464 * Creates the Buddy List tooltip at the current pointer location for the given buddy list node. |
| 382 * |
465 * |
| 383 * This tooltip will be destroyed the next time this function is called, or when XXXX |
466 * This tooltip will be destroyed the next time this function is called, or when XXXX |
| 384 * is called |
467 * is called |
| 385 * |
|
| 386 * @node: The buddy list node to show a tooltip for |
|
| 387 * @widget: The widget to draw the tooltip on |
|
| 388 */ |
468 */ |
| 389 void pidgin_blist_draw_tooltip(PurpleBlistNode *node, GtkWidget *widget); |
469 void pidgin_blist_draw_tooltip(PurpleBlistNode *node, GtkWidget *widget); |
| 390 |
470 |
| 391 /** |
471 /** |
| |
472 * pidgin_blist_tooltip_destroy: |
| |
473 * |
| 392 * Destroys the current (if any) Buddy List tooltip |
474 * Destroys the current (if any) Buddy List tooltip |
| 393 */ |
475 */ |
| 394 void pidgin_blist_tooltip_destroy(void); |
476 void pidgin_blist_tooltip_destroy(void); |
| 395 |
477 |
| 396 G_END_DECLS |
478 G_END_DECLS |