#ifndef __GLADE_UTILS_H__ #define __GLADE_UTILS_H__ #include #include "glade-project.h" G_BEGIN_DECLS #define GLADE_DEVHELP_ICON_NAME "devhelp" #define GLADE_DEVHELP_FALLBACK_ICON_FILE "devhelp.png" typedef enum _GladeUtilFileDialogType { GLADE_FILE_DIALOG_ACTION_OPEN, GLADE_FILE_DIALOG_ACTION_SAVE } GladeUtilFileDialogType; typedef enum { GLADE_UI_INFO, GLADE_UI_WARN, GLADE_UI_ERROR, GLADE_UI_ARE_YOU_SURE, GLADE_UI_YES_OR_NO } GladeUIMessageType; /* UI interaction */ gboolean glade_util_ui_message (GtkWidget *parent, GladeUIMessageType type, GtkWidget *widget, const gchar *format, ...) G_GNUC_PRINTF (4, 5); void glade_util_flash_message (GtkWidget *statusbar, guint context_id, gchar *format, ...) G_GNUC_PRINTF (3, 4); gboolean glade_util_url_show (const gchar *url); GtkWidget *glade_util_file_dialog_new (const gchar *title, GladeProject *project, GtkWindow *parent, GladeUtilFileDialogType action); /* Strings */ gint glade_util_compare_stock_labels (gconstpointer a, gconstpointer b); void glade_util_replace (gchar *str, gchar a, gchar b); gchar *glade_util_read_prop_name (const gchar *str); gchar *glade_util_duplicate_underscores (const gchar *name); /* GModule stuff */ GType glade_util_get_type_from_name (const gchar *name, gboolean have_func); GParamSpec *glade_utils_get_pspec_from_funcname (const gchar *funcname); GModule *glade_util_load_library (const gchar *library_name); /* String/Value utilities */ gint glade_utils_enum_value_from_string (GType enum_type, const gchar *strval); gchar *glade_utils_enum_string_from_value (GType enum_type, gint value); gint glade_utils_flags_value_from_string (GType enum_type, const gchar *strval); gchar *glade_utils_flags_string_from_value (GType enum_type, gint value); gchar *glade_utils_flags_string_from_value_displayable (GType flags_type, gint value); gchar *glade_utils_enum_string_from_value_displayable (GType flags_type, gint value); GValue *glade_utils_value_from_string (GType type, const gchar *string, GladeProject *project); gchar *glade_utils_string_from_value (const GValue *value); gboolean glade_utils_boolean_from_string (const gchar *string, gboolean *value); /* Devhelp */ gboolean glade_util_have_devhelp (void); GtkWidget *glade_util_get_devhelp_icon (GtkIconSize size); void glade_util_search_devhelp (const gchar *book, const gchar *page, const gchar *search); /* Files/Filenames*/ gchar *glade_utils_replace_home_dir_with_tilde (const gchar *path); gchar *glade_util_canonical_path (const gchar *path); time_t glade_util_get_file_mtime (const gchar *filename, GError **error); gboolean glade_util_file_is_writeable (const gchar *path); gchar *glade_util_filename_to_icon_name (const gchar *value); gchar *glade_util_icon_name_to_filename (const gchar *value); /* Cairo utilities */ void glade_utils_cairo_draw_line (cairo_t *cr, GdkColor *color, gint x1, gint y1, gint x2, gint y2); void glade_utils_cairo_draw_rectangle (cairo_t *cr, GdkColor *color, gboolean filled, gint x, gint y, gint width, gint height); /* Lists */ GList *glade_util_purify_list (GList *list); GList *glade_util_added_in_list (GList *old_list, GList *new_list); GList *glade_util_removed_from_list (GList *old_list, GList *new_list); /* Other utilities */ GtkListStore *glade_utils_liststore_from_enum_type (GType enum_type, gboolean include_empty); gint glade_utils_hijack_key_press (GtkWindow *win, GdkEventKey *event, gpointer user_data); gboolean glade_util_check_and_warn_scrollable (GladeWidget *parent, GladeWidgetAdaptor *child_adaptor, GtkWidget *parent_widget); GList *glade_util_container_get_all_children (GtkContainer *container); gint glade_util_count_placeholders (GladeWidget *parent); GtkTreeIter *glade_util_find_iter_by_widget (GtkTreeModel *model, GladeWidget *findme, gint column); GtkWidget *glade_util_get_placeholder_from_pointer (GtkContainer *container); gboolean glade_util_object_is_loading (GObject *object); GdkPixbuf *glade_utils_pointer_mode_render_icon (GladePointerMode mode, GtkIconSize size); void glade_utils_get_pointer (GtkWidget *widget, GdkWindow *window, GdkDevice *device, gint *x, gint *y); void glade_util_remove_scroll_events (GtkWidget *widget); G_END_DECLS #endif /* __GLADE_UTILS_H__ */