Welcome.nsh 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. /*
  2. NSIS Modern User Interface
  3. Welcome page (implemented using nsDialogs)
  4. */
  5. ;--------------------------------
  6. ;Page interface settings and variables
  7. !macro MUI_WELCOMEPAGE_INTERFACE
  8. !ifndef MUI_WELCOMEPAGE_INTERFACE
  9. !define MUI_WELCOMEPAGE_INTERFACE
  10. Var mui.WelcomePage
  11. Var mui.WelcomePage.Image
  12. Var mui.WelcomePage.Image.Bitmap
  13. Var mui.WelcomePage.Title
  14. Var mui.WelcomePage.Title.Font
  15. Var mui.WelcomePage.Text
  16. !endif
  17. !insertmacro MUI_DEFAULT MUI_${MUI_PAGE_UNINSTALLER_PREFIX}WELCOMEFINISHPAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Wizard\win.bmp"
  18. !if "${MUI_${MUI_PAGE_UNINSTALLER_PREFIX}WELCOMEFINISHPAGE_BITMAP}" == ""
  19. !error "Invalid MUI_${MUI_PAGE_UNINSTALLER_PREFIX}WELCOMEFINISHPAGE_BITMAP"
  20. !endif
  21. !macroend
  22. ;--------------------------------
  23. ;Interface initialization
  24. !macro MUI_WELCOMEPAGE_GUIINIT
  25. !ifndef MUI_${MUI_PAGE_UNINSTALLER_PREFIX}WELCOMEWELCOMEPAGE_GUINIT
  26. !define MUI_${MUI_PAGE_UNINSTALLER_PREFIX}WELCOMEWELCOMEPAGE_GUINIT
  27. Function ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.WelcomePage.GUIInit
  28. InitPluginsDir
  29. StubFile "/oname=$PLUGINSDIR\modern-wizard.bmp" "${MUI_${MUI_PAGE_UNINSTALLER_PREFIX}WELCOMEFINISHPAGE_BITMAP}"
  30. !pragma verifyloadimage "${MUI_${MUI_PAGE_UNINSTALLER_PREFIX}WELCOMEFINISHPAGE_BITMAP}"
  31. !ifdef MUI_${MUI_PAGE_UNINSTALLER_PREFIX}PAGE_FUNCTION_GUIINIT
  32. Call "${MUI_${MUI_PAGE_UNINSTALLER_PREFIX}PAGE_FUNCTION_GUIINIT}"
  33. !endif
  34. FunctionEnd
  35. !insertmacro MUI_SET MUI_${MUI_PAGE_UNINSTALLER_PREFIX}PAGE_FUNCTION_GUIINIT ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.WelcomePage.GUIInit
  36. !endif
  37. !macroend
  38. ;--------------------------------
  39. ;Page declaration
  40. !macro MUI_PAGEDECLARATION_WELCOME
  41. !insertmacro MUI_SET MUI_${MUI_PAGE_UNINSTALLER_PREFIX}WELCOMEPAGE ""
  42. !insertmacro MUI_WELCOMEPAGE_INTERFACE
  43. !insertmacro MUI_WELCOMEPAGE_GUIINIT
  44. !insertmacro MUI_DEFAULT MUI_WELCOMEPAGE_TITLE "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_WELCOME_INFO_TITLE)"
  45. !insertmacro MUI_DEFAULT MUI_WELCOMEPAGE_TEXT "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_WELCOME_INFO_TEXT)"
  46. !insertmacro MUI_PAGE_FUNCTION_FULLWINDOW
  47. PageEx ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}custom
  48. PageCallbacks ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.WelcomePre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.WelcomeLeave_${MUI_UNIQUEID}
  49. PageExEnd
  50. !insertmacro MUI_FUNCTION_WELCOMEPAGE ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.WelcomePre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.WelcomeLeave_${MUI_UNIQUEID}
  51. !insertmacro MUI_UNSET MUI_WELCOMEPAGE_TITLE
  52. !insertmacro MUI_UNSET MUI_WELCOMEPAGE_TITLE_3LINES
  53. !insertmacro MUI_UNSET MUI_WELCOMEPAGE_TEXT
  54. !macroend
  55. !macro MUI_PAGE_WELCOME
  56. !verbose push
  57. !verbose ${MUI_VERBOSE}
  58. !insertmacro MUI_PAGE_INIT
  59. !insertmacro MUI_PAGEDECLARATION_WELCOME
  60. !verbose pop
  61. !macroend
  62. !macro MUI_UNPAGE_WELCOME
  63. !verbose push
  64. !verbose ${MUI_VERBOSE}
  65. !insertmacro MUI_UNPAGE_INIT
  66. !insertmacro MUI_PAGEDECLARATION_WELCOME
  67. !verbose pop
  68. !macroend
  69. ;--------------------------------
  70. ;Page functions
  71. !macro MUI_FUNCTION_WELCOMEPAGE PRE LEAVE
  72. Function "${PRE}"
  73. !insertmacro MUI_PAGE_FUNCTION_CUSTOM PRE
  74. ;Create dialog
  75. nsDialogs::Create 1044
  76. Pop $mui.WelcomePage
  77. nsDialogs::SetRTL $(^RTL)
  78. SetCtlColors $mui.WelcomePage "" "${MUI_BGCOLOR}"
  79. ;Image control
  80. ${NSD_CreateBitmap} 0u 0u 109u 193u ""
  81. Pop $mui.WelcomePage.Image
  82. !insertmacro MUI_INTERNAL_FULLWINDOW_LOADWIZARDIMAGE "${MUI_PAGE_UNINSTALLER_PREFIX}" $mui.WelcomePage.Image $PLUGINSDIR\modern-wizard.bmp $mui.WelcomePage.Image.Bitmap
  83. ;Positiong of controls
  84. ;Title
  85. !ifndef MUI_WELCOMEPAGE_TITLE_3LINES
  86. !define MUI_WELCOMEPAGE_TITLE_HEIGHT 28
  87. !else
  88. !define MUI_WELCOMEPAGE_TITLE_HEIGHT 38
  89. !endif
  90. ;Text
  91. ;17 = 10 (top margin) + 7 (distance between texts)
  92. !define /math MUI_WELCOMEPAGE_TEXT_TOP 17 + ${MUI_WELCOMEPAGE_TITLE_HEIGHT}
  93. ;Title
  94. ${NSD_CreateLabel} 120u 10u 195u ${MUI_WELCOMEPAGE_TITLE_HEIGHT}u "${MUI_WELCOMEPAGE_TITLE}"
  95. Pop $mui.WelcomePage.Title
  96. SetCtlColors $mui.WelcomePage.Title "${MUI_TEXTCOLOR}" "${MUI_BGCOLOR}"
  97. CreateFont $mui.WelcomePage.Title.Font "$(^Font)" "12" "700"
  98. SendMessage $mui.WelcomePage.Title ${WM_SETFONT} $mui.WelcomePage.Title.Font 0
  99. ;Welcome text
  100. ${NSD_CreateLabel} 120u ${MUI_WELCOMEPAGE_TEXT_TOP}u 195u 130u "${MUI_WELCOMEPAGE_TEXT}"
  101. Pop $mui.WelcomePage.Text
  102. SetCtlColors $mui.WelcomePage.Text "${MUI_TEXTCOLOR}" "${MUI_BGCOLOR}"
  103. ;Show page
  104. Call ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}muiPageLoadFullWindow
  105. !insertmacro MUI_PAGE_FUNCTION_CUSTOM SHOW
  106. nsDialogs::Show
  107. !insertmacro MUI_PAGE_FUNCTION_CUSTOM DESTROYED
  108. Call ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}muiPageUnloadFullWindow
  109. ;Delete image from memory
  110. ${NSD_FreeImage} $mui.WelcomePage.Image.Bitmap
  111. !insertmacro MUI_UNSET MUI_WELCOMEPAGE_TITLE_HEIGHT
  112. !insertmacro MUI_UNSET MUI_WELCOMEPAGE_TEXT_TOP
  113. FunctionEnd
  114. Function "${LEAVE}"
  115. !insertmacro MUI_PAGE_FUNCTION_CUSTOM LEAVE
  116. FunctionEnd
  117. !macroend