Changeset 275 for trunk/src/pe2lx/menu.cpp
- Timestamp:
- Jul 6, 1999, 10:50:12 AM (26 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/pe2lx/menu.cpp
r97 r275 1 /* $Id: menu.cpp,v 1. 3 1999-06-10 17:08:54 phallerExp $ */1 /* $Id: menu.cpp,v 1.4 1999-07-06 08:50:11 sandervl Exp $ */ 2 2 3 3 /* … … 14 14 #define INCL_DOSPROCESS /* DOS Process values */ 15 15 #define INCL_DOSMISC /* DOS Miscellanous values */ 16 #define INCL_DOSNLS 16 17 #define INCL_WIN 17 18 #include <os2.h> … … 27 28 #include "misc.h" 28 29 29 static int ProcessSubMenu(PopupMenuItem *popupitem, MT_OS2 *os2menu, MTI_OS2 *menuitem, int size );30 static int ProcessMenuItem(NormalMenuItem *popupitem, MT_OS2 *os2menu, MTI_OS2 *menuitem, int size );30 static int ProcessSubMenu(PopupMenuItem *popupitem, MT_OS2 *os2menu, MTI_OS2 *menuitem, int size, int cp); 31 static int ProcessMenuItem(NormalMenuItem *popupitem, MT_OS2 *os2menu, MTI_OS2 *menuitem, int size, int cp); 31 32 static void menustrcpy(char *dest, char *src); 32 33 //****************************************************************************** 33 34 //****************************************************************************** 34 void ShowMenu(int id, MenuHeader *menu, int size )35 void ShowMenu(int id, MenuHeader *menu, int size, int cp) 35 36 { 36 37 PopupMenuItem *popupitem = (PopupMenuItem *)((char *)menu + sizeof(MenuHeader)); … … 39 40 MTI_OS2 *menuitem; 40 41 int newsize; 42 ULONG ulCpSize, ulCP; 41 43 42 44 //First save original win32 resource … … 45 47 os2menu = (MT_OS2 *)malloc(size*4); //should always be sufficient 46 48 os2menu->len = sizeof(MT_OS2) - sizeof(MTI_OS2); 47 os2menu->codepage = 437; 49 if(cp == 0) 50 os2menu->codepage = 437; 51 else 52 { 53 DosQueryCp(sizeof(ulCP), &ulCP, &ulCpSize); 54 os2menu->codepage = ulCP; 55 } 48 56 os2menu->reserved = 4; 49 57 os2menu->cMti = 0; … … 53 61 if(popupitem->fItemFlags & POPUP) { 54 62 cout << "POPUP "; 55 newsize = ProcessSubMenu(popupitem, os2menu, menuitem, size );56 } 57 else newsize = ProcessMenuItem(normalitem, os2menu, menuitem, size );63 newsize = ProcessSubMenu(popupitem, os2menu, menuitem, size, cp); 64 } 65 else newsize = ProcessMenuItem(normalitem, os2menu, menuitem, size, cp); 58 66 59 67 if(popupitem->fItemFlags & ENDMENU) break; … … 70 78 //****************************************************************************** 71 79 //****************************************************************************** 72 static int ProcessSubMenu(PopupMenuItem *popupitem, MT_OS2 *os2menu, MTI_OS2 *menuitem, int size )80 static int ProcessSubMenu(PopupMenuItem *popupitem, MT_OS2 *os2menu, MTI_OS2 *menuitem, int size, int cp) 73 81 { 74 82 NormalMenuItem *normalitem; … … 119 127 else { 120 128 len = (UniStrlen(popupitem->szItemText)+1)*2; 121 cout << UnicodeToAscii(popupitem->szItemText ) << endl;122 menustrcpy(menuitem->c, UnicodeToAscii(popupitem->szItemText ));129 cout << UnicodeToAscii(popupitem->szItemText, cp) << endl; 130 menustrcpy(menuitem->c, UnicodeToAscii(popupitem->szItemText, cp)); 123 131 } 124 132 os2menu->len += sizeof(MTI_OS2); … … 144 152 if(normalitem->fItemFlags & POPUP) { 145 153 cout << "POPUP "; 146 newsize = ProcessSubMenu((PopupMenuItem *)normalitem, submenu, menuitem, size );154 newsize = ProcessSubMenu((PopupMenuItem *)normalitem, submenu, menuitem, size, cp); 147 155 } 148 else newsize = ProcessMenuItem(normalitem, submenu, menuitem, size );156 else newsize = ProcessMenuItem(normalitem, submenu, menuitem, size, cp); 149 157 150 158 menuitem = (MTI_OS2 *)((int)submenu + submenu->len); … … 161 169 //****************************************************************************** 162 170 //****************************************************************************** 163 static int ProcessMenuItem(NormalMenuItem *normalitem, MT_OS2 *os2menu, MTI_OS2 *menuitem, int size )171 static int ProcessMenuItem(NormalMenuItem *normalitem, MT_OS2 *os2menu, MTI_OS2 *menuitem, int size, int cp) 164 172 { 165 173 WCHAR *menustring; … … 226 234 } 227 235 else { 228 cout << UnicodeToAscii(normalitem->szItemText ) << endl;229 menustrcpy(menuitem->c, UnicodeToAscii(normalitem->szItemText ));236 cout << UnicodeToAscii(normalitem->szItemText, cp) << endl; 237 menustrcpy(menuitem->c, UnicodeToAscii(normalitem->szItemText, cp)); 230 238 } 231 239 }
Note:
See TracChangeset
for help on using the changeset viewer.