| 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
 
 | enum {
    TEXT_COLUMN,
    TOGGLE_COLUMN,
    N_COLUMN
};
 
void	popup(const char *str)
{
  GtkWidget	*pAbout;
 
  pAbout = gtk_message_dialog_new (GTK_WINDOW(0), GTK_DIALOG_MODAL,
				   GTK_MESSAGE_ERROR, GTK_BUTTONS_OK,
				   str);
  gtk_dialog_run(GTK_DIALOG(pAbout));
  gtk_widget_destroy(pAbout);
}
 
int	main(int argc, char **argv)
{
  GtkWidget	*pWindow;
  GtkWidget	*pListView;
  GtkWidget	*pScrollbar;
  GtkListStore	*pListStore;
  GtkTreeViewColumn	*pColumn;
  GtkCellRenderer	*pCellRenderer;
  char	*objet = "sphere";
  gchar	*sTexte;
  gint	i;
 
  gtk_init(&argc, &argv);
  pWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
  gtk_window_set_default_size(GTK_WINDOW(pWindow), 320, 500);
  gtk_window_set_title(GTK_WINDOW(pWindow), "GtkListStore");
  g_signal_connect(G_OBJECT(pWindow), "destroy", G_CALLBACK(gtk_main_quit),
		   NULL);
  sTexte = g_malloc(12);
  pListStore = gtk_list_store_new(N_COLUMN, G_TYPE_STRING, G_TYPE_BOOLEAN);
 
  for (i = 0 ; i < 5 ; i++)
    {
      GtkTreeIter pIter;
      g_sprintf(sTexte, objet);
      gtk_list_store_append(pListStore, &pIter);
      gtk_list_store_set(pListStore, &pIter, TEXT_COLUMN, sTexte,
			 TOGGLE_COLUMN, TRUE, -1);
    }
  g_free(sTexte);
 
  pListView = gtk_tree_view_new_with_model(GTK_TREE_MODEL(pListStore));
  pCellRenderer = gtk_cell_renderer_text_new();
  pColumn = gtk_tree_view_column_new_with_attributes
    ("Objet", pCellRenderer, "text", TEXT_COLUMN, NULL);
  gtk_tree_view_append_column(GTK_TREE_VIEW(pListView), pColumn);
  pScrollbar = gtk_scrolled_window_new(NULL, NULL);
  gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(pScrollbar),
				 GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
  gtk_container_add(GTK_CONTAINER(pScrollbar), pListView);
  gtk_container_add(GTK_CONTAINER(pWindow), pScrollbar);
 
  gtk_widget_show_all(pWindow);
  gtk_main();
  return EXIT_SUCCESS;
} |