gtkutils.h

Go to the documentation of this file.
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 /* _WIN32 */
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 /* _PIDGINUTILS_H_ */
00659