home *** CD-ROM | disk | FTP | other *** search
/ Hackers Magazine 57 / CdHackersMagazineNr57.iso / Software / Programming / nsis-2.46-setup.exe / Contrib / Modern UI / System.nsh < prev   
Encoding:
Text File  |  2009-02-01  |  65.0 KB  |  2,207 lines

  1. /*
  2.  
  3. NSIS Modern User Interface - Version 1.8
  4. Copyright 2002-2009 Joost Verburg
  5.  
  6. */
  7.  
  8. !echo "NSIS Modern User Interface version 1.8 - Copyright 2002-2009 Joost Verburg"
  9.  
  10. ;--------------------------------
  11.  
  12. !ifndef MUI_INCLUDED
  13. !define MUI_INCLUDED
  14.  
  15. !define MUI_SYSVERSION "1.8"
  16.  
  17. !verbose push
  18.  
  19. !ifndef MUI_VERBOSE
  20.   !define MUI_VERBOSE 3
  21. !endif
  22.  
  23. !verbose ${MUI_VERBOSE}
  24.  
  25. ;--------------------------------
  26. ;HEADER FILES, DECLARATIONS
  27.  
  28. !include InstallOptions.nsh
  29. !include LangFile.nsh
  30. !include WinMessages.nsh
  31.  
  32. Var MUI_TEMP1
  33. Var MUI_TEMP2
  34.  
  35. ;--------------------------------
  36. ;INSERT CODE
  37.  
  38. !macro MUI_INSERT
  39.  
  40.   !ifndef MUI_INSERT
  41.     !define MUI_INSERT
  42.  
  43.     !ifdef MUI_PRODUCT | MUI_VERSION
  44.       !warning "The MUI_PRODUCT and MUI_VERSION defines have been removed. Use a normal Name command now."
  45.     !endif
  46.  
  47.     !insertmacro MUI_INTERFACE
  48.  
  49.     !insertmacro MUI_FUNCTION_GUIINIT
  50.     !insertmacro MUI_FUNCTION_ABORTWARNING
  51.   
  52.     !ifdef MUI_IOCONVERT_USED
  53.       !insertmacro INSTALLOPTIONS_FUNCTION_WRITE_CONVERT
  54.     !endif
  55.  
  56.     !ifdef MUI_UNINSTALLER
  57.       !insertmacro MUI_UNFUNCTION_GUIINIT
  58.       !insertmacro MUI_FUNCTION_UNABORTWARNING
  59.     
  60.       !ifdef MUI_UNIOCONVERT_USED
  61.         !insertmacro INSTALLOPTIONS_UNFUNCTION_WRITE_CONVERT
  62.       !endif
  63.     !endif
  64.  
  65.   !endif
  66.  
  67. !macroend
  68.  
  69. ;--------------------------------
  70. ;GENERAL
  71.  
  72. !macro MUI_DEFAULT SYMBOL CONTENT
  73.  
  74.   !ifndef "${SYMBOL}"
  75.     !define "${SYMBOL}" "${CONTENT}"
  76.   !endif
  77.  
  78. !macroend
  79.  
  80. !macro MUI_DEFAULT_IOCONVERT SYMBOL CONTENT
  81.  
  82.   !ifndef "${SYMBOL}"
  83.     !define "${SYMBOL}" "${CONTENT}"
  84.     !insertmacro MUI_SET "${SYMBOL}_DEFAULTSET"
  85.     !insertmacro MUI_SET "MUI_${MUI_PAGE_UNINSTALLER_PREFIX}IOCONVERT_USED"
  86.   !else
  87.     !insertmacro MUI_UNSET "${SYMBOL}_DEFAULTSET" 
  88.   !endif
  89.  
  90. !macroend
  91.  
  92. !macro MUI_SET SYMBOL
  93.  
  94.   !ifndef "${SYMBOL}"
  95.     !define "${SYMBOL}"
  96.   !endif
  97.  
  98. !macroend
  99.  
  100. !macro MUI_UNSET SYMBOL
  101.  
  102.   !ifdef "${SYMBOL}"
  103.     !undef "${SYMBOL}"
  104.   !endif
  105.  
  106. !macroend
  107.  
  108. ;--------------------------------
  109. ;INTERFACE - COMPILE TIME SETTINGS
  110.  
  111. !macro MUI_INTERFACE
  112.  
  113.   !ifndef MUI_INTERFACE
  114.     !define MUI_INTERFACE
  115.  
  116.     !ifdef MUI_INSERT_NSISCONF
  117.       !insertmacro MUI_NSISCONF
  118.     !endif
  119.  
  120.     !insertmacro MUI_DEFAULT MUI_UI "${NSISDIR}\Contrib\UIs\modern.exe"
  121.     !insertmacro MUI_DEFAULT MUI_UI_HEADERIMAGE "${NSISDIR}\Contrib\UIs\modern_headerbmp.exe"
  122.     !insertmacro MUI_DEFAULT MUI_UI_HEADERIMAGE_RIGHT "${NSISDIR}\Contrib\UIs\modern_headerbmpr.exe"
  123.     !insertmacro MUI_DEFAULT MUI_UI_COMPONENTSPAGE_SMALLDESC "${NSISDIR}\Contrib\UIs\modern_smalldesc.exe"
  124.     !insertmacro MUI_DEFAULT MUI_UI_COMPONENTSPAGE_NODESC "${NSISDIR}\Contrib\UIs\modern_nodesc.exe"
  125.     !insertmacro MUI_DEFAULT MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico"
  126.     !insertmacro MUI_DEFAULT MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico"
  127.     !insertmacro MUI_DEFAULT MUI_COMPONENTSPAGE_CHECKBITMAP "${NSISDIR}\Contrib\Graphics\Checks\modern.bmp"
  128.     !insertmacro MUI_DEFAULT MUI_LICENSEPAGE_BGCOLOR "/windows"
  129.     !insertmacro MUI_DEFAULT MUI_INSTFILESPAGE_COLORS "/windows"
  130.     !insertmacro MUI_DEFAULT MUI_INSTFILESPAGE_PROGRESSBAR "smooth"
  131.     !insertmacro MUI_DEFAULT MUI_BGCOLOR "FFFFFF"
  132.     !insertmacro MUI_DEFAULT MUI_WELCOMEFINISHPAGE_INI "${NSISDIR}\Contrib\Modern UI\ioSpecial.ini"
  133.     !insertmacro MUI_DEFAULT MUI_UNWELCOMEFINISHPAGE_INI "${NSISDIR}\Contrib\Modern UI\ioSpecial.ini"
  134.     !insertmacro MUI_DEFAULT MUI_WELCOMEFINISHPAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Wizard\win.bmp"
  135.     !insertmacro MUI_DEFAULT MUI_UNWELCOMEFINISHPAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Wizard\win.bmp"
  136.  
  137.     !ifdef MUI_HEADERIMAGE
  138.  
  139.       !insertmacro MUI_DEFAULT MUI_HEADERIMAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Header\nsis.bmp"
  140.  
  141.       !ifndef MUI_HEADERIMAGE_UNBITMAP
  142.         !define MUI_HEADERIMAGE_UNBITMAP "${MUI_HEADERIMAGE_BITMAP}"
  143.         !ifdef MUI_HEADERIMAGE_BITMAP_NOSTRETCH
  144.           !insertmacro MUI_SET MUI_HEADERIMAGE_UNBITMAP_NOSTRETCH
  145.         !endif
  146.       !endif
  147.  
  148.       !ifdef MUI_HEADERIMAGE_BITMAP_RTL
  149.         !ifndef MUI_HEADERIMAGE_UNBITMAP_RTL
  150.           !define MUI_HEADERIMAGE_UNBITMAP_RTL "${MUI_HEADERIMAGE_BITMAP_RTL}"
  151.           !ifdef MUI_HEADERIMAGE_BITMAP_RTL_NOSTRETCH
  152.             !insertmacro MUI_SET MUI_HEADERIMAGE_UNBITMAP_RTL_NOSTRETCH
  153.           !endif
  154.         !endif
  155.       !endif
  156.  
  157.     !endif
  158.  
  159.     XPStyle On
  160.  
  161.     ChangeUI all "${MUI_UI}"
  162.     !ifdef MUI_HEADERIMAGE
  163.       !ifndef MUI_HEADERIMAGE_RIGHT
  164.         ChangeUI IDD_INST "${MUI_UI_HEADERIMAGE}"
  165.       !else
  166.         ChangeUI IDD_INST "${MUI_UI_HEADERIMAGE_RIGHT}"
  167.       !endif
  168.     !endif
  169.     !ifdef MUI_COMPONENTSPAGE_SMALLDESC
  170.       ChangeUI IDD_SELCOM "${MUI_UI_COMPONENTSPAGE_SMALLDESC}"
  171.     !else ifdef MUI_COMPONENTSPAGE_NODESC
  172.        ChangeUI IDD_SELCOM "${MUI_UI_COMPONENTSPAGE_NODESC}"
  173.     !endif
  174.  
  175.     Icon "${MUI_ICON}"
  176.     UninstallIcon "${MUI_UNICON}"
  177.  
  178.     CheckBitmap "${MUI_COMPONENTSPAGE_CHECKBITMAP}"
  179.     LicenseBkColor "${MUI_LICENSEPAGE_BGCOLOR}"
  180.     InstallColors ${MUI_INSTFILESPAGE_COLORS}
  181.     InstProgressFlags ${MUI_INSTFILESPAGE_PROGRESSBAR}
  182.  
  183.     SubCaption 4 " "
  184.     UninstallSubCaption 2 " "
  185.  
  186.     !insertmacro MUI_DEFAULT MUI_ABORTWARNING_TEXT "$(MUI_TEXT_ABORTWARNING)"
  187.     !insertmacro MUI_DEFAULT MUI_UNABORTWARNING_TEXT "$(MUI_UNTEXT_ABORTWARNING)"
  188.  
  189.   !endif
  190.  
  191. !macroend
  192.  
  193. ;--------------------------------
  194. ;INTERFACE - RUN-TIME
  195.  
  196. !macro MUI_INNERDIALOG_TEXT CONTROL TEXT
  197.  
  198.   !verbose push
  199.   !verbose ${MUI_VERBOSE}
  200.  
  201.   FindWindow $MUI_TEMP1 "#32770" "" $HWNDPARENT
  202.   GetDlgItem $MUI_TEMP1 $MUI_TEMP1 ${CONTROL}
  203.   SendMessage $MUI_TEMP1 ${WM_SETTEXT} 0 "STR:${TEXT}"
  204.  
  205.   !verbose pop
  206.  
  207. !macroend
  208.  
  209. !macro MUI_HEADER_TEXT_INTERNAL ID TEXT
  210.  
  211.   GetDlgItem $MUI_TEMP1 $HWNDPARENT "${ID}"
  212.  
  213.   !ifdef MUI_HEADER_TRANSPARENT_TEXT
  214.  
  215.     ShowWindow $MUI_TEMP1 ${SW_HIDE}
  216.  
  217.   !endif
  218.  
  219.   SendMessage $MUI_TEMP1 ${WM_SETTEXT} 0 "STR:${TEXT}"
  220.  
  221.   !ifdef MUI_HEADER_TRANSPARENT_TEXT
  222.  
  223.     ShowWindow $MUI_TEMP1 ${SW_SHOWNA}
  224.  
  225.   !endif
  226.  
  227. !macroend
  228.  
  229. !macro MUI_HEADER_TEXT TEXT SUBTEXT
  230.  
  231.   !verbose push
  232.   !verbose ${MUI_VERBOSE}
  233.  
  234.   !ifdef MUI_HEADER_TRANSPARENT_TEXT
  235.  
  236.     LockWindow on
  237.  
  238.   !endif
  239.  
  240.   !insertmacro MUI_HEADER_TEXT_INTERNAL 1037 "${TEXT}"
  241.   !insertmacro MUI_HEADER_TEXT_INTERNAL 1038 "${SUBTEXT}"
  242.  
  243.   !ifdef MUI_HEADER_TRANSPARENT_TEXT
  244.  
  245.     LockWindow off
  246.  
  247.   !endif
  248.  
  249.   !verbose pop
  250.  
  251. !macroend
  252.  
  253. !macro MUI_HEADER_TEXT_PAGE TEXT SUBTEXT
  254.  
  255.   !ifdef MUI_PAGE_HEADER_TEXT & MUI_PAGE_HEADER_SUBTEXT
  256.     !insertmacro MUI_HEADER_TEXT "${MUI_PAGE_HEADER_TEXT}" "${MUI_PAGE_HEADER_SUBTEXT}"
  257.   !else ifdef MUI_PAGE_HEADER_TEXT
  258.     !insertmacro MUI_HEADER_TEXT "${MUI_PAGE_HEADER_TEXT}" "${SUBTEXT}"
  259.   !else ifdef MUI_PAGE_HEADER_SUBTEXT
  260.     !insertmacro MUI_HEADER_TEXT "${TEXT}" "${MUI_PAGE_HEADER_SUBTEXT}"
  261.   !else
  262.     !insertmacro MUI_HEADER_TEXT "${TEXT}" "${SUBTEXT}"
  263.   !endif
  264.  
  265.   !insertmacro MUI_UNSET MUI_PAGE_HEADER_TEXT
  266.   !insertmacro MUI_UNSET MUI_PAGE_HEADER_SUBTEXT
  267.  
  268. !macroend
  269.  
  270. !macro MUI_DESCRIPTION_BEGIN
  271.  
  272.   FindWindow $MUI_TEMP1 "#32770" "" $HWNDPARENT
  273.   GetDlgItem $MUI_TEMP1 $MUI_TEMP1 1043
  274.  
  275.   StrCmp $0 -1 0 mui.description_begin_done
  276.     SendMessage $MUI_TEMP1 ${WM_SETTEXT} 0 "STR:"
  277.     EnableWindow $MUI_TEMP1 0
  278.     SendMessage $MUI_TEMP1 ${WM_SETTEXT} 0 "STR:$MUI_TEXT"
  279.     Goto mui.description_done
  280.   mui.description_begin_done:
  281.  
  282. !macroend
  283.  
  284. !macro MUI_DESCRIPTION_TEXT VAR TEXT
  285.  
  286.   !verbose push
  287.   !verbose ${MUI_VERBOSE}
  288.  
  289.   StrCmp $0 ${VAR} 0 mui.description_${VAR}_done
  290.     SendMessage $MUI_TEMP1 ${WM_SETTEXT} 0 "STR:"
  291.     EnableWindow $MUI_TEMP1 1
  292.     SendMessage $MUI_TEMP1 ${WM_SETTEXT} 0 "STR:${TEXT}"
  293.     Goto mui.description_done
  294.   mui.description_${VAR}_done:
  295.  
  296.   !verbose pop
  297.  
  298. !macroend
  299.  
  300. !macro MUI_DESCRIPTION_END
  301.  
  302.   !verbose push
  303.   !verbose ${MUI_VERBOSE}
  304.  
  305.   mui.description_done:
  306.  
  307.   !verbose pop
  308.  
  309. !macroend
  310.  
  311. !macro MUI_ENDHEADER
  312.  
  313.   IfAbort mui.endheader_abort
  314.  
  315.     !ifdef MUI_INSTFILESPAGE_FINISHHEADER_TEXT & MUI_INSTFILESPAGE_FINISHHEADER_SUBTEXT
  316.       !insertmacro MUI_HEADER_TEXT "${MUI_INSTFILESPAGE_FINISHHEADER_TEXT}" "${MUI_INSTFILESPAGE_FINISHHEADER_SUBTEXT}"
  317.     !else ifdef MUI_INSTFILESPAGE_FINISHHEADER_TEXT
  318.       !insertmacro MUI_HEADER_TEXT "${MUI_INSTFILESPAGE_FINISHHEADER_TEXT}" "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_FINISH_SUBTITLE)"
  319.     !else ifdef MUI_INSTFILESPAGE_FINISHHEADER_SUBTEXT
  320.       !insertmacro MUI_HEADER_TEXT "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_FINISH_TITLE)" "${MUI_INSTFILESPAGE_FINISHHEADER_SUBTEXT}"
  321.     !else
  322.       !insertmacro MUI_HEADER_TEXT "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_FINISH_TITLE)" "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_FINISH_SUBTITLE)"
  323.     !endif
  324.  
  325.   Goto mui.endheader_done
  326.  
  327.   mui.endheader_abort:
  328.  
  329.     !ifdef MUI_INSTFILESPAGE_ABORTHEADER_TEXT & MUI_INSTFILESPAGE_ABORTHEADER_SUBTEXT
  330.       !insertmacro MUI_HEADER_TEXT "${MUI_INSTFILESPAGE_ABORTHEADER_TEXT}" "${MUI_INSTFILESPAGE_ABORTHEADER_SUBTEXT}"
  331.     !else ifdef MUI_INSTFILESPAGE_ABORTHEADER_TEXT
  332.       !insertmacro MUI_HEADER_TEXT "${MUI_INSTFILESPAGE_ABORTHEADER_TEXT}" "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_ABORT_SUBTITLE)"
  333.     !else ifdef MUI_INSTFILESPAGE_ABORTHEADER_SUBTEXT
  334.       !insertmacro MUI_HEADER_TEXT "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_ABORT_TITLE)" "${MUI_INSTFILESPAGE_ABORTHEADER_SUBTEXT}"
  335.     !else
  336.       !insertmacro MUI_HEADER_TEXT "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_ABORT_TITLE)" "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_ABORT_SUBTITLE)"
  337.     !endif
  338.  
  339.   mui.endheader_done:
  340.  
  341. !macroend
  342.  
  343. !macro MUI_ABORTWARNING
  344.  
  345.   !ifdef MUI_FINISHPAGE_ABORTWARNINGCHECK
  346.     StrCmp $MUI_NOABORTWARNING "1" mui.quit
  347.   !endif
  348.  
  349.   !ifdef MUI_ABORTWARNING_CANCEL_DEFAULT
  350.     MessageBox MB_YESNO|MB_ICONEXCLAMATION|MB_DEFBUTTON2 "${MUI_ABORTWARNING_TEXT}" IDYES mui.quit
  351.   !else
  352.     MessageBox MB_YESNO|MB_ICONEXCLAMATION "${MUI_ABORTWARNING_TEXT}" IDYES mui.quit
  353.   !endif
  354.  
  355.   Abort
  356.   mui.quit:
  357.  
  358. !macroend
  359.  
  360. !macro MUI_UNABORTWARNING
  361.  
  362.   !ifdef MUI_UNABORTWARNING_CANCEL_DEFAULT
  363.     MessageBox MB_YESNO|MB_ICONEXCLAMATION|MB_DEFBUTTON2 "${MUI_UNABORTWARNING_TEXT}" IDYES mui.quit
  364.   !else
  365.     MessageBox MB_YESNO|MB_ICONEXCLAMATION "${MUI_UNABORTWARNING_TEXT}" IDYES mui.quit
  366.   !endif
  367.  
  368.   Abort
  369.   mui.quit:
  370.  
  371. !macroend
  372.  
  373. !macro MUI_GUIINIT
  374.  
  375.   !insertmacro MUI_WELCOMEFINISHPAGE_INIT ""
  376.   !insertmacro MUI_HEADERIMAGE_INIT ""
  377.  
  378.   !insertmacro MUI_GUIINIT_BASIC
  379.  
  380. !macroend
  381.  
  382. !macro MUI_UNGUIINIT
  383.  
  384.   !insertmacro MUI_WELCOMEFINISHPAGE_INIT "UN"
  385.   !insertmacro MUI_HEADERIMAGE_INIT "UN"
  386.  
  387.   !insertmacro MUI_GUIINIT_BASIC
  388.  
  389.   !ifdef MUI_UNFINISHPAGE
  390.     !ifndef MUI_UNFINISHPAGE_NOAUTOCLOSE
  391.       SetAutoClose true
  392.     !endif
  393.   !endif
  394.  
  395. !macroend
  396.  
  397. !macro MUI_GUIINIT_BASIC
  398.  
  399.   GetDlgItem $MUI_TEMP1 $HWNDPARENT 1037
  400.   CreateFont $MUI_TEMP2 "$(^Font)" "$(^FontSize)" "700"
  401.   SendMessage $MUI_TEMP1 ${WM_SETFONT} $MUI_TEMP2 0
  402.  
  403.   !ifndef MUI_HEADER_TRANSPARENT_TEXT
  404.  
  405.     SetCtlColors $MUI_TEMP1 "" "${MUI_BGCOLOR}"
  406.  
  407.     GetDlgItem $MUI_TEMP1 $HWNDPARENT 1038
  408.     SetCtlColors $MUI_TEMP1 "" "${MUI_BGCOLOR}"
  409.  
  410.   !else
  411.  
  412.     SetCtlColors $MUI_TEMP1 "" "transparent"
  413.  
  414.     GetDlgItem $MUI_TEMP1 $HWNDPARENT 1038
  415.     SetCtlColors $MUI_TEMP1 "" "transparent"
  416.  
  417.   !endif
  418.  
  419.   GetDlgItem $MUI_TEMP1 $HWNDPARENT 1034
  420.   SetCtlColors $MUI_TEMP1 "" "${MUI_BGCOLOR}"
  421.  
  422.   GetDlgItem $MUI_TEMP1 $HWNDPARENT 1039
  423.   SetCtlColors $MUI_TEMP1 "" "${MUI_BGCOLOR}"
  424.  
  425.   GetDlgItem $MUI_TEMP1 $HWNDPARENT 1028
  426.   SetCtlColors $MUI_TEMP1 /BRANDING
  427.   GetDlgItem $MUI_TEMP1 $HWNDPARENT 1256
  428.   SetCtlColors $MUI_TEMP1 /BRANDING
  429.   SendMessage $MUI_TEMP1 ${WM_SETTEXT} 0 "STR:$(^Branding) "
  430.  
  431. !macroend
  432.  
  433. !macro MUI_WELCOMEFINISHPAGE_INIT UNINSTALLER
  434.  
  435.   !ifdef MUI_${UNINSTALLER}WELCOMEPAGE | MUI_${UNINSTALLER}FINISHPAGE
  436.  
  437.     !insertmacro INSTALLOPTIONS_EXTRACT_AS "${MUI_${UNINSTALLER}WELCOMEFINISHPAGE_INI}" "ioSpecial.ini"
  438.     File "/oname=$PLUGINSDIR\modern-wizard.bmp" "${MUI_${UNINSTALLER}WELCOMEFINISHPAGE_BITMAP}"
  439.  
  440.     !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 1" "Text" "$PLUGINSDIR\modern-wizard.bmp"
  441.  
  442.     !ifdef MUI_${UNINSTALLER}WELCOMEFINISHPAGE_BITMAP_NOSTRETCH
  443.       !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 1" "Flags" ""
  444.     !endif
  445.  
  446.   !endif
  447.  
  448. !macroend
  449.  
  450. !macro MUI_HEADERIMAGE_INIT UNINSTALLER
  451.  
  452.   !ifdef MUI_HEADERIMAGE
  453.  
  454.     InitPluginsDir
  455.  
  456.     !ifdef MUI_HEADERIMAGE_${UNINSTALLER}BITMAP_RTL
  457.  
  458.     StrCmp $(^RTL) 0 mui.headerimageinit_nortl
  459.  
  460.         File "/oname=$PLUGINSDIR\modern-header.bmp" "${MUI_HEADERIMAGE_${UNINSTALLER}BITMAP_RTL}"
  461.  
  462.         !ifndef MUI_HEADERIMAGE_${UNINSTALLER}BITMAP_RTL_NOSTRETCH
  463.           SetBrandingImage /IMGID=1046 /RESIZETOFIT "$PLUGINSDIR\modern-header.bmp"
  464.         !else
  465.           SetBrandingImage /IMGID=1046 "$PLUGINSDIR\modern-header.bmp"
  466.         !endif
  467.  
  468.         Goto mui.headerimageinit_done
  469.  
  470.       mui.headerimageinit_nortl:
  471.  
  472.     !endif
  473.  
  474.         File "/oname=$PLUGINSDIR\modern-header.bmp" "${MUI_HEADERIMAGE_${UNINSTALLER}BITMAP}"
  475.  
  476.         !ifndef MUI_HEADERIMAGE_${UNINSTALLER}BITMAP_NOSTRETCH
  477.           SetBrandingImage /IMGID=1046 /RESIZETOFIT "$PLUGINSDIR\modern-header.bmp"
  478.         !else
  479.           SetBrandingImage /IMGID=1046 "$PLUGINSDIR\modern-header.bmp"
  480.         !endif
  481.  
  482.     !ifdef MUI_HEADERIMAGE_${UNINSTALLER}BITMAP_RTL
  483.  
  484.     mui.headerimageinit_done:
  485.  
  486.     !endif
  487.  
  488.   !endif
  489.  
  490. !macroend
  491.  
  492. ;--------------------------------
  493. ;INTERFACE - FUNCTIONS
  494.  
  495. !macro MUI_FUNCTION_GUIINIT
  496.  
  497.   Function .onGUIInit
  498.  
  499.     !insertmacro MUI_GUIINIT
  500.  
  501.     !ifdef MUI_CUSTOMFUNCTION_GUIINIT
  502.       Call "${MUI_CUSTOMFUNCTION_GUIINIT}"
  503.     !endif
  504.  
  505.   FunctionEnd
  506.  
  507. !macroend
  508.  
  509. !macro MUI_FUNCTION_DESCRIPTION_BEGIN
  510.  
  511.   !verbose push
  512.   !verbose ${MUI_VERBOSE}
  513.  
  514.   !ifndef MUI_VAR_TEXT
  515.     Var MUI_TEXT
  516.     !define MUI_VAR_TEXT
  517.   !endif
  518.  
  519.   Function .onMouseOverSection
  520.     !insertmacro MUI_DESCRIPTION_BEGIN
  521.  
  522.   !verbose pop
  523.  
  524. !macroend
  525.  
  526. !macro MUI_FUNCTION_DESCRIPTION_END
  527.  
  528.   !verbose push
  529.   !verbose ${MUI_VERBOSE}
  530.  
  531.     !insertmacro MUI_DESCRIPTION_END
  532.     !ifdef MUI_CUSTOMFUNCTION_ONMOUSEOVERSECTION
  533.       Call "${MUI_CUSTOMFUNCTION_ONMOUSEOVERSECTION}"
  534.     !endif
  535.   FunctionEnd
  536.  
  537.   !verbose pop
  538.  
  539. !macroend
  540.  
  541. !macro MUI_UNFUNCTION_DESCRIPTION_BEGIN
  542.  
  543.   !verbose push
  544.   !verbose ${MUI_VERBOSE}
  545.  
  546.   Function un.onMouseOverSection
  547.     !insertmacro MUI_DESCRIPTION_BEGIN
  548.  
  549.   !verbose pop
  550.  
  551. !macroend
  552.  
  553. !macro MUI_UNFUNCTION_DESCRIPTION_END
  554.  
  555.   !verbose push
  556.   !verbose ${MUI_VERBOSE}
  557.  
  558.     !insertmacro MUI_DESCRIPTION_END
  559.     !ifdef MUI_CUSTOMFUNCTION_UNONMOUSEOVERSECTION
  560.       Call "${MUI_CUSTOMFUNCTION_UNONMOUSEOVERSECTION}"
  561.     !endif
  562.   FunctionEnd
  563.  
  564.   !verbose pop
  565.  
  566. !macroend
  567.  
  568. !macro MUI_FUNCTION_ABORTWARNING
  569.  
  570.   Function .onUserAbort
  571.     !ifdef MUI_ABORTWARNING
  572.       !insertmacro MUI_ABORTWARNING
  573.     !endif
  574.     !ifdef MUI_CUSTOMFUNCTION_ABORT
  575.       Call "${MUI_CUSTOMFUNCTION_ABORT}"
  576.     !endif
  577.   FunctionEnd
  578.  
  579. !macroend
  580.  
  581. !macro MUI_FUNCTION_UNABORTWARNING
  582.  
  583.   Function un.onUserAbort
  584.     !ifdef MUI_UNABORTWARNING
  585.       !insertmacro MUI_UNABORTWARNING
  586.     !endif
  587.     !ifdef MUI_CUSTOMFUNCTION_UNABORT
  588.       Call "${MUI_CUSTOMFUNCTION_UNABORT}"
  589.     !endif
  590.   FunctionEnd
  591.  
  592. !macroend
  593.  
  594. !macro MUI_UNFUNCTION_GUIINIT
  595.  
  596.   Function un.onGUIInit
  597.  
  598.   !insertmacro MUI_UNGUIINIT
  599.  
  600.   !ifdef MUI_CUSTOMFUNCTION_UNGUIINIT
  601.     Call "${MUI_CUSTOMFUNCTION_UNGUIINIT}"
  602.   !endif
  603.  
  604.   FunctionEnd
  605.  
  606. !macroend
  607.  
  608. !macro MUI_FUNCTIONS_DESCRIPTION_BEGIN
  609.  
  610.   ;1.65 compatibility
  611.  
  612.   !warning "Modern UI macro name has changed. Please change MUI_FUNCTIONS_DESCRIPTION_BEGIN to MUI_FUNCTION_DESCRIPTION_BEGIN."
  613.  
  614.   !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
  615.  
  616. !macroend
  617.  
  618. !macro MUI_FUNCTIONS_DESCRIPTION_END
  619.  
  620.   ;1.65 compatibility
  621.  
  622.   !warning "Modern UI macro name has changed. Please change MUI_FUNCTIONS_DESCRIPTION_END to MUI_FUNCTION_DESCRIPTION_END."
  623.  
  624.   !insertmacro MUI_FUNCTION_DESCRIPTION_END
  625.  
  626. !macroend
  627.  
  628. ;--------------------------------
  629. ;START MENU FOLDER
  630.  
  631. !macro MUI_STARTMENU_GETFOLDER ID VAR
  632.  
  633.   !verbose push
  634.   !verbose ${MUI_VERBOSE}
  635.  
  636.   !ifdef MUI_STARTMENUPAGE_${ID}_REGISTRY_ROOT & MUI_STARTMENUPAGE_${ID}_REGISTRY_KEY & MUI_STARTMENUPAGE_${ID}_REGISTRY_VALUENAME
  637.  
  638.     ReadRegStr $MUI_TEMP1 "${MUI_STARTMENUPAGE_${ID}_REGISTRY_ROOT}" "${MUI_STARTMENUPAGE_${ID}_REGISTRY_KEY}" "${MUI_STARTMENUPAGE_${ID}_REGISTRY_VALUENAME}"
  639.       StrCmp $MUI_TEMP1 "" +3
  640.         StrCpy "${VAR}" $MUI_TEMP1
  641.         Goto +2
  642.  
  643.         StrCpy "${VAR}" "${MUI_STARTMENUPAGE_${ID}_DEFAULTFOLDER}"
  644.  
  645.    !else
  646.  
  647.      StrCpy "${VAR}" "${MUI_STARTMENUPAGE_${ID}_DEFAULTFOLDER}"
  648.  
  649.    !endif
  650.  
  651.   !verbose pop
  652.  
  653. !macroend
  654.  
  655. !macro MUI_STARTMENU_WRITE_BEGIN ID
  656.  
  657.   !verbose push
  658.   !verbose ${MUI_VERBOSE}
  659.  
  660.   !define MUI_STARTMENUPAGE_CURRENT_ID "${ID}"
  661.  
  662.   StrCpy $MUI_TEMP1 "${MUI_STARTMENUPAGE_${MUI_STARTMENUPAGE_CURRENT_ID}_VARIABLE}" 1
  663.   StrCmp $MUI_TEMP1 ">" mui.startmenu_write_${MUI_STARTMENUPAGE_CURRENT_ID}_done
  664.  
  665.   StrCmp "${MUI_STARTMENUPAGE_${MUI_STARTMENUPAGE_CURRENT_ID}_VARIABLE}" "" 0 mui.startmenu_writebegin_${MUI_STARTMENUPAGE_CURRENT_ID}_notempty
  666.  
  667.     !insertmacro MUI_STARTMENU_GETFOLDER "${MUI_STARTMENUPAGE_CURRENT_ID}" "${MUI_STARTMENUPAGE_${MUI_STARTMENUPAGE_CURRENT_ID}_VARIABLE}"
  668.  
  669.   mui.startmenu_writebegin_${MUI_STARTMENUPAGE_CURRENT_ID}_notempty:
  670.  
  671.   !verbose pop
  672.  
  673. !macroend
  674.  
  675. !macro MUI_STARTMENU_WRITE_END
  676.  
  677.   !verbose push
  678.   !verbose ${MUI_VERBOSE}
  679.  
  680.   !ifdef MUI_STARTMENUPAGE_${MUI_STARTMENUPAGE_CURRENT_ID}_REGISTRY_ROOT & MUI_STARTMENUPAGE_${MUI_STARTMENUPAGE_CURRENT_ID}_REGISTRY_KEY & MUI_STARTMENUPAGE_${MUI_STARTMENUPAGE_CURRENT_ID}_REGISTRY_VALUENAME
  681.     WriteRegStr "${MUI_STARTMENUPAGE_${MUI_STARTMENUPAGE_CURRENT_ID}_REGISTRY_ROOT}" "${MUI_STARTMENUPAGE_${MUI_STARTMENUPAGE_CURRENT_ID}_REGISTRY_KEY}" "${MUI_STARTMENUPAGE_${MUI_STARTMENUPAGE_CURRENT_ID}_REGISTRY_VALUENAME}" "${MUI_STARTMENUPAGE_${MUI_STARTMENUPAGE_CURRENT_ID}_VARIABLE}"
  682.   !endif
  683.  
  684.   mui.startmenu_write_${MUI_STARTMENUPAGE_CURRENT_ID}_done:
  685.  
  686.   !undef MUI_STARTMENUPAGE_CURRENT_ID
  687.  
  688.   !verbose pop
  689.  
  690. !macroend
  691.  
  692. ;--------------------------------
  693. ;PAGES
  694.  
  695. !macro MUI_PAGE_INIT
  696.  
  697.   !insertmacro MUI_INTERFACE
  698.  
  699.   !insertmacro MUI_DEFAULT MUI_PAGE_UNINSTALLER_PREFIX ""
  700.   !insertmacro MUI_DEFAULT MUI_PAGE_UNINSTALLER_FUNCPREFIX ""
  701.  
  702.   !insertmacro MUI_UNSET MUI_UNIQUEID
  703.  
  704.   !define MUI_UNIQUEID ${__LINE__}
  705.  
  706. !macroend
  707.  
  708. !macro MUI_UNPAGE_INIT
  709.  
  710.   !ifndef MUI_UNINSTALLER
  711.     !define MUI_UNINSTALLER
  712.   !endif
  713.  
  714.   !define MUI_PAGE_UNINSTALLER
  715.  
  716.   !insertmacro MUI_UNSET MUI_PAGE_UNINSTALLER_PREFIX
  717.   !insertmacro MUI_UNSET MUI_PAGE_UNINSTALLER_FUNCPREFIX
  718.  
  719.   !define MUI_PAGE_UNINSTALLER_PREFIX "UN"
  720.   !define MUI_PAGE_UNINSTALLER_FUNCPREFIX "un."
  721.  
  722. !macroend
  723.  
  724. !macro MUI_UNPAGE_END
  725.  
  726.   !undef MUI_PAGE_UNINSTALLER
  727.   !undef MUI_PAGE_UNINSTALLER_PREFIX
  728.   !undef MUI_PAGE_UNINSTALLER_FUNCPREFIX
  729.  
  730. !macroend
  731.  
  732. !macro MUI_PAGE_WELCOME
  733.  
  734.   !verbose push
  735.   !verbose ${MUI_VERBOSE}
  736.  
  737.   !insertmacro MUI_PAGE_INIT
  738.  
  739.   !insertmacro MUI_SET MUI_${MUI_PAGE_UNINSTALLER_PREFIX}WELCOMEPAGE
  740.  
  741.   !insertmacro MUI_DEFAULT_IOCONVERT MUI_WELCOMEPAGE_TITLE "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_WELCOME_INFO_TITLE)"
  742.   !insertmacro MUI_DEFAULT_IOCONVERT MUI_WELCOMEPAGE_TEXT "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_WELCOME_INFO_TEXT)"
  743.  
  744.   !ifndef MUI_VAR_HWND
  745.     Var MUI_HWND
  746.     !define MUI_VAR_HWND
  747.   !endif
  748.  
  749.   PageEx ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}custom
  750.  
  751.     PageCallbacks ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.WelcomePre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.WelcomeLeave_${MUI_UNIQUEID}
  752.  
  753.   PageExEnd
  754.  
  755.   !insertmacro MUI_FUNCTION_WELCOMEPAGE ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.WelcomePre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.WelcomeLeave_${MUI_UNIQUEID}
  756.  
  757.   !insertmacro MUI_UNSET MUI_WELCOMEPAGE_TITLE
  758.   !insertmacro MUI_UNSET MUI_WELCOMEPAGE_TITLE_3LINES
  759.   !insertmacro MUI_UNSET MUI_WELCOMEPAGE_TEXT
  760.  
  761.   !verbose pop
  762.  
  763. !macroend
  764.  
  765. !macro MUI_PAGE_LICENSE LICENSEDATA
  766.  
  767.   !verbose push
  768.   !verbose ${MUI_VERBOSE}
  769.  
  770.   !insertmacro MUI_PAGE_INIT
  771.  
  772.   !insertmacro MUI_SET MUI_${MUI_PAGE_UNINSTALLER_PREFIX}LICENSEPAGE
  773.  
  774.   !insertmacro MUI_DEFAULT MUI_LICENSEPAGE_TEXT_TOP "$(MUI_INNERTEXT_LICENSE_TOP)"
  775.   !insertmacro MUI_DEFAULT MUI_LICENSEPAGE_BUTTON ""
  776.   !insertmacro MUI_DEFAULT MUI_LICENSEPAGE_CHECKBOX_TEXT ""
  777.   !insertmacro MUI_DEFAULT MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_ACCEPT ""
  778.   !insertmacro MUI_DEFAULT MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_DECLINE ""
  779.  
  780.   PageEx ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}license
  781.  
  782.     PageCallbacks ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.LicensePre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.LicenseShow_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.LicenseLeave_${MUI_UNIQUEID}
  783.  
  784.     Caption " "
  785.  
  786.     LicenseData "${LICENSEDATA}"
  787.  
  788.     !ifndef MUI_LICENSEPAGE_TEXT_BOTTOM
  789.       !ifndef MUI_LICENSEPAGE_CHECKBOX & MUI_LICENSEPAGE_RADIOBUTTONS
  790.         LicenseText "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}INNERTEXT_LICENSE_BOTTOM)" "${MUI_LICENSEPAGE_BUTTON}"
  791.       !else ifdef MUI_LICENSEPAGE_CHECKBOX
  792.         LicenseText "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}INNERTEXT_LICENSE_BOTTOM_CHECKBOX)" "${MUI_LICENSEPAGE_BUTTON}"
  793.       !else
  794.         LicenseText "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}INNERTEXT_LICENSE_BOTTOM_RADIOBUTTONS)" "${MUI_LICENSEPAGE_BUTTON}"
  795.       !endif
  796.     !else
  797.       LicenseText "${MUI_LICENSEPAGE_TEXT_BOTTOM}" "${MUI_LICENSEPAGE_BUTTON}"
  798.     !endif
  799.  
  800.     !ifdef MUI_LICENSEPAGE_CHECKBOX
  801.       LicenseForceSelection checkbox "${MUI_LICENSEPAGE_CHECKBOX_TEXT}"
  802.     !else ifdef MUI_LICENSEPAGE_RADIOBUTTONS
  803.       LicenseForceSelection radiobuttons "${MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_ACCEPT}" "${MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_DECLINE}"
  804.     !endif
  805.  
  806.   PageExEnd
  807.  
  808.   !insertmacro MUI_FUNCTION_LICENSEPAGE ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.LicensePre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.LicenseShow_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.LicenseLeave_${MUI_UNIQUEID}
  809.  
  810.   !insertmacro MUI_UNSET MUI_LICENSEPAGE_TEXT_TOP
  811.   !insertmacro MUI_UNSET MUI_LICENSEPAGE_TEXT_BOTTOM
  812.   !insertmacro MUI_UNSET MUI_LICENSEPAGE_BUTTON
  813.   !insertmacro MUI_UNSET MUI_LICENSEPAGE_CHECKBOX
  814.     !insertmacro MUI_UNSET MUI_LICENSEPAGE_CHECKBOX_TEXT
  815.   !insertmacro MUI_UNSET MUI_LICENSEPAGE_RADIOBUTTONS
  816.     !insertmacro MUI_UNSET MUI_LICENSEPAGE_CHECKBOX_TEXT_ACCEPT
  817.     !insertmacro MUI_UNSET MUI_LICENSEPAGE_CHECKBOX_TEXT_DECLINE
  818.  
  819.   !verbose pop
  820.  
  821. !macroend
  822.  
  823. !macro MUI_PAGE_COMPONENTS
  824.  
  825.   !verbose push
  826.   !verbose ${MUI_VERBOSE}
  827.  
  828.   !insertmacro MUI_PAGE_INIT
  829.  
  830.   !insertmacro MUI_SET MUI_${MUI_PAGE_UNINSTALLER_PREFIX}COMPONENTSPAGE
  831.  
  832.   !insertmacro MUI_DEFAULT MUI_COMPONENTSPAGE_TEXT_TOP ""
  833.   !insertmacro MUI_DEFAULT MUI_COMPONENTSPAGE_TEXT_COMPLIST ""
  834.   !insertmacro MUI_DEFAULT MUI_COMPONENTSPAGE_TEXT_INSTTYPE ""
  835.   !insertmacro MUI_DEFAULT MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_TITLE "$(MUI_INNERTEXT_COMPONENTS_DESCRIPTION_TITLE)"
  836.   !insertmacro MUI_DEFAULT MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_INFO "$(MUI_INNERTEXT_COMPONENTS_DESCRIPTION_INFO)"
  837.  
  838.   !ifndef MUI_VAR_TEXT
  839.     Var MUI_TEXT
  840.     !define MUI_VAR_TEXT
  841.   !endif
  842.  
  843.   PageEx ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}components
  844.  
  845.     PageCallbacks ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.ComponentsPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.ComponentsShow_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.ComponentsLeave_${MUI_UNIQUEID}
  846.  
  847.     Caption " "
  848.  
  849.     ComponentText "${MUI_COMPONENTSPAGE_TEXT_TOP}" "${MUI_COMPONENTSPAGE_TEXT_INSTTYPE}" "${MUI_COMPONENTSPAGE_TEXT_COMPLIST}"
  850.  
  851.   PageExEnd
  852.  
  853.   !insertmacro MUI_FUNCTION_COMPONENTSPAGE ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.ComponentsPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.ComponentsShow_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.ComponentsLeave_${MUI_UNIQUEID}
  854.  
  855.   !undef MUI_COMPONENTSPAGE_TEXT_TOP
  856.   !undef MUI_COMPONENTSPAGE_TEXT_COMPLIST
  857.   !undef MUI_COMPONENTSPAGE_TEXT_INSTTYPE
  858.   !insertmacro MUI_UNSET MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_TITLE
  859.   !insertmacro MUI_UNSET MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_INFO
  860.  
  861.   !verbose pop
  862.  
  863. !macroend
  864.  
  865. !macro MUI_PAGE_DIRECTORY
  866.  
  867.   !verbose push
  868.   !verbose ${MUI_VERBOSE}
  869.  
  870.   !insertmacro MUI_PAGE_INIT
  871.  
  872.   !insertmacro MUI_SET MUI_${MUI_PAGE_UNINSTALLER_PREFIX}DIRECTORYPAGE
  873.  
  874.   !insertmacro MUI_DEFAULT MUI_DIRECTORYPAGE_TEXT_TOP ""
  875.   !insertmacro MUI_DEFAULT MUI_DIRECTORYPAGE_TEXT_DESTINATION ""
  876.  
  877.   PageEx ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}directory
  878.  
  879.     PageCallbacks ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.DirectoryPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.DirectoryShow_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.DirectoryLeave_${MUI_UNIQUEID}
  880.  
  881.     Caption " "
  882.  
  883.     DirText "${MUI_DIRECTORYPAGE_TEXT_TOP}" "${MUI_DIRECTORYPAGE_TEXT_DESTINATION}"
  884.  
  885.     !ifdef MUI_DIRECTORYPAGE_VARIABLE
  886.       DirVar "${MUI_DIRECTORYPAGE_VARIABLE}"
  887.     !endif
  888.  
  889.     !ifdef MUI_DIRECTORYPAGE_VERIFYONLEAVE
  890.       DirVerify leave
  891.     !endif
  892.  
  893.   PageExEnd
  894.  
  895.   !insertmacro MUI_FUNCTION_DIRECTORYPAGE ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.DirectoryPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.DirectoryShow_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.DirectoryLeave_${MUI_UNIQUEID}
  896.  
  897.   !undef MUI_DIRECTORYPAGE_TEXT_TOP
  898.   !undef MUI_DIRECTORYPAGE_TEXT_DESTINATION
  899.   !insertmacro MUI_UNSET MUI_DIRECTORYPAGE_BGCOLOR
  900.   !insertmacro MUI_UNSET MUI_DIRECTORYPAGE_VARIABLE
  901.   !insertmacro MUI_UNSET MUI_DIRECTORYPAGE_VERIFYONLEAVE
  902.  
  903.   !verbose pop
  904.  
  905. !macroend
  906.  
  907. !macro MUI_PAGE_STARTMENU ID VAR
  908.  
  909.   !verbose push
  910.   !verbose ${MUI_VERBOSE}
  911.  
  912.   !insertmacro MUI_PAGE_INIT
  913.  
  914.   !insertmacro MUI_SET MUI_${MUI_PAGE_UNINSTALLER_PREFIX}STARTMENUPAGE
  915.  
  916.   !insertmacro MUI_DEFAULT MUI_STARTMENUPAGE_DEFAULTFOLDER "$(^Name)"
  917.   !insertmacro MUI_DEFAULT MUI_STARTMENUPAGE_TEXT_TOP "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}INNERTEXT_STARTMENU_TOP)"
  918.   !insertmacro MUI_DEFAULT MUI_STARTMENUPAGE_TEXT_CHECKBOX "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}INNERTEXT_STARTMENU_CHECKBOX)"
  919.  
  920.   !define MUI_STARTMENUPAGE_VARIABLE "${VAR}"
  921.   !define "MUI_STARTMENUPAGE_${ID}_VARIABLE" "${MUI_STARTMENUPAGE_VARIABLE}"
  922.   !define "MUI_STARTMENUPAGE_${ID}_DEFAULTFOLDER" "${MUI_STARTMENUPAGE_DEFAULTFOLDER}"
  923.   !ifdef MUI_STARTMENUPAGE_REGISTRY_ROOT
  924.     !define "MUI_STARTMENUPAGE_${ID}_REGISTRY_ROOT" "${MUI_STARTMENUPAGE_REGISTRY_ROOT}"
  925.   !endif
  926.   !ifdef MUI_STARTMENUPAGE_REGISTRY_KEY
  927.     !define "MUI_STARTMENUPAGE_${ID}_REGISTRY_KEY" "${MUI_STARTMENUPAGE_REGISTRY_KEY}"
  928.   !endif
  929.   !ifdef MUI_STARTMENUPAGE_REGISTRY_VALUENAME
  930.     !define "MUI_STARTMENUPAGE_${ID}_REGISTRY_VALUENAME" "${MUI_STARTMENUPAGE_REGISTRY_VALUENAME}"
  931.   !endif
  932.  
  933.   !ifndef MUI_VAR_HWND
  934.     Var MUI_HWND
  935.     !define MUI_VAR_HWND
  936.   !endif
  937.  
  938.   PageEx ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}custom
  939.  
  940.     PageCallbacks ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.StartmenuPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.StartmenuLeave_${MUI_UNIQUEID}
  941.  
  942.     Caption " "
  943.  
  944.   PageExEnd
  945.  
  946.   !insertmacro MUI_FUNCTION_STARTMENUPAGE ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.StartmenuPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.StartmenuLeave_${MUI_UNIQUEID}
  947.  
  948.   !undef MUI_STARTMENUPAGE_VARIABLE
  949.   !undef MUI_STARTMENUPAGE_TEXT_TOP
  950.   !undef MUI_STARTMENUPAGE_TEXT_CHECKBOX
  951.   !undef MUI_STARTMENUPAGE_DEFAULTFOLDER
  952.   !insertmacro MUI_UNSET MUI_STARTMENUPAGE_NODISABLE
  953.   !insertmacro MUI_UNSET MUI_STARTMENUPAGE_REGISTRY_ROOT
  954.   !insertmacro MUI_UNSET MUI_STARTMENUPAGE_REGISTRY_KEY
  955.   !insertmacro MUI_UNSET MUI_STARTMENUPAGE_REGISTRY_VALUENAME
  956.   !insertmacro MUI_UNSET MUI_STARTMENUPAGE_BGCOLOR
  957.  
  958.   !verbose pop
  959.  
  960. !macroend
  961.  
  962. !macro MUI_PAGE_INSTFILES
  963.  
  964.   !verbose push
  965.   !verbose ${MUI_VERBOSE}
  966.  
  967.   !insertmacro MUI_PAGE_INIT
  968.  
  969.   !insertmacro MUI_SET MUI_${MUI_PAGE_UNINSTALLER_PREFIX}INSTFILESPAGE
  970.  
  971.   PageEx ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}instfiles
  972.  
  973.     PageCallbacks ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.InstFilesPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.InstFilesShow_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.InstFilesLeave_${MUI_UNIQUEID}
  974.  
  975.     Caption " "
  976.  
  977.   PageExEnd
  978.  
  979.   !insertmacro MUI_FUNCTION_INSTFILESPAGE ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.InstFilesPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.InstFilesShow_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.InstFilesLeave_${MUI_UNIQUEID}
  980.  
  981.   !insertmacro MUI_UNSET MUI_INSTFILESPAGE_FINISHHEADER_TEXT
  982.   !insertmacro MUI_UNSET MUI_INSTFILESPAGE_FINISHHEADER_SUBTEXT
  983.   !insertmacro MUI_UNSET MUI_INSTFILESPAGE_ABORTWARNING_TEXT
  984.   !insertmacro MUI_UNSET MUI_INSTFILESPAGE_ABORTWARNING_SUBTEXT
  985.  
  986.   !verbose pop
  987.  
  988. !macroend
  989.  
  990. !macro MUI_PAGE_FINISH
  991.  
  992.   !verbose push
  993.   !verbose ${MUI_VERBOSE}
  994.  
  995.   !insertmacro MUI_PAGE_INIT
  996.  
  997.   !insertmacro MUI_SET MUI_${MUI_PAGE_UNINSTALLER_PREFIX}FINISHPAGE
  998.  
  999.   !insertmacro MUI_DEFAULT_IOCONVERT MUI_FINISHPAGE_TITLE "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_FINISH_INFO_TITLE)"
  1000.   !insertmacro MUI_DEFAULT_IOCONVERT MUI_FINISHPAGE_TEXT "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_FINISH_INFO_TEXT)"
  1001.   !insertmacro MUI_DEFAULT_IOCONVERT MUI_FINISHPAGE_BUTTON "$(MUI_BUTTONTEXT_FINISH)"
  1002.   !insertmacro MUI_DEFAULT_IOCONVERT MUI_FINISHPAGE_TEXT_REBOOT "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_FINISH_INFO_REBOOT)"
  1003.   !insertmacro MUI_DEFAULT_IOCONVERT MUI_FINISHPAGE_TEXT_REBOOTNOW "$(MUI_TEXT_FINISH_REBOOTNOW)"
  1004.   !insertmacro MUI_DEFAULT_IOCONVERT MUI_FINISHPAGE_TEXT_REBOOTLATER "$(MUI_TEXT_FINISH_REBOOTLATER)"
  1005.   !insertmacro MUI_DEFAULT_IOCONVERT MUI_FINISHPAGE_RUN_TEXT "$(MUI_TEXT_FINISH_RUN)"
  1006.   !insertmacro MUI_DEFAULT_IOCONVERT MUI_FINISHPAGE_SHOWREADME_TEXT "$(MUI_TEXT_FINISH_SHOWREADME)"
  1007.   !insertmacro MUI_DEFAULT MUI_FINISHPAGE_LINK_COLOR "000080"
  1008.  
  1009.   !ifndef MUI_VAR_HWND
  1010.     Var MUI_HWND
  1011.     !define MUI_VAR_HWND
  1012.   !endif
  1013.  
  1014.   !ifndef MUI_PAGE_UNINSTALLER
  1015.     !ifndef MUI_FINISHPAGE_NOAUTOCLOSE
  1016.       AutoCloseWindow true
  1017.     !endif
  1018.   !endif
  1019.  
  1020.   !ifdef MUI_FINISHPAGE_CANCEL_ENABLED
  1021.     !ifndef MUI_VAR_NOABORTWARNING
  1022.       !define MUI_VAR_NOABORTWARNING
  1023.       Var MUI_NOABORTWARNING
  1024.     !endif
  1025.   !endif
  1026.  
  1027.   PageEx ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}custom
  1028.  
  1029.     PageCallbacks ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.FinishPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.FinishLeave_${MUI_UNIQUEID}
  1030.  
  1031.     Caption " "
  1032.  
  1033.   PageExEnd
  1034.  
  1035.   !insertmacro MUI_FUNCTION_FINISHPAGE ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.FinishPre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.FinishLeave_${MUI_UNIQUEID}
  1036.  
  1037.   !insertmacro MUI_UNSET MUI_FINISHPAGE_TITLE
  1038.   !insertmacro MUI_UNSET MUI_FINISHPAGE_TITLE_3LINES
  1039.   !insertmacro MUI_UNSET MUI_FINISHPAGE_TEXT
  1040.   !insertmacro MUI_UNSET MUI_FINISHPAGE_TEXT_LARGE
  1041.   !insertmacro MUI_UNSET MUI_FINISHPAGE_BUTTON
  1042.   !insertmacro MUI_UNSET MUI_FINISHPAGE_CANCEL_ENABLED
  1043.   !insertmacro MUI_UNSET MUI_FINISHPAGE_TEXT_REBOOT
  1044.   !insertmacro MUI_UNSET MUI_FINISHPAGE_TEXT_REBOOTNOW
  1045.   !insertmacro MUI_UNSET MUI_FINISHPAGE_TEXT_REBOOTLATER
  1046.   !insertmacro MUI_UNSET MUI_FINISHPAGE_REBOOTLATER_DEFAULT
  1047.   !insertmacro MUI_UNSET MUI_FINISHPAGE_RUN
  1048.     !insertmacro MUI_UNSET MUI_FINISHPAGE_RUN_TEXT
  1049.     !insertmacro MUI_UNSET MUI_FINISHPAGE_RUN_PARAMETERS
  1050.     !insertmacro MUI_UNSET MUI_FINISHPAGE_RUN_NOTCHECKED
  1051.     !insertmacro MUI_UNSET MUI_FINISHPAGE_RUN_FUNCTION
  1052.   !insertmacro MUI_UNSET MUI_FINISHPAGE_SHOWREADME
  1053.     !insertmacro MUI_UNSET MUI_FINISHPAGE_SHOWREADME_TEXT
  1054.     !insertmacro MUI_UNSET MUI_FINISHPAGE_SHOWREADME_NOTCHECKED
  1055.     !insertmacro MUI_UNSET MUI_FINISHPAGE_SHOWREADME_FUNCTION
  1056.   !insertmacro MUI_UNSET MUI_FINISHPAGE_LINK
  1057.     !insertmacro MUI_UNSET MUI_FINISHPAGE_LINK_LOCATION
  1058.     !insertmacro MUI_UNSET MUI_FINISHPAGE_LINK_COLOR
  1059.   !insertmacro MUI_UNSET MUI_FINISHPAGE_NOREBOOTSUPPORT
  1060.  
  1061.   !insertmacro MUI_UNSET MUI_FINISHPAGE_CURFIELD_TOP
  1062.   !insertmacro MUI_UNSET MUI_FINISHPAGE_CURFIELD_BOTTOM
  1063.  
  1064.   !verbose pop
  1065.  
  1066. !macroend
  1067.  
  1068. !macro MUI_UNPAGE_WELCOME
  1069.  
  1070.   !verbose push
  1071.   !verbose ${MUI_VERBOSE}
  1072.  
  1073.   !insertmacro MUI_UNPAGE_INIT
  1074.  
  1075.     !insertmacro MUI_PAGE_WELCOME
  1076.  
  1077.   !insertmacro MUI_UNPAGE_END
  1078.  
  1079.   !verbose pop
  1080.  
  1081. !macroend
  1082.  
  1083. !macro MUI_UNPAGE_CONFIRM
  1084.  
  1085.   !verbose push
  1086.   !verbose ${MUI_VERBOSE}
  1087.  
  1088.   !ifndef MUI_UNINSTALLER
  1089.     !define MUI_UNINSTALLER
  1090.   !endif
  1091.  
  1092.   !insertmacro MUI_PAGE_INIT
  1093.  
  1094.   !insertmacro MUI_SET MUI_UNCONFIRMPAGE
  1095.  
  1096.   !insertmacro MUI_DEFAULT MUI_UNCONFIRMPAGE_TEXT_TOP ""
  1097.   !insertmacro MUI_DEFAULT MUI_UNCONFIRMPAGE_TEXT_LOCATION ""
  1098.  
  1099.   PageEx un.uninstConfirm
  1100.  
  1101.     PageCallbacks un.mui.ConfirmPre_${MUI_UNIQUEID} un.mui.ConfirmShow_${MUI_UNIQUEID} un.mui.ConfirmLeave_${MUI_UNIQUEID}
  1102.  
  1103.     Caption " "
  1104.  
  1105.     UninstallText "${MUI_UNCONFIRMPAGE_TEXT_TOP}" "${MUI_UNCONFIRMPAGE_TEXT_LOCATION}"
  1106.  
  1107.   PageExEnd
  1108.  
  1109.   !insertmacro MUI_UNFUNCTION_CONFIRMPAGE un.mui.ConfirmPre_${MUI_UNIQUEID} un.mui.ConfirmShow_${MUI_UNIQUEID} un.mui.ConfirmLeave_${MUI_UNIQUEID}
  1110.  
  1111.   !insertmacro MUI_UNSET MUI_UNCONFIRMPAGE_TEXT_TOP
  1112.   !insertmacro MUI_UNSET MUI_UNCONFIRMPAGE_TEXT_LOCATION
  1113.  
  1114.   !verbose pop
  1115.  
  1116. !macroend
  1117.  
  1118. !macro MUI_UNPAGE_LICENSE LICENSEDATA
  1119.  
  1120.   !verbose push
  1121.   !verbose ${MUI_VERBOSE}
  1122.  
  1123.   !insertmacro MUI_UNPAGE_INIT
  1124.  
  1125.     !insertmacro MUI_PAGE_LICENSE "${LICENSEDATA}"
  1126.  
  1127.   !insertmacro MUI_UNPAGE_END
  1128.  
  1129.   !verbose pop
  1130.  
  1131. !macroend
  1132.  
  1133. !macro MUI_UNPAGE_COMPONENTS
  1134.  
  1135.   !verbose push
  1136.   !verbose ${MUI_VERBOSE}
  1137.  
  1138.   !insertmacro MUI_UNPAGE_INIT
  1139.  
  1140.     !insertmacro MUI_PAGE_COMPONENTS
  1141.  
  1142.   !insertmacro MUI_UNPAGE_END
  1143.  
  1144.   !verbose pop
  1145.  
  1146. !macroend
  1147.  
  1148. !macro MUI_UNPAGE_DIRECTORY
  1149.  
  1150.   !verbose push
  1151.   !verbose ${MUI_VERBOSE}
  1152.  
  1153.   !insertmacro MUI_UNPAGE_INIT
  1154.  
  1155.     !insertmacro MUI_PAGE_DIRECTORY
  1156.  
  1157.   !insertmacro MUI_UNPAGE_END
  1158.  
  1159.   !verbose pop
  1160.  
  1161. !macroend
  1162.  
  1163. !macro MUI_UNPAGE_INSTFILES
  1164.  
  1165.   !verbose push
  1166.   !verbose ${MUI_VERBOSE}
  1167.  
  1168.   !insertmacro MUI_UNPAGE_INIT
  1169.  
  1170.     !insertmacro MUI_PAGE_INSTFILES
  1171.  
  1172.   !insertmacro MUI_UNPAGE_END
  1173.  
  1174.   !verbose pop
  1175.  
  1176. !macroend
  1177.  
  1178. !macro MUI_UNPAGE_FINISH
  1179.  
  1180.   !verbose push
  1181.   !verbose ${MUI_VERBOSE}
  1182.  
  1183.   !insertmacro MUI_UNPAGE_INIT
  1184.  
  1185.     !insertmacro MUI_PAGE_FINISH
  1186.  
  1187.   !insertmacro MUI_UNPAGE_END
  1188.  
  1189.   !verbose pop
  1190.  
  1191. !macroend
  1192.  
  1193. ;--------------------------------
  1194. ;PAGE FUNCTIONS
  1195.  
  1196. !macro MUI_PAGE_FUNCTION_CUSTOM TYPE
  1197.  
  1198.   !ifdef MUI_PAGE_CUSTOMFUNCTION_${TYPE}
  1199.     Call "${MUI_PAGE_CUSTOMFUNCTION_${TYPE}}"
  1200.     !undef MUI_PAGE_CUSTOMFUNCTION_${TYPE}
  1201.   !endif
  1202.  
  1203. !macroend
  1204.  
  1205. !macro MUI_WELCOMEFINISHPAGE_FUNCTION_CUSTOM
  1206.  
  1207.   !ifdef MUI_WELCOMEFINISHPAGE_CUSTOMFUNCTION_INIT
  1208.     Call "${MUI_WELCOMEFINISHPAGE_CUSTOMFUNCTION_INIT}"
  1209.     !undef MUI_WELCOMEFINISHPAGE_CUSTOMFUNCTION_INIT
  1210.   !endif
  1211.  
  1212. !macroend
  1213.  
  1214. !macro MUI_FUNCTION_WELCOMEPAGE PRE LEAVE
  1215.  
  1216.   Function "${PRE}"
  1217.  
  1218.     !insertmacro MUI_WELCOMEFINISHPAGE_FUNCTION_CUSTOM
  1219.  
  1220.     !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Settings" "NumFields" "3"
  1221.     !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Settings" "NextButtonText" ""
  1222.     !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Settings" "CancelEnabled" ""
  1223.  
  1224.     !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "ioSpecial.ini" "Field 2" "Text" MUI_WELCOMEPAGE_TITLE
  1225.  
  1226.     !ifndef MUI_WELCOMEPAGE_TITLE_3LINES
  1227.       !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 2" "Bottom" "38"
  1228.       !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 3" "Top" "45"
  1229.     !else
  1230.       !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 2" "Bottom" "48"
  1231.       !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 3" "Top" "55"
  1232.     !endif
  1233.  
  1234.     !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 3" "Bottom" "185"
  1235.     !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "ioSpecial.ini" "Field 3" "Text" MUI_WELCOMEPAGE_TEXT
  1236.  
  1237.     !insertmacro MUI_PAGE_FUNCTION_CUSTOM PRE
  1238.  
  1239.     LockWindow on
  1240.     GetDlgItem $MUI_TEMP1 $HWNDPARENT 1028
  1241.     ShowWindow $MUI_TEMP1 ${SW_HIDE}
  1242.  
  1243.     GetDlgItem $MUI_TEMP1 $HWNDPARENT 1256
  1244.     ShowWindow $MUI_TEMP1 ${SW_HIDE}
  1245.  
  1246.     GetDlgItem $MUI_TEMP1 $HWNDPARENT 1035
  1247.     ShowWindow $MUI_TEMP1 ${SW_HIDE}
  1248.  
  1249.     GetDlgItem $MUI_TEMP1 $HWNDPARENT 1037
  1250.     ShowWindow $MUI_TEMP1 ${SW_HIDE}
  1251.  
  1252.     GetDlgItem $MUI_TEMP1 $HWNDPARENT 1038
  1253.     ShowWindow $MUI_TEMP1 ${SW_HIDE}
  1254.  
  1255.     GetDlgItem $MUI_TEMP1 $HWNDPARENT 1039
  1256.     ShowWindow $MUI_TEMP1 ${SW_HIDE}
  1257.  
  1258.     GetDlgItem $MUI_TEMP1 $HWNDPARENT 1045
  1259.     ShowWindow $MUI_TEMP1 ${SW_NORMAL}
  1260.     LockWindow off
  1261.  
  1262.     !insertmacro INSTALLOPTIONS_INITDIALOG "ioSpecial.ini"
  1263.     Pop $MUI_HWND
  1264.     SetCtlColors $MUI_HWND "" "${MUI_BGCOLOR}"
  1265.  
  1266.     GetDlgItem $MUI_TEMP1 $MUI_HWND 1201
  1267.     SetCtlColors $MUI_TEMP1 "" "${MUI_BGCOLOR}"
  1268.  
  1269.     CreateFont $MUI_TEMP2 "$(^Font)" "12" "700"
  1270.     SendMessage $MUI_TEMP1 ${WM_SETFONT} $MUI_TEMP2 0
  1271.  
  1272.     GetDlgItem $MUI_TEMP1 $MUI_HWND 1202
  1273.     SetCtlColors $MUI_TEMP1 "" "${MUI_BGCOLOR}"
  1274.  
  1275.     !insertmacro MUI_PAGE_FUNCTION_CUSTOM SHOW
  1276.  
  1277.     !insertmacro INSTALLOPTIONS_SHOW
  1278.  
  1279.     LockWindow on
  1280.     GetDlgItem $MUI_TEMP1 $HWNDPARENT 1028
  1281.     ShowWindow $MUI_TEMP1 ${SW_NORMAL}
  1282.  
  1283.     GetDlgItem $MUI_TEMP1 $HWNDPARENT 1256
  1284.     ShowWindow $MUI_TEMP1 ${SW_NORMAL}
  1285.  
  1286.     GetDlgItem $MUI_TEMP1 $HWNDPARENT 1035
  1287.     ShowWindow $MUI_TEMP1 ${SW_NORMAL}
  1288.  
  1289.     GetDlgItem $MUI_TEMP1 $HWNDPARENT 1037
  1290.     ShowWindow $MUI_TEMP1 ${SW_NORMAL}
  1291.  
  1292.     GetDlgItem $MUI_TEMP1 $HWNDPARENT 1038
  1293.     ShowWindow $MUI_TEMP1 ${SW_NORMAL}
  1294.  
  1295.     GetDlgItem $MUI_TEMP1 $HWNDPARENT 1039
  1296.     ShowWindow $MUI_TEMP1 ${SW_NORMAL}
  1297.  
  1298.     GetDlgItem $MUI_TEMP1 $HWNDPARENT 1045
  1299.     ShowWindow $MUI_TEMP1 ${SW_HIDE}
  1300.     LockWindow off
  1301.  
  1302.   FunctionEnd
  1303.  
  1304.   Function "${LEAVE}"
  1305.  
  1306.     !insertmacro MUI_PAGE_FUNCTION_CUSTOM LEAVE
  1307.  
  1308.   FunctionEnd
  1309.  
  1310. !macroend
  1311.  
  1312. !macro MUI_FUNCTION_LICENSEPAGE PRE SHOW LEAVE
  1313.  
  1314.   Function "${PRE}"
  1315.  
  1316.     !insertmacro MUI_PAGE_FUNCTION_CUSTOM PRE
  1317.     !insertmacro MUI_HEADER_TEXT_PAGE $(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_LICENSE_TITLE) $(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_LICENSE_SUBTITLE)
  1318.  
  1319.   FunctionEnd
  1320.  
  1321.   Function "${SHOW}"
  1322.  
  1323.     !insertmacro MUI_INNERDIALOG_TEXT 1040 "${MUI_LICENSEPAGE_TEXT_TOP}"
  1324.     !insertmacro MUI_PAGE_FUNCTION_CUSTOM SHOW
  1325.  
  1326.   FunctionEnd
  1327.  
  1328.   Function "${LEAVE}"
  1329.  
  1330.     !insertmacro MUI_PAGE_FUNCTION_CUSTOM LEAVE
  1331.  
  1332.   FunctionEnd
  1333.  
  1334. !macroend
  1335.  
  1336. !macro MUI_FUNCTION_COMPONENTSPAGE PRE SHOW LEAVE
  1337.  
  1338.   Function "${PRE}"
  1339.     !insertmacro MUI_PAGE_FUNCTION_CUSTOM PRE
  1340.     !insertmacro MUI_HEADER_TEXT_PAGE $(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_COMPONENTS_TITLE) $(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_COMPONENTS_SUBTITLE)
  1341.   FunctionEnd
  1342.  
  1343.   Function "${SHOW}"
  1344.  
  1345.     !insertmacro MUI_INNERDIALOG_TEXT 1042 "${MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_TITLE}"
  1346.  
  1347.     FindWindow $MUI_TEMP1 "#32770" "" $HWNDPARENT
  1348.     GetDlgItem $MUI_TEMP1 $MUI_TEMP1 1043
  1349.     EnableWindow $MUI_TEMP1 0
  1350.  
  1351.     !insertmacro MUI_INNERDIALOG_TEXT 1043 "${MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_INFO}"
  1352.     StrCpy $MUI_TEXT "${MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_INFO}"
  1353.     !insertmacro MUI_PAGE_FUNCTION_CUSTOM SHOW
  1354.  
  1355.   FunctionEnd
  1356.  
  1357.   Function "${LEAVE}"
  1358.  
  1359.     !insertmacro MUI_PAGE_FUNCTION_CUSTOM LEAVE
  1360.  
  1361.   FunctionEnd
  1362.  
  1363. !macroend
  1364.  
  1365. !macro MUI_FUNCTION_DIRECTORYPAGE PRE SHOW LEAVE
  1366.  
  1367.   Function "${PRE}"
  1368.     !insertmacro MUI_PAGE_FUNCTION_CUSTOM PRE
  1369.     !insertmacro MUI_HEADER_TEXT_PAGE $(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_DIRECTORY_TITLE) $(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_DIRECTORY_SUBTITLE)
  1370.   FunctionEnd
  1371.  
  1372.   Function "${SHOW}"
  1373.     !ifdef MUI_DIRECTORYPAGE_BGCOLOR
  1374.       FindWindow $MUI_TEMP1 "#32770" "" $HWNDPARENT
  1375.       GetDlgItem $MUI_TEMP1 $MUI_TEMP1 1019
  1376.       SetCtlColors $MUI_TEMP1 "" "${MUI_DIRECTORYPAGE_BGCOLOR}"
  1377.     !endif
  1378.     
  1379.     !insertmacro MUI_PAGE_FUNCTION_CUSTOM SHOW
  1380.   FunctionEnd
  1381.  
  1382.   Function "${LEAVE}"
  1383.     !insertmacro MUI_PAGE_FUNCTION_CUSTOM LEAVE
  1384.   FunctionEnd
  1385.  
  1386. !macroend
  1387.  
  1388. !macro MUI_FUNCTION_STARTMENUPAGE PRE LEAVE
  1389.  
  1390.   Function "${PRE}"
  1391.  
  1392.     !insertmacro MUI_PAGE_FUNCTION_CUSTOM PRE
  1393.  
  1394.      !ifdef MUI_STARTMENUPAGE_REGISTRY_ROOT & MUI_STARTMENUPAGE_REGISTRY_KEY & MUI_STARTMENUPAGE_REGISTRY_VALUENAME
  1395.  
  1396.       StrCmp "${MUI_STARTMENUPAGE_VARIABLE}" "" 0 +4
  1397.  
  1398.       ReadRegStr $MUI_TEMP1 "${MUI_STARTMENUPAGE_REGISTRY_ROOT}" "${MUI_STARTMENUPAGE_REGISTRY_KEY}" "${MUI_STARTMENUPAGE_REGISTRY_VALUENAME}"
  1399.         StrCmp $MUI_TEMP1 "" +2
  1400.           StrCpy "${MUI_STARTMENUPAGE_VARIABLE}" $MUI_TEMP1
  1401.  
  1402.     !endif
  1403.  
  1404.     !insertmacro MUI_HEADER_TEXT_PAGE $(MUI_TEXT_STARTMENU_TITLE) $(MUI_TEXT_STARTMENU_SUBTITLE)
  1405.  
  1406.     StrCmp $(^RTL) 0 mui.startmenu_nortl
  1407.       !ifndef MUI_STARTMENUPAGE_NODISABLE
  1408.         StartMenu::Init /rtl /noicon /autoadd /text "${MUI_STARTMENUPAGE_TEXT_TOP}" /lastused "${MUI_STARTMENUPAGE_VARIABLE}" /checknoshortcuts "${MUI_STARTMENUPAGE_TEXT_CHECKBOX}" "${MUI_STARTMENUPAGE_DEFAULTFOLDER}"
  1409.       !else
  1410.         StartMenu::Init /rtl /noicon /autoadd /text "${MUI_STARTMENUPAGE_TEXT_TOP}" /lastused "${MUI_STARTMENUPAGE_VARIABLE}" "${MUI_STARTMENUPAGE_DEFAULTFOLDER}"
  1411.       !endif
  1412.       Goto mui.startmenu_initdone
  1413.     mui.startmenu_nortl:
  1414.       !ifndef MUI_STARTMENUPAGE_NODISABLE
  1415.         StartMenu::Init /noicon /autoadd /text "${MUI_STARTMENUPAGE_TEXT_TOP}" /lastused "${MUI_STARTMENUPAGE_VARIABLE}" /checknoshortcuts "${MUI_STARTMENUPAGE_TEXT_CHECKBOX}" "${MUI_STARTMENUPAGE_DEFAULTFOLDER}"
  1416.       !else
  1417.         StartMenu::Init /noicon /autoadd /text "${MUI_STARTMENUPAGE_TEXT_TOP}" /lastused "${MUI_STARTMENUPAGE_VARIABLE}" "${MUI_STARTMENUPAGE_DEFAULTFOLDER}"
  1418.       !endif
  1419.     mui.startmenu_initdone:
  1420.  
  1421.   Pop $MUI_HWND
  1422.  
  1423.   !ifdef MUI_STARTMENUPAGE_BGCOLOR
  1424.     GetDlgItem $MUI_TEMP1 $MUI_HWND 1002
  1425.     SetCtlColors $MUI_TEMP1 "" "${MUI_STARTMENUPAGE_BGCOLOR}"
  1426.     GetDlgItem $MUI_TEMP1 $MUI_HWND 1004
  1427.     SetCtlColors $MUI_TEMP1 "" "${MUI_STARTMENUPAGE_BGCOLOR}"
  1428.   !endif
  1429.  
  1430.   !insertmacro MUI_PAGE_FUNCTION_CUSTOM SHOW
  1431.  
  1432.   StartMenu::Show
  1433.  
  1434.     Pop $MUI_TEMP1
  1435.     StrCmp $MUI_TEMP1 "success" 0 +2
  1436.       Pop "${MUI_STARTMENUPAGE_VARIABLE}"
  1437.  
  1438.   FunctionEnd
  1439.  
  1440.   Function "${LEAVE}"
  1441.  
  1442.     !insertmacro MUI_PAGE_FUNCTION_CUSTOM LEAVE
  1443.  
  1444.   FunctionEnd
  1445.  
  1446. !macroend
  1447.  
  1448. !macro MUI_FUNCTION_INSTFILESPAGE PRE SHOW LEAVE
  1449.  
  1450.   Function "${PRE}"
  1451.  
  1452.     !insertmacro MUI_PAGE_FUNCTION_CUSTOM PRE
  1453.     !insertmacro MUI_HEADER_TEXT_PAGE $(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_${MUI_PAGE_UNINSTALLER_PREFIX}INSTALLING_TITLE) $(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_${MUI_PAGE_UNINSTALLER_PREFIX}INSTALLING_SUBTITLE)
  1454.  
  1455.   FunctionEnd
  1456.  
  1457.   Function "${SHOW}"
  1458.  
  1459.     !insertmacro MUI_PAGE_FUNCTION_CUSTOM SHOW
  1460.  
  1461.   FunctionEnd
  1462.  
  1463.   Function "${LEAVE}"
  1464.  
  1465.     !insertmacro MUI_PAGE_FUNCTION_CUSTOM LEAVE
  1466.  
  1467.     !insertmacro MUI_ENDHEADER
  1468.     !insertmacro MUI_LANGDLL_SAVELANGUAGE
  1469.  
  1470.   FunctionEnd
  1471.  
  1472. !macroend
  1473.  
  1474. !macro MUI_FUNCTION_FINISHPAGE PRE LEAVE
  1475.  
  1476.   Function "${PRE}"
  1477.  
  1478.     !insertmacro MUI_WELCOMEFINISHPAGE_FUNCTION_CUSTOM
  1479.  
  1480.     !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "ioSpecial.ini" "Settings" "NextButtonText" MUI_FINISHPAGE_BUTTON
  1481.  
  1482.     !ifdef MUI_FINISHPAGE_CANCEL_ENABLED
  1483.       !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Settings" "CancelEnabled" "1"
  1484.     !endif
  1485.  
  1486.     !ifndef MUI_FINISHPAGE_TITLE_3LINES
  1487.       !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 2" "Bottom" "38"
  1488.       !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 3" "Top" "45"
  1489.     !else
  1490.       !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 2" "Bottom" "48"
  1491.       !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 3" "Top" "55"
  1492.     !endif
  1493.  
  1494.     !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "ioSpecial.ini" "Field 2" "Text" MUI_FINISHPAGE_TITLE
  1495.  
  1496.     !ifdef MUI_FINISHPAGE_RUN | MUI_FINISHPAGE_SHOWREADME
  1497.       !ifndef MUI_FINISHPAGE_TITLE_3LINES
  1498.         !ifndef MUI_FINISHPAGE_TEXT_LARGE
  1499.           !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 3" "Bottom" "85"
  1500.         !else
  1501.           !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 3" "Bottom" "115"
  1502.         !endif
  1503.       !else
  1504.         !ifndef MUI_FINISHPAGE_TEXT_LARGE
  1505.           !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 3" "Bottom" "95"
  1506.         !else
  1507.           !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 3" "Bottom" "125"
  1508.         !endif
  1509.       !endif
  1510.     !else
  1511.       !ifndef MUI_FINISHPAGE_LINK
  1512.         !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 3" "Bottom" "185"
  1513.       !else
  1514.         !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 3" "Bottom" "175"
  1515.       !endif
  1516.     !endif
  1517.  
  1518.     !ifndef MUI_FINISHPAGE_NOREBOOTSUPPORT
  1519.  
  1520.       IfRebootFlag 0 mui.finish_noreboot_init
  1521.  
  1522.         !ifndef MUI_FINISHPAGE_TITLE_3LINES
  1523.           !ifndef MUI_FINISHPAGE_TEXT_LARGE
  1524.             !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 3" "Bottom" "85"
  1525.           !else
  1526.             !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 3" "Bottom" "115"
  1527.           !endif
  1528.         !else
  1529.           !ifndef MUI_FINISHPAGE_TEXT_LARGE
  1530.             !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 3" "Bottom" "95"
  1531.           !else
  1532.             !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 3" "Bottom" "125"
  1533.           !endif
  1534.         !endif
  1535.  
  1536.         !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "ioSpecial.ini" "Field 3" "Text" MUI_FINISHPAGE_TEXT_REBOOT
  1537.  
  1538.         !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Settings" "Numfields" "5"
  1539.  
  1540.         !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 4" "Type" "RadioButton"
  1541.         !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "ioSpecial.ini" "Field 4" "Text" MUI_FINISHPAGE_TEXT_REBOOTNOW
  1542.         !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 4" "Left" "120"
  1543.         !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 4" "Right" "321"
  1544.         !ifndef MUI_FINISHPAGE_TITLE_3LINES
  1545.           !ifndef MUI_FINISHPAGE_TEXT_LARGE
  1546.             !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 4" "Top" "90"
  1547.             !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 4" "Bottom" "100"
  1548.           !else
  1549.             !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 4" "Top" "120"
  1550.             !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 4" "Bottom" "130"
  1551.           !endif
  1552.         !else
  1553.           !ifndef MUI_FINISHPAGE_TEXT_LARGE
  1554.             !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 4" "Top" "100"
  1555.             !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 4" "Bottom" "110"
  1556.           !else
  1557.             !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 4" "Top" "130"
  1558.             !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 4" "Bottom" "140"
  1559.           !endif
  1560.         !endif
  1561.         !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 5" "Type" "RadioButton"
  1562.         !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "ioSpecial.ini" "Field 5" "Text" MUI_FINISHPAGE_TEXT_REBOOTLATER
  1563.         !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 5" "Left" "120"
  1564.         !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 5" "Right" "321"
  1565.         !ifndef MUI_FINISHPAGE_TITLE_3LINES
  1566.           !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 5" "Top" "110"
  1567.           !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 5" "Bottom" "120"
  1568.         !else
  1569.           !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 5" "Top" "110"
  1570.           !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 5" "Bottom" "120"
  1571.         !endif
  1572.         !ifdef MUI_FINISHPAGE_REBOOTLATER_DEFAULT
  1573.           !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 4" "State" "0"
  1574.           !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 5" "State" "1"
  1575.         !else
  1576.           !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 4" "State" "1"
  1577.           !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 5" "State" "0"
  1578.         !endif
  1579.  
  1580.         Goto mui.finish_load
  1581.  
  1582.       mui.finish_noreboot_init:
  1583.  
  1584.     !endif
  1585.  
  1586.     !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "ioSpecial.ini" "Field 3" "Text" MUI_FINISHPAGE_TEXT
  1587.  
  1588.     !ifdef MUI_FINISHPAGE_RUN
  1589.  
  1590.       !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 4" "Type" "CheckBox"
  1591.       !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "ioSpecial.ini" "Field 4" "Text" MUI_FINISHPAGE_RUN_TEXT
  1592.       !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 4" "Left" "120"
  1593.       !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 4" "Right" "315"
  1594.       !ifndef MUI_FINISHPAGE_TITLE_3LINES
  1595.         !ifndef MUI_FINISHPAGE_TEXT_LARGE
  1596.           !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 4" "Top" "90"
  1597.           !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 4" "Bottom" "100"
  1598.         !else
  1599.           !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 4" "Top" "120"
  1600.           !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 4" "Bottom" "130"
  1601.         !endif
  1602.       !else
  1603.         !ifndef MUI_FINISHPAGE_TEXT_LARGE
  1604.           !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 4" "Top" "100"
  1605.           !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 4" "Bottom" "110"
  1606.         !else
  1607.           !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 4" "Top" "130"
  1608.           !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 4" "Bottom" "140"
  1609.         !endif
  1610.       !endif
  1611.       !ifndef MUI_FINISHPAGE_RUN_NOTCHECKED
  1612.         !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 4" "State" "1"
  1613.       !endif
  1614.  
  1615.     !endif
  1616.  
  1617.     !ifdef MUI_FINISHPAGE_SHOWREADME
  1618.  
  1619.       !ifdef MUI_FINISHPAGE_CURFIELD_NO
  1620.         !undef MUI_FINISHPAGE_CURFIELD_NO
  1621.       !endif
  1622.  
  1623.       !ifndef MUI_FINISHPAGE_RUN
  1624.         !define MUI_FINISHPAGE_CURFIELD_NO 4
  1625.         !ifndef MUI_FINISHPAGE_TITLE_3LINES
  1626.           !ifndef MUI_FINISHPAGE_TEXT_LARGE
  1627.             !define MUI_FINISHPAGE_CURFIELD_TOP 90
  1628.             !define MUI_FINISHPAGE_CURFIELD_BOTTOM 100
  1629.           !else
  1630.             !define MUI_FINISHPAGE_CURFIELD_TOP 120
  1631.             !define MUI_FINISHPAGE_CURFIELD_BOTTOM 130
  1632.           !endif
  1633.         !else
  1634.           !ifndef MUI_FINISHPAGE_TEXT_LARGE
  1635.             !define MUI_FINISHPAGE_CURFIELD_TOP 100
  1636.             !define MUI_FINISHPAGE_CURFIELD_BOTTOM 110
  1637.           !else
  1638.             !define MUI_FINISHPAGE_CURFIELD_TOP 130
  1639.             !define MUI_FINISHPAGE_CURFIELD_BOTTOM 140
  1640.           !endif
  1641.         !endif
  1642.       !else
  1643.         !define MUI_FINISHPAGE_CURFIELD_NO 5
  1644.         !ifndef MUI_FINISHPAGE_TITLE_3LINES
  1645.           !ifndef MUI_FINISHPAGE_TEXT_LARGE
  1646.             !define MUI_FINISHPAGE_CURFIELD_TOP 110
  1647.             !define MUI_FINISHPAGE_CURFIELD_BOTTOM 120
  1648.           !else
  1649.             !define MUI_FINISHPAGE_CURFIELD_TOP 140
  1650.             !define MUI_FINISHPAGE_CURFIELD_BOTTOM 150
  1651.           !endif
  1652.         !else
  1653.           !ifndef MUI_FINISHPAGE_TEXT_LARGE
  1654.             !define MUI_FINISHPAGE_CURFIELD_TOP 120
  1655.             !define MUI_FINISHPAGE_CURFIELD_BOTTOM 130
  1656.           !else
  1657.             !define MUI_FINISHPAGE_CURFIELD_TOP 150
  1658.             !define MUI_FINISHPAGE_CURFIELD_BOTTOM 160
  1659.           !endif
  1660.         !endif
  1661.       !endif
  1662.  
  1663.       !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${MUI_FINISHPAGE_CURFIELD_NO}" "Type" "CheckBox"
  1664.       !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "ioSpecial.ini" "Field ${MUI_FINISHPAGE_CURFIELD_NO}" "Text" MUI_FINISHPAGE_SHOWREADME_TEXT
  1665.       !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${MUI_FINISHPAGE_CURFIELD_NO}" "Left" "120"
  1666.       !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${MUI_FINISHPAGE_CURFIELD_NO}" "Right" "315"
  1667.       !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${MUI_FINISHPAGE_CURFIELD_NO}" "Top" ${MUI_FINISHPAGE_CURFIELD_TOP}
  1668.       !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${MUI_FINISHPAGE_CURFIELD_NO}" "Bottom" ${MUI_FINISHPAGE_CURFIELD_BOTTOM}
  1669.       !ifndef MUI_FINISHPAGE_SHOWREADME_NOTCHECKED
  1670.          !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${MUI_FINISHPAGE_CURFIELD_NO}" "State" "1"
  1671.       !endif
  1672.  
  1673.     !endif
  1674.  
  1675.     !ifdef MUI_FINISHPAGE_LINK
  1676.  
  1677.       !ifdef MUI_FINISHPAGE_CURFIELD_NO
  1678.         !undef MUI_FINISHPAGE_CURFIELD_NO
  1679.       !endif
  1680.  
  1681.       !ifdef MUI_FINISHPAGE_RUN & MUI_FINISHPAGE_SHOWREADME
  1682.         !define MUI_FINISHPAGE_CURFIELD_NO 6
  1683.       !else ifdef MUI_FINISHPAGE_RUN | MUI_FINISHPAGE_SHOWREADME
  1684.         !define MUI_FINISHPAGE_CURFIELD_NO 5
  1685.       !else
  1686.         !define MUI_FINISHPAGE_CURFIELD_NO 4
  1687.       !endif
  1688.  
  1689.       !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${MUI_FINISHPAGE_CURFIELD_NO}" "Type" "Link"
  1690.       !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "ioSpecial.ini" "Field ${MUI_FINISHPAGE_CURFIELD_NO}" "Text" MUI_FINISHPAGE_LINK
  1691.       !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${MUI_FINISHPAGE_CURFIELD_NO}" "Left" "120"
  1692.       !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${MUI_FINISHPAGE_CURFIELD_NO}" "Right" "315"
  1693.       !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${MUI_FINISHPAGE_CURFIELD_NO}" "Top" "175"
  1694.       !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field ${MUI_FINISHPAGE_CURFIELD_NO}" "Bottom" "185"
  1695.       !insertmacro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT "ioSpecial.ini" "Field ${MUI_FINISHPAGE_CURFIELD_NO}" "State" MUI_FINISHPAGE_LINK_LOCATION
  1696.  
  1697.     !endif
  1698.  
  1699.     !ifdef MUI_FINISHPAGE_RUN & MUI_FINISHPAGE_SHOWREADME & MUI_FINISHPAGE_LINK
  1700.       !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Settings" "Numfields" "6"
  1701.     !else ifdef MUI_FINISHPAGE_RUN & MUI_FINISHPAGE_SHOWREADME
  1702.       !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Settings" "Numfields" "5"
  1703.     !else ifdef MUI_FINISHPAGE_RUN & MUI_FINISHPAGE_LINK
  1704.       !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Settings" "Numfields" "5"
  1705.     !else ifdef MUI_FINISHPAGE_SHOWREADME & MUI_FINISHPAGE_LINK
  1706.       !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Settings" "Numfields" "5"
  1707.     !else ifdef MUI_FINISHPAGE_RUN | MUI_FINISHPAGE_SHOWREADME | MUI_FINISHPAGE_LINK
  1708.       !insertmacro INSTALLOPTIONS_WRITE "ioSpecial.ini" "Settings" "Numfields" "4"
  1709.     !endif
  1710.  
  1711.     !ifndef MUI_FINISHPAGE_NOREBOOTSUPPORT
  1712.        mui.finish_load:
  1713.     !endif
  1714.  
  1715.     !insertmacro MUI_PAGE_FUNCTION_CUSTOM PRE
  1716.  
  1717.     LockWindow on
  1718.     GetDlgItem $MUI_TEMP1 $HWNDPARENT 1028
  1719.     ShowWindow $MUI_TEMP1 ${SW_HIDE}
  1720.  
  1721.     GetDlgItem $MUI_TEMP1 $HWNDPARENT 1256
  1722.     ShowWindow $MUI_TEMP1 ${SW_HIDE}
  1723.  
  1724.     GetDlgItem $MUI_TEMP1 $HWNDPARENT 1035
  1725.     ShowWindow $MUI_TEMP1 ${SW_HIDE}
  1726.  
  1727.     GetDlgItem $MUI_TEMP1 $HWNDPARENT 1037
  1728.     ShowWindow $MUI_TEMP1 ${SW_HIDE}
  1729.  
  1730.     GetDlgItem $MUI_TEMP1 $HWNDPARENT 1038
  1731.     ShowWindow $MUI_TEMP1 ${SW_HIDE}
  1732.  
  1733.     GetDlgItem $MUI_TEMP1 $HWNDPARENT 1039
  1734.     ShowWindow $MUI_TEMP1 ${SW_HIDE}
  1735.  
  1736.     GetDlgItem $MUI_TEMP1 $HWNDPARENT 1045
  1737.     ShowWindow $MUI_TEMP1 ${SW_NORMAL}
  1738.     LockWindow off
  1739.  
  1740.     !insertmacro INSTALLOPTIONS_INITDIALOG "ioSpecial.ini"
  1741.     Pop $MUI_HWND
  1742.     SetCtlColors $MUI_HWND "" "${MUI_BGCOLOR}"
  1743.  
  1744.     GetDlgItem $MUI_TEMP1 $MUI_HWND 1201
  1745.     SetCtlColors $MUI_TEMP1 "" "${MUI_BGCOLOR}"
  1746.  
  1747.     CreateFont $MUI_TEMP2 "$(^Font)" "12" "700"
  1748.     SendMessage $MUI_TEMP1 ${WM_SETFONT} $MUI_TEMP2 0
  1749.  
  1750.     GetDlgItem $MUI_TEMP1 $MUI_HWND 1202
  1751.     SetCtlColors $MUI_TEMP1 "" "${MUI_BGCOLOR}"
  1752.  
  1753.     !ifndef MUI_FINISHPAGE_NOREBOOTSUPPORT
  1754.  
  1755.       IfRebootFlag 0 mui.finish_noreboot_show
  1756.  
  1757.         GetDlgItem $MUI_TEMP1 $MUI_HWND 1203
  1758.         SetCtlColors $MUI_TEMP1 "" "${MUI_BGCOLOR}"
  1759.  
  1760.         GetDlgItem $MUI_TEMP1 $MUI_HWND 1204
  1761.         SetCtlColors $MUI_TEMP1 "" "${MUI_BGCOLOR}"
  1762.  
  1763.         Goto mui.finish_show
  1764.  
  1765.       mui.finish_noreboot_show:
  1766.  
  1767.     !endif
  1768.  
  1769.     !ifdef MUI_FINISHPAGE_RUN
  1770.       GetDlgItem $MUI_TEMP1 $MUI_HWND 1203
  1771.       SetCtlColors $MUI_TEMP1 "" "${MUI_BGCOLOR}"
  1772.     !endif
  1773.  
  1774.     !ifdef MUI_FINISHPAGE_SHOWREADME
  1775.       !ifndef MUI_FINISHPAGE_RUN
  1776.         GetDlgItem $MUI_TEMP1 $MUI_HWND 1203
  1777.       !else
  1778.         GetDlgItem $MUI_TEMP1 $MUI_HWND 1204
  1779.       !endif
  1780.       SetCtlColors $MUI_TEMP1 "" "${MUI_BGCOLOR}"
  1781.     !endif
  1782.  
  1783.     !ifdef MUI_FINISHPAGE_LINK
  1784.       !ifdef MUI_FINISHPAGE_RUN & MUI_FINISHPAGE_SHOWREADME
  1785.         GetDlgItem $MUI_TEMP1 $MUI_HWND 1205
  1786.       !else ifdef MUI_FINISHPAGE_RUN | MUI_FINISHPAGE_SHOWREADME
  1787.         GetDlgItem $MUI_TEMP1 $MUI_HWND 1204
  1788.       !else
  1789.         GetDlgItem $MUI_TEMP1 $MUI_HWND 1203
  1790.       !endif
  1791.       SetCtlColors $MUI_TEMP1 "${MUI_FINISHPAGE_LINK_COLOR}" "${MUI_BGCOLOR}"
  1792.     !endif
  1793.  
  1794.     !ifndef MUI_FINISHPAGE_NOREBOOTSUPPORT
  1795.       mui.finish_show:
  1796.     !endif
  1797.  
  1798.     !insertmacro MUI_PAGE_FUNCTION_CUSTOM SHOW
  1799.  
  1800.     !ifdef MUI_FINISHPAGE_CANCEL_ENABLED
  1801.       StrCpy $MUI_NOABORTWARNING "1"
  1802.     !endif
  1803.  
  1804.     !insertmacro INSTALLOPTIONS_SHOW
  1805.  
  1806.     !ifdef MUI_FINISHPAGE_CANCEL_ENABLED
  1807.       StrCpy $MUI_NOABORTWARNING ""
  1808.     !endif
  1809.  
  1810.     LockWindow on
  1811.     GetDlgItem $MUI_TEMP1 $HWNDPARENT 1028
  1812.     ShowWindow $MUI_TEMP1 ${SW_NORMAL}
  1813.  
  1814.     GetDlgItem $MUI_TEMP1 $HWNDPARENT 1256
  1815.     ShowWindow $MUI_TEMP1 ${SW_NORMAL}
  1816.  
  1817.     GetDlgItem $MUI_TEMP1 $HWNDPARENT 1035
  1818.     ShowWindow $MUI_TEMP1 ${SW_NORMAL}
  1819.  
  1820.     GetDlgItem $MUI_TEMP1 $HWNDPARENT 1037
  1821.     ShowWindow $MUI_TEMP1 ${SW_NORMAL}
  1822.  
  1823.     GetDlgItem $MUI_TEMP1 $HWNDPARENT 1038
  1824.     ShowWindow $MUI_TEMP1 ${SW_NORMAL}
  1825.  
  1826.     GetDlgItem $MUI_TEMP1 $HWNDPARENT 1039
  1827.     ShowWindow $MUI_TEMP1 ${SW_NORMAL}
  1828.  
  1829.     GetDlgItem $MUI_TEMP1 $HWNDPARENT 1045
  1830.     ShowWindow $MUI_TEMP1 ${SW_HIDE}
  1831.     LockWindow off
  1832.  
  1833.   FunctionEnd
  1834.  
  1835.   Function "${LEAVE}"
  1836.  
  1837.     !insertmacro MUI_PAGE_FUNCTION_CUSTOM LEAVE
  1838.  
  1839.     !ifndef MUI_FINISHPAGE_NOREBOOTSUPPORT
  1840.  
  1841.       IfRebootFlag "" mui.finish_noreboot_end
  1842.  
  1843.         !insertmacro INSTALLOPTIONS_READ $MUI_TEMP1 "ioSpecial.ini" "Field 4" "State"
  1844.  
  1845.           StrCmp $MUI_TEMP1 "1" 0 +2
  1846.             Reboot
  1847.  
  1848.           Return
  1849.  
  1850.       mui.finish_noreboot_end:
  1851.  
  1852.     !endif
  1853.  
  1854.     !ifdef MUI_FINISHPAGE_RUN
  1855.  
  1856.       !insertmacro INSTALLOPTIONS_READ $MUI_TEMP1 "ioSpecial.ini" "Field 4" "State"
  1857.  
  1858.       StrCmp $MUI_TEMP1 "1" 0 mui.finish_norun
  1859.         !ifndef MUI_FINISHPAGE_RUN_FUNCTION
  1860.           !ifndef MUI_FINISHPAGE_RUN_PARAMETERS
  1861.             StrCpy $MUI_TEMP1 "$\"${MUI_FINISHPAGE_RUN}$\""
  1862.           !else
  1863.             StrCpy $MUI_TEMP1 "$\"${MUI_FINISHPAGE_RUN}$\" ${MUI_FINISHPAGE_RUN_PARAMETERS}"
  1864.           !endif
  1865.           Exec "$MUI_TEMP1"
  1866.         !else
  1867.           Call "${MUI_FINISHPAGE_RUN_FUNCTION}"
  1868.         !endif
  1869.  
  1870.         mui.finish_norun:
  1871.  
  1872.     !endif
  1873.  
  1874.     !ifdef MUI_FINISHPAGE_SHOWREADME
  1875.  
  1876.       !ifndef MUI_FINISHPAGE_RUN
  1877.         !insertmacro INSTALLOPTIONS_READ $MUI_TEMP1 "ioSpecial.ini" "Field 4" "State"
  1878.       !else
  1879.         !insertmacro INSTALLOPTIONS_READ $MUI_TEMP1 "ioSpecial.ini" "Field 5" "State"
  1880.       !endif
  1881.  
  1882.       StrCmp $MUI_TEMP1 "1" 0 mui.finish_noshowreadme
  1883.         !ifndef MUI_FINISHPAGE_SHOWREADME_FUNCTION
  1884.            ExecShell "open" "${MUI_FINISHPAGE_SHOWREADME}"
  1885.         !else
  1886.           Call "${MUI_FINISHPAGE_SHOWREADME_FUNCTION}"
  1887.         !endif
  1888.  
  1889.         mui.finish_noshowreadme:
  1890.  
  1891.     !endif
  1892.  
  1893.   FunctionEnd
  1894.  
  1895. !macroend
  1896.  
  1897. !macro MUI_UNFUNCTION_CONFIRMPAGE PRE SHOW LEAVE
  1898.  
  1899.   Function "${PRE}"
  1900.  
  1901.    !insertmacro MUI_PAGE_FUNCTION_CUSTOM PRE
  1902.    !insertmacro MUI_HEADER_TEXT_PAGE $(MUI_UNTEXT_CONFIRM_TITLE) $(MUI_UNTEXT_CONFIRM_SUBTITLE)
  1903.  
  1904.   FunctionEnd
  1905.  
  1906.   Function "${SHOW}"
  1907.  
  1908.     !insertmacro MUI_PAGE_FUNCTION_CUSTOM SHOW
  1909.  
  1910.   FunctionEnd
  1911.  
  1912.   Function "${LEAVE}"
  1913.  
  1914.     !insertmacro MUI_PAGE_FUNCTION_CUSTOM LEAVE
  1915.  
  1916.   FunctionEnd
  1917.  
  1918. !macroend
  1919.  
  1920. ;--------------------------------
  1921. ;INSTALL OPTIONS (CUSTOM PAGES)
  1922.  
  1923. !macro MUI_INSTALLOPTIONS_EXTRACT FILE
  1924.  
  1925.   !verbose push
  1926.   !verbose ${MUI_VERBOSE}
  1927.  
  1928.   !insertmacro INSTALLOPTIONS_EXTRACT "${FILE}"
  1929.  
  1930.   !verbose pop
  1931.  
  1932. !macroend
  1933.  
  1934. !macro MUI_INSTALLOPTIONS_EXTRACT_AS FILE FILENAME
  1935.  
  1936.   !verbose push
  1937.   !verbose ${MUI_VERBOSE}
  1938.  
  1939.   !insertmacro INSTALLOPTIONS_EXTRACT_AS "${FILE}" "${FILENAME}"
  1940.  
  1941.   !verbose pop
  1942.  
  1943. !macroend
  1944.  
  1945. !macro MUI_INSTALLOPTIONS_DISPLAY FILE
  1946.  
  1947.   !verbose push
  1948.   !verbose ${MUI_VERBOSE}
  1949.  
  1950.   !insertmacro INSTALLOPTIONS_DISPLAY "${FILE}"
  1951.  
  1952.   !verbose pop
  1953.  
  1954. !macroend
  1955.  
  1956. !macro MUI_INSTALLOPTIONS_DISPLAY_RETURN FILE
  1957.  
  1958.   !verbose push
  1959.   !verbose ${MUI_VERBOSE}
  1960.  
  1961.   !insertmacro INSTALLOPTIONS_DISPLAY_RETURN "${FILE}"
  1962.   
  1963.   !verbose pop
  1964.  
  1965. !macroend
  1966.  
  1967. !macro MUI_INSTALLOPTIONS_INITDIALOG FILE
  1968.  
  1969.   !verbose push
  1970.   !verbose ${MUI_VERBOSE}
  1971.  
  1972.   !insertmacro INSTALLOPTIONS_INITDIALOG "${FILE}"
  1973.  
  1974.   !verbose pop
  1975.  
  1976. !macroend
  1977.  
  1978. !macro MUI_INSTALLOPTIONS_SHOW
  1979.  
  1980.   !verbose push
  1981.   !verbose ${MUI_VERBOSE}
  1982.  
  1983.   !insertmacro INSTALLOPTIONS_SHOW
  1984.  
  1985.   !verbose pop
  1986.  
  1987. !macroend
  1988.  
  1989. !macro MUI_INSTALLOPTIONS_SHOW_RETURN
  1990.  
  1991.   !verbose push
  1992.   !verbose ${MUI_VERBOSE}
  1993.  
  1994.   !insertmacro INSTALLOPTIONS_SHOW_RETURN
  1995.  
  1996.   !verbose pop
  1997.  
  1998. !macroend
  1999.  
  2000. !macro MUI_INSTALLOPTIONS_READ VAR FILE SECTION KEY
  2001.  
  2002.   !verbose push
  2003.   !verbose ${MUI_VERBOSE}
  2004.  
  2005.   !insertmacro INSTALLOPTIONS_READ "${VAR}" "${FILE}" "${SECTION}" "${KEY}"
  2006.  
  2007.   !verbose pop
  2008.  
  2009. !macroend
  2010.  
  2011. !macro MUI_INSTALLOPTIONS_WRITE FILE SECTION KEY VALUE
  2012.  
  2013.   !verbose push
  2014.   !verbose ${MUI_VERBOSE}
  2015.  
  2016.   !insertmacro INSTALLOPTIONS_WRITE "${FILE}" "${SECTION}" "${KEY}" "${VALUE}"
  2017.  
  2018.   !verbose pop
  2019.  
  2020. !macroend
  2021.  
  2022. !macro MUI_INSTALLOPTIONS_WRITE_DEFAULTCONVERT FILE SECTION KEY SYMBOL
  2023.  
  2024.   ;Converts default strings from language files to InstallOptions format
  2025.   ;Only for use inside MUI
  2026.  
  2027.   !verbose push
  2028.   !verbose ${MUI_VERBOSE}
  2029.  
  2030.   !ifndef "${SYMBOL}_DEFAULTSET"
  2031.     !insertmacro INSTALLOPTIONS_WRITE "${FILE}" "${SECTION}" "${KEY}" "${${SYMBOL}}"
  2032.   !else
  2033.     Push "${${SYMBOL}}"
  2034.     Call ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}Nsis2Io
  2035.     Pop $MUI_TEMP1
  2036.     !insertmacro INSTALLOPTIONS_WRITE "${FILE}" "${SECTION}" "${KEY}" $MUI_TEMP1
  2037.   !endif
  2038.  
  2039.   !verbose pop
  2040.  
  2041. !macroend
  2042.  
  2043. ;--------------------------------
  2044. ;RESERVE FILES
  2045.  
  2046. !macro MUI_RESERVEFILE_INSTALLOPTIONS
  2047.  
  2048.   !verbose push
  2049.   !verbose ${MUI_VERBOSE}
  2050.  
  2051.   ReserveFile "${NSISDIR}\Plugins\InstallOptions.dll"
  2052.  
  2053.   !verbose pop
  2054.  
  2055. !macroend
  2056.  
  2057. !macro MUI_RESERVEFILE_LANGDLL
  2058.  
  2059.   !verbose push
  2060.   !verbose ${MUI_VERBOSE}
  2061.  
  2062.   ReserveFile "${NSISDIR}\Plugins\LangDLL.dll"
  2063.  
  2064.   !verbose pop
  2065.  
  2066. !macroend
  2067.  
  2068. ;--------------------------------
  2069. ;LANGUAGES
  2070.  
  2071. !macro MUI_LANGUAGE LANGUAGE
  2072.  
  2073.   ;Include a language
  2074.  
  2075.   !verbose push
  2076.   !verbose ${MUI_VERBOSE}
  2077.  
  2078.   !insertmacro MUI_INSERT
  2079.  
  2080.   LoadLanguageFile "${NSISDIR}\Contrib\Language files\${LANGUAGE}.nlf"
  2081.  
  2082.   ;Include language file
  2083.   !insertmacro LANGFILE_INCLUDE_WITHDEFAULT "${NSISDIR}\Contrib\Language files\${LANGUAGE}.nsh" "${NSISDIR}\Contrib\Language files\English.nsh"
  2084.  
  2085.   ;Add language to list of languages for selection dialog  
  2086.   !ifndef MUI_LANGDLL_LANGUAGES
  2087.     !define MUI_LANGDLL_LANGUAGES "'${LANGFILE_${LANGUAGE}_NAME}' '${LANG_${LANGUAGE}}' "
  2088.     !define MUI_LANGDLL_LANGUAGES_CP "'${LANGFILE_${LANGUAGE}_NAME}' '${LANG_${LANGUAGE}}' '${LANG_${LANGUAGE}_CP}' "
  2089.   !else
  2090.     !ifdef MUI_LANGDLL_LANGUAGES_TEMP
  2091.       !undef MUI_LANGDLL_LANGUAGES_TEMP
  2092.     !endif
  2093.     !define MUI_LANGDLL_LANGUAGES_TEMP "${MUI_LANGDLL_LANGUAGES}"
  2094.     !undef MUI_LANGDLL_LANGUAGES
  2095.  
  2096.     !ifdef MUI_LANGDLL_LANGUAGES_CP_TEMP
  2097.       !undef MUI_LANGDLL_LANGUAGES_CP_TEMP
  2098.     !endif
  2099.     !define MUI_LANGDLL_LANGUAGES_CP_TEMP "${MUI_LANGDLL_LANGUAGES_CP}"
  2100.     !undef MUI_LANGDLL_LANGUAGES_CP
  2101.  
  2102.     !define MUI_LANGDLL_LANGUAGES "'${LANGFILE_${LANGUAGE}_NAME}' '${LANG_${LANGUAGE}}' ${MUI_LANGDLL_LANGUAGES_TEMP}"
  2103.     !define MUI_LANGDLL_LANGUAGES_CP "'${LANGFILE_${LANGUAGE}_NAME}' '${LANG_${LANGUAGE}}' '${LANG_${LANGUAGE}_CP}' ${MUI_LANGDLL_LANGUAGES_CP_TEMP}"
  2104.   !endif
  2105.   
  2106.   !verbose pop
  2107.  
  2108. !macroend
  2109.  
  2110. ;--------------------------------
  2111. ;LANGUAGE SELECTION DIALOG
  2112.  
  2113. !macro MUI_LANGDLL_DISPLAY
  2114.  
  2115.   !verbose push
  2116.   !verbose ${MUI_VERBOSE}
  2117.  
  2118.   !insertmacro MUI_DEFAULT MUI_LANGDLL_WINDOWTITLE "Installer Language"
  2119.   !insertmacro MUI_DEFAULT MUI_LANGDLL_INFO "Please select a language."
  2120.  
  2121.   !ifdef MUI_LANGDLL_REGISTRY_ROOT & MUI_LANGDLL_REGISTRY_KEY & MUI_LANGDLL_REGISTRY_VALUENAME
  2122.  
  2123.     ReadRegStr $MUI_TEMP1 "${MUI_LANGDLL_REGISTRY_ROOT}" "${MUI_LANGDLL_REGISTRY_KEY}" "${MUI_LANGDLL_REGISTRY_VALUENAME}"
  2124.     StrCmp $MUI_TEMP1 "" mui.langdll_show
  2125.       StrCpy $LANGUAGE $MUI_TEMP1
  2126.       !ifndef MUI_LANGDLL_ALWAYSSHOW
  2127.         Goto mui.langdll_done
  2128.       !endif
  2129.     mui.langdll_show:
  2130.  
  2131.   !endif
  2132.   
  2133.   !ifdef NSIS_CONFIG_SILENT_SUPPORT
  2134.     IfSilent mui.langdll_done
  2135.   !endif  
  2136.  
  2137.   !ifdef MUI_LANGDLL_ALLLANGUAGES
  2138.     LangDLL::LangDialog "${MUI_LANGDLL_WINDOWTITLE}" "${MUI_LANGDLL_INFO}" A ${MUI_LANGDLL_LANGUAGES} ""
  2139.   !else
  2140.     LangDLL::LangDialog "${MUI_LANGDLL_WINDOWTITLE}" "${MUI_LANGDLL_INFO}" AC ${MUI_LANGDLL_LANGUAGES_CP} ""
  2141.   !endif
  2142.  
  2143.   Pop $LANGUAGE
  2144.   StrCmp $LANGUAGE "cancel" 0 +2
  2145.     Abort
  2146.  
  2147.   !ifdef NSIS_CONFIG_SILENT_SUPPORT
  2148.     mui.langdll_done:
  2149.   !else ifdef MUI_LANGDLL_REGISTRY_ROOT & MUI_LANGDLL_REGISTRY_KEY & MUI_LANGDLL_REGISTRY_VALUENAME
  2150.     mui.langdll_done:
  2151.   !endif
  2152.  
  2153.   !verbose pop
  2154.  
  2155. !macroend
  2156.  
  2157. !macro MUI_LANGDLL_SAVELANGUAGE
  2158.  
  2159.   !ifndef MUI_PAGE_UNINSTALLER
  2160.  
  2161.     IfAbort mui.langdllsavelanguage_abort
  2162.  
  2163.     !ifdef MUI_LANGDLL_REGISTRY_ROOT & MUI_LANGDLL_REGISTRY_KEY & MUI_LANGDLL_REGISTRY_VALUENAME
  2164.       WriteRegStr "${MUI_LANGDLL_REGISTRY_ROOT}" "${MUI_LANGDLL_REGISTRY_KEY}" "${MUI_LANGDLL_REGISTRY_VALUENAME}" $LANGUAGE
  2165.     !endif
  2166.  
  2167.     mui.langdllsavelanguage_abort:
  2168.  
  2169.   !endif
  2170.  
  2171. !macroend
  2172.  
  2173. !macro MUI_UNGETLANGUAGE
  2174.  
  2175.   !verbose pop
  2176.  
  2177.   !ifdef MUI_LANGDLL_REGISTRY_ROOT & MUI_LANGDLL_REGISTRY_KEY & MUI_LANGDLL_REGISTRY_VALUENAME
  2178.  
  2179.     ReadRegStr $MUI_TEMP1 "${MUI_LANGDLL_REGISTRY_ROOT}" "${MUI_LANGDLL_REGISTRY_KEY}" "${MUI_LANGDLL_REGISTRY_VALUENAME}"
  2180.     StrCmp $MUI_TEMP1 "" 0 mui.ungetlanguage_setlang
  2181.  
  2182.   !endif
  2183.  
  2184.   !insertmacro MUI_LANGDLL_DISPLAY
  2185.  
  2186.   !ifdef MUI_LANGDLL_REGISTRY_ROOT & MUI_LANGDLL_REGISTRY_KEY & MUI_LANGDLL_REGISTRY_VALUENAME
  2187.  
  2188.     Goto mui.ungetlanguage_done
  2189.  
  2190.     mui.ungetlanguage_setlang:
  2191.       StrCpy $LANGUAGE $MUI_TEMP1
  2192.  
  2193.     mui.ungetlanguage_done:
  2194.  
  2195.   !endif
  2196.  
  2197.   !verbose pop
  2198.  
  2199. !macroend
  2200.  
  2201. ;--------------------------------
  2202. ;END
  2203.  
  2204. !endif
  2205.  
  2206. !verbose pop
  2207.