From: Steven Edwards Date: Fri, 23 Sep 2005 06:02:23 +0000 (+0000) Subject: Kevin Koltzau Enable/disable menu items based on edit control state. X-Git-Tag: ReactOS-0.2.8~424 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=b3725418f060e720b1bbfafee58ccf08e8c00456 Kevin Koltzau Enable/disable menu items based on edit control state. svn path=/trunk/; revision=17997 --- diff --git a/reactos/subsys/system/notepad/main.c b/reactos/subsys/system/notepad/main.c index 18c9faf6e1f..b278453f75c 100644 --- a/reactos/subsys/system/notepad/main.c +++ b/reactos/subsys/system/notepad/main.c @@ -113,6 +113,27 @@ static VOID NOTEPAD_InitData(VOID) *p = '\0'; } +/*********************************************************************** + * Enable/disable items on the menu based on control state + */ +static VOID NOTEPAD_InitMenuPopup(HMENU menu, int index) +{ + int enable; + + EnableMenuItem(menu, CMD_UNDO, + SendMessage(Globals.hEdit, EM_CANUNDO, 0, 0) ? MF_ENABLED : MF_GRAYED); + EnableMenuItem(menu, CMD_PASTE, + IsClipboardFormatAvailable(CF_TEXT) ? MF_ENABLED : MF_GRAYED); + enable = SendMessage(Globals.hEdit, EM_GETSEL, 0, 0); + enable = (HIWORD(enable) == LOWORD(enable)) ? MF_GRAYED : MF_ENABLED; + EnableMenuItem(menu, CMD_CUT, enable); + EnableMenuItem(menu, CMD_COPY, enable); + EnableMenuItem(menu, CMD_DELETE, enable); + + EnableMenuItem(menu, CMD_SELECT_ALL, + GetWindowTextLength(Globals.hEdit) ? MF_ENABLED : MF_GRAYED); +} + /*********************************************************************** * * NOTEPAD_WndProc @@ -178,6 +199,10 @@ static LRESULT WINAPI NOTEPAD_WndProc(HWND hWnd, UINT msg, WPARAM wParam, DoOpenFile(szFileName); break; } + + case WM_INITMENUPOPUP: + NOTEPAD_InitMenuPopup((HMENU)wParam, lParam); + break; default: return DefWindowProc(hWnd, msg, wParam, lParam);