All pastes #1728846 Raw Edit

C

public c v1 · immutable
#1728846 ·published 2009-12-27 22:11 UTC
rendered paste body
#include <stdio.h>#include <gtk/gtk.h>/* gcc -Wall -g `pkg-config --cflags --libs gtk+-2.0`  -o slow slowview.c */enum SLOWVIEW{	COL1,	COL2,	COL3,	COL4,	PL_TAG_ID_COL,	PL_PTR_COL,	PL_COLOR_COL,	PL_N_COLS};void on_selection_change(){ }void on_drag_data_get(){ }void on_drag_data_received(){ }void on_drag_begin(){ }void on_drag_drop(){ }void on_row_activated(){ }void on_key_press_event(){ }static GtkTargetEntry targetentries[] ={	{"STRING",        0, 1 },	{ "GTK_TREE_MODEL_ROW", GTK_TARGET_SAME_WIDGET, 0}};GtkWidget *create_view(){	GtkListStore *store;	GtkTreeView *view;	GtkTreeIter iter;	GtkTreeSelection *selector;	int i;	 /* Create the playlist */        store = gtk_list_store_new(PL_N_COLS,		G_TYPE_STRING, // col1 		G_TYPE_STRING, //  col2		G_TYPE_STRING, //  col3		G_TYPE_STRING, // col4		G_TYPE_ULONG, // tag_id		G_TYPE_POINTER, // pointer		G_TYPE_STRING // color	);	/* Small Sample data */        for(i=0;i<5000;i++){		gtk_list_store_append(store,&iter);		gtk_list_store_set(store,&iter,			COL1,"There are no cats",			COL2,"In America",			COL3,"And the Streets are filled with",			COL4,"Cheese",			PL_TAG_ID_COL,22,			-1);	}	view = GTK_TREE_VIEW(gtk_tree_view_new_with_model(		GTK_TREE_MODEL(store)));        gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(view),TRUE);        gtk_tree_view_set_search_column(GTK_TREE_VIEW(view),COL1);//        g_object_unref(playlist_store);	selector = gtk_tree_view_get_selection(view);	gtk_tree_selection_set_mode(selector,GTK_SELECTION_MULTIPLE);	g_signal_connect(G_OBJECT(selector),"changed",		G_CALLBACK(on_selection_change), NULL);	g_signal_connect(view,"drag-data-received",		G_CALLBACK(on_drag_data_received), NULL);	g_signal_connect(view,"drag-data-get",		G_CALLBACK(on_drag_data_get),NULL);	g_signal_connect(view,"drag-begin",		G_CALLBACK(on_drag_begin),NULL);	gtk_drag_dest_set(GTK_WIDGET(view),GTK_DEST_DEFAULT_ALL, 		targetentries,2, GDK_ACTION_LINK);	gtk_drag_source_set(GTK_WIDGET(view),GDK_BUTTON1_MASK, 		targetentries,2, GDK_ACTION_LINK);	g_signal_connect(view,"drag-drop",G_CALLBACK(on_drag_drop),NULL);	g_signal_connect(view,"row-activated",G_CALLBACK(on_row_activated),NULL);	g_signal_connect(view,"key-press-event",G_CALLBACK(on_key_press_event),NULL);	gtk_tree_view_set_grid_lines(view,GTK_TREE_VIEW_GRID_LINES_VERTICAL);	 //GTK_WIDGET_UNSET_FLAGS (playlist_view, GTK_DOUBLE_BUFFERED);	GtkCellRenderer *renderer;	GtkTreeViewColumn *column;	/* column 1 */	renderer = gtk_cell_renderer_text_new();	g_object_set (renderer, "ellipsize", PANGO_ELLIPSIZE_END, 		"size-points",10.0,NULL);	column = gtk_tree_view_column_new_with_attributes("Column1",renderer,		"text",COL1,"background",PL_COLOR_COL,NULL);	gtk_tree_view_column_set_resizable (column,TRUE);	gtk_tree_view_column_set_sizing (column,GTK_TREE_VIEW_COLUMN_FIXED);	gtk_tree_view_column_set_expand (column,TRUE);	gtk_tree_view_column_set_sort_column_id (column,COL1);	gtk_tree_view_append_column (view, column);	/* column 2 */	renderer = gtk_cell_renderer_text_new ();	g_object_set (renderer, "ellipsize", PANGO_ELLIPSIZE_END, 		"size-points",10.0,NULL);	column = gtk_tree_view_column_new_with_attributes ("Column2",renderer,		"text",COL2,"background",PL_COLOR_COL,NULL);	gtk_tree_view_column_set_resizable (column,TRUE);	gtk_tree_view_column_set_sizing (column,GTK_TREE_VIEW_COLUMN_FIXED);	gtk_tree_view_column_set_expand (column,TRUE);	gtk_tree_view_column_set_sort_column_id (column, COL2);	gtk_tree_view_append_column (view, column);	/* column 2 */	renderer = gtk_cell_renderer_text_new ();	g_object_set (renderer, "ellipsize", PANGO_ELLIPSIZE_END, 		"size-points",10.0,NULL);	column = gtk_tree_view_column_new_with_attributes ("Column3",renderer,		"text",COL3,"background",PL_COLOR_COL,NULL);	gtk_tree_view_column_set_resizable (column,TRUE);	gtk_tree_view_column_set_sizing (column,GTK_TREE_VIEW_COLUMN_FIXED);	gtk_tree_view_column_set_expand  (column,TRUE);	gtk_tree_view_column_set_sort_column_id (column, COL3);	gtk_tree_view_append_column (view, column);	/* Column 4 */	renderer = gtk_cell_renderer_text_new();	g_object_set(renderer,"size-points",10.0,NULL);	column = gtk_tree_view_column_new_with_attributes("Length",renderer,		"text",COL4,"background",PL_COLOR_COL,NULL);	gtk_tree_view_column_set_resizable (column,TRUE);	gtk_tree_view_column_set_sizing (column,GTK_TREE_VIEW_COLUMN_AUTOSIZE);	gtk_tree_view_column_set_sort_column_id (column, COL4);	gtk_tree_view_append_column (view, column);	return GTK_WIDGET(view);}	int main(int argc, char **argv){	gtk_init(&argc,&argv);	GtkWidget *window;	window = gtk_window_new(GTK_WINDOW_TOPLEVEL);		GdkGeometry gdkGeometry;	gdkGeometry.min_width= 800;	gdkGeometry.min_height = 600;	gtk_window_set_geometry_hints(GTK_WINDOW(window), window,		&gdkGeometry, GDK_HINT_MIN_SIZE);	GtkWidget *scroll;	scroll = gtk_scrolled_window_new(NULL,NULL);	GtkWidget *slowview;	slowview = create_view();	gtk_container_add(GTK_CONTAINER(scroll),slowview);	gtk_container_add(GTK_CONTAINER(window),scroll);		g_signal_connect (G_OBJECT (window), "destroy",		G_CALLBACK (gtk_main_quit), NULL);	gtk_widget_show_all(window);	gtk_main();	return 0;}