00001
00025 #ifndef _PIDGINUTILS_H_
00026 #define _PIDGINUTILS_H_
00027
00028 #include "gtkconv.h"
00029 #include "pidgin.h"
00030 #include "prpl.h"
00031 #include "util.h"
00032
00033
00034
00035
00036
00037 typedef enum
00038 {
00039 PIDGIN_BUTTON_HORIZONTAL,
00040 PIDGIN_BUTTON_VERTICAL
00041
00042 } PidginButtonOrientation;
00043
00044 typedef enum
00045 {
00046 PIDGIN_BUTTON_NONE = 0,
00047 PIDGIN_BUTTON_TEXT,
00048 PIDGIN_BUTTON_IMAGE,
00049 PIDGIN_BUTTON_TEXT_IMAGE
00050
00051 } PidginButtonStyle;
00052
00053 typedef enum
00054 {
00055 PIDGIN_PRPL_ICON_SMALL,
00056 PIDGIN_PRPL_ICON_MEDIUM,
00057 PIDGIN_PRPL_ICON_LARGE
00058 } PidginPrplIconSize;
00059
00060 #ifndef _WIN32
00061 typedef enum
00062 {
00063 PIDGIN_BROWSER_DEFAULT = 0,
00064 PIDGIN_BROWSER_CURRENT,
00065 PIDGIN_BROWSER_NEW_WINDOW,
00066 PIDGIN_BROWSER_NEW_TAB
00067
00068 } PidginBrowserPlace;
00069 #endif
00070
00071 typedef struct {
00072 gboolean is_buddy;
00073 union {
00074 PurpleBuddy *buddy;
00075 PurpleLogSet *logged_buddy;
00076 } entry;
00077 } PidginBuddyCompletionEntry;
00078
00079 typedef gboolean (*PidginFilterBuddyCompletionEntryFunc) (const PidginBuddyCompletionEntry *completion_entry, gpointer user_data);
00080
00081
00088 void pidgin_setup_imhtml(GtkWidget *imhtml);
00089
00108 GtkWidget *pidgin_create_imhtml(gboolean editable, GtkWidget **imhtml_ret, GtkWidget **toolbar_ret, GtkWidget **sw_ret);
00109
00120 GtkWidget *pidgin_create_window(const char *title, guint border_width, const char *role, gboolean resizable);
00121
00128 void pidgin_toggle_sensitive(GtkWidget *widget, GtkWidget *to_toggle);
00129
00138 void pidgin_set_sensitive_if_input(GtkWidget *entry, GtkWidget *dialog);
00139
00146 void pidgin_toggle_sensitive_array(GtkWidget *w, GPtrArray *data);
00147
00154 void pidgin_toggle_showhide(GtkWidget *widget, GtkWidget *to_toggle);
00155
00163 GtkWidget *pidgin_separator(GtkWidget *menu);
00164
00173 GtkWidget *pidgin_new_item(GtkWidget *menu, const char *str);
00174
00186 GtkWidget *pidgin_new_check_item(GtkWidget *menu, const char *str,
00187 GtkSignalFunc sf, gpointer data, gboolean checked);
00188
00204 GtkWidget *pidgin_new_item_from_stock(GtkWidget *menu, const char *str,
00205 const char *icon, GtkSignalFunc sf,
00206 gpointer data, guint accel_key,
00207 guint accel_mods, char *mod);
00208
00218 GtkWidget *pidgin_pixbuf_button_from_stock(const char *text, const char *icon,
00219 PidginButtonOrientation style);
00220
00228 GtkWidget *pidgin_pixbuf_toolbar_button_from_stock(const char *stock);
00229
00238 GtkWidget *pidgin_make_frame(GtkWidget *parent, const char *title);
00239
00249 GtkWidget *pidgin_protocol_option_menu_new(const char *id,
00250 GCallback cb,
00251 gpointer user_data);
00252
00260 const char *pidgin_protocol_option_menu_get_selected(GtkWidget *optmenu);
00261
00275 GtkWidget *pidgin_account_option_menu_new(PurpleAccount *default_account,
00276 gboolean show_all, GCallback cb,
00277 PurpleFilterAccountFunc filter_func, gpointer user_data);
00278
00286 PurpleAccount *pidgin_account_option_menu_get_selected(GtkWidget *optmenu);
00287
00295 void pidgin_account_option_menu_set_selected(GtkWidget *optmenu, PurpleAccount *account);
00296
00308 void pidgin_setup_screenname_autocomplete_with_filter(GtkWidget *entry, GtkWidget *optmenu, PidginFilterBuddyCompletionEntryFunc filter_func, gpointer user_data);
00309
00318 gboolean pidgin_screenname_autocomplete_default_filter(const PidginBuddyCompletionEntry *completion_entry, gpointer all_accounts);
00319
00332 void pidgin_setup_screenname_autocomplete(GtkWidget *entry, GtkWidget *optmenu, gboolean all);
00333
00344 gboolean pidgin_check_if_dir(const char *path, GtkFileSelection *filesel);
00345
00354 void pidgin_setup_gtkspell(GtkTextView *textview);
00355
00359 void pidgin_save_accels_cb(GtkAccelGroup *accel_group, guint arg1,
00360 GdkModifierType arg2, GClosure *arg3,
00361 gpointer data);
00362
00366 gboolean pidgin_save_accels(gpointer data);
00367
00371 void pidgin_load_accels(void);
00372
00379 void pidgin_retrieve_user_info(PurpleConnection *conn, const char *name);
00380
00388 void pidgin_retrieve_user_info_in_chat(PurpleConnection *conn, const char *name, int chatid);
00389
00406 gboolean pidgin_parse_x_im_contact(const char *msg, gboolean all_accounts,
00407 PurpleAccount **ret_account,
00408 char **ret_protocol, char **ret_username,
00409 char **ret_alias);
00410
00418 void pidgin_set_accessible_label(GtkWidget *w, GtkWidget *l);
00419
00432 void pidgin_menu_position_func_helper(GtkMenu *menu, gint *x, gint *y,
00433 gboolean *push_in, gpointer data);
00434
00450 void pidgin_treeview_popup_menu_position_func(GtkMenu *menu,
00451 gint *x,
00452 gint *y,
00453 gboolean *push_in,
00454 gpointer user_data);
00455
00463 void pidgin_dnd_file_manage(GtkSelectionData *sd, PurpleAccount *account, const char *who);
00464
00468 void pidgin_buddy_icon_get_scale_size(GdkPixbuf *buf, PurpleBuddyIconSpec *spec, PurpleIconScaleRules rules, int *width, int *height);
00469
00484 GdkPixbuf *pidgin_create_prpl_icon(PurpleAccount *account, PidginPrplIconSize size);
00485
00494 GdkPixbuf * pidgin_create_status_icon(PurpleStatusPrimitive primitive, GtkWidget *w, const char *size);
00495
00496
00506 GtkWidget *pidgin_append_menu_action(GtkWidget *menu, PurpleMenuAction *act,
00507 gpointer gobject);
00508
00520 void pidgin_set_cursor(GtkWidget *widget, GdkCursorType cursor_type);
00521
00531 void pidgin_clear_cursor(GtkWidget *widget);
00532
00541 GtkWidget *pidgin_buddy_icon_chooser_new(GtkWindow *parent, void(*callback)(const char*,gpointer), gpointer data);
00542
00552 gpointer pidgin_convert_buddy_icon(PurplePlugin *plugin, const char *path, size_t *len);
00553
00554 #if !GTK_CHECK_VERSION(2,6,0)
00555
00560 GdkPixbuf *gdk_pixbuf_new_from_file_at_scale(const char *filename, int width, int height,
00561 gboolean preserve_aspect_ratio,
00562 GError **error);
00563 #endif
00564
00573 void pidgin_set_custom_buddy_icon(PurpleAccount *account, const char *who, const char *filename);
00574
00582 char *pidgin_make_pretty_arrows(const char *str);
00583
00594 void *pidgin_make_mini_dialog(PurpleConnection *handle, const char* stock_id,
00595 const char *primary, const char *secondary,
00596 void *user_data, ...);
00597
00606 gboolean pidgin_tree_view_search_equal_func(GtkTreeModel *model, gint column,
00607 const gchar *key, GtkTreeIter *iter, gpointer data);
00608
00616 void pidgin_set_urgent(GtkWindow *window, gboolean urgent);
00617
00625 gboolean pidgin_gdk_pixbuf_is_opaque(GdkPixbuf *pixbuf);
00626
00632 void pidgin_gdk_pixbuf_make_round(GdkPixbuf *pixbuf);
00633
00641 const char *pidgin_get_dim_grey_string(GtkWidget *widget);
00642
00643 #if !GTK_CHECK_VERSION(2,2,0)
00644
00655 GtkTreePath *gtk_tree_path_new_from_indices (gint first_index, ...);
00656 #endif
00657
00658 #endif
00659