diff --git a/sys/wince/mhcmd.c b/sys/wince/mhcmd.c index 7b7ad2170..4240a49a8 100644 --- a/sys/wince/mhcmd.c +++ b/sys/wince/mhcmd.c @@ -692,7 +692,12 @@ void CalculateCellSize(HWND hWnd, LPSIZE pSize) hdc = GetDC(hWnd); pSize->cx = (clrt.right - clrt.left)/NH_CMDPAD_COLS; - pSize->cy = max(pSize->cx, 10*GetDeviceCaps(hdc, LOGPIXELSY)/72); + pSize->cy = min( + max( pSize->cx, + 10*GetDeviceCaps(hdc, LOGPIXELSY)/72 // minimum cell size - 10 points + ), + 20*GetDeviceCaps(hdc, LOGPIXELSY)/72 // maximum cell size - 20 points + ); ReleaseDC(hWnd, hdc); } diff --git a/sys/wince/mhmain.c b/sys/wince/mhmain.c index 839c8b483..a78f219a0 100644 --- a/sys/wince/mhmain.c +++ b/sys/wince/mhmain.c @@ -32,6 +32,7 @@ static void register_main_window_class(); static void select_map_mode(int map_mode); static int menuid2mapmode(int menuid); static int mapmode2menuid(int map_mode); +static HMENU _get_main_menu(); HWND mswin_init_main_window () { static int run_once = 0; @@ -731,6 +732,17 @@ LRESULT onWMCommand(HWND hWnd, WPARAM wParam, LPARAM lParam) } break; + case IDM_VIEW_KEYPAD: + GetNHApp()->bCmdPad = !GetNHApp()->bCmdPad; + CheckMenuItem( + _get_main_menu(), + IDM_VIEW_KEYPAD, + MF_BYCOMMAND | + (GetNHApp()->bCmdPad? MF_CHECKED : MF_UNCHECKED) + ); + mswin_layout_main_window(data->hCmdWnd); + break; + case IDM_HELP_LONG: display_file(HELP, TRUE); break; @@ -834,27 +846,16 @@ void mswin_select_map_mode(int mode) HMENU hmenuMap; PNHMainWindow data; winid map_id; -#ifndef WIN_CE_2xx - TBBUTTONINFO tbbi; -#endif map_id = WIN_MAP; data = (PNHMainWindow)GetWindowLong(GetNHApp()->hMainWnd, GWL_USERDATA); + hmenuMap = _get_main_menu(); /* override for Rogue level */ #ifdef REINCARNATION if( Is_rogue_level(&u.uz) && !IS_MAP_ASCII(mode) ) return; #endif -#ifndef WIN_CE_2xx - tbbi.cbSize = sizeof(tbbi); - tbbi.dwMask = TBIF_LPARAM; - SendMessage( GetNHApp()->hMenuBar, TB_GETBUTTONINFO, ID_MAP, (LPARAM)&tbbi); - hmenuMap = (HMENU)tbbi.lParam; -#else - hmenuMap = CommandBar_GetMenu(GetNHApp()->hMenuBar, 0); -#endif - /* set map mode menu mark */ if( IS_MAP_ASCII(mode) ) { CheckMenuRadioItem( @@ -930,3 +931,21 @@ int mapmode2menuid(int map_mode) if(p->mapMode==map_mode ) return p->menuID; return -1; } + +HMENU _get_main_menu() +{ + HMENU hmenuMap; +#ifndef WIN_CE_2xx + TBBUTTONINFO tbbi; +#endif + +#ifndef WIN_CE_2xx + tbbi.cbSize = sizeof(tbbi); + tbbi.dwMask = TBIF_LPARAM; + SendMessage( GetNHApp()->hMenuBar, TB_GETBUTTONINFO, ID_MAP, (LPARAM)&tbbi); + hmenuMap = (HMENU)tbbi.lParam; +#else + hmenuMap = CommandBar_GetMenu(GetNHApp()->hMenuBar, 0); +#endif + return hmenuMap; +} \ No newline at end of file diff --git a/sys/wince/resource.h b/sys/wince/resource.h index c5b41261a..1e6dc6c13 100644 --- a/sys/wince/resource.h +++ b/sys/wince/resource.h @@ -137,13 +137,14 @@ #define ID_MAP 32797 #define IDS_CAP_AMP 32798 #define IDS_CAP_MAP 32799 +#define IDM_VIEW_KEYPAD 32800 // Next default values for new objects // #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 148 -#define _APS_NEXT_COMMAND_VALUE 32800 +#define _APS_NEXT_COMMAND_VALUE 32801 #define _APS_NEXT_CONTROL_VALUE 1333 #define _APS_NEXT_SYMED_VALUE 110 #endif diff --git a/sys/wince/winhack.rc b/sys/wince/winhack.rc index 4eeff0d37..ec93197e6 100644 --- a/sys/wince/winhack.rc +++ b/sys/wince/winhack.rc @@ -32,7 +32,7 @@ IDI_WINHACK ICON DISCARDABLE "NETHACK.ICO" ///////////////////////////////////////////////////////////////////////////// // -// Menubar +// Menu // IDC_WINHACK MENU DISCARDABLE @@ -58,6 +58,10 @@ BEGIN MENUITEM SEPARATOR MENUITEM "&Fit To Screen", IDM_MAP_FIT_TO_SCREEN END + POPUP "View" + BEGIN + MENUITEM "&Keypad", IDM_VIEW_KEYPAD + END POPUP "Help" BEGIN MENUITEM "&About ...", IDM_ABOUT @@ -257,15 +261,11 @@ END // Data // -IDC_WINHACK SHMENUBAR DISCARDABLE +IDC_WINHACK RCDATA DISCARDABLE BEGIN - IDC_WINHACK, 3, - I_IMAGENONE, ID_FILE, TBSTATE_ENABLED, - TBSTYLE_DROPDOWN | TBSTYLE_AUTOSIZE, IDS_CAP_FILE, 0, 0, - I_IMAGENONE, ID_MAP, TBSTATE_ENABLED, - TBSTYLE_DROPDOWN | TBSTYLE_AUTOSIZE, IDS_CAP_MAP, 0, 1, - I_IMAGENONE, ID_HELP, TBSTATE_ENABLED, - TBSTYLE_DROPDOWN | TBSTYLE_AUTOSIZE, IDS_CAP_HELP, 0, 2, + 0x006d, 0x0003, 0xfffe, 0x8018, 0x0004, 0x0018, 0x8019, 0x0000, 0x0000, + 0xfffe, 0x801d, 0x0004, 0x0018, 0x801f, 0x0000, 0x0001, 0xfffe, 0x801a, + 0x0004, 0x0018, 0x801b, 0x0000, 0x0002 END @@ -333,6 +333,11 @@ BEGIN IDS_CAP_MAP "Map" END +STRINGTABLE DISCARDABLE +BEGIN + IDM_VIEW_KEYPAD "Show/Hide keypad." +END + #endif // English (U.S.) resources /////////////////////////////////////////////////////////////////////////////