On Mon, Jan 11, 2010 at 11:47:48PM +0300, George Kibardin wrote:

> In my case for some reason in normal mode I need two taps to get
> row-activated signal: one tap to select appropriate item and another
> one to activate it. In edit mode with multiple selection enabled
> I need to use Ctrl to select multiple items which also seems
> wrong. What I'm doing wrong?

There must be something wrong in your code... I'm attaching a simple
example of a treeview in normal mode, tell me if it works fine for
you.

Berto
#include                                        <hildon/hildon.h>

static const char *countries[] = {
    "Austria", "Belgium", "Bulgaria", "Cyprus", "Czech Republic",
    "Denmark", "Estonia", "Finland", "France", "Germany", "Greece",
    "Hungary", "Ireland", "Italy", "Latvia", "Lithuania", "Luxembourg",
    "Malta", "Netherlands", "Poland", "Portugal", "Romania", "Slovakia",
    "Slovenia", "Spain", "Sweden", "United Kingdom"
};

static void
row_activated_cb                                (GtkTreeView       *tree_view,
                                                 GtkTreePath       *path,
                                                 GtkTreeViewColumn *column,
                                                 gpointer           user_data)
{
    gchar *str;
    GtkTreeIter iter;
    GtkTreeModel *model = gtk_tree_view_get_model (tree_view);
    gtk_tree_model_get_iter (model, &iter, path);
    gtk_tree_model_get (model, &iter, 0, &str, -1);
    g_debug ("Row activated: %s", str);
    g_free (str);
}

static GtkTreeModel *
create_model                                    (void)
{
    int i;
    GtkListStore *store;

    store = gtk_list_store_new (1, G_TYPE_STRING);

    for (i = 0; i < G_N_ELEMENTS (countries); i++) {
        gtk_list_store_insert_with_values (store, NULL, i, 0, countries[i], -1);
    }

    return GTK_TREE_MODEL (store);
}

static GtkWidget *
create_tree_view                                (void)
{
    GtkWidget *tree_view;
    GtkCellRenderer *renderer;
    GtkTreeModel *model;

    tree_view = hildon_gtk_tree_view_new (HILDON_UI_MODE_NORMAL);
    gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (tree_view), TRUE);

    model = create_model ();
    gtk_tree_view_set_model (GTK_TREE_VIEW (tree_view), model);
    g_object_unref (model);

    renderer = gtk_cell_renderer_text_new ();
    g_object_set (renderer, "xalign", 0.5, "weight", PANGO_WEIGHT_BOLD, NULL);

    gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (tree_view), 0,
                                                 "Column 0", renderer, "text", 0, NULL);

    return tree_view;
}


int
main                                            (int    argc,
                                                 char **argv)
{
    GtkWidget *window;
    GtkWidget *panarea;
    GtkWidget *treeview;

    hildon_gtk_init (&argc, &argv);

    window = hildon_window_new ();
    panarea = hildon_pannable_area_new ();
    treeview = create_tree_view ();

    gtk_container_add (GTK_CONTAINER (panarea), treeview);
    gtk_container_add (GTK_CONTAINER (window), panarea);

    g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
    g_signal_connect (treeview, "row-activated", G_CALLBACK (row_activated_cb), NULL);

    gtk_widget_show_all (window);

    gtk_main ();

    return 0;
}
_______________________________________________
maemo-developers mailing list
[email protected]
https://lists.maemo.org/mailman/listinfo/maemo-developers

Reply via email to