Mercurial > dwindows
comparison gtk/dw.c @ 75:c629838d9805
Updated to latest DW, and updated the Makefile to install the header files
along with the libraries.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Wed, 13 Mar 2002 17:35:36 +0000 |
parents | ab77a22a2a36 |
children | ce0f5528bab0 |
comparison
equal
deleted
inserted
replaced
74:f794f2baabf2 | 75:c629838d9805 |
---|---|
58 GdkColor _foreground[DW_THREAD_LIMIT]; | 58 GdkColor _foreground[DW_THREAD_LIMIT]; |
59 GdkColor _background[DW_THREAD_LIMIT]; | 59 GdkColor _background[DW_THREAD_LIMIT]; |
60 | 60 |
61 GtkWidget *last_window = NULL; | 61 GtkWidget *last_window = NULL; |
62 | 62 |
63 int _dw_file_active = 0, _dw_ignore_click = 0; | 63 int _dw_file_active = 0, _dw_ignore_click = 0, _dw_unselecting = 0; |
64 pthread_t _dw_thread = (pthread_t)-1; | 64 pthread_t _dw_thread = (pthread_t)-1; |
65 int _dw_mutex_locked = FALSE; | 65 int _dw_mutex_locked[DW_THREAD_LIMIT]; |
66 /* Use default border size for the default enlightenment theme */ | 66 /* Use default border size for the default enlightenment theme */ |
67 int _dw_border_width = 12, _dw_border_height = 28; | 67 int _dw_border_width = 12, _dw_border_height = 28; |
68 | 68 |
69 #define DW_MUTEX_LOCK { if(pthread_self() != _dw_thread && _dw_mutex_locked == FALSE) { gdk_threads_enter(); _dw_mutex_locked = TRUE; _locked_by_me = TRUE; } } | 69 #define DW_MUTEX_LOCK { int index = _find_thread_index(dw_thread_id()); if(pthread_self() != _dw_thread && _dw_mutex_locked[index] == FALSE) { gdk_threads_enter(); _dw_mutex_locked[index] = TRUE; _locked_by_me = TRUE; } } |
70 #define DW_MUTEX_UNLOCK { if(pthread_self() != _dw_thread && _locked_by_me == TRUE) { gdk_threads_leave(); _dw_mutex_locked = FALSE; _locked_by_me = FALSE; } } | 70 #define DW_MUTEX_UNLOCK { if(pthread_self() != _dw_thread && _locked_by_me == TRUE) { gdk_threads_leave(); _dw_mutex_locked[_find_thread_index(dw_thread_id())] = FALSE; _locked_by_me = FALSE; } } |
71 | 71 |
72 #define DEFAULT_SIZE_WIDTH 12 | 72 #define DEFAULT_SIZE_WIDTH 12 |
73 #define DEFAULT_SIZE_HEIGHT 6 | 73 #define DEFAULT_SIZE_HEIGHT 6 |
74 #define DEFAULT_TITLEBAR_HEIGHT 22 | 74 #define DEFAULT_TITLEBAR_HEIGHT 22 |
75 | 75 |
462 | 462 |
463 } | 463 } |
464 | 464 |
465 void _unselect_row(GtkWidget *widget, gint row, gint column, GdkEventButton *event, gpointer data) | 465 void _unselect_row(GtkWidget *widget, gint row, gint column, GdkEventButton *event, gpointer data) |
466 { | 466 { |
467 GList *tmp = (GList *)gtk_object_get_data(GTK_OBJECT(widget), "selectlist"); | 467 GList *tmp; |
468 char *rowdata = gtk_clist_get_row_data(GTK_CLIST(widget), row); | 468 char *rowdata; |
469 | |
470 if(_dw_unselecting) | |
471 return; | |
472 | |
473 tmp = (GList *)gtk_object_get_data(GTK_OBJECT(widget), "selectlist"); | |
474 rowdata = gtk_clist_get_row_data(GTK_CLIST(widget), row); | |
469 | 475 |
470 if(rowdata) | 476 if(rowdata) |
471 { | 477 { |
472 g_list_remove(tmp, rowdata); | 478 g_list_remove(tmp, rowdata); |
473 gtk_object_set_data(GTK_OBJECT(widget), "selectlist", tmp); | 479 gtk_object_set_data(GTK_OBJECT(widget), "selectlist", tmp); |
3356 | 3362 |
3357 if(list) | 3363 if(list) |
3358 g_list_free(list); | 3364 g_list_free(list); |
3359 | 3365 |
3360 gtk_object_set_data(GTK_OBJECT(clist), "selectlist", NULL); | 3366 gtk_object_set_data(GTK_OBJECT(clist), "selectlist", NULL); |
3367 | |
3368 _dw_unselecting = 1; | |
3361 gtk_clist_unselect_all(GTK_CLIST(clist)); | 3369 gtk_clist_unselect_all(GTK_CLIST(clist)); |
3370 _dw_unselecting = 0; | |
3362 } | 3371 } |
3363 | 3372 |
3364 /* | 3373 /* |
3365 * Allocates memory used to populate a container. | 3374 * Allocates memory used to populate a container. |
3366 * Parameters: | 3375 * Parameters: |
3710 * current selection list. | 3719 * current selection list. |
3711 */ | 3720 */ |
3712 list = (GList *)gtk_object_get_data(GTK_OBJECT(clist), "selectlist"); | 3721 list = (GList *)gtk_object_get_data(GTK_OBJECT(clist), "selectlist"); |
3713 gtk_object_set_data(GTK_OBJECT(clist), "selectlist", NULL); | 3722 gtk_object_set_data(GTK_OBJECT(clist), "selectlist", NULL); |
3714 gtk_object_set_data(GTK_OBJECT(clist), "querylist", (gpointer)list); | 3723 gtk_object_set_data(GTK_OBJECT(clist), "querylist", (gpointer)list); |
3715 gtk_clist_unselect_all(GTK_CLIST(clist)); | 3724 _dw_unselect(clist); |
3716 | 3725 |
3717 if(list) | 3726 if(list) |
3718 { | 3727 { |
3719 gtk_object_set_data(GTK_OBJECT(clist), "querypos", (gpointer)1); | 3728 gtk_object_set_data(GTK_OBJECT(clist), "querypos", (gpointer)1); |
3720 if(list->data) | 3729 if(list->data) |
4752 } | 4761 } |
4753 if(GTK_IS_CLIST(handle2)) | 4762 if(GTK_IS_CLIST(handle2)) |
4754 { | 4763 { |
4755 if(style & DW_CCS_EXTENDSEL) | 4764 if(style & DW_CCS_EXTENDSEL) |
4756 { | 4765 { |
4757 gtk_clist_set_selection_mode(GTK_CLIST(handle2), GTK_SELECTION_MULTIPLE); | 4766 gtk_clist_set_selection_mode(GTK_CLIST(handle2), GTK_SELECTION_EXTENDED); |
4758 gtk_object_set_data(GTK_OBJECT(handle2), "multi", (gpointer)1); | 4767 gtk_object_set_data(GTK_OBJECT(handle2), "multi", (gpointer)1); |
4759 } | 4768 } |
4760 if(style & DW_CCS_SINGLESEL) | 4769 if(style & DW_CCS_SINGLESEL) |
4761 { | 4770 { |
4762 gtk_clist_set_selection_mode(GTK_CLIST(handle2), GTK_SELECTION_SINGLE); | 4771 gtk_clist_set_selection_mode(GTK_CLIST(handle2), GTK_SELECTION_SINGLE); |