static void SetPandaCList( GtkWidget *widget, WidgetData *wdata, _CList *data) { int j; char **rdata; ENTER_FUNC; SetCommon(widget,wdata); // items gtk_widget_hide(widget); gtk_panda_clist_set_rows(GTK_PANDA_CLIST(widget),data->count); for ( j = 0 ; j < g_list_length(data->clistdata) ; j ++ ) { if (j < data->count) { rdata = g_list_nth_data(data->clistdata,j); gtk_panda_clist_set_row(GTK_PANDA_CLIST(widget),j,rdata); } } if (data->fgcolors != NULL) { for (j = 0;data->fgcolors[j] != NULL;j ++) { gtk_panda_clist_set_fgcolor(GTK_PANDA_CLIST(widget),j,data->fgcolors[j]); } } if (data->bgcolors != NULL) { for (j = 0;data->bgcolors[j] != NULL;j ++) { gtk_panda_clist_set_bgcolor(GTK_PANDA_CLIST(widget),j,data->bgcolors[j]); } } gtk_widget_show(widget); for ( j = 0 ; data->states[j] != NULL ; j ++ ) { if (j < data->count) { if (*(data->states[j]) == 'T') { gtk_panda_clist_select_row(GTK_PANDA_CLIST(widget),j,0); } else { gtk_panda_clist_unselect_row(GTK_PANDA_CLIST(widget),j,0); } } } if (data->count > 0 && data->row < data->count) { gtk_panda_clist_moveto(GTK_PANDA_CLIST(widget), data->row, 0, data->rowattr, 0.0); } LEAVE_FUNC; }
int main (int argc, char *argv[]) { GtkWidget *window1; GtkWidget *vbox1; GtkWidget *scrolledwindow1; GtkWidget *clist1; GtkWidget *button; char **text; char str[256]; int i, j; gtk_set_locale (); gtk_init (&argc, &argv); gtk_panda_init (&argc, &argv); window1 = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_widget_show (window1); vbox1 = gtk_vbox_new (FALSE, 0); #if 0 gtk_widget_ref (vbox1); gtk_object_set_data_full (GTK_OBJECT (window1), "vbox1", vbox1, (GtkDestroyNotify) gtk_widget_unref); #endif gtk_widget_show (vbox1); gtk_container_add (GTK_CONTAINER (window1), vbox1); scrolledwindow1 = gtk_scrolled_window_new (NULL, NULL); gtk_widget_ref (scrolledwindow1); gtk_object_set_data_full ( GTK_OBJECT (window1), "scrolledwindow1", scrolledwindow1, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (scrolledwindow1); gtk_box_pack_start (GTK_BOX (vbox1), scrolledwindow1, TRUE, TRUE, 0); #define COLUMNS 3 GtkTreeViewColumn *column; GtkWidget *label1, *label2; label1 = gtk_label_new("label1"); label2 = gtk_label_new("label2"); gtk_widget_show(label1); gtk_widget_show(label2); clist1 = gtk_panda_clist_new (); gtk_panda_clist_set_columns(GTK_PANDA_CLIST(clist1),10); gtk_panda_clist_set_columns(GTK_PANDA_CLIST(clist1),1); gtk_panda_clist_set_columns(GTK_PANDA_CLIST(clist1),5); gtk_panda_clist_set_columns(GTK_PANDA_CLIST(clist1),COLUMNS); column = gtk_tree_view_get_column(GTK_TREE_VIEW(clist1),0); gtk_tree_view_column_set_widget(column, label1); column = gtk_tree_view_get_column(GTK_TREE_VIEW(clist1),1); gtk_tree_view_column_set_widget(column, label2); gtk_widget_show_all (clist1); gtk_panda_clist_set_column_widths(GTK_PANDA_CLIST(clist1), "50,50,50,50,50,50,50,50"); gtk_container_add (GTK_CONTAINER (scrolledwindow1), clist1); #if 1 gtk_panda_clist_set_selection_mode (GTK_PANDA_CLIST (clist1), GTK_SELECTION_MULTIPLE); #else gtk_panda_clist_set_selection_mode (GTK_PANDA_CLIST (clist1), GTK_SELECTION_SINGLE); #endif g_signal_connect (G_OBJECT(clist1), "select_row", G_CALLBACK(select_row), clist1); g_signal_connect (G_OBJECT(clist1), "unselect_row", G_CALLBACK(unselect_row), clist1); gtk_panda_clist_set_rows(GTK_PANDA_CLIST(clist1),50); text = malloc(sizeof(char *)*COLUMNS); for (i=0; i<50; i++) { for (j=0; j<COLUMNS; j++) { sprintf(str, "cel_%d_%d", i, j); text[j] = strdup(str); } gtk_panda_clist_set_row(GTK_PANDA_CLIST(clist1),i,text); } gtk_panda_clist_set_fgcolor(GTK_PANDA_CLIST(clist1),0,"#FF2222"); gtk_panda_clist_set_fgcolor(GTK_PANDA_CLIST(clist1),1,"#2222FF"); gtk_panda_clist_set_bgcolor(GTK_PANDA_CLIST(clist1),0,"#FFEEEE"); gtk_panda_clist_set_bgcolor(GTK_PANDA_CLIST(clist1),1,"#EEEEFF"); button = gtk_button_new_with_label("toggle sensitive"); gtk_box_pack_start (GTK_BOX (vbox1), button, FALSE, FALSE, 0); gtk_widget_show_all(window1); gtk_main (); return 0; }