Directory.nsh 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. /*
  2. NSIS Modern User Interface
  3. Directory page
  4. */
  5. ;--------------------------------
  6. ;Page interface settings and variables
  7. !macro MUI_DIRECTORYPAGE_INTERFACE
  8. !ifndef MUI_DIRECTORYPAGE_INTERFACE
  9. !define MUI_DIRECTORYPAGE_INTERFACE
  10. Var mui.DirectoryPage
  11. Var mui.DirectoryPage.Text
  12. Var mui.DirectoryPage.DirectoryBox
  13. Var mui.DirectoryPage.Directory
  14. Var mui.DirectoryPage.BrowseButton
  15. Var mui.DirectoryPage.SpaceRequired
  16. Var mui.DirectoryPage.SpaceAvailable
  17. !endif
  18. !macroend
  19. ;--------------------------------
  20. ;Page declaration
  21. !macro MUI_PAGEDECLARATION_DIRECTORY
  22. !insertmacro MUI_SET MUI_${MUI_PAGE_UNINSTALLER_PREFIX}DIRECTORYPAGE ""
  23. !insertmacro MUI_DIRECTORYPAGE_INTERFACE
  24. !insertmacro MUI_DEFAULT MUI_DIRECTORYPAGE_TEXT_TOP ""
  25. !insertmacro MUI_DEFAULT MUI_DIRECTORYPAGE_TEXT_DESTINATION ""
  26. PageEx ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}directory
  27. 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}
  28. Caption " "
  29. DirText "${MUI_DIRECTORYPAGE_TEXT_TOP}" "${MUI_DIRECTORYPAGE_TEXT_DESTINATION}"
  30. !ifdef MUI_DIRECTORYPAGE_VARIABLE
  31. DirVar "${MUI_DIRECTORYPAGE_VARIABLE}"
  32. !endif
  33. !ifdef MUI_DIRECTORYPAGE_VERIFYONLEAVE
  34. DirVerify leave
  35. !endif
  36. PageExEnd
  37. !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}
  38. !undef MUI_DIRECTORYPAGE_TEXT_TOP
  39. !undef MUI_DIRECTORYPAGE_TEXT_DESTINATION
  40. !insertmacro MUI_UNSET MUI_DIRECTORYPAGE_VARIABLE
  41. !insertmacro MUI_UNSET MUI_DIRECTORYPAGE_VERIFYONLEAVE
  42. !macroend
  43. !macro MUI_PAGE_DIRECTORY
  44. !verbose push
  45. !verbose ${MUI_VERBOSE}
  46. !insertmacro MUI_PAGE_INIT
  47. !insertmacro MUI_PAGEDECLARATION_DIRECTORY
  48. !verbose pop
  49. !macroend
  50. !macro MUI_UNPAGE_DIRECTORY
  51. !verbose push
  52. !verbose ${MUI_VERBOSE}
  53. !insertmacro MUI_UNPAGE_INIT
  54. !insertmacro MUI_PAGEDECLARATION_DIRECTORY
  55. !verbose pop
  56. !macroend
  57. ;--------------------------------
  58. ;Page functions
  59. !macro MUI_FUNCTION_DIRECTORYPAGE PRE SHOW LEAVE
  60. Function "${PRE}"
  61. !insertmacro MUI_PAGE_FUNCTION_CUSTOM PRE
  62. !insertmacro MUI_HEADER_TEXT_PAGE $(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_DIRECTORY_TITLE) $(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_DIRECTORY_SUBTITLE)
  63. FunctionEnd
  64. Function "${SHOW}"
  65. ;Get control handles
  66. FindWindow $mui.DirectoryPage "#32770" "" $HWNDPARENT
  67. GetDlgItem $mui.DirectoryPage.Text $mui.DirectoryPage 1006
  68. GetDlgItem $mui.DirectoryPage.DirectoryBox $mui.DirectoryPage 1020
  69. GetDlgItem $mui.DirectoryPage.Directory $mui.DirectoryPage 1019
  70. GetDlgItem $mui.DirectoryPage.BrowseButton $mui.DirectoryPage 1001
  71. GetDlgItem $mui.DirectoryPage.SpaceRequired $mui.DirectoryPage 1023
  72. GetDlgItem $mui.DirectoryPage.SpaceAvailable $mui.DirectoryPage 1024
  73. !ifdef MUI_DIRECTORYPAGE_BGCOLOR
  74. SetCtlColors $mui.DirectoryPage.Directory "" "${MUI_DIRECTORYPAGE_BGCOLOR}"
  75. !endif
  76. !insertmacro MUI_PAGE_FUNCTION_CUSTOM SHOW
  77. FunctionEnd
  78. Function "${LEAVE}"
  79. !insertmacro MUI_PAGE_FUNCTION_CUSTOM LEAVE
  80. FunctionEnd
  81. !macroend