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 typedef enum
00034 {
00035 PIDGIN_BUTTON_HORIZONTAL,
00036 PIDGIN_BUTTON_VERTICAL
00037
00038 } PidginButtonOrientation;
00039
00040 typedef enum
00041 {
00042 PIDGIN_BUTTON_NONE = 0,
00043 PIDGIN_BUTTON_TEXT,
00044 PIDGIN_BUTTON_IMAGE,
00045 PIDGIN_BUTTON_TEXT_IMAGE
00046
00047 } PidginButtonStyle;
00048
00049 typedef enum
00050 {
00051 PIDGIN_PRPL_ICON_SMALL,
00052 PIDGIN_PRPL_ICON_MEDIUM,
00053 PIDGIN_PRPL_ICON_LARGE
00054 } PidginPrplIconSize;
00055
00056 #ifndef _WIN32
00057 typedef enum
00058 {
00059 PIDGIN_BROWSER_DEFAULT = 0,
00060 PIDGIN_BROWSER_CURRENT,
00061 PIDGIN_BROWSER_NEW_WINDOW,
00062 PIDGIN_BROWSER_NEW_TAB
00063
00064 } PidginBrowserPlace;
00065 #endif
00066
00073 void pidgin_setup_imhtml(GtkWidget *imhtml);
00074
00093 GtkWidget *pidgin_create_imhtml(gboolean editable, GtkWidget **imhtml_ret, GtkWidget **toolbar_ret, GtkWidget **sw_ret);
00094
00101 void pidgin_toggle_sensitive(GtkWidget *widget, GtkWidget *to_toggle);
00102
00111 void pidgin_set_sensitive_if_input(GtkWidget *entry, GtkWidget *dialog);
00112
00119 void pidgin_toggle_sensitive_array(GtkWidget *w, GPtrArray *data);
00120
00127 void pidgin_toggle_showhide(GtkWidget *widget, GtkWidget *to_toggle);
00128
00134 void pidgin_separator(GtkWidget *menu);
00135
00144 GtkWidget *pidgin_new_item(GtkWidget *menu, const char *str);
00145
00157 GtkWidget *pidgin_new_check_item(GtkWidget *menu, const char *str,
00158 GtkSignalFunc sf, gpointer data, gboolean checked);
00159
00175 GtkWidget *pidgin_new_item_from_stock(GtkWidget *menu, const char *str,
00176 const char *icon, GtkSignalFunc sf,
00177 gpointer data, guint accel_key,
00178 guint accel_mods, char *mod);
00179
00189 GtkWidget *pidgin_pixbuf_button_from_stock(const char *text, const char *icon,
00190 PidginButtonOrientation style);
00191
00199 GtkWidget *pidgin_pixbuf_toolbar_button_from_stock(const char *stock);
00200
00209 GtkWidget *pidgin_make_frame(GtkWidget *parent, const char *title);
00210
00220 GtkWidget *pidgin_protocol_option_menu_new(const char *id,
00221 GCallback cb,
00222 gpointer user_data);
00223
00237 GtkWidget *pidgin_account_option_menu_new(PurpleAccount *default_account,
00238 gboolean show_all, GCallback cb,
00239 PurpleFilterAccountFunc filter_func, gpointer user_data);
00240
00248 PurpleAccount *pidgin_account_option_menu_get_selected(GtkWidget *optmenu);
00249
00257 void pidgin_account_option_menu_set_selected(GtkWidget *optmenu, PurpleAccount *account);
00258
00268 void pidgin_setup_screenname_autocomplete(GtkWidget *entry, GtkWidget *optmenu, gboolean all);
00269
00280 gboolean pidgin_check_if_dir(const char *path, GtkFileSelection *filesel);
00281
00290 void pidgin_setup_gtkspell(GtkTextView *textview);
00291
00295 void pidgin_save_accels_cb(GtkAccelGroup *accel_group, guint arg1,
00296 GdkModifierType arg2, GClosure *arg3,
00297 gpointer data);
00298
00302 gboolean pidgin_save_accels(gpointer data);
00303
00307 void pidgin_load_accels(void);
00308
00325 gboolean pidgin_parse_x_im_contact(const char *msg, gboolean all_accounts,
00326 PurpleAccount **ret_account,
00327 char **ret_protocol, char **ret_username,
00328 char **ret_alias);
00329
00337 void pidgin_set_accessible_label(GtkWidget *w, GtkWidget *l);
00338
00354 void pidgin_treeview_popup_menu_position_func(GtkMenu *menu,
00355 gint *x,
00356 gint *y,
00357 gboolean *push_in,
00358 gpointer user_data);
00359
00367 void pidgin_dnd_file_manage(GtkSelectionData *sd, PurpleAccount *account, const char *who);
00368
00372 void pidgin_buddy_icon_get_scale_size(GdkPixbuf *buf, PurpleBuddyIconSpec *spec, PurpleIconScaleRules rules, int *width, int *height);
00373
00388 GdkPixbuf *pidgin_create_prpl_icon(PurpleAccount *account, PidginPrplIconSize size);
00389
00398 GdkPixbuf * pidgin_create_status_icon(PurpleStatusPrimitive primitive, GtkWidget *w, const char *size);
00399
00400
00408 void pidgin_append_menu_action(GtkWidget *menu, PurpleMenuAction *act,
00409 gpointer gobject);
00410
00422 void pidgin_set_cursor(GtkWidget *widget, GdkCursorType cursor_type);
00423
00433 void pidgin_clear_cursor(GtkWidget *widget);
00434
00443 GtkWidget *pidgin_buddy_icon_chooser_new(GtkWindow *parent, void(*callback)(const char*,gpointer), gpointer data);
00444
00454 gpointer pidgin_convert_buddy_icon(PurplePlugin *plugin, const char *path, size_t *len);
00455
00456 #if !GTK_CHECK_VERSION(2,6,0)
00457
00462 GdkPixbuf *gdk_pixbuf_new_from_file_at_scale(const char *filename, int width, int height,
00463 gboolean preserve_aspect_ratio,
00464 GError **error);
00465 #endif
00466
00475 void pidgin_set_custom_buddy_icon(PurpleAccount *account, const char *who, const char *filename);
00476
00484 char *" and "<-" in strings to Unicode arrow characters, for use in referencing...">pidgin_make_pretty_arrows(const char *str);
00485
00496 void *pidgin_make_mini_dialog(PurpleConnection *handle, const char* stock_id,
00497 const char *primary, const char *secondary,
00498 void *user_data, ...);
00499
00508 gboolean pidgin_tree_view_search_equal_func(GtkTreeModel *model, gint column,
00509 const gchar *key, GtkTreeIter *iter, gpointer data);
00510
00518 void pidgin_set_urgent(GtkWindow *window, gboolean urgent);
00519
00527 gboolean pidgin_gdk_pixbuf_is_opaque(GdkPixbuf *pixbuf);
00528
00529 #if !GTK_CHECK_VERSION(2,2,0)
00530
00541 GtkTreePath *gtk_tree_path_new_from_indices (gint first_index, ...);
00542 #endif
00543
00544 gchar *pidgin_gtk_ellipsis_text(GtkWidget *widget, const char *text, gint min_width, gchar *ellipsis);
00545
00546 #endif
00547