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