Mercurial > dwindows
comparison dwtest.c @ 2240:7f6939857cca
Win: Added dw_window_set_color() support for Rich Edit based MLE controls.
Added foreground and background color comboboxes and callbacks to dwtest.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Mon, 18 Jan 2021 23:43:54 +0000 |
parents | e7060d262939 |
children | 6f28c68642f5 |
comparison
equal
deleted
inserted
replaced
2239:95ad22a4da2d | 2240:7f6939857cca |
---|---|
1200 | 1200 |
1201 dw_mle_set_word_wrap(container_mle, dw_checkbox_get(wordwrap)); | 1201 dw_mle_set_word_wrap(container_mle, dw_checkbox_get(wordwrap)); |
1202 return TRUE; | 1202 return TRUE; |
1203 } | 1203 } |
1204 | 1204 |
1205 HWND color_combobox(void) | |
1206 { | |
1207 HWND combobox = dw_combobox_new("DW_CLR_DEFAULT", 0); | |
1208 | |
1209 dw_listbox_append(combobox, "DW_CLR_DEFAULT"); | |
1210 dw_listbox_append(combobox, "DW_CLR_BLACK"); | |
1211 dw_listbox_append(combobox, "DW_CLR_DARKRED"); | |
1212 dw_listbox_append(combobox, "DW_CLR_DARKGREEN"); | |
1213 dw_listbox_append(combobox, "DW_CLR_BROWN"); | |
1214 dw_listbox_append(combobox, "DW_CLR_DARKBLUE"); | |
1215 dw_listbox_append(combobox, "DW_CLR_DARKPINK"); | |
1216 dw_listbox_append(combobox, "DW_CLR_DARKCYAN"); | |
1217 dw_listbox_append(combobox, "DW_CLR_PALEGRAY"); | |
1218 dw_listbox_append(combobox, "DW_CLR_DARKGRAY"); | |
1219 dw_listbox_append(combobox, "DW_CLR_RED"); | |
1220 dw_listbox_append(combobox, "DW_CLR_GREEN"); | |
1221 dw_listbox_append(combobox, "DW_CLR_YELLOW"); | |
1222 dw_listbox_append(combobox, "DW_CLR_BLUE"); | |
1223 dw_listbox_append(combobox, "DW_CLR_PINK"); | |
1224 dw_listbox_append(combobox, "DW_CLR_CYAN"); | |
1225 dw_listbox_append(combobox, "DW_CLR_WHITE"); | |
1226 return combobox; | |
1227 } | |
1228 | |
1229 ULONG combobox_color(char *colortext) | |
1230 { | |
1231 ULONG color = DW_CLR_DEFAULT; | |
1232 | |
1233 if(strcmp(colortext, "DW_CLR_BLACK") == 0) | |
1234 color = DW_CLR_BLACK; | |
1235 else if(strcmp(colortext, "DW_CLR_DARKRED") == 0) | |
1236 color = DW_CLR_DARKRED; | |
1237 else if(strcmp(colortext, "DW_CLR_DARKGREEN") == 0) | |
1238 color = DW_CLR_DARKGREEN; | |
1239 else if(strcmp(colortext, "DW_CLR_BROWN") == 0) | |
1240 color = DW_CLR_BROWN; | |
1241 else if(strcmp(colortext, "DW_CLR_DARKBLUE") == 0) | |
1242 color = DW_CLR_DARKBLUE; | |
1243 else if(strcmp(colortext, "DW_CLR_DARKPINK") == 0) | |
1244 color = DW_CLR_DARKPINK; | |
1245 else if(strcmp(colortext, "DW_CLR_DARKCYAN") == 0) | |
1246 color = DW_CLR_DARKCYAN; | |
1247 else if(strcmp(colortext, "DW_CLR_PALEGRAY") == 0) | |
1248 color = DW_CLR_PALEGRAY; | |
1249 else if(strcmp(colortext, "DW_CLR_DARKGRAY") == 0) | |
1250 color = DW_CLR_DARKGRAY; | |
1251 else if(strcmp(colortext, "DW_CLR_RED") == 0) | |
1252 color = DW_CLR_RED; | |
1253 else if(strcmp(colortext, "DW_CLR_GREEN") == 0) | |
1254 color = DW_CLR_GREEN; | |
1255 else if(strcmp(colortext, "DW_CLR_YELLOW") == 0) | |
1256 color = DW_CLR_YELLOW; | |
1257 else if(strcmp(colortext, "DW_CLR_BLUE") == 0) | |
1258 color = DW_CLR_BLUE; | |
1259 else if(strcmp(colortext, "DW_CLR_PINK") == 0) | |
1260 color = DW_CLR_PINK; | |
1261 else if(strcmp(colortext, "DW_CLR_CYAN") == 0) | |
1262 color = DW_CLR_CYAN; | |
1263 else if(strcmp(colortext, "DW_CLR_WHITE") == 0) | |
1264 color = DW_CLR_WHITE; | |
1265 | |
1266 return color; | |
1267 } | |
1268 | |
1269 int DWSIGNAL mle_color_cb(HWND hwnd, int pos, void *data) | |
1270 { | |
1271 HWND hbox = (HWND)data; | |
1272 HWND mlefore = dw_window_get_data(hbox, "mlefore"); | |
1273 HWND mleback = dw_window_get_data(hbox, "mleback"); | |
1274 char colortext[101] = {0}; | |
1275 ULONG fore, back; | |
1276 | |
1277 if(hwnd == mlefore) | |
1278 { | |
1279 dw_listbox_get_text(mlefore, pos, colortext, 100); | |
1280 fore = combobox_color(colortext); | |
1281 } | |
1282 else | |
1283 { | |
1284 char *text = dw_window_get_text(mlefore); | |
1285 | |
1286 if(text) | |
1287 { | |
1288 fore = combobox_color(text); | |
1289 dw_free(text); | |
1290 } | |
1291 } | |
1292 if(hwnd == mleback) | |
1293 { | |
1294 dw_listbox_get_text(mleback, pos, colortext, 100); | |
1295 back = combobox_color(colortext); | |
1296 } | |
1297 else | |
1298 { | |
1299 char *text = dw_window_get_text(mleback); | |
1300 | |
1301 if(text) | |
1302 { | |
1303 back = combobox_color(text); | |
1304 dw_free(text); | |
1305 } | |
1306 } | |
1307 | |
1308 dw_window_set_color(container_mle, fore, back); | |
1309 return 0; | |
1310 } | |
1311 | |
1205 void container_add(void) | 1312 void container_add(void) |
1206 { | 1313 { |
1207 char *titles[4]; | 1314 char *titles[4]; |
1208 char buffer[100]; | 1315 char buffer[100]; |
1209 unsigned long flags[4] = { DW_CFA_BITMAPORICON | DW_CFA_LEFT | DW_CFA_HORZSEPARATOR | DW_CFA_SEPARATOR, | 1316 unsigned long flags[4] = { DW_CFA_BITMAPORICON | DW_CFA_LEFT | DW_CFA_HORZSEPARATOR | DW_CFA_SEPARATOR, |
1213 int z; | 1320 int z; |
1214 CTIME time; | 1321 CTIME time; |
1215 CDATE date; | 1322 CDATE date; |
1216 unsigned long size, newpoint; | 1323 unsigned long size, newpoint; |
1217 HICN thisicon; | 1324 HICN thisicon; |
1218 HWND checkbox; | 1325 HWND checkbox, mlefore, mleback, hbox; |
1219 | 1326 |
1220 /* create a box to pack into the notebook page */ | 1327 /* create a box to pack into the notebook page */ |
1221 containerbox = dw_box_new(DW_HORZ, 2); | 1328 containerbox = dw_box_new(DW_HORZ, 2); |
1222 dw_box_pack_start( notebookbox4, containerbox, 500, 200, TRUE, TRUE, 0); | 1329 dw_box_pack_start(notebookbox4, containerbox, 500, 200, TRUE, TRUE, 0); |
1223 | 1330 |
1224 /* Add a word wrap checkbox */ | 1331 /* Add a word wrap checkbox */ |
1225 checkbox = dw_checkbox_new("Word wrap", 0); | 1332 { |
1226 dw_box_pack_start( notebookbox4, checkbox, 100, -1, TRUE, FALSE, 1); | 1333 HWND text; |
1227 dw_checkbox_set(checkbox, TRUE); | 1334 |
1335 hbox = dw_box_new(DW_HORZ, 0); | |
1336 | |
1337 checkbox = dw_checkbox_new("Word wrap", 0); | |
1338 dw_box_pack_start(hbox, checkbox, -1, -1, FALSE, TRUE, 1); | |
1339 text = dw_text_new("Foreground:", 0); | |
1340 dw_window_set_style(text, DW_DT_VCENTER, DW_DT_VCENTER); | |
1341 dw_box_pack_start(hbox, text, -1, -1, FALSE, TRUE, 1); | |
1342 mlefore = color_combobox(); | |
1343 dw_box_pack_start(hbox, mlefore, 150, -1, TRUE, FALSE, 1); | |
1344 text = dw_text_new("Background:", 0); | |
1345 dw_window_set_style(text, DW_DT_VCENTER, DW_DT_VCENTER); | |
1346 dw_box_pack_start(hbox, text, -1, -1, FALSE, TRUE, 1); | |
1347 mleback = color_combobox(); | |
1348 dw_box_pack_start(hbox, mleback, 150, -1, TRUE, FALSE, 1); | |
1349 dw_checkbox_set(checkbox, TRUE); | |
1350 dw_box_pack_start(notebookbox4, hbox, -1, -1, FALSE, FALSE, 1); | |
1351 | |
1352 dw_window_set_data(hbox, "mlefore", DW_POINTER(mlefore)); | |
1353 dw_window_set_data(hbox, "mleback", DW_POINTER(mleback)); | |
1354 } | |
1228 | 1355 |
1229 /* now a container area under this box */ | 1356 /* now a container area under this box */ |
1230 container = dw_container_new(100, TRUE); | 1357 container = dw_container_new(100, TRUE); |
1231 dw_box_pack_start( notebookbox4, container, 500, 200, TRUE, FALSE, 1); | 1358 dw_box_pack_start( notebookbox4, container, 500, 200, TRUE, FALSE, 1); |
1232 | 1359 |
1286 | 1413 |
1287 dw_container_insert(container, containerinfo, 1); | 1414 dw_container_insert(container, containerinfo, 1); |
1288 dw_container_optimize(container); | 1415 dw_container_optimize(container); |
1289 | 1416 |
1290 container_mle = dw_mle_new( 111 ); | 1417 container_mle = dw_mle_new( 111 ); |
1291 dw_box_pack_start( containerbox, container_mle, 500, 200, TRUE, TRUE, 0); | 1418 dw_box_pack_start(containerbox, container_mle, 500, 200, TRUE, TRUE, 0); |
1292 | 1419 |
1293 mle_point = dw_mle_import(container_mle, "", -1); | 1420 mle_point = dw_mle_import(container_mle, "", -1); |
1294 sprintf(buffer, "[%d]", mle_point); | 1421 sprintf(buffer, "[%d]", mle_point); |
1295 mle_point = dw_mle_import(container_mle, buffer, mle_point); | 1422 mle_point = dw_mle_import(container_mle, buffer, mle_point); |
1296 sprintf(buffer, "[%d]abczxydefijkl", mle_point); | 1423 sprintf(buffer, "[%d]abczxydefijkl", mle_point); |
1306 dw_signal_connect(container, DW_SIGNAL_ITEM_ENTER, DW_SIGNAL_FUNC(item_enter_cb), DW_POINTER(container_status)); | 1433 dw_signal_connect(container, DW_SIGNAL_ITEM_ENTER, DW_SIGNAL_FUNC(item_enter_cb), DW_POINTER(container_status)); |
1307 dw_signal_connect(container, DW_SIGNAL_ITEM_CONTEXT, DW_SIGNAL_FUNC(item_context_cb), DW_POINTER(container_status)); | 1434 dw_signal_connect(container, DW_SIGNAL_ITEM_CONTEXT, DW_SIGNAL_FUNC(item_context_cb), DW_POINTER(container_status)); |
1308 dw_signal_connect(container, DW_SIGNAL_ITEM_SELECT, DW_SIGNAL_FUNC(container_select_cb), DW_POINTER(container_status)); | 1435 dw_signal_connect(container, DW_SIGNAL_ITEM_SELECT, DW_SIGNAL_FUNC(container_select_cb), DW_POINTER(container_status)); |
1309 dw_signal_connect(container, DW_SIGNAL_COLUMN_CLICK, DW_SIGNAL_FUNC(column_click_cb), DW_POINTER(container_status)); | 1436 dw_signal_connect(container, DW_SIGNAL_COLUMN_CLICK, DW_SIGNAL_FUNC(column_click_cb), DW_POINTER(container_status)); |
1310 dw_signal_connect(checkbox, DW_SIGNAL_CLICKED, DW_SIGNAL_FUNC(word_wrap_click_cb), DW_POINTER(container_mle)); | 1437 dw_signal_connect(checkbox, DW_SIGNAL_CLICKED, DW_SIGNAL_FUNC(word_wrap_click_cb), DW_POINTER(container_mle)); |
1438 dw_signal_connect(mlefore, DW_SIGNAL_LIST_SELECT, DW_SIGNAL_FUNC(mle_color_cb), DW_POINTER(hbox)); | |
1439 dw_signal_connect(mleback, DW_SIGNAL_LIST_SELECT, DW_SIGNAL_FUNC(mle_color_cb), DW_POINTER(hbox)); | |
1311 } | 1440 } |
1312 | 1441 |
1313 /* Beep every second */ | 1442 /* Beep every second */ |
1314 int DWSIGNAL timer_callback(void *data) | 1443 int DWSIGNAL timer_callback(void *data) |
1315 { | 1444 { |