comparison os2/dw.c @ 2233:a1efdd4a24af

OS/2: Add support for Delete on entryfield based widget.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Sun, 03 Jan 2021 23:56:22 +0000
parents 155caabaa12b
children 3e9c5bff0a57
comparison
equal deleted inserted replaced
2232:155caabaa12b 2233:a1efdd4a24af
2392 case WM_CONTEXTMENU: 2392 case WM_CONTEXTMENU:
2393 { 2393 {
2394 HMENUI hwndMenu = dw_menu_new(0L); 2394 HMENUI hwndMenu = dw_menu_new(0L);
2395 long x, y; 2395 long x, y;
2396 unsigned long style = 0L; 2396 unsigned long style = 0L;
2397 2397 int is_mle = FALSE;
2398 if(strncmp(tmpbuf, "#10", 4)==0 && WinSendMsg(hWnd, MLM_QUERYREADONLY, 0, 0)) 2398
2399 if(strncmp(tmpbuf, "#10", 4)==0)
2400 is_mle = TRUE;
2401
2402 /* When readonly, disable: Undo, Cut, Paste, Delete */
2403 if(is_mle && WinSendMsg(hWnd, MLM_QUERYREADONLY, 0, 0))
2399 style = DW_MIS_DISABLED; 2404 style = DW_MIS_DISABLED;
2400 dw_menu_append_item(hwndMenu, "Undo", ENTRY_UNDO, style, TRUE, -1, 0L); 2405
2406 /* Undo is also disabled if it isn't an MLE */
2407 dw_menu_append_item(hwndMenu, "Undo", ENTRY_UNDO, style | (is_mle ? 0 : DW_MIS_DISABLED), TRUE, -1, 0L);
2401 dw_menu_append_item(hwndMenu, "", 0L, 0L, TRUE, -1, 0L); 2408 dw_menu_append_item(hwndMenu, "", 0L, 0L, TRUE, -1, 0L);
2402 if(strncmp(tmpbuf, "#10", 4)!=0 && dw_window_get_data(hWnd, "_dw_disabled")) 2409
2410 /* Also check if non-MLE windows are disabled */
2411 if(!is_mle && dw_window_get_data(hWnd, "_dw_disabled"))
2403 style = DW_MIS_DISABLED; 2412 style = DW_MIS_DISABLED;
2413
2404 dw_menu_append_item(hwndMenu, "Cut", ENTRY_CUT, style, TRUE, -1, 0L); 2414 dw_menu_append_item(hwndMenu, "Cut", ENTRY_CUT, style, TRUE, -1, 0L);
2405 dw_menu_append_item(hwndMenu, "Copy", ENTRY_COPY, 0L, TRUE, -1, 0L); 2415 dw_menu_append_item(hwndMenu, "Copy", ENTRY_COPY, 0L, TRUE, -1, 0L);
2406 dw_menu_append_item(hwndMenu, "Paste", ENTRY_PASTE, style, TRUE, -1, 0L); 2416 dw_menu_append_item(hwndMenu, "Paste", ENTRY_PASTE, style, TRUE, -1, 0L);
2407 dw_menu_append_item(hwndMenu, "Delete", ENTRY_DELETE, style, TRUE, -1, 0L); 2417 dw_menu_append_item(hwndMenu, "Delete", ENTRY_DELETE, style, TRUE, -1, 0L);
2408 dw_menu_append_item(hwndMenu, "", 0L, 0L, TRUE, -1, 0L); 2418 dw_menu_append_item(hwndMenu, "", 0L, 0L, TRUE, -1, 0L);
2455 return WinSendMsg(handle, EM_CUT, 0, 0); 2465 return WinSendMsg(handle, EM_CUT, 0, 0);
2456 case ENTRY_COPY: 2466 case ENTRY_COPY:
2457 return WinSendMsg(handle, EM_COPY, 0, 0); 2467 return WinSendMsg(handle, EM_COPY, 0, 0);
2458 case ENTRY_PASTE: 2468 case ENTRY_PASTE:
2459 return WinSendMsg(handle, EM_PASTE, 0, 0); 2469 return WinSendMsg(handle, EM_PASTE, 0, 0);
2470 case ENTRY_DELETE:
2471 return WinSendMsg(handle, EM_CLEAR, 0, 0);
2460 case ENTRY_SALL: 2472 case ENTRY_SALL:
2461 { 2473 {
2462 LONG len = WinQueryWindowTextLength(hWnd); 2474 LONG len = WinQueryWindowTextLength(hWnd);
2463 return WinSendMsg(hWnd, EM_SETSEL, MPFROM2SHORT(0, (SHORT)len), 0); 2475 return WinSendMsg(hWnd, EM_SETSEL, MPFROM2SHORT(0, (SHORT)len), 0);
2464 } 2476 }