rem: GtkListStore *store; GtkTreeModel *sortable; GtkTreeModel *filter; GtkWidget *tree_view; GtkWidget *scrolled_window;  scrolled_window = gtk_scrolled_window_new ( NULL, NULL ); gsb_account_set_scrolled_window ( no_account, scrolled_window ); gtk_scrolled_window_set_policy ( GTK_SCROLLED_WINDOW ( scrolled_window ), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC ); gtk_scrolled_window_set_shadow_type ( GTK_SCROLLED_WINDOW ( scrolled_window ), GTK_SHADOW_IN );    tree_view = gtk_tree_view_new ();  gtk_container_add ( GTK_CONTAINER ( scrolled_window ), tree_view ); gtk_widget_show ( tree_view );  gsb_account_set_tree_view ( no_account, tree_view );    gtk_tree_selection_set_mode ( GTK_TREE_SELECTION ( gtk_tree_view_get_selection ( GTK_TREE_VIEW( tree_view ))), GTK_SELECTION_NONE );    if ( etat.affichage_grille ) g_signal_connect_after ( G_OBJECT ( tree_view ), "expose-event", G_CALLBACK ( affichage_traits_liste_operation ), NULL );    g_signal_connect ( G_OBJECT ( tree_view ), "button_press_event", G_CALLBACK ( gsb_transactions_list_button_press ), NULL );    g_signal_connect ( G_OBJECT ( tree_view ), "key_press_event", G_CALLBACK ( gsb_transactions_list_key_press ), NULL );    g_signal_connect ( G_OBJECT ( tree_view ), "size-allocate", G_CALLBACK ( changement_taille_liste_ope ), NULL );     if ( gsb_account_get_column ( no_account, TRANSACTION_COL_NB_CHECK) ) { gint j;  for ( j = 0 ; j < TRANSACTION_LIST_COL_NB ; j++ ) { GtkTreeViewColumn *column;  column = GTK_TREE_VIEW_COLUMN ( gsb_account_get_column ( no_account, j));  gtk_tree_view_append_column ( GTK_TREE_VIEW ( tree_view ), column );  if ( !j ) gtk_tree_view_column_set_clickable ( gsb_account_get_column ( no_account, j), FALSE );    gtk_tooltips_set_tip ( GTK_TOOLTIPS ( tooltips_general_grisbi ), column ->button, tips_col_liste_operations[j], tips_col_liste_operations[j] );  g_signal_connect ( G_OBJECT ( column -> button), "button-press-event", G_CALLBACK ( gsb_transactions_list_title_column_button_press ), GINT_TO_POINTER (j));    g_signal_connect_after ( G_OBJECT ( column ), "clicked", G_CALLBACK ( gsb_transactions_list_sort_column_changed ), GINT_TO_POINTER ( no_account ));  } } else printf ( "bizarre, les colonnes d'opérations n'ont pas encore été créés (operation_liste.c)...\n" );      store = gtk_list_store_new ( TRANSACTION_COL_NB_TOTAL, G_TYPE_BOOLEAN, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, GDK_TYPE_COLOR, G_TYPE_STRING, G_TYPE_POINTER, GDK_TYPE_COLOR, PANGO_TYPE_FONT_DESCRIPTION, G_TYPE_INT, G_TYPE_BOOLEAN, G_TYPE_OBJECT, G_TYPE_OBJECT, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN );    gsb_account_set_store ( no_account, store );    filter = gtk_tree_model_filter_new ( GTK_TREE_MODEL ( store ), NULL ); gtk_tree_model_filter_set_visible_column ( GTK_TREE_MODEL_FILTER ( filter ), TRANSACTION_COL_NB_VISIBLE );    sortable = gtk_tree_model_sort_new_with_model ( filter ); gtk_tree_sortable_set_sort_column_id ( GTK_TREE_SORTABLE ( sortable ), gsb_account_get_sort_column ( no_account ), gsb_account_get_sort_type ( no_account ));    gtk_tree_sortable_set_sort_func ( GTK_TREE_SORTABLE ( sortable ), TRANSACTION_COL_NB_CHECK, (GtkTreeIterCompareFunc) gsb_transactions_list_sort_column_0, GINT_TO_POINTER ( no_account ), NULL ); gtk_tree_sortable_set_sort_func ( GTK_TREE_SORTABLE ( sortable ), TRANSACTION_COL_NB_DATE, (GtkTreeIterCompareFunc) gsb_transactions_list_sort_column_1, GINT_TO_POINTER ( no_account ), NULL ); gtk_tree_sortable_set_sort_func ( GTK_TREE_SORTABLE ( sortable ), TRANSACTION_COL_NB_PARTY, (GtkTreeIterCompareFunc) gsb_transactions_list_sort_column_2, GINT_TO_POINTER ( no_account ), NULL ); gtk_tree_sortable_set_sort_func ( GTK_TREE_SORTABLE ( sortable ), TRANSACTION_COL_NB_PR, (GtkTreeIterCompareFunc) gsb_transactions_list_sort_column_3, GINT_TO_POINTER ( no_account ), NULL ); gtk_tree_sortable_set_sort_func ( GTK_TREE_SORTABLE ( sortable ), TRANSACTION_COL_NB_DEBIT, (GtkTreeIterCompareFunc) gsb_transactions_list_sort_column_4, GINT_TO_POINTER ( no_account ), NULL ); gtk_tree_sortable_set_sort_func ( GTK_TREE_SORTABLE ( sortable ), TRANSACTION_COL_NB_CREDIT, (GtkTreeIterCompareFunc) gsb_transactions_list_sort_column_5, GINT_TO_POINTER ( no_account ), NULL ); gtk_tree_sortable_set_sort_func ( GTK_TREE_SORTABLE ( sortable ), TRANSACTION_COL_NB_BALANCE, (GtkTreeIterCompareFunc) gsb_transactions_list_sort_column_6, GINT_TO_POINTER ( no_account ), NULL );    gtk_tree_view_set_model ( GTK_TREE_VIEW (tree_view), GTK_TREE_MODEL ( sortable ));   gsb_account_set_last_transaction ( no_account, NULL );  return scrolled_window;
add: printf ( "creation_tree_view_operations_par_compte -> exit\n" ); exit (0); return NULL;
context: GtkWidget *creation_tree_view_operations_par_compte ( gint no_account ){    GtkListStore *store;    GtkTreeModel *sortable;    GtkTreeModel *filter;    GtkWidget *tree_view;    GtkWidget *scrolled_window;    scrolled_window = gtk_scrolled_window_new ( NULL, NULL );    gsb_account_set_scrolled_window ( no_account, scrolled_window );    gtk_scrolled_window_set_policy ( GTK_SCROLLED_WINDOW ( scrolled_window ),				     GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC );    gtk_scrolled_window_set_shadow_type ( GTK_SCROLLED_WINDOW ( scrolled_window ),					  GTK_SHADOW_IN );    /*     création proprement dite du treeview */    tree_view = gtk_tree_view_new ();    gtk_container_add ( GTK_CONTAINER ( scrolled_window ),			tree_view );    gtk_widget_show ( tree_view );    gsb_account_set_tree_view ( no_account,  				tree_view );    /*  we cannot do a selection */    gtk_tree_selection_set_mode ( GTK_TREE_SELECTION ( gtk_tree_view_get_selection ( GTK_TREE_VIEW( tree_view ))),				  GTK_SELECTION_NONE );    /* 	met en place la grille */    if ( etat.affichage_grille )	g_signal_connect_after ( G_OBJECT ( tree_view ),				 "expose-event",				 G_CALLBACK ( affichage_traits_liste_operation ),				 NULL );    /* vérifie le simple ou double click */    g_signal_connect ( G_OBJECT ( tree_view ),		       "button_press_event",		       G_CALLBACK ( gsb_transactions_list_button_press ),		       NULL );    /* vérifie la touche entrée, haut et bas */    g_signal_connect ( G_OBJECT ( tree_view ),		       "key_press_event",		       G_CALLBACK ( gsb_transactions_list_key_press ),		       NULL );    /*     ajuste les colonnes si modification de la taille */    g_signal_connect ( G_OBJECT ( tree_view ),		       "size-allocate",		       G_CALLBACK ( changement_taille_liste_ope ),		       NULL );    /*     normalement les colonnes sont déjà créés */    /* mais bon, on teste, sait on jamais... */    if ( gsb_account_get_column ( no_account, TRANSACTION_COL_NB_CHECK) )    {	gint j;	for ( j = 0 ; j < TRANSACTION_LIST_COL_NB ; j++ )	{	    GtkTreeViewColumn *column;	    column = GTK_TREE_VIEW_COLUMN ( gsb_account_get_column ( no_account, j));	    gtk_tree_view_append_column ( GTK_TREE_VIEW ( tree_view ),					  column );	    if ( !j )		gtk_tree_view_column_set_clickable ( gsb_account_get_column ( no_account, j),						     FALSE );	    /* 	    set the tooltips */	    gtk_tooltips_set_tip ( GTK_TOOLTIPS ( tooltips_general_grisbi ),				   column ->button,				   tips_col_liste_operations[j],				   tips_col_liste_operations[j] ); 	    g_signal_connect ( G_OBJECT ( column -> button),			       "button-press-event",			       G_CALLBACK ( gsb_transactions_list_title_column_button_press ),			       GINT_TO_POINTER (j));	    /* 	    after changing the sort of the list, we update the background color */	    g_signal_connect_after ( G_OBJECT ( column ),				     "clicked",				     G_CALLBACK ( gsb_transactions_list_sort_column_changed ),				     GINT_TO_POINTER ( no_account ));	}    }    else	printf ( "bizarre, les colonnes d'opérations n'ont pas encore été créés (operation_liste.c)...\n" );    /*     on crée le list_store maintenant et on l'associe vide au tree_view */    /* description in the constants */    store = gtk_list_store_new ( TRANSACTION_COL_NB_TOTAL,				 G_TYPE_BOOLEAN,				 G_TYPE_STRING,				 G_TYPE_STRING,				 G_TYPE_STRING,				 G_TYPE_STRING,				 G_TYPE_STRING,				 G_TYPE_STRING,				 G_TYPE_STRING,				 GDK_TYPE_COLOR,				 G_TYPE_STRING,				 G_TYPE_POINTER,				 GDK_TYPE_COLOR,				 PANGO_TYPE_FONT_DESCRIPTION,				 G_TYPE_INT,				 G_TYPE_BOOLEAN,				 G_TYPE_OBJECT,				 G_TYPE_OBJECT,				 G_TYPE_BOOLEAN,				 G_TYPE_BOOLEAN );    /*     save the store */    gsb_account_set_store ( no_account,			    store );    /*     make the model_filter, on the store */    filter = gtk_tree_model_filter_new ( GTK_TREE_MODEL ( store ),					 NULL );    gtk_tree_model_filter_set_visible_column ( GTK_TREE_MODEL_FILTER ( filter ),					       TRANSACTION_COL_NB_VISIBLE );    /* make the model_sort, on the model_filter */    sortable = gtk_tree_model_sort_new_with_model ( filter );    gtk_tree_sortable_set_sort_column_id ( GTK_TREE_SORTABLE ( sortable ),					   gsb_account_get_sort_column ( no_account ),					   gsb_account_get_sort_type ( no_account ));    /*     set the compare functions by click on the column */    gtk_tree_sortable_set_sort_func ( GTK_TREE_SORTABLE ( sortable ),				      TRANSACTION_COL_NB_CHECK,				      (GtkTreeIterCompareFunc) gsb_transactions_list_sort_column_0,				      GINT_TO_POINTER ( no_account ),				      NULL );    gtk_tree_sortable_set_sort_func ( GTK_TREE_SORTABLE ( sortable ),				      TRANSACTION_COL_NB_DATE,				      (GtkTreeIterCompareFunc) gsb_transactions_list_sort_column_1,				      GINT_TO_POINTER ( no_account ),				      NULL );    gtk_tree_sortable_set_sort_func ( GTK_TREE_SORTABLE ( sortable ),				      TRANSACTION_COL_NB_PARTY,				      (GtkTreeIterCompareFunc) gsb_transactions_list_sort_column_2,				      GINT_TO_POINTER ( no_account ),				      NULL );    gtk_tree_sortable_set_sort_func ( GTK_TREE_SORTABLE ( sortable ),				      TRANSACTION_COL_NB_PR,				      (GtkTreeIterCompareFunc) gsb_transactions_list_sort_column_3,				      GINT_TO_POINTER ( no_account ),				      NULL );    gtk_tree_sortable_set_sort_func ( GTK_TREE_SORTABLE ( sortable ),				      TRANSACTION_COL_NB_DEBIT,				      (GtkTreeIterCompareFunc) gsb_transactions_list_sort_column_4,				      GINT_TO_POINTER ( no_account ),				      NULL );    gtk_tree_sortable_set_sort_func ( GTK_TREE_SORTABLE ( sortable ),				      TRANSACTION_COL_NB_CREDIT,				      (GtkTreeIterCompareFunc) gsb_transactions_list_sort_column_5,				      GINT_TO_POINTER ( no_account ),				      NULL );    gtk_tree_sortable_set_sort_func ( GTK_TREE_SORTABLE ( sortable ),				      TRANSACTION_COL_NB_BALANCE,				      (GtkTreeIterCompareFunc) gsb_transactions_list_sort_column_6,				      GINT_TO_POINTER ( no_account ),				      NULL );    /*     put the top in the tree_view */    gtk_tree_view_set_model ( GTK_TREE_VIEW (tree_view),			      GTK_TREE_MODEL ( sortable ));    gsb_account_set_last_transaction ( no_account,				       NULL );    return scrolled_window;}