Mercurial > dwindows
comparison gtk/dw.c @ 139:ccf210251c99
Implemented GTK 2.0 tree delete etc. just signal handlers left.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Tue, 22 Oct 2002 01:59:52 +0000 |
parents | d22b50184e3b |
children | e0e73b4372a6 |
comparison
equal
deleted
inserted
replaced
138:d22b50184e3b | 139:ccf210251c99 |
---|---|
3194 */ | 3194 */ |
3195 HWND dw_tree_insert_after(HWND handle, HWND item, char *title, unsigned long icon, HWND parent, void *itemdata) | 3195 HWND dw_tree_insert_after(HWND handle, HWND item, char *title, unsigned long icon, HWND parent, void *itemdata) |
3196 { | 3196 { |
3197 #if GTK_MAJOR_VERSION > 1 | 3197 #if GTK_MAJOR_VERSION > 1 |
3198 GtkWidget *tree; | 3198 GtkWidget *tree; |
3199 GtkTreeIter *iter; | 3199 GtkTreeIter iter; |
3200 GtkTreeStore *store; | 3200 GtkTreeStore *store; |
3201 GdkPixbuf *pixbuf; | 3201 GdkPixbuf *pixbuf; |
3202 HWND retval = 0; | 3202 HWND retval = 0; |
3203 int _locked_by_me = FALSE; | 3203 int _locked_by_me = FALSE; |
3204 | 3204 |
3208 DW_MUTEX_LOCK; | 3208 DW_MUTEX_LOCK; |
3209 if((tree = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle))) | 3209 if((tree = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle))) |
3210 && GTK_IS_TREE_VIEW(tree) && | 3210 && GTK_IS_TREE_VIEW(tree) && |
3211 (store = (GtkTreeStore *)gtk_object_get_data(GTK_OBJECT(tree), "_dw_tree_store"))) | 3211 (store = (GtkTreeStore *)gtk_object_get_data(GTK_OBJECT(tree), "_dw_tree_store"))) |
3212 { | 3212 { |
3213 iter = malloc(sizeof(GtkTreeIter)); | |
3214 pixbuf = _find_pixbuf(icon); | 3213 pixbuf = _find_pixbuf(icon); |
3215 | 3214 |
3216 gtk_tree_store_insert_after(store, iter, (GtkTreeIter *)parent, (GtkTreeIter *)item); | 3215 gtk_tree_store_insert_after(store, &iter, (GtkTreeIter *)parent, (GtkTreeIter *)item); |
3217 gtk_tree_store_set (store, iter, 0, title, 1, pixbuf, -1); | 3216 gtk_tree_store_set (store, &iter, 0, title, 1, pixbuf, -1); |
3218 retval = (HWND)iter; | 3217 g_object_unref(pixbuf); |
3218 retval = (HWND)gtk_tree_iter_copy(&iter); | |
3219 } | 3219 } |
3220 DW_MUTEX_UNLOCK; | 3220 DW_MUTEX_UNLOCK; |
3221 | 3221 |
3222 return retval; | 3222 return retval; |
3223 #else | 3223 #else |
3318 */ | 3318 */ |
3319 HWND dw_tree_insert(HWND handle, char *title, unsigned long icon, HWND parent, void *itemdata) | 3319 HWND dw_tree_insert(HWND handle, char *title, unsigned long icon, HWND parent, void *itemdata) |
3320 { | 3320 { |
3321 #if GTK_MAJOR_VERSION > 1 | 3321 #if GTK_MAJOR_VERSION > 1 |
3322 GtkWidget *tree; | 3322 GtkWidget *tree; |
3323 GtkTreeIter *iter; | 3323 GtkTreeIter iter; |
3324 GtkTreeStore *store; | 3324 GtkTreeStore *store; |
3325 GdkPixbuf *pixbuf; | 3325 GdkPixbuf *pixbuf; |
3326 HWND retval = 0; | 3326 HWND retval = 0; |
3327 int _locked_by_me = FALSE; | 3327 int _locked_by_me = FALSE; |
3328 | 3328 |
3332 DW_MUTEX_LOCK; | 3332 DW_MUTEX_LOCK; |
3333 if((tree = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle))) | 3333 if((tree = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle))) |
3334 && GTK_IS_TREE_VIEW(tree) && | 3334 && GTK_IS_TREE_VIEW(tree) && |
3335 (store = (GtkTreeStore *)gtk_object_get_data(GTK_OBJECT(tree), "_dw_tree_store"))) | 3335 (store = (GtkTreeStore *)gtk_object_get_data(GTK_OBJECT(tree), "_dw_tree_store"))) |
3336 { | 3336 { |
3337 iter = malloc(sizeof(GtkTreeIter)); | |
3338 | |
3339 pixbuf = _find_pixbuf(icon); | 3337 pixbuf = _find_pixbuf(icon); |
3340 | 3338 |
3341 gtk_tree_store_append (store, iter, (GtkTreeIter *)parent); | 3339 gtk_tree_store_append (store, &iter, (GtkTreeIter *)parent); |
3342 gtk_tree_store_set (store, iter, 0, title, 1, pixbuf, -1); | 3340 gtk_tree_store_set (store, &iter, 0, title, 1, pixbuf, -1); |
3343 retval = (HWND)iter; | 3341 g_object_unref(pixbuf); |
3342 retval = (HWND)gtk_tree_iter_copy(&iter); | |
3344 } | 3343 } |
3345 DW_MUTEX_UNLOCK; | 3344 DW_MUTEX_UNLOCK; |
3346 | 3345 |
3347 return retval; | 3346 return retval; |
3348 #else | 3347 #else |
3449 && GTK_IS_TREE_VIEW(tree) && | 3448 && GTK_IS_TREE_VIEW(tree) && |
3450 (store = (GtkTreeStore *)gtk_object_get_data(GTK_OBJECT(tree), "_dw_tree_store"))) | 3449 (store = (GtkTreeStore *)gtk_object_get_data(GTK_OBJECT(tree), "_dw_tree_store"))) |
3451 { | 3450 { |
3452 pixbuf = _find_pixbuf(icon); | 3451 pixbuf = _find_pixbuf(icon); |
3453 | 3452 |
3454 gtk_tree_store_set (store, (GtkTreeIter *)item, 0, title, 1, pixbuf, -1); | 3453 gtk_tree_store_set(store, (GtkTreeIter *)item, 0, title, 1, pixbuf, -1); |
3454 g_object_unref(pixbuf); | |
3455 } | 3455 } |
3456 DW_MUTEX_UNLOCK; | 3456 DW_MUTEX_UNLOCK; |
3457 #else | 3457 #else |
3458 GtkWidget *label, *hbox, *pixmap; | 3458 GtkWidget *label, *hbox, *pixmap; |
3459 GdkPixmap *gdkpix; | 3459 GdkPixmap *gdkpix; |
3516 * item: Handle to the item to be selected. | 3516 * item: Handle to the item to be selected. |
3517 */ | 3517 */ |
3518 void dw_tree_item_select(HWND handle, HWND item) | 3518 void dw_tree_item_select(HWND handle, HWND item) |
3519 { | 3519 { |
3520 #if GTK_MAJOR_VERSION > 1 | 3520 #if GTK_MAJOR_VERSION > 1 |
3521 GtkWidget *tree; | |
3522 GtkTreeStore *store; | |
3523 int _locked_by_me = FALSE; | |
3524 | |
3525 if(!handle) | |
3526 return; | |
3527 | |
3528 DW_MUTEX_LOCK; | |
3529 if((tree = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle))) | |
3530 && GTK_IS_TREE_VIEW(tree) && | |
3531 (store = (GtkTreeStore *)gtk_object_get_data(GTK_OBJECT(tree), "_dw_tree_store"))) | |
3532 { | |
3533 GtkTreePath *path = gtk_tree_model_get_path(GTK_TREE_MODEL(store), (GtkTreeIter *)item); | |
3534 gtk_tree_view_set_cursor(GTK_TREE_VIEW(tree), path, NULL, FALSE); | |
3535 gtk_tree_path_free(path); | |
3536 } | |
3537 DW_MUTEX_UNLOCK; | |
3521 #else | 3538 #else |
3522 GtkWidget *lastselect, *tree; | 3539 GtkWidget *lastselect, *tree; |
3523 int _locked_by_me = FALSE; | 3540 int _locked_by_me = FALSE; |
3524 | 3541 |
3525 if(!handle || !item) | 3542 if(!handle || !item) |
3543 */ | 3560 */ |
3544 void dw_tree_clear(HWND handle) | 3561 void dw_tree_clear(HWND handle) |
3545 { | 3562 { |
3546 #if GTK_MAJOR_VERSION > 1 | 3563 #if GTK_MAJOR_VERSION > 1 |
3547 GtkWidget *tree; | 3564 GtkWidget *tree; |
3565 GtkTreeStore *store; | |
3548 int _locked_by_me = FALSE; | 3566 int _locked_by_me = FALSE; |
3549 | 3567 |
3550 if(!handle) | 3568 if(!handle) |
3551 return; | 3569 return; |
3552 | 3570 |
3553 DW_MUTEX_LOCK; | 3571 DW_MUTEX_LOCK; |
3572 if((tree = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle))) | |
3573 && GTK_IS_TREE_VIEW(tree) && | |
3574 (store = (GtkTreeStore *)gtk_object_get_data(GTK_OBJECT(tree), "_dw_tree_store"))) | |
3575 gtk_tree_store_clear(store); | |
3576 DW_MUTEX_UNLOCK; | |
3577 #else | |
3578 GtkWidget *tree; | |
3579 int _locked_by_me = FALSE; | |
3580 | |
3581 if(!handle) | |
3582 return; | |
3583 | |
3584 DW_MUTEX_LOCK; | |
3554 tree = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle)); | 3585 tree = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle)); |
3555 if(!tree || !GTK_IS_TREE(tree)) | 3586 if(!tree || !GTK_IS_TREE(tree)) |
3556 { | 3587 { |
3557 DW_MUTEX_UNLOCK; | 3588 DW_MUTEX_UNLOCK; |
3558 return; | 3589 return; |
3570 * item: Handle to node to be expanded. | 3601 * item: Handle to node to be expanded. |
3571 */ | 3602 */ |
3572 void dw_tree_expand(HWND handle, HWND item) | 3603 void dw_tree_expand(HWND handle, HWND item) |
3573 { | 3604 { |
3574 #if GTK_MAJOR_VERSION > 1 | 3605 #if GTK_MAJOR_VERSION > 1 |
3606 GtkWidget *tree; | |
3607 GtkTreeStore *store; | |
3608 int _locked_by_me = FALSE; | |
3609 | |
3610 if(!handle) | |
3611 return; | |
3612 | |
3613 DW_MUTEX_LOCK; | |
3614 if((tree = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle))) | |
3615 && GTK_IS_TREE_VIEW(tree) && | |
3616 (store = (GtkTreeStore *)gtk_object_get_data(GTK_OBJECT(tree), "_dw_tree_store"))) | |
3617 { | |
3618 GtkTreePath *path = gtk_tree_model_get_path(GTK_TREE_MODEL(store), (GtkTreeIter *)item); | |
3619 gtk_tree_view_expand_row(GTK_TREE_VIEW(tree), path, FALSE); | |
3620 gtk_tree_path_free(path); | |
3621 } | |
3622 DW_MUTEX_UNLOCK; | |
3575 #else | 3623 #else |
3576 int _locked_by_me = FALSE; | 3624 int _locked_by_me = FALSE; |
3577 | 3625 |
3578 if(!handle || !item) | 3626 if(!handle || !item) |
3579 return; | 3627 return; |
3592 * item: Handle to node to be collapsed. | 3640 * item: Handle to node to be collapsed. |
3593 */ | 3641 */ |
3594 void dw_tree_collapse(HWND handle, HWND item) | 3642 void dw_tree_collapse(HWND handle, HWND item) |
3595 { | 3643 { |
3596 #if GTK_MAJOR_VERSION > 1 | 3644 #if GTK_MAJOR_VERSION > 1 |
3645 GtkWidget *tree; | |
3646 GtkTreeStore *store; | |
3647 int _locked_by_me = FALSE; | |
3648 | |
3649 if(!handle) | |
3650 return; | |
3651 | |
3652 DW_MUTEX_LOCK; | |
3653 if((tree = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle))) | |
3654 && GTK_IS_TREE_VIEW(tree) && | |
3655 (store = (GtkTreeStore *)gtk_object_get_data(GTK_OBJECT(tree), "_dw_tree_store"))) | |
3656 { | |
3657 GtkTreePath *path = gtk_tree_model_get_path(GTK_TREE_MODEL(store), (GtkTreeIter *)item); | |
3658 gtk_tree_view_collapse_row(GTK_TREE_VIEW(tree), path); | |
3659 gtk_tree_path_free(path); | |
3660 } | |
3661 DW_MUTEX_UNLOCK; | |
3597 #else | 3662 #else |
3598 int _locked_by_me = FALSE; | 3663 int _locked_by_me = FALSE; |
3599 | 3664 |
3600 if(!handle || !item) | 3665 if(!handle || !item) |
3601 return; | 3666 return; |
3614 * item: Handle to node to be deleted. | 3679 * item: Handle to node to be deleted. |
3615 */ | 3680 */ |
3616 void dw_tree_delete(HWND handle, HWND item) | 3681 void dw_tree_delete(HWND handle, HWND item) |
3617 { | 3682 { |
3618 #if GTK_MAJOR_VERSION > 1 | 3683 #if GTK_MAJOR_VERSION > 1 |
3684 GtkWidget *tree; | |
3685 GtkTreeStore *store; | |
3686 int _locked_by_me = FALSE; | |
3687 | |
3688 if(!handle) | |
3689 return; | |
3690 | |
3691 DW_MUTEX_LOCK; | |
3692 if((tree = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle))) | |
3693 && GTK_IS_TREE_VIEW(tree) && | |
3694 (store = (GtkTreeStore *)gtk_object_get_data(GTK_OBJECT(tree), "_dw_tree_store"))) | |
3695 { | |
3696 gtk_tree_store_remove(store, (GtkTreeIter *)item); | |
3697 gtk_tree_iter_free((GtkTreeIter *)item); | |
3698 } | |
3699 DW_MUTEX_UNLOCK; | |
3619 #else | 3700 #else |
3620 GtkWidget *tree, *lastselect, *parenttree; | 3701 GtkWidget *tree, *lastselect, *parenttree; |
3621 int _locked_by_me = FALSE; | 3702 int _locked_by_me = FALSE; |
3622 | 3703 |
3623 if(!handle || !item || !GTK_IS_WIDGET(handle) || !GTK_IS_WIDGET(item)) | 3704 if(!handle || !item || !GTK_IS_WIDGET(handle) || !GTK_IS_WIDGET(item)) |