comparison gtk/dw.c @ 480:8832ad52486f

New tree code fixes for GTK 2.x
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Wed, 15 Oct 2003 10:17:54 +0000
parents 61e2973ad093
children 89b1b40d7e12
comparison
equal deleted inserted replaced
479:61e2973ad093 480:8832ad52486f
592 } 592 }
593 } 593 }
594 return retval; 594 return retval;
595 } 595 }
596 596
597 static gint _tree_expand_event(GtkTreeView *treeview, GtkTreeIter *arg1, GtkTreePath *arg2, gpointer user_data) 597 static gint _tree_expand_event(GtkTreeView *widget, GtkTreeIter *iter, GtkTreePath *path, gpointer data)
598 { 598 {
599 SignalHandler work = _get_signal_handler(widget, data); 599 SignalHandler work = _get_signal_handler((GtkWidget *)widget, data);
600 int retval = FALSE; 600 int retval = FALSE;
601 601
602 if(work.window) 602 if(work.window)
603 { 603 {
604 int (*treeexpandfunc)(HWND, HTREEITEM, void *) = work.func; 604 int (*treeexpandfunc)(HWND, HTREEITEM, void *) = work.func;
605 retval = treeexpandfunc(work.window, (HTREEITEM)arg1, work.data); 605 retval = treeexpandfunc(work.window, (HTREEITEM)iter, work.data);
606 } 606 }
607 return retval; 607 return retval;
608 } 608 }
609 #else 609 #else
610 static gint _tree_select_event(GtkTree *tree, GtkWidget *child, gpointer data) 610 static gint _tree_select_event(GtkTree *tree, GtkWidget *child, gpointer data)
2363 GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); 2363 GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
2364 2364
2365 gtk_object_set_data(GTK_OBJECT(tmp), "_dw_id", (gpointer)id); 2365 gtk_object_set_data(GTK_OBJECT(tmp), "_dw_id", (gpointer)id);
2366 gtk_widget_show(tmp); 2366 gtk_widget_show(tmp);
2367 #if GTK_MAJOR_VERSION > 1 2367 #if GTK_MAJOR_VERSION > 1
2368 store = gtk_tree_store_new(4, G_TYPE_STRING, GDK_TYPE_PIXBUF, G_TYPE_POINTER, G_TYPE_POINTER); 2368 store = gtk_tree_store_new(5, G_TYPE_STRING, GDK_TYPE_PIXBUF, G_TYPE_POINTER, G_TYPE_POINTER, G_TYPE_POINTER);
2369 tree = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store)); 2369 tree = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store));
2370 gtk_object_set_data(GTK_OBJECT(tree), "_dw_tree_store", (gpointer)store); 2370 gtk_object_set_data(GTK_OBJECT(tree), "_dw_tree_store", (gpointer)store);
2371 col = gtk_tree_view_column_new(); 2371 col = gtk_tree_view_column_new();
2372 2372
2373 rend = gtk_cell_renderer_pixbuf_new(); 2373 rend = gtk_cell_renderer_pixbuf_new();
2375 gtk_tree_view_column_add_attribute(col, rend, "pixbuf", 1); 2375 gtk_tree_view_column_add_attribute(col, rend, "pixbuf", 1);
2376 rend = gtk_cell_renderer_text_new(); 2376 rend = gtk_cell_renderer_text_new();
2377 gtk_tree_view_column_pack_start(col, rend, TRUE); 2377 gtk_tree_view_column_pack_start(col, rend, TRUE);
2378 gtk_tree_view_column_add_attribute(col, rend, "text", 0); 2378 gtk_tree_view_column_add_attribute(col, rend, "text", 0);
2379 2379
2380 gtk_tree_view_append_column(GTK_TREE_VIEW (tree), col);
2381 gtk_tree_view_append_column(GTK_TREE_VIEW (tree), col); 2380 gtk_tree_view_append_column(GTK_TREE_VIEW (tree), col);
2382 gtk_tree_view_set_expander_column(GTK_TREE_VIEW(tree), col); 2381 gtk_tree_view_set_expander_column(GTK_TREE_VIEW(tree), col);
2383 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(tree), FALSE); 2382 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(tree), FALSE);
2384 2383
2385 sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree)); 2384 sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree));
4282 if(!handle || !item) 4281 if(!handle || !item)
4283 return text; 4282 return text;
4284 4283
4285 DW_MUTEX_LOCK; 4284 DW_MUTEX_LOCK;
4286 #if GTK_MAJOR_VERSION > 1 4285 #if GTK_MAJOR_VERSION > 1
4287 GtkTreeIter iter = (GtkTreeIter)item;
4288 GtkTreeModel *store = (GtkTreeModel *)gtk_object_get_data(GTK_OBJECT(handle), "_dw_tree_store"); 4286 GtkTreeModel *store = (GtkTreeModel *)gtk_object_get_data(GTK_OBJECT(handle), "_dw_tree_store");
4289 4287
4290 gtk_tree_model_get(store, &iter, 0, &text, -1); 4288 gtk_tree_model_get(store, (GtkTreeIter *)item, 0, &text, -1);
4291 #else 4289 #else
4292 text = (char *)gtk_object_get_data(GTK_OBJECT(item), "_dw_text"); 4290 text = (char *)gtk_object_get_data(GTK_OBJECT(item), "_dw_text");
4293 #endif 4291 #endif
4294 DW_MUTEX_UNLOCK; 4292 DW_MUTEX_UNLOCK;
4295 return text; 4293 return text;
4309 if(!handle || !item) 4307 if(!handle || !item)
4310 return parent; 4308 return parent;
4311 4309
4312 DW_MUTEX_LOCK; 4310 DW_MUTEX_LOCK;
4313 #if GTK_MAJOR_VERSION > 1 4311 #if GTK_MAJOR_VERSION > 1
4314 GtkTreeIter iter = (GtkTreeIter)item;
4315 GtkTreeModel *store = (GtkTreeModel *)gtk_object_get_data(GTK_OBJECT(handle), "_dw_tree_store"); 4312 GtkTreeModel *store = (GtkTreeModel *)gtk_object_get_data(GTK_OBJECT(handle), "_dw_tree_store");
4316 4313
4317 gtk_tree_model_get(store, &iter, 4, &parent, -1); 4314 gtk_tree_model_get(store, (GtkTreeIter *)item, 4, &parent, -1);
4318 #else 4315 #else
4319 parent = (HTREEITEM)gtk_object_get_data(GTK_OBJECT(item), "_dw_parent"); 4316 parent = (HTREEITEM)gtk_object_get_data(GTK_OBJECT(item), "_dw_parent");
4320 #endif 4317 #endif
4321 DW_MUTEX_UNLOCK; 4318 DW_MUTEX_UNLOCK;
4322 return parent; 4319 return parent;