comparison gtk/dw.c @ 72:ab77a22a2a36

Added localization APIs as well as some miscellaneous bug fixes.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Fri, 15 Feb 2002 09:30:50 +0000
parents 9510897c0b03
children c629838d9805
comparison
equal deleted inserted replaced
71:291c30a92b9b 72:ab77a22a2a36
3261 gtk_signal_connect(GTK_OBJECT(clist), "unselect_row", GTK_SIGNAL_FUNC(_unselect_row), NULL); 3261 gtk_signal_connect(GTK_OBJECT(clist), "unselect_row", GTK_SIGNAL_FUNC(_unselect_row), NULL);
3262 3262
3263 gtk_clist_set_column_auto_resize(GTK_CLIST(clist), 0, TRUE); 3263 gtk_clist_set_column_auto_resize(GTK_CLIST(clist), 0, TRUE);
3264 gtk_clist_set_selection_mode(GTK_CLIST(clist), GTK_SELECTION_SINGLE); 3264 gtk_clist_set_selection_mode(GTK_CLIST(clist), GTK_SELECTION_SINGLE);
3265 gtk_container_add(GTK_CONTAINER(handle), clist); 3265 gtk_container_add(GTK_CONTAINER(handle), clist);
3266 gtk_object_set_data(GTK_OBJECT(clist), "multi", (gpointer)0);
3266 gtk_object_set_user_data(GTK_OBJECT(handle), (gpointer)clist); 3267 gtk_object_set_user_data(GTK_OBJECT(handle), (gpointer)clist);
3267 gtk_widget_show(clist); 3268 gtk_widget_show(clist);
3268 gtk_object_set_data(GTK_OBJECT(clist), "colcount", (gpointer)count); 3269 gtk_object_set_data(GTK_OBJECT(clist), "colcount", (gpointer)count);
3269 3270
3270 if(extra) 3271 if(extra)
3346 */ 3347 */
3347 void dw_icon_free(unsigned long handle) 3348 void dw_icon_free(unsigned long handle)
3348 { 3349 {
3349 } 3350 }
3350 3351
3352 /* Clears a CList selection and associated selection list */
3353 void _dw_unselect(GtkWidget *clist)
3354 {
3355 GList *list = (GList *)gtk_object_get_data(GTK_OBJECT(clist), "selectlist");
3356
3357 if(list)
3358 g_list_free(list);
3359
3360 gtk_object_set_data(GTK_OBJECT(clist), "selectlist", NULL);
3361 gtk_clist_unselect_all(GTK_CLIST(clist));
3362 }
3363
3351 /* 3364 /*
3352 * Allocates memory used to populate a container. 3365 * Allocates memory used to populate a container.
3353 * Parameters: 3366 * Parameters:
3354 * handle: Handle to the container window (widget). 3367 * handle: Handle to the container window (widget).
3355 * rowcount: The number of items to be populated. 3368 * rowcount: The number of items to be populated.
3567 * rowcount: The number of rows to be deleted. 3580 * rowcount: The number of rows to be deleted.
3568 */ 3581 */
3569 void dw_container_delete(HWND handle, int rowcount) 3582 void dw_container_delete(HWND handle, int rowcount)
3570 { 3583 {
3571 GtkWidget *clist; 3584 GtkWidget *clist;
3572 GList *list;
3573 int _locked_by_me = FALSE; 3585 int _locked_by_me = FALSE;
3574 3586
3575 DW_MUTEX_LOCK; 3587 DW_MUTEX_LOCK;
3576 clist = (GtkWidget*)gtk_object_get_user_data(GTK_OBJECT(handle)); 3588 clist = (GtkWidget*)gtk_object_get_user_data(GTK_OBJECT(handle));
3577 if(clist && GTK_IS_CLIST(clist)) 3589 if(clist && GTK_IS_CLIST(clist))
3578 { 3590 {
3579 int rows, z; 3591 int rows, z;
3580 3592
3581 list = (GList *)gtk_object_get_data(GTK_OBJECT(clist), "selectlist");
3582 rows = (int)gtk_object_get_data(GTK_OBJECT(clist), "rowcount"); 3593 rows = (int)gtk_object_get_data(GTK_OBJECT(clist), "rowcount");
3583 g_list_free(list); 3594
3595 _dw_unselect(clist);
3584 3596
3585 for(z=0;z<rowcount;z++) 3597 for(z=0;z<rowcount;z++)
3586 gtk_clist_remove(GTK_CLIST(clist), 0); 3598 gtk_clist_remove(GTK_CLIST(clist), 0);
3587 3599
3588 if(rows - rowcount < 0) 3600 if(rows - rowcount < 0)
3589 rows = 0; 3601 rows = 0;
3590 else 3602 else
3591 rows -= rowcount; 3603 rows -= rowcount;
3592 3604
3593 gtk_object_set_data(GTK_OBJECT(clist), "selectlist", NULL);
3594 gtk_object_set_data(GTK_OBJECT(clist), "rowcount", (gpointer)rows); 3605 gtk_object_set_data(GTK_OBJECT(clist), "rowcount", (gpointer)rows);
3595 } 3606 }
3596 DW_MUTEX_UNLOCK; 3607 DW_MUTEX_UNLOCK;
3597 } 3608 }
3598 3609
3603 * redraw: TRUE to cause the container to redraw immediately. 3614 * redraw: TRUE to cause the container to redraw immediately.
3604 */ 3615 */
3605 void dw_container_clear(HWND handle, int redraw) 3616 void dw_container_clear(HWND handle, int redraw)
3606 { 3617 {
3607 GtkWidget *clist; 3618 GtkWidget *clist;
3608 GList *list;
3609 int _locked_by_me = FALSE; 3619 int _locked_by_me = FALSE;
3610 3620
3611 DW_MUTEX_LOCK; 3621 DW_MUTEX_LOCK;
3612 clist = (GtkWidget*)gtk_object_get_user_data(GTK_OBJECT(handle)); 3622 clist = (GtkWidget*)gtk_object_get_user_data(GTK_OBJECT(handle));
3613 if(clist && GTK_IS_CLIST(clist)) 3623 if(clist && GTK_IS_CLIST(clist))
3614 { 3624 {
3615 list = (GList *)gtk_object_get_data(GTK_OBJECT(clist), "selectlist"); 3625 _dw_unselect(clist);
3616 g_list_free(list);
3617 gtk_object_set_data(GTK_OBJECT(clist), "selectlist", NULL);
3618 gtk_clist_clear(GTK_CLIST(clist)); 3626 gtk_clist_clear(GTK_CLIST(clist));
3619 gtk_object_set_data(GTK_OBJECT(clist), "rowcount", (gpointer)0); 3627 gtk_object_set_data(GTK_OBJECT(clist), "rowcount", (gpointer)0);
3620 } 3628 }
3621 DW_MUTEX_UNLOCK; 3629 DW_MUTEX_UNLOCK;
3622 } 3630 }
3809 rowdata = gtk_clist_get_row_data(GTK_CLIST(clist), z); 3817 rowdata = gtk_clist_get_row_data(GTK_CLIST(clist), z);
3810 if(rowdata == text) 3818 if(rowdata == text)
3811 { 3819 {
3812 gfloat pos; 3820 gfloat pos;
3813 GtkAdjustment *adj = gtk_clist_get_vadjustment(GTK_CLIST(clist)); 3821 GtkAdjustment *adj = gtk_clist_get_vadjustment(GTK_CLIST(clist));
3822
3823 _dw_unselect(clist);
3824
3814 gtk_clist_select_row(GTK_CLIST(clist), z, 0); 3825 gtk_clist_select_row(GTK_CLIST(clist), z, 0);
3815 3826
3816 pos = ((adj->upper - adj->lower) * ((gfloat)z/(gfloat)rowcount)) + adj->lower; 3827 pos = ((adj->upper - adj->lower) * ((gfloat)z/(gfloat)rowcount)) + adj->lower;
3817 gtk_adjustment_set_value(adj, pos); 3828 gtk_adjustment_set_value(adj, pos);
3818 DW_MUTEX_UNLOCK; 3829 DW_MUTEX_UNLOCK;