;General
  Name "UMUI UnSerialPage Test"
  OutFile "UnSerialTest.exe"
  InstallDir "$DESKTOP\UnSerialTest"
  RequestExecutionLevel user
  !include "UMUI.nsh"
  !define UMUI_USE_INSTALLOPTIONSEX

;Pages
  !define MUI_ABORTWARNING
  !define UMUI_PAGEBGIMAGE
  !define UMUI_PARAMS_REGISTRY_ROOT HKCU
  !define UMUI_PARAMS_REGISTRY_KEY "Software\UnSerialTest"
  !insertmacro MUI_PAGE_COMPONENTS
  !insertmacro UMUI_PAGE_SERIALNUMBER SerialPage_Show
  !define UMUI_CONFIRMPAGE_TEXTBOX ConfirmPage_Show
  !insertmacro UMUI_PAGE_CONFIRM
  !insertmacro MUI_PAGE_INSTFILES
  !insertmacro UMUI_PAGE_ADDITIONALTASKS AddlTasks_Show

  !define MUI_UNABORTWARNING
  !define UMUI_UNPAGEBGIMAGE
  !insertmacro UMUI_UNPAGE_SERIALNUMBER un.SerialPage_Show
  !define UMUI_CONFIRMPAGE_TEXTBOX un.ConfirmPage_Show
  !insertmacro UMUI_UNPAGE_CONFIRM
  !insertmacro MUI_UNPAGE_INSTFILES
  !insertmacro UMUI_UNPAGE_ADDITIONALTASKS un.AddlTasks_Show
  
;Languages
  !insertmacro MUI_LANGUAGE "English"
  
;Installer Sections
Section "Test" SecInstall
  SetOutPath "$INSTDIR"
    WriteUninstaller Uninstall.exe
SectionEnd
  
;Descriptions
  LangString DESC_SecInstall ${LANG_ENGLISH} "Test"
  !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
    !insertmacro MUI_DESCRIPTION_TEXT ${SecInstall} $(DESC_SecInstall)
  !insertmacro MUI_FUNCTION_DESCRIPTION_END
  
;Uninstaller Section
Section "Uninstall"
  Delete "$INSTDIR\Uninstall.exe"
  RMDir "$INSTDIR"
  DeleteRegKey HKCU "Software\UnSerialTest"
SectionEnd
  
;Functions
Function SerialPage_Show
  !define UMUI_SERIALNUMBERPAGE_SERIAL_REGISTRY_VALUENAME "SerialTest"
  !insertmacro UMUI_SERIALNUMBERPAGE_ADD_LABELEDSERIAL SERIAL 324 "CANBEEMPTY" $R0 "Serial"
FunctionEnd
Function un.SerialPage_Show
  !define UMUI_SERIALNUMBERPAGE_SERIAL_REGISTRY_VALUENAME "SerialTest"
  !insertmacro UMUI_SERIALNUMBERPAGE_ADD_LABELEDSERIAL SERIAL 324 "CANBEEMPTY" $R0 "Serial"
FunctionEnd
  
Function ConfirmPage_Show
  !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "TEST"
FunctionEnd
Function un.ConfirmPage_Show
  !insertmacro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE "TEST"
FunctionEnd
  
Function AddlTasks_Show
  !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_LABEL "Label"
  !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_TASK DESKTOP 1 "Task"
FunctionEnd
Function un.AddlTasks_Show
  !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_LABEL "Label"
  !insertmacro UMUI_ADDITIONALTASKSPAGE_ADD_TASK DESKTOP 1 "Task"
FunctionEnd