comparison gtk/dw.c @ 350:2216e65ad2ae

Removed slider flags and container selection flags from the header file. Added "multi" parameter to dw_container_new() to control multiple selection.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Mon, 14 Apr 2003 13:47:20 +0000
parents 81fae15885d7
children feed7567764f
comparison
equal deleted inserted replaced
349:5d3f2e2dcc6b 350:2216e65ad2ae
2124 * Create a container object to be packed. 2124 * Create a container object to be packed.
2125 * Parameters: 2125 * Parameters:
2126 * id: An ID to be used for getting the resource from the 2126 * id: An ID to be used for getting the resource from the
2127 * resource file. 2127 * resource file.
2128 */ 2128 */
2129 HWND dw_container_new(unsigned long id) 2129 HWND dw_container_new(unsigned long id, int multi)
2130 { 2130 {
2131 GtkWidget *tmp; 2131 GtkWidget *tmp;
2132 int _locked_by_me = FALSE; 2132 int _locked_by_me = FALSE;
2133 2133
2134 DW_MUTEX_LOCK; 2134 DW_MUTEX_LOCK;
2135 tmp = gtk_scrolled_window_new (NULL, NULL); 2135 tmp = gtk_scrolled_window_new (NULL, NULL);
2136 gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (tmp), 2136 gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (tmp),
2137 GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); 2137 GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
2138 2138
2139 gtk_object_set_data(GTK_OBJECT(tmp), "multi", (gpointer)multi);
2139 gtk_object_set_data(GTK_OBJECT(tmp), "id", (gpointer)id); 2140 gtk_object_set_data(GTK_OBJECT(tmp), "id", (gpointer)id);
2140 gtk_widget_show(tmp); 2141 gtk_widget_show(tmp);
2141 2142
2142 DW_MUTEX_UNLOCK; 2143 DW_MUTEX_UNLOCK;
2143 return tmp; 2144 return tmp;
4293 4294
4294 static int _dw_container_setup(HWND handle, unsigned long *flags, char **titles, int count, int separator, int extra) 4295 static int _dw_container_setup(HWND handle, unsigned long *flags, char **titles, int count, int separator, int extra)
4295 { 4296 {
4296 GtkWidget *clist; 4297 GtkWidget *clist;
4297 char numbuf[10]; 4298 char numbuf[10];
4298 int z; 4299 int z, multi;
4299 int _locked_by_me = FALSE; 4300 int _locked_by_me = FALSE;
4300 4301
4301 DW_MUTEX_LOCK; 4302 DW_MUTEX_LOCK;
4302 clist = gtk_clist_new_with_titles(count, (gchar **)titles); 4303 clist = gtk_clist_new_with_titles(count, (gchar **)titles);
4303 if(!clist) 4304 if(!clist)
4304 { 4305 {
4305 DW_MUTEX_UNLOCK; 4306 DW_MUTEX_UNLOCK;
4306 return FALSE; 4307 return FALSE;
4307 } 4308 }
4309 multi = (int)gtk_object_get_data(GTK_OBJECT(handle), "multi");
4310 gtk_object_set_data(GTK_OBJECT(handle), "multi", (gpointer)multi);
4308 4311
4309 gtk_signal_connect(GTK_OBJECT(clist), "select_row", GTK_SIGNAL_FUNC(_select_row), NULL); 4312 gtk_signal_connect(GTK_OBJECT(clist), "select_row", GTK_SIGNAL_FUNC(_select_row), NULL);
4310 gtk_signal_connect(GTK_OBJECT(clist), "unselect_row", GTK_SIGNAL_FUNC(_unselect_row), NULL); 4313 gtk_signal_connect(GTK_OBJECT(clist), "unselect_row", GTK_SIGNAL_FUNC(_unselect_row), NULL);
4311 4314
4312 gtk_clist_set_column_auto_resize(GTK_CLIST(clist), 0, TRUE); 4315 gtk_clist_set_column_auto_resize(GTK_CLIST(clist), 0, TRUE);
4313 gtk_clist_set_selection_mode(GTK_CLIST(clist), GTK_SELECTION_SINGLE); 4316 if(multi)
4317 gtk_clist_set_selection_mode(GTK_CLIST(clist), GTK_SELECTION_EXTENDED);
4318 else
4319 gtk_clist_set_selection_mode(GTK_CLIST(clist), GTK_SELECTION_SINGLE);
4314 gtk_container_add(GTK_CONTAINER(handle), clist); 4320 gtk_container_add(GTK_CONTAINER(handle), clist);
4315 gtk_object_set_data(GTK_OBJECT(clist), "multi", (gpointer)0);
4316 gtk_object_set_user_data(GTK_OBJECT(handle), (gpointer)clist); 4321 gtk_object_set_user_data(GTK_OBJECT(handle), (gpointer)clist);
4317 gtk_widget_show(clist); 4322 gtk_widget_show(clist);
4318 gtk_object_set_data(GTK_OBJECT(clist), "colcount", (gpointer)count); 4323 gtk_object_set_data(GTK_OBJECT(clist), "colcount", (gpointer)count);
4319 4324
4320 if(extra) 4325 if(extra)
6228 if(GTK_IS_SCROLLED_WINDOW(handle)) 6233 if(GTK_IS_SCROLLED_WINDOW(handle))
6229 { 6234 {
6230 GtkWidget *tmp = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle)); 6235 GtkWidget *tmp = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle));
6231 if(tmp) 6236 if(tmp)
6232 handle2 = tmp; 6237 handle2 = tmp;
6233 }
6234 if(GTK_IS_CLIST(handle2))
6235 {
6236 if(style & DW_CCS_EXTENDSEL)
6237 {
6238 gtk_clist_set_selection_mode(GTK_CLIST(handle2), GTK_SELECTION_EXTENDED);
6239 gtk_object_set_data(GTK_OBJECT(handle2), "multi", (gpointer)1);
6240 }
6241 if(style & DW_CCS_SINGLESEL)
6242 {
6243 gtk_clist_set_selection_mode(GTK_CLIST(handle2), GTK_SELECTION_SINGLE);
6244 gtk_object_set_data(GTK_OBJECT(handle2), "multi", (gpointer)0);
6245 }
6246 } 6238 }
6247 if(GTK_IS_LABEL(handle2)) 6239 if(GTK_IS_LABEL(handle2))
6248 { 6240 {
6249 if(style & DW_DT_CENTER || style & DW_DT_VCENTER) 6241 if(style & DW_DT_CENTER || style & DW_DT_VCENTER)
6250 { 6242 {