Finish.nsh 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510
  1. /*
  2. NSIS Modern User Interface
  3. Finish page (implemented using nsDialogs)
  4. */
  5. ;--------------------------------
  6. ;Page interface settings and variables
  7. !macro MUI_FINISHPAGE_INTERFACE
  8. !ifndef MUI_FINISHPAGE_INTERFACE
  9. !define MUI_FINISHPAGE_INTERFACE
  10. Var mui.FinishPage
  11. Var mui.FinishPage.Image
  12. Var mui.FinishPage.Image.Bitmap
  13. Var mui.FinishPage.Title
  14. Var mui.FinishPage.Title.Font
  15. Var mui.FinishPage.Text
  16. !endif
  17. !ifndef MUI_FINISHPAGE_NOREBOOTSUPPORT
  18. !ifndef MUI_FINISHPAGE_RETURNVALUE_VARIABLES
  19. !define MUI_FINISHPAGE_RETURNVALUE_VARIABLES
  20. Var mui.FinishPage.ReturnValue
  21. !endif
  22. !else ifdef MUI_FINISHPAGE_RUN | MUI_FINISHPAGE_SHOWREADME
  23. !ifndef MUI_FINISHPAGE_RETURNVALUE_VARIABLES
  24. !define MUI_FINISHPAGE_RETURNVALUE_VARIABLES
  25. Var mui.FinishPage.ReturnValue
  26. !endif
  27. !endif
  28. !ifdef MUI_FINISHPAGE_CANCEL_ENABLED
  29. !ifndef MUI_FINISHPAGE_CANCEL_ENABLED_VARIABLES
  30. !define MUI_FINISHPAGE_CANCEL_ENABLED_VARIABLES
  31. Var mui.FinishPage.DisableAbortWarning
  32. !endif
  33. !endif
  34. !ifdef MUI_FINISHPAGE_RUN
  35. !ifndef MUI_FINISHPAGE_RUN_VARIABLES
  36. !define MUI_FINISHPAGE_RUN_VARIABLES
  37. Var mui.FinishPage.Run
  38. !endif
  39. !endif
  40. !ifdef MUI_FINISHPAGE_SHOWREADME
  41. !ifndef MUI_FINISHPAGE_SHOWREADME_VARIABLES
  42. !define MUI_FINISHPAGE_SHOWREADME_VARIABLES
  43. Var mui.FinishPage.ShowReadme
  44. !endif
  45. !endif
  46. !ifdef MUI_FINISHPAGE_LINK
  47. !ifndef MUI_FINISHPAGE_LINK_VARIABLES
  48. !define MUI_FINISHPAGE_LINK_VARIABLES
  49. Var mui.FinishPage.Link
  50. !endif
  51. !endif
  52. !ifndef MUI_FINISHPAGE_NOREBOOTSUPPORT
  53. !ifndef MUI_FINISHPAGE_REBOOT_VARIABLES
  54. !define MUI_FINISHPAGE_REBOOT_VARIABLES
  55. Var mui.FinishPage.RebootNow
  56. Var mui.FinishPage.RebootLater
  57. !endif
  58. !endif
  59. !insertmacro MUI_DEFAULT MUI_${MUI_PAGE_UNINSTALLER_PREFIX}WELCOMEFINISHPAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Wizard\win.bmp"
  60. !if "${MUI_${MUI_PAGE_UNINSTALLER_PREFIX}WELCOMEFINISHPAGE_BITMAP}" == ""
  61. !error "Invalid MUI_${MUI_PAGE_UNINSTALLER_PREFIX}WELCOMEFINISHPAGE_BITMAP"
  62. !endif
  63. !macroend
  64. ;--------------------------------
  65. ;Interface initialization
  66. !macro MUI_FINISHPAGE_GUIINIT
  67. !ifndef MUI_${MUI_PAGE_UNINSTALLER_PREFIX}WELCOMEFINISHPAGE_GUINIT
  68. !define MUI_${MUI_PAGE_UNINSTALLER_PREFIX}WELCOMEFINISHPAGE_GUINIT
  69. Function ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.FinishPage.GUIInit
  70. InitPluginsDir
  71. StubFile "/oname=$PLUGINSDIR\modern-wizard.bmp" "${MUI_${MUI_PAGE_UNINSTALLER_PREFIX}WELCOMEFINISHPAGE_BITMAP}"
  72. !pragma verifyloadimage "${MUI_${MUI_PAGE_UNINSTALLER_PREFIX}WELCOMEFINISHPAGE_BITMAP}"
  73. !ifdef MUI_${MUI_PAGE_UNINSTALLER_PREFIX}PAGE_FUNCTION_GUIINIT
  74. Call "${MUI_${MUI_PAGE_UNINSTALLER_PREFIX}PAGE_FUNCTION_GUIINIT}"
  75. !endif
  76. !ifndef MUI_${MUI_PAGE_UNINSTALLER_PREFIX}FINISHPAGE_NOAUTOCLOSE
  77. SetAutoClose true
  78. !endif
  79. FunctionEnd
  80. !insertmacro MUI_SET MUI_${MUI_PAGE_UNINSTALLER_PREFIX}PAGE_FUNCTION_GUIINIT ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.FinishPage.GUIInit
  81. !endif
  82. !macroend
  83. ;--------------------------------
  84. ;Abort warning
  85. !macro MUI_FINISHPAGE_ABORTWARNING
  86. !ifdef MUI_FINISHPAGE_CANCEL_ENABLED
  87. !ifndef MUI_${MUI_PAGE_UNINSTALLER_PREFIX}FINISHPAGE_ABORTWARNING
  88. !define MUI_${MUI_PAGE_UNINSTALLER_PREFIX}FINISHPAGE_ABORTWARNING
  89. Function ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.FinishPage.AbortWarning
  90. ${if} $mui.FinishPage.DisableAbortWarning == "1"
  91. Quit
  92. ${endif}
  93. !ifdef MUI_${MUI_PAGE_UNINSTALLER_PREFIX}PAGE_FUNCTION_ABORTWARNING
  94. Call ${MUI_${MUI_PAGE_UNINSTALLER_PREFIX}PAGE_FUNCTION_ABORTWARNING}
  95. !endif
  96. FunctionEnd
  97. !insertmacro MUI_SET MUI_${MUI_PAGE_UNINSTALLER_PREFIX}PAGE_FUNCTION_ABORTWARNING ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.FinishPage.AbortWarning
  98. !endif
  99. !endif
  100. !macroend
  101. ;--------------------------------
  102. ;Page declaration
  103. !macro MUI_PAGEDECLARATION_FINISH
  104. !insertmacro MUI_SET MUI_${MUI_PAGE_UNINSTALLER_PREFIX}FINISHPAGE ""
  105. !insertmacro MUI_FINISHPAGE_INTERFACE
  106. !insertmacro MUI_FINISHPAGE_GUIINIT
  107. !insertmacro MUI_FINISHPAGE_ABORTWARNING
  108. !insertmacro MUI_DEFAULT MUI_FINISHPAGE_TITLE "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_FINISH_INFO_TITLE)"
  109. !insertmacro MUI_DEFAULT MUI_FINISHPAGE_TEXT "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_FINISH_INFO_TEXT)"
  110. !insertmacro MUI_DEFAULT MUI_FINISHPAGE_BUTTON "$(MUI_BUTTONTEXT_FINISH)"
  111. !insertmacro MUI_DEFAULT MUI_FINISHPAGE_TEXT_REBOOT "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_FINISH_INFO_REBOOT)"
  112. !insertmacro MUI_DEFAULT MUI_FINISHPAGE_TEXT_REBOOTNOW "$(MUI_TEXT_FINISH_REBOOTNOW)"
  113. !insertmacro MUI_DEFAULT MUI_FINISHPAGE_TEXT_REBOOTLATER "$(MUI_TEXT_FINISH_REBOOTLATER)"
  114. !insertmacro MUI_DEFAULT MUI_FINISHPAGE_RUN_TEXT "$(MUI_TEXT_FINISH_RUN)"
  115. !insertmacro MUI_DEFAULT MUI_FINISHPAGE_SHOWREADME_TEXT "$(MUI_TEXT_FINISH_SHOWREADME)"
  116. !insertmacro MUI_DEFAULT MUI_FINISHPAGE_LINK_COLOR "000080"
  117. !insertmacro MUI_PAGE_FUNCTION_FULLWINDOW
  118. PageEx ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}custom
  119. PageCallbacks ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.FinishPage.Pre_${MUI_UNIQUEID} \
  120. ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.FinishPage.Leave_${MUI_UNIQUEID}
  121. Caption " "
  122. PageExEnd
  123. !insertmacro MUI_FUNCTION_FINISHPAGE ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.FinishPage.Pre_${MUI_UNIQUEID} \
  124. ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.FinishPage.Leave_${MUI_UNIQUEID} \
  125. ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.FinishPage.Link_${MUI_UNIQUEID}
  126. !insertmacro MUI_UNSET MUI_FINISHPAGE_TITLE
  127. !insertmacro MUI_UNSET MUI_FINISHPAGE_TITLE_3LINES
  128. !insertmacro MUI_UNSET MUI_FINISHPAGE_TEXT
  129. !insertmacro MUI_UNSET MUI_FINISHPAGE_TEXT_LARGE
  130. !insertmacro MUI_UNSET MUI_FINISHPAGE_BUTTON
  131. !insertmacro MUI_UNSET MUI_FINISHPAGE_CANCEL_ENABLED
  132. !insertmacro MUI_UNSET MUI_FINISHPAGE_TEXT_REBOOT
  133. !insertmacro MUI_UNSET MUI_FINISHPAGE_TEXT_REBOOTNOW
  134. !insertmacro MUI_UNSET MUI_FINISHPAGE_TEXT_REBOOTLATER
  135. !insertmacro MUI_UNSET MUI_FINISHPAGE_REBOOTLATER_DEFAULT
  136. !insertmacro MUI_UNSET MUI_FINISHPAGE_RUN
  137. !insertmacro MUI_UNSET MUI_FINISHPAGE_RUN_TEXT
  138. !insertmacro MUI_UNSET MUI_FINISHPAGE_RUN_PARAMETERS
  139. !insertmacro MUI_UNSET MUI_FINISHPAGE_RUN_NOTCHECKED
  140. !insertmacro MUI_UNSET MUI_FINISHPAGE_RUN_FUNCTION
  141. !insertmacro MUI_UNSET MUI_FINISHPAGE_SHOWREADME
  142. !insertmacro MUI_UNSET MUI_FINISHPAGE_SHOWREADME_TEXT
  143. !insertmacro MUI_UNSET MUI_FINISHPAGE_SHOWREADME_NOTCHECKED
  144. !insertmacro MUI_UNSET MUI_FINISHPAGE_SHOWREADME_FUNCTION
  145. !insertmacro MUI_UNSET MUI_FINISHPAGE_LINK
  146. !insertmacro MUI_UNSET MUI_FINISHPAGE_LINK_LOCATION
  147. !insertmacro MUI_UNSET MUI_FINISHPAGE_LINK_COLOR
  148. !insertmacro MUI_UNSET MUI_FINISHPAGE_NOREBOOTSUPPORT
  149. !insertmacro MUI_UNSET MUI_FINISHPAGE_ABORTWARNINGCHECK
  150. !insertmacro MUI_UNSET MUI_FINISHPAGE_CURFIELD_TOP
  151. !insertmacro MUI_UNSET MUI_FINISHPAGE_CURFIELD_BOTTOM
  152. !macroend
  153. !macro MUI_PAGE_FINISH
  154. !verbose push
  155. !verbose ${MUI_VERBOSE}
  156. !insertmacro MUI_PAGE_INIT
  157. !insertmacro MUI_PAGEDECLARATION_FINISH
  158. !verbose pop
  159. !macroend
  160. !macro MUI_UNPAGE_FINISH
  161. !verbose push
  162. !verbose ${MUI_VERBOSE}
  163. !insertmacro MUI_UNPAGE_INIT
  164. !insertmacro MUI_PAGEDECLARATION_FINISH
  165. !verbose pop
  166. !macroend
  167. ;--------------------------------
  168. ;Page functions
  169. !macro MUI_FUNCTION_FINISHPAGE PRE LEAVE LINK
  170. !ifdef MUI_FINISHPAGE_LINK
  171. Function "${LINK}"
  172. ExecShell open "${MUI_FINISHPAGE_LINK_LOCATION}"
  173. FunctionEnd
  174. !endif
  175. Function "${PRE}"
  176. !insertmacro MUI_PAGE_FUNCTION_CUSTOM PRE
  177. ;Set text on Next button
  178. SendMessage $mui.Button.Next ${WM_SETTEXT} 0 "STR:${MUI_FINISHPAGE_BUTTON}"
  179. ;Enable cancel button if set in script
  180. !ifdef MUI_FINISHPAGE_CANCEL_ENABLED
  181. EnableWindow $mui.Button.Cancel 1
  182. !endif
  183. ;Create dialog
  184. nsDialogs::Create 1044
  185. Pop $mui.FinishPage
  186. nsDialogs::SetRTL $(^RTL)
  187. SetCtlColors $mui.FinishPage "" "${MUI_BGCOLOR}"
  188. ;Image control
  189. ${NSD_CreateBitmap} 0u 0u 109u 193u ""
  190. Pop $mui.FinishPage.Image
  191. !insertmacro MUI_INTERNAL_FULLWINDOW_LOADWIZARDIMAGE "${MUI_PAGE_UNINSTALLER_PREFIX}" $mui.FinishPage.Image $PLUGINSDIR\modern-wizard.bmp $mui.FinishPage.Image.Bitmap
  192. ;Positiong of controls
  193. ;Title
  194. !ifndef MUI_FINISHPAGE_TITLE_3LINES
  195. !define MUI_FINISHPAGE_TITLE_HEIGHT 28
  196. !else
  197. !define MUI_FINISHPAGE_TITLE_HEIGHT 38
  198. !endif
  199. ;Text
  200. ;17 = 10 (top margin) + 7 (distance between texts)
  201. !define /math MUI_FINISHPAGE_TEXT_TOP 17 + ${MUI_FINISHPAGE_TITLE_HEIGHT}
  202. ;Height if space required for radio buttons or check boxes
  203. !ifndef MUI_FINISHPAGE_TEXT_LARGE
  204. !define MUI_FINISHPAGE_TEXT_HEIGHT_BUTTONS 40
  205. !else
  206. !define MUI_FINISHPAGE_TEXT_HEIGHT_BUTTONS 60
  207. !endif
  208. !define /math MUI_FINISHPAGE_TEXT_BOTTOM_BUTTONS ${MUI_FINISHPAGE_TEXT_TOP} + ${MUI_FINISHPAGE_TEXT_HEIGHT_BUTTONS}
  209. ;Positioning of radio buttons to ask for a reboot
  210. !ifndef MUI_FINISHPAGE_NOREBOOTSUPPORT
  211. !define /math MUI_FINISHPAGE_REBOOTNOW_TOP ${MUI_FINISHPAGE_TEXT_BOTTOM_BUTTONS} + 5 ;Distance between text and options
  212. ;25 = 10 (height of first radio button) + 15 (distance between buttons)
  213. !define /math MUI_FINISHPAGE_REBOOTLATER_TOP ${MUI_FINISHPAGE_REBOOTNOW_TOP} + 25
  214. !endif
  215. ;Positioning of checkboxes
  216. !ifdef MUI_FINISHPAGE_RUN
  217. !define /math MUI_FINISHPAGE_RUN_TOP ${MUI_FINISHPAGE_TEXT_BOTTOM_BUTTONS} + 5 ;Distance between text and options
  218. !endif
  219. !ifdef MUI_FINISHPAGE_SHOWREADME
  220. !ifdef MUI_FINISHPAGE_RUN
  221. ;25 = 10 (height of run checkbox) + 10 (distance between checkboxes)
  222. !define /math MUI_FINISHPAGE_SHOWREADME_TOP ${MUI_FINISHPAGE_RUN_TOP} + 20
  223. !else
  224. !define /math MUI_FINISHPAGE_SHOWREADME_TOP ${MUI_FINISHPAGE_TEXT_BOTTOM_BUTTONS} + 5 ;Distance between text and options
  225. !endif
  226. !endif
  227. !ifndef MUI_FINISHPAGE_RUN & MUI_FINISHPAGE_SHOWREADME
  228. ;Height if full space is available for text and link
  229. !ifndef MUI_FINISHPAGE_LINK
  230. !define MUI_FINISHPAGE_TEXT_HEIGHT 130
  231. !else
  232. !define MUI_FINISHPAGE_TEXT_HEIGHT 120
  233. !endif
  234. !endif
  235. !ifndef MUI_FINISHPAGE_NOREBOOTSUPPORT
  236. ${if} ${RebootFlag}
  237. ;Title text
  238. ${NSD_CreateLabel} 120u 10u 195u ${MUI_FINISHPAGE_TITLE_HEIGHT}u "${MUI_FINISHPAGE_TITLE}"
  239. Pop $mui.FinishPage.Title
  240. SetCtlColors $mui.FinishPage.Title "${MUI_TEXTCOLOR}" "${MUI_BGCOLOR}"
  241. CreateFont $mui.FinishPage.Title.Font "$(^Font)" "12" "700"
  242. SendMessage $mui.FinishPage.Title ${WM_SETFONT} $mui.FinishPage.Title.Font 0
  243. ;Finish text
  244. ${NSD_CreateLabel} 120u ${MUI_FINISHPAGE_TEXT_TOP}u 195u ${MUI_FINISHPAGE_TEXT_HEIGHT_BUTTONS}u "${MUI_FINISHPAGE_TEXT_REBOOT}"
  245. Pop $mui.FinishPage.Text
  246. SetCtlColors $mui.FinishPage.Text "${MUI_TEXTCOLOR}" "${MUI_BGCOLOR}"
  247. ;Radio buttons for reboot page
  248. ${NSD_CreateRadioButton} 120u ${MUI_FINISHPAGE_REBOOTNOW_TOP}u 195u 10u "${MUI_FINISHPAGE_TEXT_REBOOTNOW}"
  249. Pop $mui.FinishPage.RebootNow
  250. SetCtlColors $mui.FinishPage.RebootNow "${MUI_TEXTCOLOR}" "${MUI_BGCOLOR}"
  251. ${NSD_CreateRadioButton} 120u ${MUI_FINISHPAGE_REBOOTLATER_TOP}u 195u 10u "${MUI_FINISHPAGE_TEXT_REBOOTLATER}"
  252. Pop $mui.FinishPage.RebootLater
  253. SetCtlColors $mui.FinishPage.RebootLater "${MUI_TEXTCOLOR}" "${MUI_BGCOLOR}"
  254. !ifndef MUI_FINISHPAGE_REBOOTLATER_DEFAULT
  255. SendMessage $mui.FinishPage.RebootNow ${BM_SETCHECK} ${BST_CHECKED} 0
  256. !else
  257. SendMessage $mui.FinishPage.RebootLater ${BM_SETCHECK} ${BST_CHECKED} 0
  258. !endif
  259. ${NSD_SetFocus} $mui.FinishPage.RebootNow
  260. ${else}
  261. !endif
  262. ;Title text
  263. ${NSD_CreateLabel} 120u 10u 195u ${MUI_FINISHPAGE_TITLE_HEIGHT}u "${MUI_FINISHPAGE_TITLE}"
  264. Pop $mui.FinishPage.Title
  265. SetCtlColors $mui.FinishPage.Title "${MUI_TEXTCOLOR}" "${MUI_BGCOLOR}"
  266. CreateFont $mui.FinishPage.Title.Font "$(^Font)" "12" "700"
  267. SendMessage $mui.FinishPage.Title ${WM_SETFONT} $mui.FinishPage.Title.Font 0
  268. ;Finish text
  269. !ifndef MUI_FINISHPAGE_RUN & MUI_FINISHPAGE_SHOWREADME
  270. ${NSD_CreateLabel} 120u ${MUI_FINISHPAGE_TEXT_TOP}u 195u ${MUI_FINISHPAGE_TEXT_HEIGHT}u "${MUI_FINISHPAGE_TEXT}"
  271. !else
  272. ${NSD_CreateLabel} 120u ${MUI_FINISHPAGE_TEXT_TOP}u 195u ${MUI_FINISHPAGE_TEXT_HEIGHT_BUTTONS}u "${MUI_FINISHPAGE_TEXT}"
  273. !endif
  274. Pop $mui.FinishPage.Text
  275. SetCtlColors $mui.FinishPage.Text "${MUI_TEXTCOLOR}" "${MUI_BGCOLOR}"
  276. ;Checkboxes
  277. !ifdef MUI_FINISHPAGE_RUN
  278. ${NSD_CreateCheckbox} 120u ${MUI_FINISHPAGE_RUN_TOP}u 195u 10u "${MUI_FINISHPAGE_RUN_TEXT}"
  279. Pop $mui.FinishPage.Run
  280. SetCtlColors $mui.FinishPage.Run "${MUI_TEXTCOLOR}" "${MUI_BGCOLOR}"
  281. !ifndef MUI_FINISHPAGE_RUN_NOTCHECKED
  282. SendMessage $mui.FinishPage.Run ${BM_SETCHECK} ${BST_CHECKED} 0
  283. !endif
  284. ${NSD_SetFocus} $mui.FinishPage.Run
  285. !endif
  286. !ifdef MUI_FINISHPAGE_SHOWREADME
  287. ${NSD_CreateCheckbox} 120u ${MUI_FINISHPAGE_SHOWREADME_TOP}u 195u 10u "${MUI_FINISHPAGE_SHOWREADME_TEXT}"
  288. Pop $mui.FinishPage.ShowReadme
  289. SetCtlColors $mui.FinishPage.ShowReadme "${MUI_TEXTCOLOR}" "${MUI_BGCOLOR}"
  290. !ifndef MUI_FINISHPAGE_SHOWREADME_NOTCHECKED
  291. SendMessage $mui.FinishPage.ShowReadme ${BM_SETCHECK} ${BST_CHECKED} 0
  292. !endif
  293. !ifndef MUI_FINISHPAGE_RUN
  294. ${NSD_SetFocus} $mui.FinishPage.ShowReadme
  295. !endif
  296. !endif
  297. ;Link
  298. !ifdef MUI_FINISHPAGE_LINK
  299. ${NSD_CreateLink} 120u 175u 195u 10u "${MUI_FINISHPAGE_LINK}"
  300. Pop $mui.FinishPage.Link
  301. SetCtlColors $mui.FinishPage.Link "${MUI_FINISHPAGE_LINK_COLOR}" "${MUI_BGCOLOR}"
  302. ${NSD_OnClick} $mui.FinishPage.Link "${LINK}"
  303. !endif
  304. !ifndef MUI_FINISHPAGE_NOREBOOTSUPPORT
  305. ${endif}
  306. !endif
  307. !ifdef MUI_FINISHPAGE_CANCEL_ENABLED
  308. StrCpy $mui.FinishPage.DisableAbortWarning "1"
  309. !endif
  310. !ifndef MUI_FORCECLASSICCONTROLS
  311. ${If} ${IsHighContrastModeActive}
  312. !endif
  313. ; SetCtlColors does not change the check/radio text color (bug #443)
  314. !ifndef MUI_FINISHPAGE_NOREBOOTSUPPORT
  315. System::Call 'UXTHEME::SetWindowTheme(p$mui.FinishPage.RebootNow,w" ",w" ")'
  316. System::Call 'UXTHEME::SetWindowTheme(p$mui.FinishPage.RebootLater,w" ",w" ")'
  317. !endif
  318. !ifdef MUI_FINISHPAGE_RUN
  319. System::Call 'UXTHEME::SetWindowTheme(p$mui.FinishPage.Run,w" ",w" ")'
  320. !endif
  321. !ifdef MUI_FINISHPAGE_SHOWREADME
  322. System::Call 'UXTHEME::SetWindowTheme(p$mui.FinishPage.ShowReadme,w" ",w" ")'
  323. !endif
  324. !ifndef MUI_FORCECLASSICCONTROLS
  325. ${EndIf}
  326. !endif
  327. ;Show page
  328. Call ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}muiPageLoadFullWindow
  329. !insertmacro MUI_PAGE_FUNCTION_CUSTOM SHOW
  330. nsDialogs::Show
  331. !insertmacro MUI_PAGE_FUNCTION_CUSTOM DESTROYED
  332. Call ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}muiPageUnloadFullWindow
  333. !ifdef MUI_FINISHPAGE_CANCEL_ENABLED
  334. StrCpy $mui.FinishPage.DisableAbortWarning ""
  335. !endif
  336. ;Delete image from memory
  337. ${NSD_FreeImage} $mui.FinishPage.Image.Bitmap
  338. !insertmacro MUI_UNSET MUI_FINISHPAGE_TITLE_HEIGHT
  339. !insertmacro MUI_UNSET MUI_FINISHPAGE_TEXT_TOP
  340. !insertmacro MUI_UNSET MUI_FINISHPAGE_TEXT_HEIGHT
  341. !insertmacro MUI_UNSET MUI_FINISHPAGE_TEXT_HEIGHT_BUTTONS
  342. !insertmacro MUI_UNSET MUI_FINISHPAGE_TEXT_BOTTOM_BUTTONS
  343. !insertmacro MUI_UNSET MUI_FINISHPAGE_REBOOTNOW_TOP
  344. !insertmacro MUI_UNSET MUI_FINISHPAGE_REBOOTLATER_TOP
  345. !insertmacro MUI_UNSET MUI_FINISHPAGE_RUN_TOP
  346. !insertmacro MUI_UNSET MUI_FINISHPAGE_SHOWREADME_TOP
  347. FunctionEnd
  348. Function "${LEAVE}"
  349. !insertmacro MUI_PAGE_FUNCTION_CUSTOM LEAVE
  350. !ifndef MUI_FINISHPAGE_NOREBOOTSUPPORT
  351. ;Check whether the user has chosen to reboot the computer
  352. ${if} ${RebootFlag}
  353. SendMessage $mui.FinishPage.RebootNow ${BM_GETCHECK} 0 0 $mui.FinishPage.ReturnValue
  354. ${if} $mui.FinishPage.ReturnValue = ${BST_CHECKED}
  355. Reboot
  356. ${else}
  357. Return
  358. ${endif}
  359. ${endif}
  360. !endif
  361. ;Run functions depending on checkbox state
  362. !ifdef MUI_FINISHPAGE_RUN
  363. SendMessage $mui.FinishPage.Run ${BM_GETCHECK} 0 0 $mui.FinishPage.ReturnValue
  364. ${if} $mui.FinishPage.ReturnValue = ${BST_CHECKED}
  365. !ifndef MUI_FINISHPAGE_RUN_FUNCTION
  366. !ifndef MUI_FINISHPAGE_RUN_PARAMETERS
  367. Exec "$\"${MUI_FINISHPAGE_RUN}$\""
  368. !else
  369. Exec "$\"${MUI_FINISHPAGE_RUN}$\" ${MUI_FINISHPAGE_RUN_PARAMETERS}"
  370. !endif
  371. !else
  372. Call "${MUI_FINISHPAGE_RUN_FUNCTION}"
  373. !endif
  374. ${endif}
  375. !endif
  376. !ifdef MUI_FINISHPAGE_SHOWREADME
  377. SendMessage $mui.FinishPage.ShowReadme ${BM_GETCHECK} 0 0 $mui.FinishPage.ReturnValue
  378. ${if} $mui.FinishPage.ReturnValue = ${BST_CHECKED}
  379. !ifndef MUI_FINISHPAGE_SHOWREADME_FUNCTION
  380. ExecShell open "${MUI_FINISHPAGE_SHOWREADME}"
  381. !else
  382. Call "${MUI_FINISHPAGE_SHOWREADME_FUNCTION}"
  383. !endif
  384. ${endif}
  385. !endif
  386. FunctionEnd
  387. !macroend