diff options
author | Leandro A. F. Pereira <leandro@hardinfo.org> | 2006-10-25 13:38:32 +0000 |
---|---|---|
committer | Leandro A. F. Pereira <leandro@hardinfo.org> | 2006-10-25 13:38:32 +0000 |
commit | fd6337f2c940aa3aae42eb9952b32ca12f8b757d (patch) | |
tree | a50a07b2919f34ba48baec9378124533d8f92bb3 /hardinfo2/util.c | |
parent | 7b773f5c8225479e0748db69b9ac7f92b127890c (diff) |
Fix report output format option.
Diffstat (limited to 'hardinfo2/util.c')
-rw-r--r-- | hardinfo2/util.c | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/hardinfo2/util.c b/hardinfo2/util.c index 6ca71fca..19102213 100644 --- a/hardinfo2/util.c +++ b/hardinfo2/util.c @@ -91,3 +91,67 @@ nonblock_sleep(guint msec) g_timeout_add(msec, (GSourceFunc)__nonblock_cb, NULL); gtk_main(); } + +static void +__expand_cb(GtkWidget *widget, gpointer data) +{ + if (GTK_IS_EXPANDER(widget)) { + gtk_expander_set_expanded(GTK_EXPANDER(widget), TRUE); + } else if (GTK_IS_CONTAINER(widget)) { + gtk_container_forall(GTK_CONTAINER(widget), (GtkCallback)__expand_cb, NULL); + } +} + +void +file_chooser_open_expander(GtkWidget *chooser) +{ + gtk_container_forall(GTK_CONTAINER(chooser), (GtkCallback)__expand_cb, NULL); +} + +void +file_chooser_add_filters(GtkWidget *chooser, FileTypes *filters) +{ + GtkFileFilter *filter; + gint i; + + for (i = 0; filters[i].name; i++) { + filter = gtk_file_filter_new(); + gtk_file_filter_add_mime_type(filter, filters[i].mime_type); + gtk_file_filter_set_name(filter, filters[i].name); + gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(chooser), filter); + } +} + +gchar +*file_chooser_get_extension(GtkWidget *chooser, FileTypes *filters) +{ + GtkFileFilter *filter; + const gchar *filter_name; + gint i; + + filter = gtk_file_chooser_get_filter(GTK_FILE_CHOOSER(chooser)); + filter_name = gtk_file_filter_get_name(filter); + for (i = 0; filters[i].name; i++) { + if (g_str_equal(filter_name, filters[i].name)) { + return filters[i].extension; + } + } + + return NULL; +} + +gchar +*file_chooser_build_filename(GtkWidget *chooser, gchar *extension) +{ + gchar *filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(chooser)); + gchar *retval; + + if (g_str_has_suffix(filename, extension)) { + return filename; + } + + retval = g_strconcat(filename, extension, NULL); + g_free(filename); + + return retval; +} |