4 * Copyright 1997,98 Marcel Baur <mbaur@g26.ethz.ch>
5 * Copyright 1998 Karl Backstr
\94m <karl_b@geocities.com>
13 CHAR STRING_MENU_Xx[] = "MENU_Xx";
14 CHAR STRING_PAGESETUP_Xx[] = "DIALOG_PAGESETUP_Xx";
16 void LANGUAGE_UpdateWindowCaption(void) {
17 /* Sets the caption of the main window according to Globals.szFileName:
18 Notepad - (untitled) if no file is open
19 Notepad - [filename] if a file is given
22 CHAR szCaption[MAX_STRING_LEN];
23 CHAR szUntitled[MAX_STRING_LEN];
25 LoadString(Globals.hInstance, IDS_NOTEPAD, szCaption, sizeof(szCaption));
27 if (strlen(Globals.szFileName)>0) {
28 lstrcat(szCaption, " - [");
29 lstrcat(szCaption, Globals.szFileName);
30 lstrcat(szCaption, "]");
34 LoadString(Globals.hInstance, IDS_UNTITLED, szUntitled, sizeof(szUntitled));
35 lstrcat(szCaption, " - ");
36 lstrcat(szCaption, szUntitled);
39 SetWindowText(Globals.hMainWnd, szCaption);
45 static BOOL LANGUAGE_LoadStringOther(UINT num, UINT ids, LPSTR str, UINT len)
49 ids -= Globals.wStringTableOffset;
52 bOk = LoadString(Globals.hInstance, ids, str, len);
59 VOID LANGUAGE_SelectByName(LPCSTR lang)
64 for (i = 0; i <= MAX_LANGUAGE_NUMBER; i++)
65 if (LANGUAGE_LoadStringOther(i, IDS_LANGUAGE_ID, newlang, sizeof(newlang)) &&
66 !lstrcmp(lang, newlang))
68 LANGUAGE_SelectByNumber(i);
73 for (i = 0; i <= MAX_LANGUAGE_NUMBER; i++)
74 if (LANGUAGE_LoadStringOther(i, IDS_LANGUAGE_ID, newlang, sizeof(newlang)))
76 LANGUAGE_SelectByNumber(i);
80 MessageBox(Globals.hMainWnd, "No language found", "FATAL ERROR", MB_OK);
84 VOID LANGUAGE_SelectByNumber(UINT num)
88 CHAR item[MAX_STRING_LEN];
91 /* Select string table */
92 Globals.wStringTableOffset = num * 0x100;
95 LoadString(Globals.hInstance, IDS_LANGUAGE_ID, lang, sizeof(lang));
97 /* Set frame caption */
98 LANGUAGE_UpdateWindowCaption();
100 /* Change Resource names */
101 lstrcpyn(STRING_MENU_Xx + sizeof(STRING_MENU_Xx) - 3, lang, 3);
102 lstrcpyn(STRING_PAGESETUP_Xx + sizeof(STRING_PAGESETUP_Xx) - 3, lang, 3);
105 hMainMenu = LoadMenu(Globals.hInstance, STRING_MENU_Xx);
106 Globals.hFileMenu = GetSubMenu(hMainMenu, 0);
107 Globals.hEditMenu = GetSubMenu(hMainMenu, 1);
108 Globals.hSearchMenu = GetSubMenu(hMainMenu, 2);
109 Globals.hLanguageMenu = GetSubMenu(hMainMenu, 3);
110 Globals.hHelpMenu = GetSubMenu(hMainMenu, 4);
112 /* Remove dummy item */
113 RemoveMenu(Globals.hLanguageMenu, 0, MF_BYPOSITION);
114 /* Add language items */
115 for (i = 0; i <= MAX_LANGUAGE_NUMBER; i++)
116 if (LANGUAGE_LoadStringOther(i, IDS_LANGUAGE_MENU_ITEM, item, sizeof(item)))
117 AppendMenu(Globals.hLanguageMenu, MF_STRING | MF_BYCOMMAND,
118 NP_FIRST_LANGUAGE + i, item);
120 SetMenu(Globals.hMainWnd, hMainMenu);
122 /* Destroy old menu */
123 if (Globals.hMainMenu) DestroyMenu(Globals.hMainMenu);
124 Globals.hMainMenu = hMainMenu;
127 VOID LANGUAGE_DefaultHandle(WPARAM wParam)
129 if ((wParam >=NP_FIRST_LANGUAGE) && (wParam<=NP_LAST_LANGUAGE))
130 LANGUAGE_SelectByNumber(wParam - NP_FIRST_LANGUAGE);
131 else printf("Unimplemented menu command %i\n", wParam);