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