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);