Mercurial > dwindows
comparison gtk/dw.c @ 140:e0e73b4372a6
GTK 2.0 tree control is now fully functional. I just need to check for
leaks.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Tue, 22 Oct 2002 07:09:57 +0000 |
parents | ccf210251c99 |
children | 36dc19aa7773 |
comparison
equal
deleted
inserted
replaced
139:ccf210251c99 | 140:e0e73b4372a6 |
---|---|
86 gint _container_select_event(GtkWidget *widget, GdkEventButton *event, gpointer data); | 86 gint _container_select_event(GtkWidget *widget, GdkEventButton *event, gpointer data); |
87 gint _container_context_event(GtkWidget *widget, GdkEventButton *event, gpointer data); | 87 gint _container_context_event(GtkWidget *widget, GdkEventButton *event, gpointer data); |
88 gint _item_select_event(GtkWidget *widget, GtkWidget *child, gpointer data); | 88 gint _item_select_event(GtkWidget *widget, GtkWidget *child, gpointer data); |
89 gint _expose_event(GtkWidget *widget, GdkEventExpose *event, gpointer data); | 89 gint _expose_event(GtkWidget *widget, GdkEventExpose *event, gpointer data); |
90 gint _set_focus_event(GtkWindow *window, GtkWidget *widget, gpointer data); | 90 gint _set_focus_event(GtkWindow *window, GtkWidget *widget, gpointer data); |
91 gint _tree_select_event(GtkTree *tree, GtkWidget *child, gpointer data); | |
92 gint _tree_context_event(GtkWidget *widget, GdkEventButton *event, gpointer data); | 91 gint _tree_context_event(GtkWidget *widget, GdkEventButton *event, gpointer data); |
93 gint _value_changed_event(GtkAdjustment *adjustment, gpointer user_data); | 92 gint _value_changed_event(GtkAdjustment *adjustment, gpointer user_data); |
93 #if GTK_MAJOR_VERSION > 1 | |
94 gint _tree_select_event(GtkTreeSelection *sel, gpointer data); | |
95 #else | |
96 gint _tree_select_event(GtkTree *tree, GtkWidget *child, gpointer data); | |
97 #endif | |
94 | 98 |
95 | 99 |
96 void msleep(long period); | 100 void msleep(long period); |
97 | 101 |
98 typedef struct | 102 typedef struct |
398 | 402 |
399 if(work) | 403 if(work) |
400 { | 404 { |
401 if(event->button == 3) | 405 if(event->button == 3) |
402 { | 406 { |
407 #if GTK_MAJOR_VERSION > 1 | |
408 int (*contextfunc)(HWND, char *, int, int, void *, void *) = work->func; | |
409 char *text = NULL; | |
410 void *itemdata = NULL; | |
411 | |
412 if(widget && GTK_IS_TREE_VIEW(widget)) | |
413 { | |
414 GtkTreeSelection *sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(widget)); | |
415 GtkTreeIter iter; | |
416 | |
417 if(sel && gtk_tree_selection_get_selected(sel, NULL, &iter)) | |
418 { | |
419 GtkTreeModel *store = (GtkTreeModel *)gtk_object_get_data(GTK_OBJECT(widget), "_dw_tree_store"); | |
420 gtk_tree_model_get(store, &iter, 0, &text, 2, &itemdata, -1); | |
421 } | |
422 } | |
423 | |
424 retval = contextfunc(work->window, text, event->x, event->y, work->data, itemdata); | |
425 #else | |
403 int (*contextfunc)(HWND, char *, int, int, void *, void *) = work->func; | 426 int (*contextfunc)(HWND, char *, int, int, void *, void *) = work->func; |
404 char *text = (char *)gtk_object_get_data(GTK_OBJECT(widget), "text"); | 427 char *text = (char *)gtk_object_get_data(GTK_OBJECT(widget), "text"); |
405 void *itemdata = (void *)gtk_object_get_data(GTK_OBJECT(widget), "itemdata"); | 428 void *itemdata = (void *)gtk_object_get_data(GTK_OBJECT(widget), "itemdata"); |
406 | 429 |
407 if(widget != work->window) | 430 if(widget != work->window) |
419 } | 442 } |
420 } | 443 } |
421 } | 444 } |
422 | 445 |
423 retval = contextfunc(work->window, text, event->x, event->y, work->data, itemdata); | 446 retval = contextfunc(work->window, text, event->x, event->y, work->data, itemdata); |
447 #endif | |
424 } | 448 } |
425 } | 449 } |
426 return retval; | 450 return retval; |
427 } | 451 } |
428 | 452 |
453 #if GTK_MAJOR_VERSION > 1 | |
454 gint _tree_select_event(GtkTreeSelection *sel, gpointer data) | |
455 { | |
456 SignalHandler *work = (SignalHandler *)data; | |
457 int retval = FALSE; | |
458 | |
459 if(work) | |
460 { | |
461 int (*treeselectfunc)(HWND, HWND, char *, void *, void *) = work->func; | |
462 GtkTreeIter iter; | |
463 char *text = NULL; | |
464 void *itemdata = NULL; | |
465 GtkWidget *item, *widget = (GtkWidget *)gtk_tree_selection_get_tree_view(sel); | |
466 | |
467 if(widget && gtk_tree_selection_get_selected(sel, NULL, &iter)) | |
468 { | |
469 GtkTreeModel *store = (GtkTreeModel *)gtk_object_get_data(GTK_OBJECT(widget), "_dw_tree_store"); | |
470 gtk_tree_model_get(store, &iter, 0, &text, 2, &itemdata, 3, &item, -1); | |
471 } | |
472 | |
473 retval = treeselectfunc(work->window, item, text, itemdata, work->data); | |
474 } | |
475 return retval; | |
476 } | |
477 #else | |
429 gint _tree_select_event(GtkTree *tree, GtkWidget *child, gpointer data) | 478 gint _tree_select_event(GtkTree *tree, GtkWidget *child, gpointer data) |
430 { | 479 { |
431 SignalHandler *work = (SignalHandler *)data; | 480 SignalHandler *work = (SignalHandler *)data; |
432 GtkWidget *treeroot = (GtkWidget *)gtk_object_get_data(GTK_OBJECT(child), "tree"); | 481 GtkWidget *treeroot = (GtkWidget *)gtk_object_get_data(GTK_OBJECT(child), "tree"); |
433 int retval = FALSE; | 482 int retval = FALSE; |
447 void *itemdata = (char *)gtk_object_get_data(GTK_OBJECT(child), "itemdata"); | 496 void *itemdata = (char *)gtk_object_get_data(GTK_OBJECT(child), "itemdata"); |
448 retval = treeselectfunc(work->window, child, text, itemdata, work->data); | 497 retval = treeselectfunc(work->window, child, text, itemdata, work->data); |
449 } | 498 } |
450 return retval; | 499 return retval; |
451 } | 500 } |
501 #endif | |
452 | 502 |
453 gint _container_select_event(GtkWidget *widget, GdkEventButton *event, gpointer data) | 503 gint _container_select_event(GtkWidget *widget, GdkEventButton *event, gpointer data) |
454 { | 504 { |
455 SignalHandler *work = (SignalHandler *)data; | 505 SignalHandler *work = (SignalHandler *)data; |
456 int retval = FALSE; | 506 int retval = FALSE; |
1921 GtkWidget *tmp, *tree; | 1971 GtkWidget *tmp, *tree; |
1922 #if GTK_MAJOR_VERSION > 1 | 1972 #if GTK_MAJOR_VERSION > 1 |
1923 GtkTreeStore *store; | 1973 GtkTreeStore *store; |
1924 GtkTreeViewColumn *col; | 1974 GtkTreeViewColumn *col; |
1925 GtkCellRenderer *rend; | 1975 GtkCellRenderer *rend; |
1976 GtkTreeSelection *sel; | |
1926 #endif | 1977 #endif |
1927 int _locked_by_me = FALSE; | 1978 int _locked_by_me = FALSE; |
1928 | 1979 |
1929 DW_MUTEX_LOCK; | 1980 DW_MUTEX_LOCK; |
1930 tmp = gtk_scrolled_window_new(NULL, NULL); | 1981 tmp = gtk_scrolled_window_new(NULL, NULL); |
1932 GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); | 1983 GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); |
1933 | 1984 |
1934 gtk_object_set_data(GTK_OBJECT(tmp), "id", (gpointer)id); | 1985 gtk_object_set_data(GTK_OBJECT(tmp), "id", (gpointer)id); |
1935 gtk_widget_show(tmp); | 1986 gtk_widget_show(tmp); |
1936 #if GTK_MAJOR_VERSION > 1 | 1987 #if GTK_MAJOR_VERSION > 1 |
1937 store = gtk_tree_store_new(2, G_TYPE_STRING, GDK_TYPE_PIXBUF); | 1988 store = gtk_tree_store_new(4, G_TYPE_STRING, GDK_TYPE_PIXBUF, G_TYPE_POINTER, G_TYPE_POINTER); |
1938 tree = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store)); | 1989 tree = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store)); |
1939 gtk_object_set_data(GTK_OBJECT(tree), "_dw_tree_store", (gpointer)store); | 1990 gtk_object_set_data(GTK_OBJECT(tree), "_dw_tree_store", (gpointer)store); |
1940 col = gtk_tree_view_column_new(); | 1991 col = gtk_tree_view_column_new(); |
1941 | 1992 |
1942 rend = gtk_cell_renderer_pixbuf_new(); | 1993 rend = gtk_cell_renderer_pixbuf_new(); |
1947 gtk_tree_view_column_add_attribute(col, rend, "text", 0); | 1998 gtk_tree_view_column_add_attribute(col, rend, "text", 0); |
1948 | 1999 |
1949 gtk_tree_view_append_column(GTK_TREE_VIEW (tree), col); | 2000 gtk_tree_view_append_column(GTK_TREE_VIEW (tree), col); |
1950 gtk_tree_view_set_expander_column(GTK_TREE_VIEW(tree), col); | 2001 gtk_tree_view_set_expander_column(GTK_TREE_VIEW(tree), col); |
1951 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(tree), FALSE); | 2002 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(tree), FALSE); |
2003 | |
2004 sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree)); | |
2005 gtk_tree_selection_set_mode(sel, GTK_SELECTION_SINGLE); | |
1952 #else | 2006 #else |
1953 tree = gtk_tree_new(); | 2007 tree = gtk_tree_new(); |
1954 #endif | 2008 #endif |
1955 if(!tree) | 2009 if(!tree) |
1956 { | 2010 { |
3194 */ | 3248 */ |
3195 HWND dw_tree_insert_after(HWND handle, HWND item, char *title, unsigned long icon, HWND parent, void *itemdata) | 3249 HWND dw_tree_insert_after(HWND handle, HWND item, char *title, unsigned long icon, HWND parent, void *itemdata) |
3196 { | 3250 { |
3197 #if GTK_MAJOR_VERSION > 1 | 3251 #if GTK_MAJOR_VERSION > 1 |
3198 GtkWidget *tree; | 3252 GtkWidget *tree; |
3199 GtkTreeIter iter; | 3253 GtkTreeIter *iter; |
3200 GtkTreeStore *store; | 3254 GtkTreeStore *store; |
3201 GdkPixbuf *pixbuf; | 3255 GdkPixbuf *pixbuf; |
3202 HWND retval = 0; | 3256 HWND retval = 0; |
3203 int _locked_by_me = FALSE; | 3257 int _locked_by_me = FALSE; |
3204 | 3258 |
3208 DW_MUTEX_LOCK; | 3262 DW_MUTEX_LOCK; |
3209 if((tree = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle))) | 3263 if((tree = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle))) |
3210 && GTK_IS_TREE_VIEW(tree) && | 3264 && GTK_IS_TREE_VIEW(tree) && |
3211 (store = (GtkTreeStore *)gtk_object_get_data(GTK_OBJECT(tree), "_dw_tree_store"))) | 3265 (store = (GtkTreeStore *)gtk_object_get_data(GTK_OBJECT(tree), "_dw_tree_store"))) |
3212 { | 3266 { |
3267 iter = (GtkTreeIter *)malloc(sizeof(GtkTreeIter)); | |
3268 | |
3213 pixbuf = _find_pixbuf(icon); | 3269 pixbuf = _find_pixbuf(icon); |
3214 | 3270 |
3215 gtk_tree_store_insert_after(store, &iter, (GtkTreeIter *)parent, (GtkTreeIter *)item); | 3271 gtk_tree_store_insert_after(store, iter, (GtkTreeIter *)parent, (GtkTreeIter *)item); |
3216 gtk_tree_store_set (store, &iter, 0, title, 1, pixbuf, -1); | 3272 gtk_tree_store_set (store, iter, 0, title, 1, pixbuf, 2, itemdata, 3, iter, -1); |
3217 g_object_unref(pixbuf); | 3273 g_object_unref(pixbuf); |
3218 retval = (HWND)gtk_tree_iter_copy(&iter); | 3274 retval = (HWND)iter; |
3219 } | 3275 } |
3220 DW_MUTEX_UNLOCK; | 3276 DW_MUTEX_UNLOCK; |
3221 | 3277 |
3222 return retval; | 3278 return retval; |
3223 #else | 3279 #else |
3318 */ | 3374 */ |
3319 HWND dw_tree_insert(HWND handle, char *title, unsigned long icon, HWND parent, void *itemdata) | 3375 HWND dw_tree_insert(HWND handle, char *title, unsigned long icon, HWND parent, void *itemdata) |
3320 { | 3376 { |
3321 #if GTK_MAJOR_VERSION > 1 | 3377 #if GTK_MAJOR_VERSION > 1 |
3322 GtkWidget *tree; | 3378 GtkWidget *tree; |
3323 GtkTreeIter iter; | 3379 GtkTreeIter *iter; |
3324 GtkTreeStore *store; | 3380 GtkTreeStore *store; |
3325 GdkPixbuf *pixbuf; | 3381 GdkPixbuf *pixbuf; |
3326 HWND retval = 0; | 3382 HWND retval = 0; |
3327 int _locked_by_me = FALSE; | 3383 int _locked_by_me = FALSE; |
3328 | 3384 |
3332 DW_MUTEX_LOCK; | 3388 DW_MUTEX_LOCK; |
3333 if((tree = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle))) | 3389 if((tree = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle))) |
3334 && GTK_IS_TREE_VIEW(tree) && | 3390 && GTK_IS_TREE_VIEW(tree) && |
3335 (store = (GtkTreeStore *)gtk_object_get_data(GTK_OBJECT(tree), "_dw_tree_store"))) | 3391 (store = (GtkTreeStore *)gtk_object_get_data(GTK_OBJECT(tree), "_dw_tree_store"))) |
3336 { | 3392 { |
3393 iter = (GtkTreeIter *)malloc(sizeof(GtkTreeIter)); | |
3394 | |
3337 pixbuf = _find_pixbuf(icon); | 3395 pixbuf = _find_pixbuf(icon); |
3338 | 3396 |
3339 gtk_tree_store_append (store, &iter, (GtkTreeIter *)parent); | 3397 gtk_tree_store_append (store, iter, (GtkTreeIter *)parent); |
3340 gtk_tree_store_set (store, &iter, 0, title, 1, pixbuf, -1); | 3398 gtk_tree_store_set (store, iter, 0, title, 1, pixbuf, 2, itemdata, 3, iter, -1); |
3341 g_object_unref(pixbuf); | 3399 g_object_unref(pixbuf); |
3342 retval = (HWND)gtk_tree_iter_copy(&iter); | 3400 retval = (HWND)iter; |
3343 } | 3401 } |
3344 DW_MUTEX_UNLOCK; | 3402 DW_MUTEX_UNLOCK; |
3345 | 3403 |
3346 return retval; | 3404 return retval; |
3347 #else | 3405 #else |
3497 * item: Handle of the item to be modified. | 3555 * item: Handle of the item to be modified. |
3498 * itemdata: User defined data to be associated with item. | 3556 * itemdata: User defined data to be associated with item. |
3499 */ | 3557 */ |
3500 void dw_tree_set_data(HWND handle, HWND item, void *itemdata) | 3558 void dw_tree_set_data(HWND handle, HWND item, void *itemdata) |
3501 { | 3559 { |
3560 #if GTK_MAJOR_VERSION > 1 | |
3561 GtkWidget *tree; | |
3562 GtkTreeStore *store; | |
3502 int _locked_by_me = FALSE; | 3563 int _locked_by_me = FALSE; |
3503 | 3564 |
3504 if(!handle || !item) | 3565 if(!handle || !item) |
3505 return; | 3566 return; |
3506 | 3567 |
3507 DW_MUTEX_LOCK; | 3568 DW_MUTEX_LOCK; |
3569 if((tree = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle))) | |
3570 && GTK_IS_TREE_VIEW(tree) && | |
3571 (store = (GtkTreeStore *)gtk_object_get_data(GTK_OBJECT(tree), "_dw_tree_store"))) | |
3572 gtk_tree_store_set(store, (GtkTreeIter *)item, 2, itemdata, -1); | |
3573 DW_MUTEX_UNLOCK; | |
3574 #else | |
3575 int _locked_by_me = FALSE; | |
3576 | |
3577 if(!handle || !item) | |
3578 return; | |
3579 | |
3580 DW_MUTEX_LOCK; | |
3508 gtk_object_set_data(GTK_OBJECT(item), "itemdata", (gpointer)itemdata); | 3581 gtk_object_set_data(GTK_OBJECT(item), "itemdata", (gpointer)itemdata); |
3509 DW_MUTEX_UNLOCK; | 3582 DW_MUTEX_UNLOCK; |
3583 #endif | |
3510 } | 3584 } |
3511 | 3585 |
3512 /* | 3586 /* |
3513 * Sets this item as the active selection. | 3587 * Sets this item as the active selection. |
3514 * Parameters: | 3588 * Parameters: |
3529 if((tree = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle))) | 3603 if((tree = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle))) |
3530 && GTK_IS_TREE_VIEW(tree) && | 3604 && GTK_IS_TREE_VIEW(tree) && |
3531 (store = (GtkTreeStore *)gtk_object_get_data(GTK_OBJECT(tree), "_dw_tree_store"))) | 3605 (store = (GtkTreeStore *)gtk_object_get_data(GTK_OBJECT(tree), "_dw_tree_store"))) |
3532 { | 3606 { |
3533 GtkTreePath *path = gtk_tree_model_get_path(GTK_TREE_MODEL(store), (GtkTreeIter *)item); | 3607 GtkTreePath *path = gtk_tree_model_get_path(GTK_TREE_MODEL(store), (GtkTreeIter *)item); |
3608 GtkTreeSelection *sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree)); | |
3609 | |
3534 gtk_tree_view_set_cursor(GTK_TREE_VIEW(tree), path, NULL, FALSE); | 3610 gtk_tree_view_set_cursor(GTK_TREE_VIEW(tree), path, NULL, FALSE); |
3611 gtk_tree_selection_select_iter(sel, (GtkTreeIter *)item); | |
3535 gtk_tree_path_free(path); | 3612 gtk_tree_path_free(path); |
3536 } | 3613 } |
3537 DW_MUTEX_UNLOCK; | 3614 DW_MUTEX_UNLOCK; |
3538 #else | 3615 #else |
3539 GtkWidget *lastselect, *tree; | 3616 GtkWidget *lastselect, *tree; |
3692 if((tree = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle))) | 3769 if((tree = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle))) |
3693 && GTK_IS_TREE_VIEW(tree) && | 3770 && GTK_IS_TREE_VIEW(tree) && |
3694 (store = (GtkTreeStore *)gtk_object_get_data(GTK_OBJECT(tree), "_dw_tree_store"))) | 3771 (store = (GtkTreeStore *)gtk_object_get_data(GTK_OBJECT(tree), "_dw_tree_store"))) |
3695 { | 3772 { |
3696 gtk_tree_store_remove(store, (GtkTreeIter *)item); | 3773 gtk_tree_store_remove(store, (GtkTreeIter *)item); |
3697 gtk_tree_iter_free((GtkTreeIter *)item); | 3774 free(item); |
3698 } | 3775 } |
3699 DW_MUTEX_UNLOCK; | 3776 DW_MUTEX_UNLOCK; |
3700 #else | 3777 #else |
3701 GtkWidget *tree, *lastselect, *parenttree; | 3778 GtkWidget *tree, *lastselect, *parenttree; |
3702 int _locked_by_me = FALSE; | 3779 int _locked_by_me = FALSE; |
6528 else if(GTK_IS_CLIST(thiswindow) && strcmp(signame, "container-context") == 0) | 6605 else if(GTK_IS_CLIST(thiswindow) && strcmp(signame, "container-context") == 0) |
6529 { | 6606 { |
6530 thisname = "button_press_event"; | 6607 thisname = "button_press_event"; |
6531 thisfunc = _findsigfunc("container-context"); | 6608 thisfunc = _findsigfunc("container-context"); |
6532 } | 6609 } |
6610 #if GTK_MAJOR_VERSION > 1 | |
6611 else if(GTK_IS_TREE_VIEW(thiswindow) && strcmp(signame, "container-context") == 0) | |
6612 { | |
6613 thisfunc = _findsigfunc("tree-context"); | |
6614 | |
6615 work->window = window; | |
6616 work->data = data; | |
6617 work->func = sigfunc; | |
6618 | |
6619 gtk_signal_connect(GTK_OBJECT(thiswindow), "button_press_event", GTK_SIGNAL_FUNC(thisfunc), work); | |
6620 gtk_signal_connect(GTK_OBJECT(window), "button_press_event", GTK_SIGNAL_FUNC(thisfunc), work); | |
6621 DW_MUTEX_UNLOCK; | |
6622 return; | |
6623 } | |
6624 else if(GTK_IS_TREE_VIEW(thiswindow) && strcmp(signame, "tree-select") == 0) | |
6625 { | |
6626 work->window = window; | |
6627 work->data = data; | |
6628 work->func = sigfunc; | |
6629 | |
6630 thiswindow = (GtkWidget *)gtk_tree_view_get_selection(GTK_TREE_VIEW(thiswindow)); | |
6631 thisname = "changed"; | |
6632 | |
6633 g_signal_connect(G_OBJECT(thiswindow), thisname, (GCallback)thisfunc, work); | |
6634 DW_MUTEX_UNLOCK; | |
6635 return; | |
6636 } | |
6637 #else | |
6533 else if(GTK_IS_TREE(thiswindow) && strcmp(signame, "container-context") == 0) | 6638 else if(GTK_IS_TREE(thiswindow) && strcmp(signame, "container-context") == 0) |
6534 { | 6639 { |
6535 thisfunc = _findsigfunc("tree-context"); | 6640 thisfunc = _findsigfunc("tree-context"); |
6536 | 6641 |
6537 work->window = window; | 6642 work->window = window; |
6543 gtk_signal_connect(GTK_OBJECT(thiswindow), "button_press_event", GTK_SIGNAL_FUNC(thisfunc), work); | 6648 gtk_signal_connect(GTK_OBJECT(thiswindow), "button_press_event", GTK_SIGNAL_FUNC(thisfunc), work); |
6544 gtk_signal_connect(GTK_OBJECT(window), "button_press_event", GTK_SIGNAL_FUNC(thisfunc), work); | 6649 gtk_signal_connect(GTK_OBJECT(window), "button_press_event", GTK_SIGNAL_FUNC(thisfunc), work); |
6545 DW_MUTEX_UNLOCK; | 6650 DW_MUTEX_UNLOCK; |
6546 return; | 6651 return; |
6547 } | 6652 } |
6653 else if(GTK_IS_TREE(thiswindow) && strcmp(signame, "tree-select") == 0) | |
6654 { | |
6655 if(thisfunc) | |
6656 { | |
6657 gtk_object_set_data(GTK_OBJECT(thiswindow), "select-child-func", (gpointer)thisfunc); | |
6658 gtk_object_set_data(GTK_OBJECT(thiswindow), "select-child-data", (gpointer)work); | |
6659 } | |
6660 thisname = "select-child"; | |
6661 } | |
6662 #endif | |
6548 else if(GTK_IS_CLIST(thiswindow) && strcmp(signame, "container-select") == 0) | 6663 else if(GTK_IS_CLIST(thiswindow) && strcmp(signame, "container-select") == 0) |
6549 { | 6664 { |
6550 thisname = "button_press_event"; | 6665 thisname = "button_press_event"; |
6551 thisfunc = _findsigfunc("container-select"); | 6666 thisfunc = _findsigfunc("container-select"); |
6552 } | 6667 } |
6568 else if(strcmp(signame, "lose-focus") == 0) | 6683 else if(strcmp(signame, "lose-focus") == 0) |
6569 { | 6684 { |
6570 thisname = "focus-out-event"; | 6685 thisname = "focus-out-event"; |
6571 if(GTK_IS_COMBO(thiswindow)) | 6686 if(GTK_IS_COMBO(thiswindow)) |
6572 thiswindow = GTK_COMBO(thiswindow)->entry; | 6687 thiswindow = GTK_COMBO(thiswindow)->entry; |
6573 } | |
6574 else if(GTK_IS_TREE(thiswindow) && strcmp(signame, "tree-select") == 0) | |
6575 { | |
6576 if(thisfunc) | |
6577 { | |
6578 gtk_object_set_data(GTK_OBJECT(thiswindow), "select-child-func", (gpointer)thisfunc); | |
6579 gtk_object_set_data(GTK_OBJECT(thiswindow), "select-child-data", (gpointer)work); | |
6580 } | |
6581 thisname = "select-child"; | |
6582 } | 6688 } |
6583 else if(GTK_IS_VSCALE(thiswindow) || GTK_IS_HSCALE(thiswindow)) | 6689 else if(GTK_IS_VSCALE(thiswindow) || GTK_IS_HSCALE(thiswindow)) |
6584 { | 6690 { |
6585 thiswindow = (GtkWidget *)gtk_object_get_data(GTK_OBJECT(thiswindow), "adjustment"); | 6691 thiswindow = (GtkWidget *)gtk_object_get_data(GTK_OBJECT(thiswindow), "adjustment"); |
6586 } | 6692 } |