summaryrefslogtreecommitdiffstats
path: root/util/scripts/win-binary/nsis/includes/instdir.nsh
diff options
context:
space:
mode:
Diffstat (limited to 'util/scripts/win-binary/nsis/includes/instdir.nsh')
-rw-r--r--util/scripts/win-binary/nsis/includes/instdir.nsh214
1 files changed, 214 insertions, 0 deletions
diff --git a/util/scripts/win-binary/nsis/includes/instdir.nsh b/util/scripts/win-binary/nsis/includes/instdir.nsh
new file mode 100644
index 0000000..6e4dab2
--- /dev/null
+++ b/util/scripts/win-binary/nsis/includes/instdir.nsh
@@ -0,0 +1,214 @@
+!ifndef INSTDIR_1
+ !macro INSTDIR_INITIALIZE
+ !define MUI_DIRECTORYPAGE_VARIABLE $${INSTDIR_0}_INSTDIR
+ !ifdef ${INSTDIR_0}_ValidateDirectory
+ !define MUI_PAGE_CUSTOMFUNCTION_LEAVE "${INSTDIR_0}_ValidateDirectoryFunc"
+ !endif
+ !insertmacro MUI_PAGE_DIRECTORY
+ !macroend
+ !macro INSTDIR_FUNCTIONS
+ !macroend
+ !macro INSTDIR_STARTUP
+ !macroend
+!else
+!macro INSTDIR_INITIALIZE
+ !define INSTDIR_INI_FILE "instdir.ini"
+ !define INSTDIR_0_DIRFIELD "Field 10"
+ !define INSTDIR_0_TEXTFIELD "Field 13"
+ !define INSTDIR_1_DIRFIELD "Field 7"
+ !define INSTDIR_1_TEXTFIELD "Field 11"
+ !define INSTDIR_2_DIRFIELD "Field 5"
+ !define INSTDIR_2_TEXTFIELD "Field 8"
+ !define INSTDIR_3_DIRFIELD "Field 3"
+ !define INSTDIR_3_TEXTFIELD "Field 6"
+ !define INSTDIR_4_DIRFIELD "Field 2"
+ !define INSTDIR_4_TEXTFIELD "Field 4"
+ !define INSTDIR_5_DIRFIELD "Field 9"
+ !define INSTDIR_5_TEXTFIELD "Field 12"
+ !define INSTDIR_DIRHEIGHT 18
+
+ Page custom InitInstDirs UpdateInstDirs
+
+ LangString InstDirLicenseTitle ${LANG_ENGLISH} "Installation Directories"
+ LangString InstDirLicenseTitleDescription ${LANG_ENGLISH} "Select the directories where you want the software installed."
+!macroend
+
+!macro INSTDIR_FUNCTIONS
+ Function InitInstDirs
+ push $0
+ push $1
+ push $2
+ push $3
+
+ !insertmacro MUI_HEADER_TEXT "$(InstDirLicenseTitle)" "$(InstDirLicenseTitleDescription)"
+ strcpy $0 "129"
+
+!ifdef INSTDIR_0
+ SectionGetFlags ${${INSTDIR_0}_SEC01} $1
+!ifdef ${INSTDIR_0}_SEC02
+ SectionGetFlags ${${INSTDIR_0}_SEC02} $3
+ IntOp $1 $1 | $3
+!endif
+ IntOp $2 $1 & 1 ;just care about the first flag
+ StrCpy $1 "READONLY"
+ StrCmp "$2" "1" +2
+ StrCpy $1 "DISABLED"
+ !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_0_TEXTFIELD}" "Flags" "$1"
+ !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_0_DIRFIELD}" "Flags" "$1"
+ !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_0_TEXTFIELD}" "Text" "${INSTDIR_0_TEXT}"
+ !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_0_DIRFIELD}" "State" $${INSTDIR_0}_INSTDIR
+!else
+ !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_0_DIRFIELD}" "Type" "Unknown"
+ !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_0_TEXTFIELD}" "Type" "Unknown"
+ intop $0 $0 - ${INSTDIR_DIRHEIGHT}
+!endif
+!ifdef INSTDIR_1
+ SectionGetFlags ${${INSTDIR_1}_SEC01} $1
+!ifdef ${INSTDIR_1}_SEC02
+ SectionGetFlags ${${INSTDIR_1}_SEC02} $3
+ IntOp $1 $1 | $3
+!endif
+ IntOp $2 $1 & 1 ;just care about the first flag
+ StrCpy $1 "READONLY"
+ StrCmp "$2" "1" +2
+ StrCpy $1 "DISABLED"
+ !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_1_TEXTFIELD}" "Flags" "$1"
+ !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_1_DIRFIELD}" "Flags" "$1"
+ !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_1_TEXTFIELD}" "Text" "${INSTDIR_1_TEXT}"
+ !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_1_DIRFIELD}" "State" $${INSTDIR_1}_INSTDIR
+!else
+ !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_1_DIRFIELD}" "Type" "Unknown"
+ !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_1_TEXTFIELD}" "Type" "Unknown"
+ intop $0 $0 - ${INSTDIR_DIRHEIGHT}
+!endif
+!ifdef INSTDIR_2
+ SectionGetFlags ${${INSTDIR_2}_SEC01} $1
+!ifdef ${INSTDIR_2}_SEC02
+ SectionGetFlags ${${INSTDIR_2}_SEC02} $3
+ IntOp $1 $1 | $3
+!endif
+ IntOp $2 $1 & 1 ;just care about the first flag
+ StrCpy $1 "READONLY"
+ StrCmp "$2" "1" +2
+ StrCpy $1 "DISABLED"
+ !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_2_TEXTFIELD}" "Flags" "$1"
+ !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_2_DIRFIELD}" "Flags" "$1"
+ !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_2_TEXTFIELD}" "Text" "${INSTDIR_2_TEXT}"
+ !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_2_DIRFIELD}" "State" $${INSTDIR_2}_INSTDIR
+!else
+ !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_2_DIRFIELD}" "Type" "Unknown"
+ !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_2_TEXTFIELD}" "Type" "Unknown"
+ intop $0 $0 - ${INSTDIR_DIRHEIGHT}
+!endif
+!ifdef INSTDIR_3
+ SectionGetFlags ${${INSTDIR_3}_SEC01} $1
+!ifdef ${INSTDIR_3}_SEC02
+ SectionGetFlags ${${INSTDIR_3}_SEC02} $3
+ IntOp $1 $1 | $3
+!endif
+ IntOp $2 $1 & 1 ;just care about the first flag
+ StrCpy $1 "READONLY"
+ StrCmp "$2" "1" +2
+ StrCpy $1 "DISABLED"
+ !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_3_TEXTFIELD}" "Flags" "$1"
+ !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_3_DIRFIELD}" "Flags" "$1"
+ !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_3_TEXTFIELD}" "Text" "${INSTDIR_3_TEXT}"
+ !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_3_DIRFIELD}" "State" $${INSTDIR_3}_INSTDIR
+!else
+ !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_3_DIRFIELD}" "Type" "Unknown"
+ !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_3_TEXTFIELD}" "Type" "Unknown"
+ intop $0 $0 - ${INSTDIR_DIRHEIGHT}
+!endif
+!ifdef INSTDIR_4
+ SectionGetFlags ${${INSTDIR_4}_SEC01} $1
+!ifdef ${INSTDIR_4}_SEC02
+ SectionGetFlags ${${INSTDIR_4}_SEC02} $3
+ IntOp $1 $1 | $3
+!endif
+ IntOp $2 $1 & 1 ;just care about the first flag
+ StrCpy $1 "READONLY"
+ StrCmp "$2" "1" +2
+ StrCpy $1 "DISABLED"
+ !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_4_TEXTFIELD}" "Flags" "$1"
+ !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_4_DIRFIELD}" "Flags" "$1"
+ !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_4_TEXTFIELD}" "Text" "${INSTDIR_4_TEXT}"
+ !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_4_DIRFIELD}" "State" $${INSTDIR_4}_INSTDIR
+!else
+ !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_4_DIRFIELD}" "Type" "Unknown"
+ !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_4_TEXTFIELD}" "Type" "Unknown"
+ intop $0 $0 - ${INSTDIR_DIRHEIGHT}
+!endif
+!ifdef INSTDIR_5
+ SectionGetFlags ${${INSTDIR_5}_SEC01} $1
+!ifdef ${INSTDIR_5}_SEC02
+ SectionGetFlags ${${INSTDIR_5}_SEC02} $3
+ IntOp $1 $1 | $3
+!endif
+ IntOp $2 $1 & 1 ;just care about the first flag
+ StrCpy $1 "READONLY"
+ StrCmp "$2" "1" +2
+ StrCpy $1 "DISABLED"
+ !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_5_TEXTFIELD}" "Flags" "$1"
+ !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_5_DIRFIELD}" "Flags" "$1"
+ !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_5_TEXTFIELD}" "Text" "${INSTDIR_5_TEXT}"
+ !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_5_DIRFIELD}" "State" $${INSTDIR_5}_INSTDIR
+!else
+ !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_5_DIRFIELD}" "Type" "Unknown"
+ !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "${INSTDIR_5_TEXTFIELD}" "Type" "Unknown"
+ intop $0 $0 - ${INSTDIR_DIRHEIGHT}
+!endif
+
+ !insertmacro MUI_INSTALLOPTIONS_WRITE "${INSTDIR_INI_FILE}" "Field 1" "Bottom" "$0"
+ !insertmacro MUI_INSTALLOPTIONS_DISPLAY "${INSTDIR_INI_FILE}"
+
+ pop $3
+ pop $2
+ pop $1
+ pop $0
+ FunctionEnd
+
+ Function UpdateInstDirs
+!ifdef INSTDIR_0
+ !insertmacro MUI_INSTALLOPTIONS_READ $${INSTDIR_0}_INSTDIR "${INSTDIR_INI_FILE}" "${INSTDIR_0_DIRFIELD}" "State"
+ !ifdef ${INSTDIR_0}_ValidateDirectory
+ call ${INSTDIR_0}_ValidateDirectoryFunc
+ !endif
+!endif
+!ifdef INSTDIR_1
+ !insertmacro MUI_INSTALLOPTIONS_READ $${INSTDIR_1}_INSTDIR "${INSTDIR_INI_FILE}" "${INSTDIR_1_DIRFIELD}" "State"
+ !ifdef ${INSTDIR_1}_ValidateDirectory
+ call ${INSTDIR_1}_ValidateDirectoryFunc
+ !endif
+!endif
+!ifdef INSTDIR_2
+ !insertmacro MUI_INSTALLOPTIONS_READ $${INSTDIR_2}_INSTDIR "${INSTDIR_INI_FILE}" "${INSTDIR_2_DIRFIELD}" "State"
+ !ifdef ${INSTDIR_2}_ValidateDirectory
+ call ${INSTDIR_2}_ValidateDirectoryFunc
+ !endif
+!endif
+!ifdef INSTDIR_3
+ !insertmacro MUI_INSTALLOPTIONS_READ $${INSTDIR_3}_INSTDIR "${INSTDIR_INI_FILE}" "${INSTDIR_3_DIRFIELD}" "State"
+ !ifdef ${INSTDIR_3}_ValidateDirectory
+ call ${INSTDIR_3}_ValidateDirectoryFunc
+ !endif
+!endif
+!ifdef INSTDIR_4
+ !insertmacro MUI_INSTALLOPTIONS_READ $${INSTDIR_4}_INSTDIR "${INSTDIR_INI_FILE}" "${INSTDIR_4_DIRFIELD}" "State"
+ !ifdef ${INSTDIR_4}_ValidateDirectory
+ call ${INSTDIR_4}_ValidateDirectoryFunc
+ !endif
+!endif
+!ifdef INSTDIR_5
+ !insertmacro MUI_INSTALLOPTIONS_READ $${INSTDIR_5}_INSTDIR "${INSTDIR_INI_FILE}" "${INSTDIR_5_DIRFIELD}" "State"
+ !ifdef ${INSTDIR_5}_ValidateDirectory
+ call ${INSTDIR_5}_ValidateDirectoryFunc
+ !endif
+!endif
+ FunctionEnd
+!macroend
+
+!macro INSTDIR_STARTUP
+ !insertmacro MUI_INSTALLOPTIONS_EXTRACT "${INSTDIR_INI_FILE}"
+!macroend
+
+!endif ;ifndef INSTDIR_1 \ No newline at end of file