Mercurial > dwindows
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 { |