| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 
 |  
 
#include <gtk/gtk.h>
#include <stdio.h>
 
void start_gtk(int argc, char **argv)
{
    GtkWidget *vbox;
    GtkWidget *win;
 
    GtkListStore *pListStore;
    GtkWidget *pListView;
 
    gtk_init(&argc, &argv);
 
    win = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_container_set_border_width(GTK_CONTAINER(win), 0);
    gtk_window_set_title(GTK_WINDOW(win), "title");
    gtk_window_set_position(GTK_WINDOW(win), GTK_WIN_POS_CENTER);
    gtk_window_set_default_size(GTK_WINDOW(win), 600, 400);
    gtk_widget_realize(win);
    g_signal_connect(win, "destroy", gtk_main_quit, NULL);
 
    vbox = gtk_vbox_new(FALSE, 0);
    gtk_container_add(GTK_CONTAINER(win), vbox);
 
 
    /* **** Gtkliststore *************** */
    pListStore = gtk_list_store_new(1, G_TYPE_INT);
    pListView = gtk_tree_view_new_with_model(GTK_TREE_MODEL(pListStore));
    // XXX - Most likely you should unref pListStore now
    g_object_unref(pListStore);
    // /XXX
 
    GtkCellRenderer *pCellRenderer;
    pCellRenderer = gtk_cell_renderer_progress_new();
 
    // XXX - Here's your problem: After "value", which is an attribute, you need to provide
    //       the column number to map the attribute to, 0 in this case. Then you can end
    //       the function call with NULL.
    gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(pListView), 0, "Progress", pCellRenderer, "value", 0, NULL);
    /* gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(pListView), 0, "Progress", pCellRenderer, "value", NULL); */
    // /XXX
    gtk_box_pack_start(GTK_BOX(vbox), pListView, TRUE, TRUE, 0);
    /* ********************************** */
 
 
    /* **** Test : progress bar : 30% ** */
    GtkTreeIter pIter;
 
    gtk_list_store_append(pListStore, &pIter);
    gtk_list_store_set(pListStore, &pIter, 0, 30, -1);
    /* ********************************** */
 
    gtk_widget_show_all(win);
    gtk_main();
}
 
 
int main(int argc, char ** argv)
{
    start_gtk(argc, argv);
 
    // XXX - If you're #including stdio.h already then you may as well
    //       #include <stdlib.h> too and use EXIT_SUCCESS and EXIT_FAILURE
    return 1;
    // /XXX
} | 
Partager