gtkblist.h

Go to the documentation of this file.
00001 
00025 #ifndef _GAIM_GTKBLIST_H_
00026 #define _GAIM_GTKBLIST_H_
00027 
00028 #include "gtkgaim.h"
00029 #include "blist.h"
00030 
00031 enum {
00032     STATUS_ICON_COLUMN,
00033     STATUS_ICON_VISIBLE_COLUMN,
00034     NAME_COLUMN,
00035     WARNING_COLUMN,
00036     IDLE_COLUMN,
00037     BUDDY_ICON_COLUMN,
00038     NODE_COLUMN,
00039     BLIST_COLUMNS
00040     };
00041 
00042 typedef enum {
00043     GAIM_STATUS_ICON_LARGE,
00044     GAIM_STATUS_ICON_SMALL
00045 
00046 } GaimStatusIconSize;
00047 
00048 /**************************************************************************
00049  * @name Structures
00050  **************************************************************************/
00054 typedef struct {
00055     GtkWidget *window;
00056     GtkWidget *vbox;                
00059     GtkWidget *treeview;            
00060     GtkTreeStore *treemodel;        
00061     GtkTreeViewColumn *idle_column,
00062         *warning_column,
00063         *buddy_icon_column;
00064 
00065     GtkItemFactory *ift;
00066     GtkWidget *bpmenu;              
00068     GtkWidget *bbox;                
00069     GtkTooltips *tooltips;           
00071     guint refresh_timer;            
00073     guint      timeout;              
00074     GdkRectangle tip_rect;           
00077     GdkRectangle contact_rect;       
00080     GaimBlistNode *mouseover_contact; 
00082     GtkWidget *tipwindow;            
00084     GaimBlistNode *selected_node;   
00086     GdkPixbuf *east, *south;                 
00087     GdkWindow *east_shadow, *south_shadow;   
00089 } GaimGtkBuddyList;
00090 
00091 #define GAIM_GTK_BLIST(list) ((GaimGtkBuddyList *)(list)->ui_data)
00092 #define GAIM_IS_GTK_BLIST(list) \
00093     ((list)->ui_ops == gaim_gtk_blist_get_ui_ops())
00094 
00095 /**************************************************************************
00096  * @name GTK+ Buddy List API
00097  **************************************************************************/
00098 
00104 void *gaim_gtk_blist_get_handle();
00105 
00109 void gaim_gtk_blist_init(void);
00110 
00114 void gaim_gtk_blist_uninit(void);
00115 
00121 GaimBlistUiOps *gaim_gtk_blist_get_ui_ops(void);
00122 
00130 GdkPixbuf *create_prpl_icon(GaimAccount *account);
00131 
00138 void gaim_gtk_blist_make_buddy_menu(GtkWidget *menu, GaimBuddy *buddy);
00139 
00146 void gaim_gtk_blist_refresh(GaimBuddyList *list);
00147 
00152 void gaim_gtk_blist_update_toolbar();
00153 
00159 void gaim_gtk_blist_docklet_toggle();
00160 void gaim_gtk_blist_docklet_add();
00161 void gaim_gtk_blist_docklet_remove();
00162 void gaim_gtk_blist_update_columns();
00163 void gaim_gtk_blist_update_refresh_timeout();
00164 
00168 GdkPixbuf *gaim_gtk_blist_get_status_icon(GaimBlistNode *node,
00169         GaimStatusIconSize size);
00170 
00171 /**************************************************************************
00172  * @name GTK+ Buddy List sorting functions
00173  **************************************************************************/
00174 
00175 typedef GtkTreeIter (*gaim_gtk_blist_sort_function)(GaimBlistNode *new, GaimBuddyList *blist, GtkTreeIter group, GtkTreeIter *cur);
00176 
00177 extern GSList *gaim_gtk_blist_sort_methods;
00178 
00179 struct gaim_gtk_blist_sort_method {
00180     char *id;
00181     char *name;
00182     gaim_gtk_blist_sort_function func;
00183 };
00184 
00193 void gaim_gtk_blist_sort_method_reg(const char *id, const char *name, gaim_gtk_blist_sort_function func);
00194 
00200 void gaim_gtk_blist_sort_method_unreg(const char *id);
00201 
00207 void gaim_gtk_blist_sort_method_set(const char *id);
00208 
00212 void gaim_gtk_blist_setup_sort_methods();
00213 
00217 void gaim_gtk_blist_update_protocol_actions();
00218 
00222 void gaim_gtk_blist_update_plugin_actions();
00223 
00230 gboolean gaim_gtk_blist_joinchat_is_showable(void);
00231 
00235 void gaim_gtk_blist_joinchat_show(void);
00236 
00240 void gaim_gtk_append_blist_node_proto_menu (GtkWidget *menu, GaimConnection *gc, GaimBlistNode *node);
00241 
00245 void gaim_gtk_append_blist_node_extended_menu(GtkWidget *menu, GaimBlistNode *node);
00246 
00247 #endif /* _GAIM_GTKBLIST_H_ */

Generated on Sun Feb 18 07:50:47 2007 for gaim by  doxygen 1.5.1