3131!ifndef UI_NSH_
3232!define UI_NSH_
3333
34- !include " MUI .nsh"
34+ !include " MUI2 .nsh"
3535
3636!include ' Resources.nsh'
3737
@@ -41,8 +41,8 @@ ShowUnInstDetails show
4141
4242Name " ${PRODUCT_BRAND} ${PRODUCT_FULL_NAME}"
4343BrandingText " ${PRODUCT_BRAND} ${PRODUCT_NAME} v${PRODUCT_VERSION}"
44- Caption " ${PRODUCT_NAME} - Open Source Cross-Platform Hypervisor "
45- UninstallCaption " ${PRODUCT_BRAND} ${PRODUCT_NAME} Uninstall "
44+ Caption " ${PRODUCT_NAME} - ${PRODUCT_DESCRIPTION} "
45+ UninstallCaption " ${DLG_CAPTION_UN} "
4646!ifdef INSTALL
4747OutFile " haxm-${PRODUCT_VERSION}-setup.exe"
4848!else
@@ -60,42 +60,94 @@ VIAddVersionKey LegalCopyright "${U+00A9} ${PRODUCT_YEAR} \
6060VIAddVersionKey ProductName " ${PRODUCT_BRAND} ${PRODUCT_FULL_NAME}"
6161VIAddVersionKey ProductVersion " ${PRODUCT_VERSION}"
6262
63- !define MUI_ABORTWARNING
63+ !define MUI_ICON " res\haxm_logo.ico"
64+ !define MUI_UNICON " res\haxm_logo.ico"
65+
6466!ifdef INSTALL
65- !define MUI_CUSTOMFUNCTION_ABORT onAbort
66- !endif
67- !define MUI_ICON " res\haxm_logo.ico"
68- !define MUI_UNICON " res\haxm_logo.ico"
69- !define MUI_WELCOMEFINISHPAGE_BITMAP " res\cover.bmp"
67+ Var title
68+ Var text
69+ Var link
70+ Var url
71+
72+ !define MUI_WELCOMEFINISHPAGE_BITMAP " res\cover.bmp"
73+ !define MUI_ABORTWARNING
74+ !define MUI_CUSTOMFUNCTION_ABORT onAbort
7075
7176# Welcome page
7277!define MUI_WELCOMEPAGE_TITLE_3LINES
73- !define MUI_WELCOMEPAGE_TEXT " This wizard will guide you through the \
74- installation of $(^Name) (${PRODUCT_NAME}) ${PRODUCT_VERSION}. \
75- ${PRODUCT_NAME} is a hardware-assisted virtualization engine \
76- (hypervisor), widely used as an accelerator for Android Emulator and \
77- QEMU.\
78- \r\n\r\nImportant: ${PRODUCT_NAME} requires an Intel CPU with certain \
79- hardware features, including ${PRODUCT_BRAND} Virtualization \
80- Technology (${PRODUCT_BRAND} VT), etc. This installer will check \
81- whether your computer can run ${PRODUCT_NAME}."
78+ !define MUI_WELCOMEPAGE_TEXT " ${PG_WELCOME_TEXT}"
8279
8380# License page
84- !define MUI_LICENSEPAGE_TEXT_BOTTOM " If you accept the terms of the license \
85- agreement, click Install to continue $(^Name) setup."
81+ !define MUI_LICENSEPAGE_TEXT_BOTTOM " ${PG_LICENSE_BOTTOM}"
8682!define MUI_LICENSEPAGE_BUTTON " &Install"
8783
8884# Finish page
85+ !define MUI_FINISHPAGE_TITLE " $title"
86+ !define MUI_FINISHPAGE_TEXT " $text$\r$\n$\r$\n ${PG_EXIT_TEXT}"
8987!define MUI_FINISHPAGE_TITLE_3LINES
90- !define MUI_FINISHPAGE_LINK_LOCATION ${PRODUCT_WEBSITE}
91- !define MUI_FINISHPAGE_LINK " ${PRODUCT_NAME} Homepage: ${PRODUCT_WEBSITE}"
88+ !define MUI_FINISHPAGE_TEXT_LARGE
89+ !define MUI_FINISHPAGE_LINK " $link"
90+ !define MUI_FINISHPAGE_LINK_LOCATION " $url"
9291
9392# Wizard dialogs
9493!insertmacro MUI_PAGE_WELCOME
9594!insertmacro MUI_PAGE_LICENSE " assets\LICENSE"
9695!insertmacro MUI_PAGE_INSTFILES
96+ !define MUI_PAGE_CUSTOMFUNCTION_PRE onFinished
9797!insertmacro MUI_PAGE_FINISH
98- !ifndef INSTALL
98+
99+ # Wizard costom pages
100+ !macro List Item Flag
101+ IntOp $0 $status & ${Flag}
102+ ${If} $0 != 0
103+ StrCpy $text " $text$\r$\n - ${Item}"
104+ ${EndIf}
105+ !macroend
106+
107+ !define List ` !insertmacro List`
108+
109+ Function LoadSuccessPage
110+ StrCpy $title " ${PG_COMPLETE_TITLE}"
111+ StrCpy $text " ${PG_COMPLETE_TEXT}"
112+ StrCpy $link " ${PG_HOMEPAGE}"
113+ StrCpy $url " ${PRODUCT_WEBSITE}"
114+ FunctionEnd
115+
116+ Function LoadSystemErrorPage
117+ StrCpy $title " ${PG_FAIL_TITLE}"
118+ StrCpy $text " ${PG_SYS_FAIL_TEXT}$\r$\n "
119+
120+ ${List} " ${PG_CPU_SUPPORT}" ${ENV_FLAG_CPU_SUPPORTED}
121+ ${List} " ${PG_VMX_SUPPORT}" ${ENV_FLAG_VMX_SUPPORTED}
122+ ${List} " ${PG_NX_SUPPORT}" ${ENV_FLAG_NX_SUPPORTED}
123+ ${List} " ${PG_EM64T_SUPPORT}" ${ENV_FLAG_EM64T_SUPPORTED}
124+ ${List} " ${PG_EPT_SUPPORT}" ${ENV_FLAG_EPT_SUPPORTED}
125+ ${List} " ${PG_OSVER_SUPPORT}" ${ENV_FLAG_OSVER_SUPPORTED}
126+ ${List} " ${PG_OSARCH_SUPPORT}" ${ENV_FLAG_OSARCH_SUPPORTED}
127+
128+ StrCpy $link " ${PG_HOMEPAGE}"
129+ StrCpy $url " ${PRODUCT_WEBSITE}"
130+ FunctionEnd
131+
132+ Function LoadHostErrorPage
133+ StrCpy $title " ${PG_COMPLETE_TITLE}"
134+ StrCpy $text " ${PG_HOST_FAIL_TEXT}$\r$\n "
135+
136+ ${List} " ${PG_ENABLE_VMX}" ${ENV_FLAG_VMX_ENABLED}
137+ ${List} " ${PG_ENABLE_NX}" ${ENV_FLAG_NX_ENABLED}
138+ ${List} " ${PG_DISABLE_HYPERV}" ${ENV_FLAG_HYPERV_DISABLED}
139+
140+ StrCpy $link " ${PG_WIKIPAGE}"
141+ StrCpy $url " ${PRODUCT_WEBSITE}${PRODUCT_WIKIPAGE}"
142+ FunctionEnd
143+
144+ Function LoadGuestErrorPage
145+ StrCpy $title " ${PG_FAIL_TITLE}"
146+ StrCpy $text " ${PG_GUEST_FAIL_TEXT}"
147+ StrCpy $link " ${PG_HOMEPAGE}"
148+ StrCpy $url " ${PRODUCT_WEBSITE}"
149+ FunctionEnd
150+ !else
99151!insertmacro MUI_UNPAGE_INSTFILES
100152!endif
101153
0 commit comments