@@ -28,6 +28,31 @@ static HWND ghStatusBar;
2828
2929#pragma comment(linker, "/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
3030
31+ LRESULT CALLBACK EditSubclassProc (HWND hwnd , UINT uMsg , WPARAM wParam , LPARAM lParam , UINT_PTR uIdSubclass , DWORD_PTR dwrefData )
32+ {
33+ switch (uMsg )
34+ {
35+ case WM_MOUSEWHEEL :
36+ {
37+ if (GetKeyState (VK_CONTROL ) & 0x8000 )
38+ {
39+ int nDelta = GET_WHEEL_DELTA_WPARAM (wParam );
40+
41+ if (nDelta > 0 )
42+ SendMessage (ghWindow , WM_COMMAND , MAKEWPARAM (ID_VIEW_ZOOM_IN , 0 ), (LPARAM )hwnd );
43+ else if (nDelta < 0 )
44+ SendMessage (ghWindow , WM_COMMAND , MAKEWPARAM (ID_VIEW_ZOOM_OUT , 0 ), (LPARAM )hwnd );
45+
46+ return 0 ;
47+ }
48+
49+ break ;
50+ }
51+ }
52+
53+ return DefSubclassProc (hwnd , uMsg , wParam , lParam );
54+ }
55+
3156LRESULT CALLBACK WindowProc (HWND hwnd , UINT uMsg , WPARAM wParam , LPARAM lParam )
3257{
3358 switch (uMsg )
@@ -55,8 +80,23 @@ LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
5580 AppendMenu (hFileMenu , MF_STRING | MF_ENABLED | MF_RIGHTJUSTIFY , ID_FILE_EXIT , TEXT ("Exit\tAlt+F4" ));
5681
5782 HMENU hEditMenu = CreateMenu ();
58- // TODO: Add edit menu
59-
83+ AppendMenu (hEditMenu , MF_STRING | MF_ENABLED | MF_RIGHTJUSTIFY , ID_EDIT_UNDO , TEXT ("Undo\tCtrl+Z" ));
84+ AppendMenu (hEditMenu , MF_SEPARATOR , 0 , NULL );
85+ AppendMenu (hEditMenu , MF_STRING | MF_ENABLED | MF_RIGHTJUSTIFY , ID_EDIT_CUT , TEXT ("Cut\tCtrl+X" ));
86+ AppendMenu (hEditMenu , MF_STRING | MF_ENABLED | MF_RIGHTJUSTIFY , ID_EDIT_COPY , TEXT ("Copy\tCtrl+C" ));
87+ AppendMenu (hEditMenu , MF_STRING | MF_ENABLED | MF_RIGHTJUSTIFY , ID_EDIT_PASTE , TEXT ("Paste\tCtrl+V" ));
88+ AppendMenu (hEditMenu , MF_STRING | MF_ENABLED | MF_RIGHTJUSTIFY , ID_EDIT_DELETE , TEXT ("Delete\tDel" ));
89+ AppendMenu (hEditMenu , MF_SEPARATOR , 0 , NULL );
90+ AppendMenu (hEditMenu , MF_STRING | MF_DISABLED | MF_RIGHTJUSTIFY , ID_EDIT_GEMINI , TEXT ("Summarize with Gemini...\tCtrl+E" ));
91+ AppendMenu (hEditMenu , MF_STRING | MF_DISABLED | MF_RIGHTJUSTIFY , ID_EDIT_FIND , TEXT ("Find...\tCtrl+F" ));
92+ AppendMenu (hEditMenu , MF_STRING | MF_DISABLED | MF_RIGHTJUSTIFY , ID_EDIT_FIND_NEXT , TEXT ("Find Next\tF3" ));
93+ AppendMenu (hEditMenu , MF_STRING | MF_DISABLED | MF_RIGHTJUSTIFY , ID_EDIT_FIND_PREV , TEXT ("Find Previous\tShift+F3" ));
94+ AppendMenu (hEditMenu , MF_STRING | MF_DISABLED | MF_RIGHTJUSTIFY , ID_EDIT_REPLACE , TEXT ("Replace...\tCtrl+H" ));
95+ AppendMenu (hEditMenu , MF_STRING | MF_DISABLED | MF_RIGHTJUSTIFY , ID_EDIT_GOTO , TEXT ("Go To...\tCtrl+G" ));
96+ AppendMenu (hEditMenu , MF_SEPARATOR , 0 , NULL );
97+ AppendMenu (hEditMenu , MF_STRING | MF_ENABLED | MF_RIGHTJUSTIFY , ID_EDIT_SELECT_ALL , TEXT ("Select All\tCtrl+A" ));
98+ AppendMenu (hEditMenu , MF_STRING | MF_DISABLED | MF_RIGHTJUSTIFY , ID_EDIT_TIMENDATE , TEXT ("Time/Date\tF5" ));
99+
60100 HMENU hFormatMenu = CreateMenu ();
61101 AppendMenu (hFormatMenu , MF_STRING | MF_ENABLED , ID_FORMAT_FONT , TEXT ("Font..." ));
62102
@@ -99,6 +139,8 @@ LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
99139 if (ghEdit == NULL )
100140 ShowLastError (L"Failed to create an EDIT control" );
101141
142+ SetWindowSubclass (ghEdit , EditSubclassProc , 0 , 0 );
143+
102144 ghStatusBar = CreateWindowExW (0 , STATUSCLASSNAMEW , NULL ,
103145 WS_CHILD | WS_VISIBLE | SBARS_SIZEGRIP , 0 , 0 , 0 , 0 ,
104146 hwnd , (HMENU )ID_CONTROL_STATUSBAR , ((LPCREATESTRUCT )lParam )-> hInstance , NULL
0 commit comments