]> Dogcows Code - chaz/tint2/blob - src/tint2conf/theme_view.c
a89f73d4d6cf3bb53823fe3e080a776b912d8653
[chaz/tint2] / src / tint2conf / theme_view.c
1 #include <string.h>
2 #include "theme_view.h"
3
4
5 GtkListStore *g_store;
6
7 enum { PROP_TITLE = 1, };
8
9
10
11 GtkWidget *create_view(void)
12 {
13 GtkCellRenderer *renderer;
14 GtkTreeViewColumn *col;
15 GtkTreeSelection *sel;
16 GtkListStore *liststore;
17 GtkWidget *view;
18
19 g_store = gtk_list_store_new(N_COLUMNS, G_TYPE_STRING, GDK_TYPE_PIXBUF);
20 view = gtk_tree_view_new_with_model(GTK_TREE_MODEL(g_store));
21 //gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(view), FALSE);
22 gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(view), TRUE);
23 //gtk_tree_view_set_fixed_height_mode(GTK_TREE_VIEW(view), TRUE);
24
25 renderer = gtk_cell_renderer_text_new();
26 col = gtk_tree_view_column_new();
27 gtk_tree_view_column_pack_start(col, renderer, TRUE);
28 gtk_tree_view_column_add_attribute(col, renderer, "text", COL_TEXT);
29 gtk_tree_view_column_set_title(col, " items 1 ");
30 gtk_tree_view_append_column(GTK_TREE_VIEW(view), col);
31
32 renderer = gtk_cell_renderer_pixbuf_new();
33 col = gtk_tree_view_column_new();
34 gtk_tree_view_column_pack_start(col, renderer, TRUE);
35 gtk_tree_view_column_add_attribute(col, renderer, "pixbuf", COL_PIX);
36 gtk_tree_view_column_set_title(col, " image ");
37 gtk_tree_view_append_column(GTK_TREE_VIEW(view), col);
38
39 sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(view));
40 gtk_tree_selection_set_mode(sel, GTK_SELECTION_SINGLE);
41 g_signal_connect(sel, "changed", G_CALLBACK(on_changed), g_store);
42
43 return view;
44 }
45
46
47 void on_changed(GtkWidget *widget, gpointer label)
48 {
49 GtkTreeIter iter;
50 GtkTreeModel *model;
51 char *value;
52
53 if (gtk_tree_selection_get_selected(GTK_TREE_SELECTION(widget), &model, &iter)) {
54 gtk_tree_model_get(model, &iter, COL_TEXT, &value, -1);
55 //gtk_label_set_text(GTK_LABEL(label), value);
56 g_free(value);
57 }
58 }
59
60
61 void add_to_list(GtkWidget *list, const gchar *str)
62 {
63 GtkTreeIter iter;
64 gchar *cmd, *name, *snapshot;
65 GdkPixbuf *icon;
66 GError *error = NULL;
67
68 //printf(" %s\n", str);
69 snapshot = g_build_filename (g_get_user_config_dir(), "tint2", "snap.jpg", NULL);
70 cmd = g_strdup_printf("tint2 -c \'%s\' -s \'%s\'", str, snapshot, NULL);
71 system(cmd);
72
73 icon = gdk_pixbuf_new_from_file(snapshot, &error);
74 g_free(snapshot);
75 if (error) {
76 g_warning ("Could not load icon: %s\n", error->message);
77 g_error_free(error);
78 return;
79 }
80
81 gtk_list_store_append(g_store, &iter);
82 gtk_list_store_set(g_store, &iter, COL_TEXT, str, COL_PIX, icon, -1);
83
84 }
85
86
This page took 0.04015 seconds and 3 git commands to generate.