]> git.lyx.org Git - lyx.git/blob - development/Win32/packaging/installer/include/gui.nsh
LyX 1.5 Windows installer
[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   \r
184   ;Set state of user dialog\r
185   ${if} $CurrentUserInstall == ${TRUE}\r
186     !insertmacro MUI_INSTALLOPTIONS_WRITE "user.ini" "Field 2" "State" "0"\r
187     !insertmacro MUI_INSTALLOPTIONS_WRITE "user.ini" "Field 3" "State" "1"\r
188   ${else}\r
189     !insertmacro MUI_INSTALLOPTIONS_WRITE "user.ini" "Field 2" "State" "1"\r
190     !insertmacro MUI_INSTALLOPTIONS_WRITE "user.ini" "Field 3" "State" "0"\r
191   ${endif}\r
192   \r
193   Pop $R0\r
194 \r
195 FunctionEnd\r
196 \r
197 Function InitInterface\r
198 \r
199   ${if} $AdminOrPowerUser != ${TRUE}\r
200     MessageBox MB_OK|MB_ICONEXCLAMATION $(TEXT_NO_PRIVILEDGES)\r
201   ${endif}\r
202 \r
203   Banner::show /NOUNLOAD "Preparing wizard"\r
204 \r
205   Call InitDialogs\r
206   Call InitLanguage  \r
207   Call InitSizeExternal\r
208   Call InitSizeViewer\r
209   \r
210   Banner::destroy\r
211 \r
212 FunctionEnd\r