31
31
/******************************************************************************/
33
33
garbage_init (Garbage *garabage) {
34
if (DEBUG) g_printf ("In %s\n", __FUNCTION__);
34
if (DEBUG) g_printf ("In %s\n", __FUNCTION__);
36
36
if (*garabage == NULL) {
37
GPtrArray **_garbage = (GPtrArray**)garabage;
38
*_garbage = g_ptr_array_new();
37
GPtrArray **_garbage = (GPtrArray**)garabage;
38
*_garbage = g_ptr_array_new();
41
41
/******************************************************************************/
43
43
garbage_empty (Garbage *garabage, gboolean reuse) {
44
if (DEBUG) g_printf ("In %s\n", __FUNCTION__);
44
if (DEBUG) g_printf ("In %s\n", __FUNCTION__);
46
46
if (*garabage == NULL)
49
GPtrArray **_garbage = (GPtrArray**)garabage;
49
GPtrArray **_garbage = (GPtrArray**)garabage;
51
g_ptr_array_foreach (*_garbage, (GFunc)g_free, NULL);
52
g_ptr_array_free (*_garbage, TRUE);
53
*_garbage = reuse ? g_ptr_array_new() : NULL;
51
g_ptr_array_foreach (*_garbage, (GFunc)g_free, NULL);
52
g_ptr_array_free (*_garbage, TRUE);
53
*_garbage = reuse ? g_ptr_array_new() : NULL;
55
55
/******************************************************************************/
57
57
garbage_add_item (Garbage garabage, gpointer item) {
58
if (DEBUG) g_printf ("In %s\n", __FUNCTION__);
58
if (DEBUG) g_printf ("In %s\n", __FUNCTION__);
61
GPtrArray *_garbage = (GPtrArray*)garabage;
62
g_ptr_array_add (_garbage, item);
61
GPtrArray *_garbage = (GPtrArray*)garabage;
62
g_ptr_array_add (_garbage, item);
65
65
/******************************************************************************/
67
67
utils_gerror_ok (GError **error, gboolean show_error) {
68
if (DEBUG) g_printf ("In %s\n", __FUNCTION__);
71
if (DEBUG) g_printf ("error: %s\n", (*error)->message);
74
utils_show_dialog (_("Error"), (*error)->message, GTK_MESSAGE_ERROR);
76
g_error_free (*error);
68
if (DEBUG) g_printf ("In %s\n", __FUNCTION__);
71
if (DEBUG) g_printf ("error: %s\n", (*error)->message);
74
utils_show_dialog (_("Error"), (*error)->message, GTK_MESSAGE_ERROR);
76
g_error_free (*error);
82
82
/******************************************************************************/
84
84
utils_show_dialog (const gchar *title, const gchar *message, GtkMessageType type) {
85
if (DEBUG) g_printf ("In %s\n", __FUNCTION__);
87
GtkWidget *dialog = gtk_message_dialog_new (NULL,
93
gtk_window_set_title (GTK_WINDOW (dialog), title);
95
g_signal_connect (G_OBJECT (dialog), "destroy", G_CALLBACK (gtk_widget_destroy), dialog);
85
if (DEBUG) g_printf ("In %s\n", __FUNCTION__);
87
GtkWidget *dialog = gtk_message_dialog_new (NULL,
93
gtk_window_set_title (GTK_WINDOW (dialog), title);
95
g_signal_connect (G_OBJECT (dialog), "destroy", G_CALLBACK (gtk_widget_destroy), dialog);
96
96
g_signal_connect (G_OBJECT (dialog), "delete_event", G_CALLBACK (gtk_widget_destroy), dialog);
97
g_signal_connect_swapped (G_OBJECT (dialog), "response", G_CALLBACK (gtk_widget_destroy), dialog);
98
gtk_widget_show_all (dialog);
97
g_signal_connect_swapped (G_OBJECT (dialog), "response", G_CALLBACK (gtk_widget_destroy), dialog);
98
gtk_widget_show_all (dialog);
102
102
/******************************************************************************/
104
104
utils_get_scaled_image_from_file (const gchar *file_name, int size) {
105
if (DEBUG) g_printf ("In %s\n", __FUNCTION__);
107
GdkPixbuf *pixbuf = gdk_pixbuf_new_from_file_at_size (file_name,
111
if (pixbuf == NULL) return NULL;
113
GtkWidget *icon = gtk_image_new_from_pixbuf (pixbuf);
114
g_object_unref (pixbuf);
105
if (DEBUG) g_printf ("In %s\n", __FUNCTION__);
107
GdkPixbuf *pixbuf = gdk_pixbuf_new_from_file_at_size (file_name,
111
if (pixbuf == NULL) return NULL;
113
GtkWidget *icon = gtk_image_new_from_pixbuf (pixbuf);
114
g_object_unref (pixbuf);
117
117
/******************************************************************************/
119
119
g_slist_swap_data (GSList *list, guint index) {
120
if (DEBUG) g_printf ("In %s\n", __FUNCTION__);
123
GSList *first = g_slist_nth (list, index);
124
GSList *second = first->next;
127
first->data = second->data;
120
if (DEBUG) g_printf ("In %s\n", __FUNCTION__);
123
GSList *first = g_slist_nth (list, index);
124
GSList *second = first->next;
127
first->data = second->data;
131
131
/******************************************************************************/
133
133
utils_escape_str (const gchar *str, const gchar *old_token, const gchar *new_token) {
134
gchar **tokens = g_strsplit (str, old_token, 0);
135
gchar *escaped_str = g_strjoinv (new_token, tokens);
134
gchar **tokens = g_strsplit (str, old_token, 0);
135
gchar *escaped_str = g_strjoinv (new_token, tokens);
139
139
/******************************************************************************/
141
141
g_strv_new (guint size) {
142
gchar **strv = g_new0 (gchar*, size + 1);
142
gchar **strv = g_new0 (gchar*, size + 1);
146
146
/******************************************************************************/