Contrib/ExperienceUI/MUIConvert.nsh
author Dan
Mon, 03 Aug 2009 21:23:07 -0400
changeset 8 f5809048788b
parent 0 d5ce4c64ef88
child 27 8dd5c7dfc2de
permissions -rwxr-xr-x
License says (C) 2009 now

; ExperienceUI for NSIS
; Converter script
; Implements support for MUI and UMUI defines into ExperienceUI

; Copyright © 2005-2006 Dan Fuhry (dandaman32)

!macro XPUI_PAGE_TITLE_CONVERT P
  !insertmacro XPUI_CONVERT XPUI_${P}PAGE_TITLE MUI_TEXT_${P}_TITLE
  !insertmacro XPUI_CONVERT XPUI_${P}PAGE_SUBTITLE MUI_TEXT_${P}_SUBTITLE
!macroend

!macro XPUI_LANGUAGE_CONVERT

!verbose push
!verbose 1 ; These can be obnoxious

; CONVERSION LIST (VERY LONG)
; LEGEND:

; MACRO                 | XPUI DEFINE                               | MUI/UMUI DEFINE
;                       |                                           |
!insertmacro XPUI_CONVERT XPUI_HEADERIMAGE                            MUI_HEADERIMAGE_BITMAP
!insertmacro XPUI_CONVERT XPUI_HEADERIMAGE_NORESIZETOFIT              MUI_HEADERIMAGE_BITMAP_NOSTRETCH
!insertmacro XPUI_CONVERT XPUI_UNHEADERIMAGE                          MUI_HEADERIMAGE_UNBITMAP
!insertmacro XPUI_CONVERT XPUI_UNHEADERIMAGE_NORESIZETOFIT            MUI_HEADERIMAGE_UNBITMAP_NOSTRETCH
!insertmacro XPUI_CONVERT XPUI_TEXT_COLOR                             MUI_TEXT_COLOR
!insertmacro XPUI_CONVERT XPUI_TEXT_BGCOLOR                           MUI_BGCOLOR
!insertmacro XPUI_CONVERT XPUI_TEXT_LIGHTCOLOR                        UMUI_TEXT_LIGHTCOLOR
!insertmacro XPUI_CONVERT XPUI_HEADERIMAGE                            UMUI_HEADERIMAGE_BMP
!insertmacro XPUI_CONVERT XPUI_UNHEADERIMAGE                          UMUI_UNHEADERIMAGE_BMP
!insertmacro XPUI_CONVERT XPUI_ICON                                   MUI_ICON
!insertmacro XPUI_CONVERT XPUI_UNICON                                 MUI_UNICON
!insertmacro XPUI_CONVERT XPUI_ABORTWARNING_TEXT                      MUI_TEXT_ABORTWARNING
!insertmacro XPUI_CONVERT XPUI_ABORTWARNING_TEXT                      MUI_ABORTWARNING_TEXT
!insertmacro XPUI_CONVERT XPUI_BRANDINGTEXT_COLOR_BG                  UMUI_BRANDINGTEXTBACKCOLOR
!insertmacro XPUI_CONVERT XPUI_BRANDINGTEXT_COLOR_FG                  UMUI_BRANDINGTEXTFRONTCOLOR

!insertmacro XPUI_CONVERT XPUI_BOTTOMIMAGE                            UMUI_BOTTOMIMAGE
!insertmacro XPUI_CONVERT XPUI_BOTTOMIMAGE_BMP                        UMUI_BOTTOMIMAGE_BMP
!insertmacro XPUI_CONVERT XPUI_UNBOTTOMIMAGE                          UMUI_UNBOTTOMIMAGE
!insertmacro XPUI_CONVERT XPUI_UNBOTTOMIMAGE_BMP                      UMUI_UNBOTTOMIMAGE_BMP

!insertmacro XPUI_CONVERT XPUI_LEFTLOGO                               UMUI_LEFTIMAGE_BMP
!insertmacro XPUI_CONVERT XPUI_UNLEFTLOGO                             UMUI_UNLEFTIMAGE_BMP

!insertmacro XPUI_CONVERT XPUI_UI                                     MUI_UI
!insertmacro XPUI_CONVERT XPUI_UI                                     UMUI_UI

!insertmacro XPUI_CONVERT XPUI_LICENSEBKCOLOR                         MUI_LICENSEPAGE_BGCOLOR

!insertmacro XPUI_CONVERT XPUI_COMPONENTSPAGE_NODESC                  MUI_COMPONENTSPAGE_NODESC

!insertmacro XPUI_CONVERT XPUI_WELCOMEPAGE_TEXT                       MUI_WELCOMEPAGE_TEXT
!insertmacro XPUI_CONVERT XPUI_WELCOMEPAGE_TEXT_TOP                   MUI_WELCOMEPAGE_TITLE

!insertmacro XPUI_CONVERT XPUI_WELCOMEPAGESTYLE2_TEXT                 MUI_WELCOMEPAGE_TEXT
!insertmacro XPUI_CONVERT XPUI_WELCOMEPAGESTYLE2_TEXT_TOP             MUI_WELCOMEPAGE_TITLE

!insertmacro XPUI_CONVERT XPUI_WELCOMEPAGESTYLE2_TEXT                 MUI_TEXT_WELCOME_INFO_TEXT
!insertmacro XPUI_CONVERT XPUI_WELCOMEPAGESTYLE2_TEXT_TOP             MUI_TEXT_WELCOME_INFO_TITLE

!ifdef MUI_TEXT_WELCOME_INFO_TEXT
  !insertmacro XPUI_DEFAULT XPUI_WELCOMEPAGE_TEXT `${MUI_TEXT_WELCOME_INFO_TEXT}`
!endif

!insertmacro XPUI_CONVERT XPUI_WELCOMEPAGE_TEXT_TOP                   MUI_TEXT_WELCOME_INFO_TITLE

!insertmacro XPUI_CONVERT XPUI_WELCOMEPAGESTYLE2_TEXT                 MUI_WELCOME_INFO_TEXT
!insertmacro XPUI_CONVERT XPUI_WELCOMEPAGESTYLE2_TEXT_TOP             MUI_WELCOME_INFO_TITLE

!insertmacro XPUI_CONVERT XPUI_LICENSEPAGE_TEXT_TOP                   MUI_LICENSEPAGE_TEXT_TOP
!insertmacro XPUI_CONVERT XPUI_LICENSEPAGE_TEXT_BOTTOM                MUI_LICENSEPAGE_TEXT_BOTTOM
!insertmacro XPUI_CONVERT XPUI_LICENSEPAGE_CHECKBOX                   MUI_LICENSEPAGE_CHECKBOX
!insertmacro XPUI_CONVERT XPUI_LICENSEPAGE_CHECKBOX_TEXT              MUI_LICENSEPAGE_CHECKBOX_TEXT
!insertmacro XPUI_CONVERT XPUI_LICENSEPAGE_RADIOBUTTONS               MUI_LICENSEPAGE_RADIOBUTTONS
!insertmacro XPUI_CONVERT XPUI_LICENSEPAGE_RADIOBUTTONS_TEXT_AGREE    MUI_LICENSEPAGE_RAGIOBUTTONS_TEXT_ACCEPT
!insertmacro XPUI_CONVERT XPUI_LICENSEPAGE_RADIOBUTTONS_TEXT_DECLINE  MUI_LICENSEPAGE_RAGIOBUTTONS_TEXT_DECLINE
!insertmacro XPUI_CONVERT XPUI_LICENSEPAGE_TEXT_TOP                   MUI_INNERTEXT_LICENSE_TOP
!insertmacro XPUI_CONVERT XPUI_LICENSEPAGE_TEXT_BOTTOM                MUI_INNERTEXT_LICENSE_BOTTOM

; MUI Japanese Translation license page checkbox text has a `...
!insertmacro XPUI_CONVERT_QUOTE_ALT XPUI_LICENSEPAGE_CHECKBOX_TEXT    MUI_INNERTEXT_LICENSE_BOTTOM_CHECKBOX
!insertmacro XPUI_CONVERT_QUOTE_ALT XPUI_LICENSEPAGE_CHECKBOX_TEXT    MUI_INNERTEXT_LICENSE_BOTTOM_CHECKBOX

!insertmacro XPUI_CONVERT XPUI_COMPONENTSPAGE_TEXT_DESCRIPTION_TITLE  MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_TITLE
!insertmacro XPUI_CONVERT XPUI_COMPONENTSPAGE_TEXT_DESCRIPTION_INFO   MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_INFO
!insertmacro XPUI_CONVERT XPUI_COMPONENTSPAGE_TEXT_DESCRIPTION_TITLE  MUI_INNERTEXT_COMPONENTS_DESCRIPTION_TITLE
!insertmacro XPUI_CONVERT XPUI_COMPONENTSPAGE_TEXT_DESCRIPTION_INFO   MUI_INNERTEXT_COMPONENTS_DESCRIPTION_INFO

!insertmacro XPUI_CONVERT XPUI_DIRECTORYPAGE_TEXT_TOP                 MUI_DIRECTORYPAGE_TEXT_TOP
!insertmacro XPUI_CONVERT XPUI_DIRECTORYPAGE_TEXT_DESTINATION         MUI_DIRECTORYPAGE_TEXT_DESTINATION

!insertmacro XPUI_CONVERT XPUI_STARTMENUPAGE_TEXT                     MUI_STARTMENUPAGE_TEXT_TOP
!insertmacro XPUI_CONVERT XPUI_STARTMENUPAGE_CHECKBOX                 MUI_STARTMENUPAGE_TEXT_CHECKBOX
!insertmacro XPUI_CONVERT XPUI_STARTMENUPAGE_TEXT                     MUI_INNERTEXT_STARTMENU_TOP
!insertmacro XPUI_CONVERT XPUI_STARTMENUPAGE_CHECKBOX                 MUI_INNERTEXT_STARTMENU_CHECKBOX

!insertmacro XPUI_CONVERT XPUI_INSTFILESPAGE_DONE_TITLE               MUI_TEXT_FINISH_TITLE
!insertmacro XPUI_CONVERT XPUI_INSTFILESPAGE_DONE_SUBTITLE            MUI_TEXT_FINISH_SUBTITLE

!insertmacro XPUI_CONVERT XPUI_${XPUI_UN}FINISHPAGE_TEXT_TOP                        MUI_FINISHPAGE_INFO_TITLE
!insertmacro XPUI_CONVERT XPUI_${XPUI_UN}FINISHPAGE_TEXT                            MUI_FINISHPAGE_INFO_TEXT
!insertmacro XPUI_CONVERT XPUI_${XPUI_UN}FINISHPAGE_TEXT_RUN                        MUI_FINISHPAGE_INFO_TEXT
!insertmacro XPUI_CONVERT XPUI_${XPUI_UN}FINISHPAGE_TEXT_REBOOT                     MUI_FINISHPAGE_INFO_REBOOT
!ifdef MUI_FINISHPAGE_RUN
  !ifndef XPUI_${XPUI_UN}FINISHPAGE_RUN
    !define XPUI_${XPUI_UN}FINISHPAGE_RUN
  !endif
  !ifndef XPUI_${XPUI_UN}FINISHPAGE_RUN_FILE
    !define XPUI_${XPUI_UN}FINISHPAGE_RUN_FILE "${MUI_FINISHPAGE_RUN}"
  !endif
!endif
!insertmacro XPUI_CONVERT XPUI_${XPUI_UN}FINISHPAGE_RUN_FUNCTION                    MUI_FINISHPAGE_RUN_FUNCTION
!insertmacro XPUI_CONVERT XPUI_${XPUI_UN}FINISHPAGE_CHECKBOX_RUN                    MUI_FINISHPAGE_RUN_TEXT
!insertmacro XPUI_CONVERT XPUI_${XPUI_UN}FINISHPAGE_DOCS                            MUI_FINISHPAGE_SHOWREADME
!insertmacro XPUI_CONVERT XPUI_${XPUI_UN}FINISHPAGE_DOCS_FILE                       MUI_FINISHPAGE_SHOWREADME
!insertmacro XPUI_CONVERT XPUI_${XPUI_UN}FINISHPAGE_CHECKBOX_DOCS                   MUI_FINISHPAGE_SHOWREADME_TEXT
!insertmacro XPUI_CONVERT XPUI_${XPUI_UN}FINISHPAGE_NOREBOOT                        MUI_FINISHPAGE_NOREBOOTSUPPORT
!insertmacro XPUI_CONVERT XPUI_${XPUI_UN}FINISHPAGE_LINK_TEXT                       MUI_FINISHPAGE_LINK
!insertmacro XPUI_CONVERT XPUI_${XPUI_UN}FINISHPAGE_LINK_LOCATION                   MUI_FINISHPAGE_LINK_LOCATION

!ifdef MUI_FINISHPAGE_LINK
  !insertmacro XPUI_DEFAULT XPUI_${XPUI_UN}FINISHPAGE_LINK ""
  !insertmacro XPUI_SET XPUI_${XPUI_UN}FINISHPAGE_LINK_TEXT `${MUI_FINISHPAGE_LINK}`
  !ifdef MUI_FINISHPAGE_LINK_LOCATION
    !insertmacro XPUI_DEFAULT "XPUI_FINISHPAGE_LINK_LOCATION" "${MUI_FINISHPAGE_LINK_LOCATION}"
  !endif
!endif

!insertmacro XPUI_CONVERT XPUI_${XPUI_UN}FINISHPAGE_TEXT_TOP                    MUI_TEXT_FINISH_INFO_TITLE
!insertmacro XPUI_CONVERT XPUI_${XPUI_UN}FINISHPAGE_TEXT_TOP_ALT                MUI_TEXT_FINISH_INFO_TITLE
!insertmacro XPUI_CONVERT XPUI_${XPUI_UN}FINISHPAGE_TEXT                        MUI_TEXT_FINISH_INFO_TEXT
!insertmacro XPUI_CONVERT XPUI_${XPUI_UN}FINISHPAGE_TEXT_REBOOT                 MUI_TEXT_FINISH_INFO_REBOOT

!insertmacro XPUI_CONVERT XPUI_FINISH_TEXT_TOP                        MUI_TEXT_FINISH_INFO_TITLE
!insertmacro XPUI_CONVERT XPUI_FINISH_TEXT                            MUI_TEXT_FINISH_INFO_TEXT
!insertmacro XPUI_CONVERT XPUI_FINISH_TEXT_REBOOT                     MUI_TEXT_FINISH_INFO_REBOOT
!insertmacro XPUI_CONVERT XPUI_FINISH_RUN                             MUI_TEXT_FINISH_RUN
!insertmacro XPUI_CONVERT XPUI_FINISH_RUN_FILE                        MUI_TEXT_FINISH_RUN
!insertmacro XPUI_CONVERT XPUI_FINISH_RUN_FUNCTION                    MUI_TEXT_FINISH_RUN_FUNCTION
!insertmacro XPUI_CONVERT XPUI_FINISH_CHECKBOX_RUN                    MUI_TEXT_FINISH_RUN_TEXT
!insertmacro XPUI_CONVERT XPUI_FINISH_DOCS                            MUI_TEXT_FINISH_SHOWREADME
!insertmacro XPUI_CONVERT XPUI_FINISH_DOCS_FILE                       MUI_TEXT_FINISH_SHOWREADME
!insertmacro XPUI_CONVERT XPUI_FINISH_CHECKBOX_DOCS                   MUI_TEXT_FINISH_SHOWREADME_TEXT
!insertmacro XPUI_CONVERT XPUI_FINISH_NOREBOOT                        MUI_TEXT_FINISH_NOREBOOTSUPPORT
!insertmacro XPUI_CONVERT XPUI_FINISH_LINK                            MUI_TEXT_FINISH_LINK
!insertmacro XPUI_CONVERT XPUI_FINISH_LINK_TEXT                       MUI_TEXT_FINISH_LINK

!insertmacro XPUI_CONVERT XPUI_${XPUI_UN}FINISHPAGE_TEXT_TOP                    MUI_TEXT_FINISH_INFO_TITLE
!insertmacro XPUI_CONVERT XPUI_${XPUI_UN}FINISHPAGE_TEXT_TOP_ALT                MUI_TEXT_FINISH_INFO_TITLE
!insertmacro XPUI_CONVERT XPUI_${XPUI_UN}FINISHPAGE_TEXT                        MUI_TEXT_FINISH_INFO_TEXT
!insertmacro XPUI_CONVERT XPUI_${XPUI_UN}FINISHPAGE_TEXT_REBOOT                 MUI_TEXT_FINISH_INFO_REBOOT

!insertmacro XPUI_CONVERT XPUI_UNINSTCONFIRMPAGE_NSIS_TEXT_TOP        MUI_UNCONFIRMPAGE_TEXT_TOP
!insertmacro XPUI_CONVERT XPUI_UNINSTCONFIRMPAGE_NSIS_TEXT_FOLDER     MUI_UNCONFIRMPAGE_TEXT_LOCATION

!insertmacro XPUI_CONVERT XPUI_LANGDLL_REGISTRY_ROOT                  MUI_LANGDLL_REGISTRY_ROOT
!insertmacro XPUI_CONVERT XPUI_LANGDLL_REGISTRY_KEY                   MUI_LANGDLL_REGISTRY_KEY
!insertmacro XPUI_CONVERT XPUI_LANGDLL_REGISTRY_VALUE                 MUI_LANGDLL_REGISTRY_VALUENAME

!insertmacro XPUI_CONVERT XPUI_BUTTONTEXT_CLOSE                       MUI_BUTTONTEXT_FINISH

!insertmacro XPUI_PAGE_TITLE_CONVERT                                  WELCOME
!insertmacro XPUI_PAGE_TITLE_CONVERT                                  LICENSE
!insertmacro XPUI_PAGE_TITLE_CONVERT                                  COMPONENTS
!insertmacro XPUI_PAGE_TITLE_CONVERT                                  DIRECTORY
!insertmacro XPUI_PAGE_TITLE_CONVERT                                  STARTMENU

!insertmacro XPUI_CONVERT XPUI_INSTFILESPAGE_TITLE MUI_TEXT_INSTALLING_TITLE
!insertmacro XPUI_CONVERT XPUI_INSTFILESPAGE_SUBTITLE MUI_TEXT_INSTALLING_SUBTITLE

!insertmacro XPUI_PAGE_TITLE_CONVERT FINISH
!insertmacro XPUI_PAGE_TITLE_CONVERT ABORT

!verbose pop

!macroend

# MUI REPLACEMENT MACROS

!macro MUI_PAGE_WELCOME
  !ifdef UMUI_USE_ALTERNATE_PAGE
    !insertmacro XPUI_PAGE_WELCOME2
  !else
    !insertmacro XPUI_PAGE_WELCOME
  !endif
!macroend

!macro MUI_PAGE_LICENSE FILE
  !insertmacro XPUI_PAGE_LICENSE `${FILE}`
!macroend

!macro MUI_PAGE_COMPONENTS
  !insertmacro XPUI_PAGE_COMPONENTS
!macroend

!macro MUI_PAGE_DIRECTORY
  !insertmacro XPUI_PAGE_DIRECTORY
!macroend

!macro MUI_PAGE_STARTMENU ID VAR
  !insertmacro XPUI_PAGE_STARTMENU `${ID}` `${VAR}`
!macroend

!macro MUI_PAGE_INSTFILES
  !insertmacro XPUI_PAGE_INSTFILES
!macroend

!macro MUI_PAGE_FINISH
  !ifdef UMUI_USE_ALTERNATE_PAGE
    !insertmacro XPUI_SET XPUI_${XPUI_UN}FINISHPAGE_TEXT_USE_TOP_ALT ``
  !endif
  !insertmacro XPUI_PAGE_FINISH
!macroend

!macro MUI_UNPAGE_WELCOME
  !insertmacro XPUI_PAGEMODE_UNINST
  !insertmacro XPUI_PAGE_WELCOME
!macroend

!macro MUI_UNPAGE_LICENSE FILE
  !insertmacro XPUI_PAGEMODE_UNINST
  !insertmacro XPUI_PAGE_LICENSE `${FILE}`
!macroend

!macro MUI_UNPAGE_COMPONENTS
  !insertmacro XPUI_PAGEMODE_UNINST
  !insertmacro XPUI_PAGE_COMPONENTS
!macroend

!macro MUI_UNPAGE_DIRECTORY
  !insertmacro XPUI_PAGEMODE_UNINST
  !insertmacro XPUI_PAGE_DIRECTORY
!macroend

!macro MUI_UNPAGE_STARTMENU ID VAR
  !insertmacro XPUI_PAGEMODE_UNINST
  !insertmacro XPUI_PAGE_STARTMENU `${ID}` `${VAR}`
!macroend

!macro MUI_UNPAGE_CONFIRM
  !insertmacro XPUI_PAGEMODE_UNINST
  !insertmacro XPUI_PAGE_UNINSTCONFIRM_NSIS
!macroend

!macro MUI_UNPAGE_INSTFILES
  !insertmacro XPUI_PAGEMODE_UNINST
  !insertmacro XPUI_PAGE_INSTFILES
!macroend

!macro MUI_UNPAGE_FINISH
  !insertmacro XPUI_PAGEMODE_UNINST
  !insertmacro XPUI_PAGE_FINISH
!macroend

!macro UMUI_PAGE_CONFIRM
  !insertmacro XPUI_PAGEMODE_INST
  !insertmacro XPUI_PAGE_INSTCONFIRM
!macroend

!macro UMUI_UNPAGE_CONFIRM
  !insertmacro XPUI_PAGEMODE_UNINST
  !insertmacro XPUI_PAGE_INSTCONFIRM
!macroend

!macro UMUI_PAGE_ABORT
  !insertmacro XPUI_PAGEMODE_INST
  !insertmacro XPUI_PAGE_ABORT

  !insertmacro XPUI_UNSET UMUI_ABORTPAGE_LINK
  !insertmacro XPUI_UNSET UMUI_ABORTPAGE_LINK_LOCATION
!macroend

!macro UMUI_UNPAGE_ABORT
  !insertmacro XPUI_PAGEMODE_UNINST
  !insertmacro XPUI_PAGE_ABORT

  !insertmacro XPUI_UNSET UMUI_ABORTPAGE_LINK
  !insertmacro XPUI_UNSET UMUI_ABORTPAGE_LINK_LOCATION
!macroend

!macro UMUI_LEFT_SETTIME M
  !insertmacro XPUI_LEFT_SETTIME `${M} minutes`
!macroend

!macro UMUI_CONFIRMPAGE_TEXTBOX_ADDLINE NULL
!macroend

!macro UMUI_PAGE_LEFTMESSAGEBOX T C M

  !insertmacro XPUI_CREATEID
  Page custom umuilmb.c.${XPUI_UNIQUEID} umuilmb.l.${XPUI_UNIQUEID} ` `

  Function umuilmb.c.${XPUI_UNIQUEID}

    StrCmp $XPUI_ABORTED 1 `` +2
    Abort

    !insertmacro XPUI_HEADER_TEXT ` ` ` `
    !insertmacro XPUI_LEFT_MESSAGE `${C}` `${M}` `${T}`
  FunctionEnd

  Function umuilmb.l.${XPUI_UNIQUEID}
    !ifdef UMUI_LEFTMESSAGEBOX_VAR
      ReadINIStr `$${UMUI_LEFTMESSAGEBOX_VAR}` `$PLUGINSDIR\MBSide.ini` `Settings` `State`
    !endif

    !ifdef UMUI_LEFTMESSAGEBOX_LEFTFUNC
      Call `${UMUI_LEFTMESSAGEBOX_LEFTFUNC}`
      !undef UMUI_LEFTMESSAGEBOX_LEFTFUNC
    !endif

    !ifdef UMUI_LEFT_MESSAGEBOX_LEFTFUNC
      Call `${UMUI_LEFT_MESSAGEBOX_LEFTFUNC}`
      !undef UMUI_LEFT_MESSAGEBOX_LEFTFUNC
    !endif

  FunctionEnd

  !insertmacro XPUI_UNSET UMUI_LEFT_MESSAGEBOX_LEFTFUNC
!macroend

!macro UMUI_UNPAGE_LEFTMESSAGEBOX T C M

  !insertmacro XPUI_CREATEID
  UninstPage custom un.umuilmb.c.${XPUI_UNIQUEID} un.umuilmb.l.${XPUI_UNIQUEID} ` `

  Function un.umuilmb.c.${XPUI_UNIQUEID}
    !insertmacro XPUI_HEADER_TEXT ` ` ` `
    !insertmacro XPUI_LEFT_MESSAGE `${C}` `${M}` `${T}`
  FunctionEnd

  Function un.umuilmb.l.${XPUI_UNIQUEID}
    !ifdef UMUI_LEFTMESSAGEBOX_VAR
      ReadINIStr `$${UMUI_LEFTMESSAGEBOX_VAR}` `$PLUGINSDIR\MBSide.ini` `Settings` `State`
    !endif

    !ifdef UMUI_LEFTMESSAGEBOX_LEFTFUNC
      Call `${UMUI_LEFTMESSAGEBOX_LEFTFUNC}`
      !undef UMUI_LEFTMESSAGEBOX_LEFTFUNC
    !endif

    !ifdef UMUI_LEFT_MESSAGEBOX_LEFTFUNC
      Call `${UMUI_LEFT_MESSAGEBOX_LEFTFUNC}`
      !undef UMUI_LEFT_MESSAGEBOX_LEFTFUNC
    !endif

  FunctionEnd

!macroend

!macro MUI_LANGUAGE LANG
  !insertmacro XPUI_LANGUAGE `${LANG}`
!macroend

!macro MUI_FUNCTION_DESCRIPTION_BEGIN
  !insertmacro XPUI_FUNCTION_DESCRIPTION_BEGIN
!macroend

!macro MUI_DESCRIPTION_TEXT SEC TEXT
  !insertmacro XPUI_DESCRIPTION_TEXT `${SEC}` `${TEXT}`
!macroend

!macro MUI_FUNCTION_DESCRIPTION_END
  !insertmacro XPUI_FUNCTION_DESCRIPTION_END
!macroend

!macro MUI_HEADER_TEXT T S
  !insertmacro XPUI_HEADER_TEXT `${T}` `${S}`
!macroend

!macro MUI_STARTMENU_WRITE_BEGIN ID
  !insertmacro XPUI_STARTMENU_WRITE_BEGIN '${ID}'
!macroend

!macro MUI_STARTMENU_WRITE_END
  !insertmacro XPUI_STARTMENU_WRITE_END
!macroend

!macro MUI_STARTMENU_GETFOLDER ID VAR

  !ifdef MUI_STARTMENUPAGE_REGISTRY_ROOT & MUI_STARTMENUPAGE_REGISTRY_KEY & MUI_STARTMENUPAGE_REGISTRY_VALUENAME

    ReadRegStr $XPUI_TEMP1 `${MUI_STARTMENUPAGE_REGISTRY_ROOT}` `${MUI_STARTMENUPAGE_REGISTRY_KEY}` `${MUI_STARTMENUPAGE_REGISTRY_VALUENAME}`
      StrCmp $XPUI_TEMP1 `` +3
        StrCpy `${VAR}` $XPUI_TEMP1
        Goto +2

        StrCpy `${VAR}` `${XPUI_STARTMENUPAGE_FOLDER}`

   !else

     StrCpy `${VAR}` `${XPUI_STARTMENUPAGE_FOLDER}`

   !endif

!macroend

!macro MUI_RESERVEFILE_LANGDLL

  !verbose push
  !verbose ${MUI_VERBOSE}

  ReserveFile `${NSISDIR}\Plugins\LangDLL.dll`

  !verbose pop

!macroend

!ifdef MUI_ABORTWARNING
!define XPUI_ABORTWARNING
!endif

!ifdef MUI_UNABORTWARNING
  !define XPUI_UNABORTWARNING
!endif

!macro MUI_LANGDLL_DISPLAY
  !insertmacro XPUI_LANGDLL_DISPLAY
!macroend

!macro MUI_UNGETLANGUAGE
  !insertmacro XPUI_UNGETLANGUAGE
!macroend

!macro MUI_LANGUAGEFILE_BEGIN L
  !insertmacro XPUI_LANGUAGEFILE_BEGIN ${L}
!macroend

!macro MUI_LANGUAGEFILE_END
  !insertmacro XPUI_LANGUAGEFILE_END
!macroend

# FIXES (DON'T EDIT)

!ifdef MUI_COMPONENTSPAGE_CHECKBITMAP
  !warning `The XPUI system uses a normal CheckBitmap command.`
  CheckBitmap `${MUI_COMPONENTSPAGE_CHECKBITMAP}`
!endif

!ifdef MUI_FINISHPAGE_NOAUTOCLOSE
  AutoCloseWindow false
!endif

!ifdef MUI_UNFINISHPAGE_NOAUTOCLOSE
  AutoCloseWindow false
!endif

!ifdef MUI_COMPONENTSPAGE_TEXT_TOP
  !ifndef MUI_COMPONENTSPAGE_TEXT_COMPLIST
    !ifndef MUI_COMPONENTSPAGE_TEXT_INSTTYPE
      ComponentText `${MUI_COMPONENTSPAGE_TEXT_TOP}`
    !endif
  !endif
!endif

!ifndef MUI_COMPONENTSPAGE_TEXT_TOP
  !ifdef MUI_COMPONENTSPAGE_TEXT_COMPLIST
    !ifndef MUI_COMPONENTSPAGE_TEXT_INSTTYPE
      ComponentText `` `${MUI_COMPONENTSPAGE_TEXT_TOP}`
    !endif
  !endif
!endif

!ifndef MUI_COMPONENTSPAGE_TEXT_TOP
  !ifndef MUI_COMPONENTSPAGE_TEXT_COMPLIST
    !ifdef MUI_COMPONENTSPAGE_TEXT_INSTTYPE
      ComponentText `` `` `${MUI_COMPONENTSPAGE_TEXT_TOP}`
    !endif
  !endif
!endif

!ifdef MUI_COMPONENTSPAGE_TEXT_TOP
  !ifdef MUI_COMPONENTSPAGE_TEXT_COMPLIST
    !ifndef MUI_COMPONENTSPAGE_TEXT_INSTTYPE
      ComponentText `${MUI_COMPONENTSPAGE_TEXT_TOP}` `${MUI_COMPONENTSPAGE_TEXT_COMPLIST}`
    !endif
  !endif
!endif

!ifdef MUI_COMPONENTSPAGE_TEXT_TOP
  !ifndef MUI_COMPONENTSPAGE_TEXT_COMPLIST
    !ifdef MUI_COMPONENTSPAGE_TEXT_INSTTYPE
      ComponentText `${MUI_COMPONENTSPAGE_TEXT_TOP}` `` `${MUI_COMPONENTSPAGE_TEXT_INSTTYPE}`
    !endif
  !endif
!endif

!ifdef MUI_COMPONENTSPAGE_TEXT_TOP
  !ifdef MUI_COMPONENTSPAGE_TEXT_COMPLIST
    !ifdef MUI_COMPONENTSPAGE_TEXT_INSTTYPE
      ComponentText `${MUI_COMPONENTSPAGE_TEXT_TOP}` `${MUI_COMPONENTSPAGE_TEXT_COMPLIST}` `${MUI_COMPONENTSPAGE_TEXT_INSTTYPE}`
    !endif
  !endif
!endif

!ifndef MUI_COMPONENTSPAGE_TEXT_TOP
  !ifdef MUI_COMPONENTSPAGE_TEXT_COMPLIST
    !ifdef MUI_COMPONENTSPAGE_TEXT_INSTTYPE
      ComponentText `` `${MUI_COMPONENTSPAGE_TEXT_COMPLIST}` `${MUI_COMPONENTSPAGE_TEXT_INSTTYPE}`
    !endif
  !endif
!endif

!ifdef UMUI_USE_ALTERNATE_PAGE
  !insertmacro XPUI_DEFAULT XPUI_${XPUI_UN}FINISHPAGE_TEXT_USE_TOP_ALT ``
!endif

!ifdef MUI_WELCOMEFINISHPAGE_INI | UMUI_WELCOMEFINISHABORTPAGE_INI
  !ifndef XPUI_WARNING_MUI_IO
    !warning `The ExperienceUI does not support custom InstallOptions INI files for pages (yet).  When (if?) this is added, there will be an individual define for each page.`
    !define XPUI_WARNING_MUI_IO
  !endif
!endif

!ifdef MUI_UNWELCOMEFINISHPAGE_INI | UMUI_UNWELCOMEFINISHABORTPAGE_INI
  !ifndef XPUI_WARNING_MUI_IO
    !warning `The ExperienceUI does not support custom InstallOptions INI files for pages (yet).  When (if?) this is added, there will be an individual define for each page.`
    !define XPUI_WARNING_MUI_IO
  !endif
!endif

!ifdef MUI_FINISHPAGE_LINK_LOCATION

  !insertmacro XPUI_CREATEID
  !define XPUI_${XPUI_UN}FINISHPAGE_LINK_FUNCTION muiOpenLinkLocation.${XPUI_UNIQUEID}

  Function muiOpenLinkLocation.${XPUI_UNIQUEID}
    ExecShell open `${MUI_FINISHPAGE_LINK_LOCATION}`
  FunctionEnd

!endif

!insertmacro XPUI_LANGUAGE_CONVERT

; ********************************************
; END MODERNUI/ULTRAMODERNUI CONVERSION SCRIPT