Release 960302
[wine] / programs / progman / string.c
1 /*
2  * Program Manager
3  *
4  * Copyright 1996 Ulrich Schmid
5  */
6
7 #include <windows.h>
8 #include "progman.h"
9
10 /* Class names */
11
12 CHAR STRING_MAIN_WIN_CLASS_NAME[]    = "PMMain";
13 CHAR STRING_MDI_WIN_CLASS_NAME[]     = "MDICLIENT";
14 CHAR STRING_GROUP_WIN_CLASS_NAME[]   = "PMGroup";
15 CHAR STRING_PROGRAM_WIN_CLASS_NAME[] = "PMProgram";
16
17 /* Resource names */
18 /* Xx will be overwritten with En, ... */
19 CHAR STRING_ACCEL[]      = "ACCEL";
20 CHAR STRING_MAIN_Xx[]    = "MENU_Xx";
21 CHAR STRING_NEW_Xx[]     = "DIALOG_NEW_Xx";
22 CHAR STRING_OPEN_Xx[]    = "DIALOG_OPEN_Xx";
23 CHAR STRING_MOVE_Xx[]    = "DIALOG_MOVE_Xx";
24 CHAR STRING_COPY_Xx[]    = "DIALOG_COPY_Xx";
25 CHAR STRING_DELETE_Xx[]  = "DIALOG_DELETE_Xx";
26 CHAR STRING_GROUP_Xx[]   = "DIALOG_GROUP_Xx";
27 CHAR STRING_PROGRAM_Xx[] = "DIALOG_PROGRAM_Xx";
28 CHAR STRING_SYMBOL_Xx[]  = "DIALOG_SYMBOL_Xx";
29 CHAR STRING_EXECUTE_Xx[] = "DIALOG_EXECUTE_Xx";
30
31 static LPCSTR StringTableEn[];
32 static LPCSTR StringTableDe[];
33
34 VOID STRING_SelectLanguage(LPCSTR lang)
35 {
36   /* Change string table */
37   Globals.StringTable = StringTableEn;
38   if (!lstrcmp(lang, "De")) Globals.StringTable = StringTableDe;
39
40   SetWindowText(Globals.hMainWnd, STRING_PROGRAM_MANAGER);
41
42   /* Change Resource names */
43   lstrcpyn(STRING_MAIN_Xx    + sizeof(STRING_MAIN_Xx)    - 3, lang, 3);
44   lstrcpyn(STRING_NEW_Xx     + sizeof(STRING_NEW_Xx)     - 3, lang, 3);
45   lstrcpyn(STRING_OPEN_Xx    + sizeof(STRING_OPEN_Xx)    - 3, lang, 3);
46   lstrcpyn(STRING_MOVE_Xx    + sizeof(STRING_MOVE_Xx)    - 3, lang, 3);
47   lstrcpyn(STRING_COPY_Xx    + sizeof(STRING_COPY_Xx)    - 3, lang, 3);
48   lstrcpyn(STRING_DELETE_Xx  + sizeof(STRING_DELETE_Xx)  - 3, lang, 3);
49   lstrcpyn(STRING_GROUP_Xx   + sizeof(STRING_GROUP_Xx)   - 3, lang, 3);
50   lstrcpyn(STRING_PROGRAM_Xx + sizeof(STRING_PROGRAM_Xx) - 3, lang, 3);
51   lstrcpyn(STRING_SYMBOL_Xx  + sizeof(STRING_SYMBOL_Xx)  - 3, lang, 3);
52   lstrcpyn(STRING_EXECUTE_Xx + sizeof(STRING_EXECUTE_Xx) - 3, lang, 3);
53
54   /* Destroy old menu */
55   if (Globals.hMainMenu)
56   {
57     SendMessage(Globals.hMDIWnd, WM_MDISETMENU, (WPARAM) NULL, (LPARAM) NULL);
58 #if 0 /* FIXME when MDISetMenu is complete */
59     DestroyMenu(Globals.hMainMenu);
60 #endif
61   }
62
63   /* Create new menu */
64   Globals.hMainMenu = LoadMenu(Globals.hInstance, STRING_MAIN_Xx);
65   if (Globals.hMainMenu)
66   {
67     Globals.hFileMenu    = GetSubMenu(Globals.hMainMenu, 0);
68     Globals.hOptionMenu  = GetSubMenu(Globals.hMainMenu, 1);
69     Globals.hWindowsMenu = GetSubMenu(Globals.hMainMenu, 2);
70
71     if (Globals.hMDIWnd)
72       SendMessage(Globals.hMDIWnd, WM_MDISETMENU,
73                   (WPARAM) Globals.hMainMenu,
74                   (LPARAM) Globals.hWindowsMenu);
75     else SetMenu(Globals.hMainWnd, Globals.hMainMenu);
76   }
77   /* Unsupported language */
78   else if(lstrcmp(lang, "En")) STRING_SelectLanguage("En");
79   else
80   {
81     MessageBox(Globals.hMainWnd, "No language found", "FATAL ERROR", MB_OK);
82     PostQuitMessage(1);
83   }
84
85   /* have to be last because of
86    * the possible recursion */
87   Globals.lpszLanguage = lang;
88 }
89
90 /* Local Variables:    */
91 /* c-file-style: "GNU" */
92 /* End:                */