Hi all,
I use MUI, and the Finish page looks different than all other pages NSIS generates. The Finish page's background is white while the other pages are grayish.
The following code does not seem to make any difference:
!define MUI_PAGE_CUSTOMFUNCTION_SHOW FinishShow
!insertmacro MUI_PAGE_FINISH
function FinishShow
FindWindow $1 "#32770" "" $HWNDPARENT
SetCtlColors $1 0xFF0000 0x00FF00
functionend
Any help would be appreciated.
-- DC Dweller
Finish Page Background color
11 posts
Are you using MUI or MUI2?
Stu
Stu
Mui2.
The finish page is actually made with nsDialogs and MUI has a $mui.FinishPage variable which contains the handle to the dialog. Before you try that, have you defined MUI_BGCOLOR?
Stu
Stu
Stu, what's the exact syntax please? I am still struggling with the NSIS language.
I assumed it was in the Modern UI manual but it isn't. It's definitely used in the code so try: !define MUI_BGCOLOR XXXXXX.
Stu
Stu
It actually is in the MUI2 manual:
2. Interface configuration -> Interface settings -> Page header
2. Interface configuration -> Interface settings -> Page header
The line
!define MUI_BGCOLOR FF0000
generates compile error
!define: "MUI_BGCOLOR" already defined!
Error in script.... -- aborting creation process
!define MUI_BGCOLOR FF0000
generates compile error
!define: "MUI_BGCOLOR" already defined!
Error in script.... -- aborting creation process
The line
!define MUI_BGCOLOR FF0000
generates compile error
!define: "MUI_BGCOLOR" already defined!
Error in script.... -- aborting creation process
So I did this:
!undef MUI_BGCOLOR
!define MUI_BGCOLOR FF0000
Now the header of each dialog (but not the main body) is red and the finish page is also red. So I guess my question is, how do I change the Finish page in such a way that it looks the same as the other pages (same look and feel, and same color.)
!define MUI_BGCOLOR FF0000
generates compile error
!define: "MUI_BGCOLOR" already defined!
Error in script.... -- aborting creation process
So I did this:
!undef MUI_BGCOLOR
!define MUI_BGCOLOR FF0000
Now the header of each dialog (but not the main body) is red and the finish page is also red. So I guess my question is, how do I change the Finish page in such a way that it looks the same as the other pages (same look and feel, and same color.)
You will get that if you try and define it more than once in the same script or if you define it after inserting the page macros (all interface settings must go before any page macro insertions).
If you want to have different colours for the welcome and finish pages then use SetCtlColors in a custom show function on $mui.WelcomePage and $mui.FinishPage respectively.
Stu
If you want to have different colours for the welcome and finish pages then use SetCtlColors in a custom show function on $mui.WelcomePage and $mui.FinishPage respectively.
Stu
This finally worked fine:
!define MUI_PAGE_CUSTOMFUNCTION_SHOW FinishShow
!insertmacro MUI_PAGE_FINISH
function FinishShow
SetCtlColors $mui.FinishPage /windows
GetDlgItem $0 $mui.FinishPage 1201
SetCtlColors $0 /windows
GetDlgItem $1 $mui.FinishPage 1202
SetCtlColors $1 /windows
GetDlgItem $1 $mui.FinishPage 1203
SetCtlColors $1 /windows
functionend
!define MUI_PAGE_CUSTOMFUNCTION_SHOW FinishShow
!insertmacro MUI_PAGE_FINISH
function FinishShow
SetCtlColors $mui.FinishPage /windows
GetDlgItem $0 $mui.FinishPage 1201
SetCtlColors $0 /windows
GetDlgItem $1 $mui.FinishPage 1202
SetCtlColors $1 /windows
GetDlgItem $1 $mui.FinishPage 1203
SetCtlColors $1 /windows
functionend