3 Installer User Interface
7 #--------------------------------
10 Name "${APP_NAME} ${APP_VERSION}"
13 #Default installation folder
14 InstallDir "${SETUP_DEFAULT_DIRECTORY}"
16 #--------------------------------
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
30 #--------------------------------
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}"
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
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
54 !insertmacro MUI_PAGE_DIRECTORY
55 !insertmacro MUI_PAGE_INSTFILES
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
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
76 !insertmacro MUI_UNPAGE_FINISH
78 #--------------------------------
81 !insertmacro IncludeLang "english"
82 !insertmacro IncludeLang "french"
83 !insertmacro IncludeLang "german"
84 !insertmacro IncludeLang "italian"
86 #--------------------------------
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}"
95 #--------------------------------
98 !macro InitDialogExternal COMPONENT CURRENTUSER_POSSIBLE
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)
105 !if ${CURRENTUSER_POSSIBLE} == ${TRUE}
106 !insertmacro MUI_INSTALLOPTIONS_WRITE "external_${COMPONENT}.ini" "Field 2" "Text" "$(TEXT_EXTERNAL_${COMPONENT}_${SETUPTYPE_NAME})"
108 ${if} $AdminOrPowerUser == ${TRUE}
109 !insertmacro MUI_INSTALLOPTIONS_WRITE "external_${COMPONENT}.ini" "Field 2" "Text" "$(TEXT_EXTERNAL_${COMPONENT}_${SETUPTYPE_NAME})"
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"
118 !macro InitDialogExternalDir COMPONENT CURRENTUSER_POSSIBLE
120 !insertmacro MUI_INSTALLOPTIONS_WRITE "external_${COMPONENT}.ini" "Field 4" "State" $Path${COMPONENT}
122 !if ${CURRENTUSER_POSSIBLE} == ${FALSE}
123 ${if} $AdminOrPowerUser == ${TRUE}
126 ${if} $Path${COMPONENT} == ""
127 !insertmacro MUI_INSTALLOPTIONS_WRITE "external_${COMPONENT}.ini" "Field 2" "State" "1"
129 !insertmacro MUI_INSTALLOPTIONS_WRITE "external_${COMPONENT}.ini" "Field 3" "State" "1"
132 !if ${CURRENTUSER_POSSIBLE} == ${FALSE}
134 !insertmacro MUI_INSTALLOPTIONS_WRITE "external_${COMPONENT}.ini" "Field 3" "State" "1"
140 !macro InitDialogLang VAR LANGNAME LANGISOCODE LANGID
142 StrCpy ${VAR} `${VAR}|${LANGNAME}`
146 #--------------------------------
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"
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)
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)
172 !insertmacro InitDialogExternal latex ${TRUE}
173 !insertmacro InitDialogExternal imagemagick ${FALSE}
174 !insertmacro InitDialogExternal ghostscript ${FALSE}
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})
179 !insertmacro MUI_INSTALLOPTIONS_WRITE "langselect.ini" "Field 1" "Text" $(TEXT_LANGUAGE_INFO)
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
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"
190 !insertmacro MUI_INSTALLOPTIONS_WRITE "user.ini" "Field 2" "State" "1"
191 !insertmacro MUI_INSTALLOPTIONS_WRITE "user.ini" "Field 3" "State" "0"
198 Function InitInterface
200 ${if} $AdminOrPowerUser != ${TRUE}
201 MessageBox MB_OK|MB_ICONEXCLAMATION $(TEXT_NO_PRIVILEDGES)
204 Banner::show /NOUNLOAD "Preparing wizard"
208 Call InitSizeExternal