## Utilities

Utilities — Utility functions

## Stability Level

Unstable, unless otherwise indicated

## Functions

gboolean | anjuta_util_copy_file ()
gboolean | anjuta_util_diff ()
void | anjuta_util_color_from_string ()
gchar * | anjuta_util_string_from_color ()
GtkWidget * | anjuta_util_button_new_with_stock_image ()
GtkWidget * | anjuta_util_dialog_add_button ()
void | anjuta_util_dialog_error ()
void | anjuta_util_dialog_warning ()
void | anjuta_util_dialog_info ()
void | anjuta_util_dialog_error_system ()
gboolean | anjuta_util_dialog_boolean_question ()
gboolean | anjuta_util_dialog_input ()
gboolean | anjuta_util_install_files ()
gboolean | anjuta_util_package_is_installed ()
gboolean | anjuta_util_prog_is_installed ()
gchar * | anjuta_util_get_a_tmp_file ()
gchar * | anjuta_util_convert_to_utf8 ()
gboolean | anjuta_util_jump_to_matching_brace ()
GList * | anjuta_util_parse_args_from_string ()
int | anjuta_util_type_from_string ()
const char * | anjuta_util_string_from_type ()
GList * | anjuta_util_glist_from_map ()
void | anjuta_util_glist_strings_free ()
void | anjuta_util_glist_strings_prefix ()
void | anjuta_util_glist_strings_sufix ()
GList * | anjuta_util_glist_strings_sort ()
gchar * | anjuta_util_glist_strings_join ()
GList * | anjuta_util_glist_from_string ()
GList * | anjuta_util_glist_strings_dup ()
GList * | anjuta_util_glist_path_dedup ()
GList * | anjuta_util_update_string_list ()
gboolean | anjuta_util_create_dir ()
gchar * | anjuta_util_user_shell ()
gchar ** | anjuta_util_user_terminal ()
GPid | anjuta_util_execute_shell ()
GPid | anjuta_util_execute_terminal_shell ()
gchar * | anjuta_util_escape_quotes ()
gchar * | anjuta_util_get_real_path ()
gchar * | anjuta_util_get_current_dir ()
GFile * | anjuta_util_file_new_for_commandline_arg ()
gchar * | anjuta_util_uri_get_dirname ()
gchar * | anjuta_util_replace_home_dir_with_tilde ()
gchar * | anjuta_util_shell_expand ()
gchar * | anjuta_util_str_middle_truncate ()
gboolean | anjuta_util_is_project_file ()
gboolean | anjuta_util_is_template_file ()
gchar * | anjuta_util_get_file_mime_type ()
gchar * | anjuta_util_get_file_info_mime_type ()
gchar * | anjuta_util_get_local_path_from_uri ()
void | anjuta_util_help_display ()
void | anjuta_util_set_anjuta_prefix ()
GFile * | anjuta_util_get_user_data_file ()
GFile * | anjuta_util_get_user_cache_file ()
GFile * | anjuta_util_get_user_config_file ()
gchar * | anjuta_util_get_user_data_file_path ()
gchar * | anjuta_util_get_user_cache_file_path ()
gchar * | anjuta_util_get_user_config_file_path ()
gchar * | anjuta_util_get_user_mail ()
void | anjuta_util_set_user_mail ()
GList * | anjuta_util_convert_gfile_list_to_path_list ()
GList * | anjuta_util_convert_gfile_list_to_relative_path_list ()
GPtrArray * | anjuta_util_convert_string_list_to_array ()
void | anjuta_util_list_all_dir_children ()
GtkBuilder * | anjuta_util_builder_new ()
gboolean | anjuta_util_builder_get_objects ()
GSList * | anjuta_utils_drop_get_files ()
GPtrArray * | anjuta_util_clone_string_gptrarray ()
#define | ANJUTA_TYPE_BEGIN ()
#define | ANJUTA_TYPE_ADD_INTERFACE ()
#define | ANJUTA_TYPE_BOILERPLATE ()

## Types and Values

#define | ANJUTA_TYPE_END

## Includes

    #include <libanjuta/anjuta-utils.h>

## Description

## Functions

### anjuta_util_copy_file ()

    gboolean
    anjuta_util_copy_file (const gchar *src,
                           const gchar *dest,
                           gboolean show_error);

Copies `src` to `dest` and shows a dialog error in case is needed.

#### Parameters

src | the file where copy |
dest | the path to copy the `src` |
show_error | `TRUE` to show a dialog error |

#### Returns

`TRUE` if there was an error copying the file.

### anjuta_util_diff ()

    gboolean
    anjuta_util_diff (const gchar *uri,
                      const gchar *text);

### anjuta_util_color_from_string ()

    void
    anjuta_util_color_from_string (const gchar *val,
                                   guint16 *r,
                                   guint16 *g,
                                   guint16 *b);

### anjuta_util_string_from_color ()

    gchar *
    anjuta_util_string_from_color (guint16 r,
                                   guint16 g,
                                   guint16 b);

### anjuta_util_button_new_with_stock_image ()

    GtkWidget *
    anjuta_util_button_new_with_stock_image
                                   (const gchar *text,
                                    const gchar *stock_id);

### anjuta_util_dialog_add_button ()

    GtkWidget *
    anjuta_util_dialog_add_button (GtkDialog *dialog,
                                   const gchar *text,
                                   const gchar *stock_id,
                                   gint response_id);

### anjuta_util_dialog_error ()

    void
    anjuta_util_dialog_error (GtkWindow *parent,
                              const gchar *mesg,
                              ...);

### anjuta_util_dialog_warning ()

    void
    anjuta_util_dialog_warning (GtkWindow *parent,
                                const gchar *mesg,
                                ...);

### anjuta_util_dialog_info ()

    void
    anjuta_util_dialog_info (GtkWindow *parent,
                             const gchar *mesg,
                             ...);

### anjuta_util_dialog_error_system ()

    void
    anjuta_util_dialog_error_system (GtkWindow *parent,
                                     gint errnum,
                                     const gchar *mesg,
                                     ...);

### anjuta_util_dialog_boolean_question ()

    gboolean
    anjuta_util_dialog_boolean_question (GtkWindow *parent,
                                         gboolean default_to_yes,
                                         const gchar *mesg,
                                         ...);

### anjuta_util_dialog_input ()

    gboolean
    anjuta_util_dialog_input (GtkWindow *parent,
                              const gchar *label,
                              const gchar *default_value,
                              gchar **value);

### anjuta_util_install_files ()

    gboolean
    anjuta_util_install_files (const gchar * const names);

### anjuta_util_package_is_installed ()

    gboolean
    anjuta_util_package_is_installed (const gchar *lib,
                                      gboolean show);

### anjuta_util_prog_is_installed ()

    gboolean
    anjuta_util_prog_is_installed (const gchar *prog,
                                   gboolean show);

### anjuta_util_get_a_tmp_file ()

    gchar *
    anjuta_util_get_a_tmp_file (void);

### anjuta_util_convert_to_utf8 ()

    gchar *
    anjuta_util_convert_to_utf8 (const gchar *str);

### anjuta_util_jump_to_matching_brace ()

    gboolean
    anjuta_util_jump_to_matching_brace (IAnjutaIterable *iter,
                                        gchar brace,
                                        gint limit);

### anjuta_util_parse_args_from_string ()

    GList *
    anjuta_util_parse_args_from_string (const gchar *string);

Parse arguments from a string to a GList.

#### Parameters

string | arguments |

#### Returns

A newly allocated GList of strings.

[element-type utf8][transfer full]

### anjuta_util_type_from_string ()

    int
    anjuta_util_type_from_string (AnjutaUtilStringMap *map,
                                  const char *str);

### anjuta_util_string_from_type ()

    const char *
    anjuta_util_string_from_type (AnjutaUtilStringMap *map,
                                  int type);

### anjuta_util_glist_from_map ()

    GList *
    anjuta_util_glist_from_map (AnjutaUtilStringMap *map);

### anjuta_util_glist_strings_free ()

    void
    anjuta_util_glist_strings_free (GList *list);

### anjuta_util_glist_strings_prefix ()

    void
    anjuta_util_glist_strings_prefix (GList *list,
                                      const gchar *prefix);

### anjuta_util_glist_strings_sufix ()

    void
    anjuta_util_glist_strings_sufix (GList *list,
                                     const gchar *sufix);

### anjuta_util_glist_strings_sort ()

    GList *
    anjuta_util_glist_strings_sort (GList *list);

### anjuta_util_glist_strings_join ()

    gchar *
    anjuta_util_glist_strings_join (GList *list,
                                    gchar *delimiter);

### anjuta_util_glist_from_string ()

    GList *
    anjuta_util_glist_from_string (const gchar *id);

### anjuta_util_glist_strings_dup ()

    GList *
    anjuta_util_glist_strings_dup (GList *list);

### anjuta_util_glist_path_dedup ()

    GList *
    anjuta_util_glist_path_dedup (GList *list);

### anjuta_util_update_string_list ()

    GList *
    anjuta_util_update_string_list (GList *p_list,
                                    const gchar *p_str,
                                    gint length);

### anjuta_util_create_dir ()

    gboolean
    anjuta_util_create_dir (const gchar *d);

### anjuta_util_user_shell ()

    gchar *
    anjuta_util_user_shell (void);

Retrieves the user's preferred shell.

#### Returns

A newly allocated string that is the path to the shell.

### anjuta_util_user_terminal ()

    gchar **
    anjuta_util_user_terminal (void);

Retrieves the user's preferred terminal.

#### Returns

A newly allocated strings list. The first argument is the terminal program name. The following are the arguments needed to execute a command. The list has to be freed with g_strfreev.

[transfer full]

### anjuta_util_execute_shell ()

    GPid
    anjuta_util_execute_shell (const gchar *dir,
                               const gchar *command);

### anjuta_util_execute_terminal_shell ()

    GPid
    anjuta_util_execute_terminal_shell (const gchar *dir,
                                        const gchar *command);

### anjuta_util_escape_quotes ()

    gchar *
    anjuta_util_escape_quotes (const gchar *str);

### anjuta_util_get_real_path ()

    gchar *
    anjuta_util_get_real_path (const gchar *path);

### anjuta_util_get_current_dir ()

    gchar *
    anjuta_util_get_current_dir (void);

Get current working directory, unlike g_get_current_dir, keeps symbolic links in path name.

#### Returns

The current working directory.

### anjuta_util_file_new_for_commandline_arg ()

    GFile *
    anjuta_util_file_new_for_commandline_arg
                                   (const gchar *arg);

Create a new file corresponding to arg, unlike g_file_new_for_commandline_arg, keeps symbolic links in path name.

#### Parameters

arg | URI or relative or absolute file path |

#### Returns

A new GFile object.

[transfer full]

### anjuta_util_uri_get_dirname ()

    gchar *
    anjuta_util_uri_get_dirname (const gchar *uri);

### anjuta_util_replace_home_dir_with_tilde ()

    gchar *
    anjuta_util_replace_home_dir_with_tilde
                                   (const gchar *uri);

### anjuta_util_shell_expand ()

    gchar *
    anjuta_util_shell_expand (const gchar *string);

Expand environment variables $(var_name) and tilde (~) in the input string.

#### Parameters

string | input string |

#### Returns

a newly-allocated string that must be freed with `g_free()`.

[transfer full]

### anjuta_util_str_middle_truncate ()

    gchar *
    anjuta_util_str_middle_truncate (const gchar *string,
                                     guint truncate_length);

### anjuta_util_is_project_file ()

    gboolean
    anjuta_util_is_project_file (const gchar *filename);

Return `TRUE` if the file is an anjuta project file. It is implemented by checking only the file extension. So it does not check the existence of the file. But it is working on an URI if it does not containt a fragment.

#### Parameters

filename | the file name |

#### Returns

`TRUE` if the file is a project file, else `FALSE`

### anjuta_util_is_template_file ()

    gboolean
    anjuta_util_is_template_file (const gchar *filename);

Return `TRUE` if the file is an template project file. It is implemented by checking only the file extension. So it does not check the existence of the file. But it is working on an URI if it does not containt a fragment.

#### Parameters

filename | the file name |

#### Returns

`TRUE` if the file is a template file, else `FALSE`

### anjuta_util_get_file_mime_type ()

    gchar *
    anjuta_util_get_file_mime_type (GFile *file);

### anjuta_util_get_file_info_mime_type ()

    gchar *
    anjuta_util_get_file_info_mime_type (GFileInfo *info);

### anjuta_util_get_local_path_from_uri ()

    gchar *
    anjuta_util_get_local_path_from_uri (const gchar *uri);

### anjuta_util_help_display ()

    void
    anjuta_util_help_display (GtkWidget *parent,
                              const gchar *doc_id,
                              const gchar *item);

### anjuta_util_set_anjuta_prefix ()

    void
    anjuta_util_set_anjuta_prefix (const gchar *name);

### anjuta_util_get_user_data_file ()

    GFile *
    anjuta_util_get_user_data_file (const gchar *path,
                                    ...);

### anjuta_util_get_user_cache_file ()

    GFile *
    anjuta_util_get_user_cache_file (const gchar *path,
                                     ...);

### anjuta_util_get_user_config_file ()

    GFile *
    anjuta_util_get_user_config_file (const gchar *path,
                                      ...);

### anjuta_util_get_user_data_file_path ()

    gchar *
    anjuta_util_get_user_data_file_path (const gchar *path,
                                         ...);

### anjuta_util_get_user_cache_file_path ()

    gchar *
    anjuta_util_get_user_cache_file_path (const gchar *path,
                                          ...);

### anjuta_util_get_user_config_file_path ()

    gchar *
    anjuta_util_get_user_config_file_path (const gchar *path,
                                           ...);

### anjuta_util_get_user_mail ()

    gchar *
    anjuta_util_get_user_mail (void);

### anjuta_util_set_user_mail ()

    void
    anjuta_util_set_user_mail (const gchar *id);

### anjuta_util_convert_gfile_list_to_path_list ()

    GList *
    anjuta_util_convert_gfile_list_to_path_list
                                   (GList *list);

### anjuta_util_convert_gfile_list_to_relative_path_list ()

    GList *
    anjuta_util_convert_gfile_list_to_relative_path_list
                                   (GList *list,
                                    const gchar *parent);

### anjuta_util_convert_string_list_to_array ()

    GPtrArray *
    anjuta_util_convert_string_list_to_array
                                   (GList *list);

### anjuta_util_list_all_dir_children ()

    void
    anjuta_util_list_all_dir_children (GList **children,
                                       GFile *dir);

### anjuta_util_builder_new ()

    GtkBuilder *
    anjuta_util_builder_new (const gchar *filename,
                             GError **error);

Create a new GtkBuilder object and load the file in it. Display an error if the file is missing. Use a dialog if error is `NULL`, just a warning if the error can be reported.

#### Parameters

filename | Builder file name to open |
error | Optional error object, if `NULL` display a dialog if the file is missing |

#### Returns

The new GtkBuilder object

### anjuta_util_builder_get_objects ()

    gboolean
    anjuta_util_builder_get_objects (GtkBuilder *builder,
                                     const gchar *first_widget,
                                     ...);

Create a new GtkBuilder object and load the file in it. Display an error if the file is missing. Use a dialog if error is `NULL`, just a warning if the error can be reported.

#### Parameters

builder | Builder object |
first_widget | Name of first widget to get ...: Address to store the first widget pointer, followed optionally by more name/pointer pairs, followed by `NULL` |

#### Returns

`TRUE` is everything works as expected.

### anjuta_utils_drop_get_files ()

    GSList *
    anjuta_utils_drop_get_files (GtkSelectionData *selection_data);

Create a list of valid uri's from a uri-list drop.

#### Parameters

selection_data | the GtkSelectionData from drag_data_received |

#### Returns

a list of GFiles.

[element-type GFile*]

### anjuta_util_clone_string_gptrarray ()

    GPtrArray *
    anjuta_util_clone_string_gptrarray (const GPtrArray *source);

### ANJUTA_TYPE_BEGIN()

    #define             ANJUTA_TYPE_BEGIN(class_name, prefix, parent_type)

Create a new GObject for Anjuta. You can use ANJUTA_TYPE_ADD_INTERFACE to add interfaces to it and should close it using ANJUTA_TYPE_END

#### Parameters

class_name | Name of the object |
prefix | Prefix used for object methods |
parent_type | The parent type of the object |

### ANJUTA_TYPE_ADD_INTERFACE()

    #define             ANJUTA_TYPE_ADD_INTERFACE(prefix,interface_type)

Adds an interface to a declaration started with ANJUTA_TYPE_BEGIN

#### Parameters

prefix | Prefix for the interface methods |
interface_type | Type of the interface to implement |

### ANJUTA_TYPE_BOILERPLATE()

    #define             ANJUTA_TYPE_BOILERPLATE(class_name, prefix, parent_type)

Simpliefied version of ANJUTA_TYPE_BEGIN that just creates an Object without interfaces and doesn't need ANJUTA_TYPE_END

#### Parameters

class_name | Name of the object |
prefix | Prefix for the class methods |
parent_type | Parent type for object |

## Types and Values

### ANJUTA_TYPE_END

    #define             ANJUTA_TYPE_END

Ends a declaration that began with ANJUTA_TYPE_BEGIN