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 {