Archive: Problem of NSD_CreateIPAddress.nsh


Problem of NSD_CreateIPAddress.nsh
 


Show
FunctionEnd
>
On the custom page, click back, then the font of directory selection page turns large:
Attachment 46797
Click next, the font of the custom page also changes, not the former one.
Attachment 46798

huh.. never noticed that before - but confirmed anyway (no idea if it's related to installing XP SP3). That's a weird bug.

'fraid that might (depending on whether a cause can be found and addressed) leave you with the alternative options of creating 4 text controls, or using 1 text control and validating input, etc.

Edit: looks like this is a known problem with SysIPAddress32. It disposes of the font that's used to create it, originally.


okay, solved thusly... create a new font and set that on the control before display. E.g.


    ${NSD_CreateLabel} 0u 0 20% 10% "Input IP address:"
Pop $0
${NSD_CreateIPaddress} 20% 0 80% 10% "127.0.0.1"
Pop $1
CreateFont $R0 "$(^Font)" "$(^FontSize)"
SendMessage $1 ${WM_SETFONT} $R0 1
>
I'll adjust the header in the wiki after grabbing the font info elegantly somewhere.
Edit: adjusted post with the proper font langstrings.

Header file in the wiki ( http://nsis.sourceforge.net/NsDialogs_CreateIPaddress ) is now updated.

End-users: download the new version and your scripts using NSD_CreateIPAddress should continue to work just fine - and the installer font should no longer corrupt.

Developers: nsDialogs' framework doesn't allow for any particular post-fixing of its defines. The original define is renamed to NSD_CreateIPAddressControl. The original NSD_CreateIPAddress define is then re-defined to insert a macro which calls the renamed original and applies the font corruption fix and then pushes the control's handle back onto the stack.


I tried the fixed header file, it works well. Neither click back or the next button, the font is right.


excellent - glad it's fixed with that :D