예제 #1
0
static void
showed_message_cb (GtrTab * tab, GtrMsg * msg, GtrMessageTable * table)
{
    GtkTreePath *path;
    GtkTreeSelection *selection;
    GtkTreeIter iter, child_iter;
    GtrMessageTablePrivate *priv;

    priv = gtr_message_table_get_instance_private (table);

    selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (priv->treeview));
    gtr_message_table_get_message_iter (priv->store, msg, &child_iter);

    gtk_tree_model_sort_convert_child_iter_to_iter (GTK_TREE_MODEL_SORT
            (priv->sort_model),
            &iter, &child_iter);

    gtk_tree_selection_select_iter (selection, &iter);
    path = gtk_tree_model_get_path (priv->sort_model, &iter);

    gtk_tree_view_scroll_to_cell (GTK_TREE_VIEW (priv->treeview),
                                  path, NULL, TRUE, 0.5, 0.0);

    gtk_tree_path_free (path);
}
예제 #2
0
static void
message_changed_cb (GtrTab * tab, GtrMsg * msg, GtrMessageTable * table)
{
  GtkTreePath *path;
  GtkTreeIter iter;

  if (!gtr_message_table_get_message_iter (GTR_MESSAGE_TABLE_MODEL (table->priv->store),
                                           msg, &iter))
    return;

  path = gtk_tree_model_get_path (GTK_TREE_MODEL (table->priv->store), &iter);
  gtr_message_table_model_update_row (GTR_MESSAGE_TABLE_MODEL (table->priv->store),
                                      path);
  gtk_tree_path_free (path);
}