]> git.lyx.org Git - lyx.git/blob - development/Win32/packaging/installer/include/gui.nsh
i18n improvements:
[lyx.git] / development / Win32 / packaging / installer / include / gui.nsh
1 /*\r
2 \r
3 Installer User Interface\r
4 \r
5 */\r
6 \r
7 ;--------------------------------\r
8 ;General\r
9 \r
10 Name "${APP_NAME} ${APP_VERSION}"\r
11 BrandingText " "\r
12 \r
13 ;Default installation folder\r
14 InstallDir "${SETUP_DEFAULT_DIRECTORY}"\r
15 \r
16 ;--------------------------------\r
17 ;Interface settings\r
18 \r
19 !define MUI_ABORTWARNING\r
20 !define MUI_ICON "${SETUP_ICON}"\r
21 !define MUI_UNICON "${SETUP_ICON}"\r
22 !define MUI_HEADERIMAGE\r
23 !define MUI_HEADERIMAGE_BITMAP "${SETUP_HEADERIMAGE}"\r
24 !define MUI_HEADERIMAGE_RIGHT\r
25 !define MUI_WELCOMEFINISHPAGE_BITMAP "${SETUP_WIZARDIMAGE}"\r
26 !define MUI_UNWELCOMEFINISHPAGE_BITMAP "${SETUP_WIZARDIMAGE}"\r
27 !define MUI_CUSTOMFUNCTION_GUIINIT InitInterface\r
28 !define MUI_COMPONENTSPAGE_NODESC\r
29 \r
30 ;--------------------------------\r
31 ;Pages\r
32 \r
33 ;Installer\r
34 \r
35 !define MUI_WELCOMEPAGE_TITLE_3LINES\r
36 !define MUI_WELCOMEPAGE_TEXT $(TEXT_WELCOME_${SETUPTYPE_NAME})\r
37 !insertmacro MUI_PAGE_WELCOME\r
38 !insertmacro MUI_PAGE_LICENSE "${FILES_LICENSE}"\r
39 \r
40 Page custom PageUser PageUserValidate\r
41 Page custom PageReinstall PageReinstallValidate\r
42 Page custom PageExternalLaTeX PageExternalLaTeXValidate\r
43 Page custom PageExternalImageMagick PageExternalImageMagickValidate\r
44 Page custom PageExternalGhostscript PageExternalGhostscriptValidate\r
45 Page custom PageViewer PageViewerValidate\r
46 Page custom PageLanguage PageLanguageValidate\r
47 \r
48 !define MUI_PAGE_HEADER_TEXT $(TEXT_DICT_TITLE)\r
49 !define MUI_PAGE_HEADER_SUBTEXT $(TEXT_DICT_SUBTITLE)\r
50 !define MUI_COMPONENTSPAGE_TEXT_TOP $(TEXT_DICT_TOP)\r
51 !define MUI_COMPONENTSPAGE_TEXT_COMPLIST $(TEXT_DICT_LIST)\r
52 !insertmacro MUI_PAGE_COMPONENTS ;For spell checker dictionaries\r
53 \r
54 !insertmacro MUI_PAGE_DIRECTORY\r
55 !insertmacro MUI_PAGE_INSTFILES\r
56 \r
57 !define MUI_FINISHPAGE_RUN "$INSTDIR\${APP_RUN}"\r
58 !define MUI_FINISHPAGE_SHOWREADME\r
59 !define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED\r
60 !define MUI_FINISHPAGE_SHOWREADME_FUNCTION CreateDesktopShortcut\r
61 !define MUI_FINISHPAGE_SHOWREADME_TEXT $(TEXT_FINISH_DESKTOP)\r
62 !define MUI_FINISHPAGE_LINK $(TEXT_FINISH_WEBSITE)\r
63 !define MUI_FINISHPAGE_LINK_LOCATION "http://www.lyx.org/"\r
64 !define MUI_PAGE_CUSTOMFUNCTION_PRE CheckDesktopShortcut\r
65 !insertmacro MUI_PAGE_FINISH\r
66 \r
67 ;Uninstaller\r
68 \r
69 !define MUI_WELCOMEPAGE_TITLE_3LINES\r
70 !define MUI_WELCOMEPAGE_TEXT $(UNTEXT_WELCOME)\r
71 !insertmacro MUI_UNPAGE_WELCOME\r
72 !insertmacro MUI_UNPAGE_CONFIRM\r
73 !insertmacro MUI_UNPAGE_COMPONENTS\r
74 !insertmacro MUI_UNPAGE_INSTFILES\r
75 \r
76 !insertmacro MUI_UNPAGE_FINISH\r
77 \r
78 ;--------------------------------\r
79 ;Installer Languages\r
80 \r
81 !insertmacro IncludeLang "english"\r
82 !insertmacro IncludeLang "french"\r
83 !insertmacro IncludeLang "german"\r
84 !insertmacro IncludeLang "italian"\r
85 \r
86 ;--------------------------------\r
87 ;Version information\r
88 \r
89 VIProductVersion "${APP_VERSION_NUMBER}"\r
90 VIAddVersionKey /LANG=${LANG_ENGLISH} "ProductName" "${APP_NAME}"\r
91 VIAddVersionKey /LANG=${LANG_ENGLISH} "FileDescription" "${APP_INFO}"\r
92 VIAddVersionKey /LANG=${LANG_ENGLISH} "FileVersion" "${APP_VERSION}"\r
93 VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalCopyright" "${APP_COPYRIGHT}"\r
94 \r
95 ;--------------------------------\r
96 ;Macros\r
97 \r
98 !macro InitDialogExternal COMPONENT CURRENTUSER_POSSIBLE\r
99 \r
100   !insertmacro MUI_INSTALLOPTIONS_WRITE "external_${COMPONENT}.ini" "Field 1" "Text" $(TEXT_EXTERNAL_${COMPONENT}_INFO_${SETUPTYPE_NAME})\r
101   !insertmacro MUI_INSTALLOPTIONS_WRITE "external_${COMPONENT}.ini" "Field 3" "Text" $(TEXT_EXTERNAL_${COMPONENT}_FOLDER)\r
102   !insertmacro MUI_INSTALLOPTIONS_WRITE "external_${COMPONENT}.ini" "Field 5" "Text" $(TEXT_EXTERNAL_${COMPONENT}_FOLDER_INFO)\r
103   !insertmacro MUI_INSTALLOPTIONS_WRITE "external_${COMPONENT}.ini" "Field 6" "Text" $(TEXT_EXTERNAL_${COMPONENT}_NONE)\r
104   \r
105   !if ${CURRENTUSER_POSSIBLE} == ${TRUE}\r
106     !insertmacro MUI_INSTALLOPTIONS_WRITE "external_${COMPONENT}.ini" "Field 2" "Text" "$(TEXT_EXTERNAL_${COMPONENT}_${SETUPTYPE_NAME})"\r
107   !else  \r
108     ${if} $AdminOrPowerUser == ${TRUE}\r
109       !insertmacro MUI_INSTALLOPTIONS_WRITE "external_${COMPONENT}.ini" "Field 2" "Text" "$(TEXT_EXTERNAL_${COMPONENT}_${SETUPTYPE_NAME})"\r
110     ${else}\r
111       !insertmacro MUI_INSTALLOPTIONS_WRITE "external_${COMPONENT}.ini" "Field 2" "Text" "$(TEXT_EXTERNAL_${COMPONENT}_${SETUPTYPE_NAME}) $(TEXT_EXTERNAL_NOPRIVILEDGES)"\r
112       !insertmacro MUI_INSTALLOPTIONS_WRITE "external_${COMPONENT}.ini" "Field 2" "Flags" "DISABLED"\r
113     ${endif}\r
114   !endif\r
115   \r
116 !macroend\r
117 \r
118 !macro InitDialogExternalDir COMPONENT CURRENTUSER_POSSIBLE\r
119 \r
120   !insertmacro MUI_INSTALLOPTIONS_WRITE "external_${COMPONENT}.ini" "Field 4" "State" $Path${COMPONENT}\r
121   \r
122   !if ${CURRENTUSER_POSSIBLE} == ${FALSE}\r
123     ${if} $AdminOrPowerUser == ${TRUE}\r
124   !endif\r
125   \r
126     ${if} $Path${COMPONENT} == ""\r
127       !insertmacro MUI_INSTALLOPTIONS_WRITE "external_${COMPONENT}.ini" "Field 2" "State" "1"\r
128     ${else}\r
129       !insertmacro MUI_INSTALLOPTIONS_WRITE "external_${COMPONENT}.ini" "Field 3" "State" "1"\r
130     ${endif}\r
131     \r
132   !if ${CURRENTUSER_POSSIBLE} == ${FALSE}\r
133     ${else}\r
134       !insertmacro MUI_INSTALLOPTIONS_WRITE "external_${COMPONENT}.ini" "Field 3" "State" "1"\r
135     ${endif}\r
136   !endif\r
137   \r
138 !macroend\r
139 \r
140 !macro InitDialogLang VAR LANGNAME LANGISOCODE LANGID\r
141 \r
142   StrCpy ${VAR} `${VAR}|${LANGNAME}`\r
143 \r
144 !macroend\r
145 \r
146 ;--------------------------------\r
147 ;Functions\r
148 \r
149 Function InitDialogs\r
150 \r
151   Push $R0\r
152 \r
153   ;Extract dialogs\r
154   \r
155   !insertmacro MUI_INSTALLOPTIONS_EXTRACT_AS "dialogs\user.ini" "user.ini"\r
156   !insertmacro MUI_INSTALLOPTIONS_EXTRACT_AS "dialogs\reinstall.ini" "reinstall.ini"\r
157   !insertmacro MUI_INSTALLOPTIONS_EXTRACT_AS "dialogs\external.ini" "external_latex.ini"\r
158   !insertmacro MUI_INSTALLOPTIONS_EXTRACT_AS "dialogs\external.ini" "external_imagemagick.ini"\r
159   !insertmacro MUI_INSTALLOPTIONS_EXTRACT_AS "dialogs\external.ini" "external_ghostscript.ini"\r
160   !insertmacro MUI_INSTALLOPTIONS_EXTRACT_AS "dialogs\viewer.ini" "viewer.ini"\r
161   !insertmacro MUI_INSTALLOPTIONS_EXTRACT_AS "dialogs\langselect.ini" "langselect.ini"\r
162   \r
163   ;Write texts\r
164   \r
165   !insertmacro MUI_INSTALLOPTIONS_WRITE "user.ini" "Field 1" "Text" $(TEXT_USER_INFO)\r
166   !insertmacro MUI_INSTALLOPTIONS_WRITE "user.ini" "Field 2" "Text" $(TEXT_USER_ALL)\r
167   !insertmacro MUI_INSTALLOPTIONS_WRITE "user.ini" "Field 3" "Text" $(TEXT_USER_CURRENT)\r
168   \r
169   !insertmacro MUI_INSTALLOPTIONS_WRITE "reinstall.ini" "Field 1" "Text" $(TEXT_REINSTALL_INFO)\r
170   !insertmacro MUI_INSTALLOPTIONS_WRITE "reinstall.ini" "Field 2" "Text" $(TEXT_REINSTALL_ENABLE)\r
171   \r
172   !insertmacro InitDialogExternal latex ${TRUE}\r
173   !insertmacro InitDialogExternal imagemagick ${FALSE}\r
174   !insertmacro InitDialogExternal ghostscript ${FALSE}\r
175   \r
176   !insertmacro MUI_INSTALLOPTIONS_WRITE "viewer.ini" "Field 1" "Text" $(TEXT_VIEWER_INFO_${SETUPTYPE_NAME})\r
177   !insertmacro MUI_INSTALLOPTIONS_WRITE "viewer.ini" "Field 2" "Text" $(TEXT_VIEWER_${SETUPTYPE_NAME})\r
178   \r
179   !insertmacro MUI_INSTALLOPTIONS_WRITE "langselect.ini" "Field 1" "Text" $(TEXT_LANGUAGE_INFO)\r
180   StrCpy $R0 ""\r
181   !insertmacro LanguageList '!insertmacro InitDialogLang $R0'\r
182   !insertmacro MUI_INSTALLOPTIONS_WRITE "langselect.ini" "Field 2" "ListItems" $R0\r
183   !insertmacro MUI_INSTALLOPTIONS_WRITE "langselect.ini" "Field 2" "State" "English" ;Default language\r
184   \r
185   ;Set state of user dialog\r
186   ${if} $CurrentUserInstall == ${TRUE}\r
187     !insertmacro MUI_INSTALLOPTIONS_WRITE "user.ini" "Field 2" "State" "0"\r
188     !insertmacro MUI_INSTALLOPTIONS_WRITE "user.ini" "Field 3" "State" "1"\r
189   ${else}\r
190     !insertmacro MUI_INSTALLOPTIONS_WRITE "user.ini" "Field 2" "State" "1"\r
191     !insertmacro MUI_INSTALLOPTIONS_WRITE "user.ini" "Field 3" "State" "0"\r
192   ${endif}\r
193   \r
194   Pop $R0\r
195 \r
196 FunctionEnd\r
197 \r
198 Function InitInterface\r
199 \r
200   ${if} $AdminOrPowerUser != ${TRUE}\r
201     MessageBox MB_OK|MB_ICONEXCLAMATION $(TEXT_NO_PRIVILEDGES)\r
202   ${endif}\r
203 \r
204   Banner::show /NOUNLOAD "Preparing wizard"\r
205 \r
206   Call InitDialogs\r
207   Call InitLanguage  \r
208   Call InitSizeExternal\r
209   Call InitSizeViewer\r
210   \r
211   Banner::destroy\r
212 \r
213 FunctionEnd\r