More flexibility for font definitions

Posts: 2
Joined: 21 Nov 2014 - 11:24
More flexibility for font definitions

Hi,

I would like to define a label as underlined, but I would like to use $(^Font) as font name and $(^Fontsize) as size. The fact is I sometimes modify the stub using Resource hacker, and all elements resize well except custom defined fonts.

I assume I could use ControlCustomScript, but it would be just a workaround. It would be really nice if I could use those system variables to create "relative" fonts.

Thanks

Posts: 1125
Joined: 25 Mar 2012 - 01:19
Re: More flexibility for font definitions

ControlCustomScript can be safely used to put your custom "needings".
I'll wrote only the font-related part into ControlCustomScript part, leaving the rest managed by NSISDialogDesigner:

SendMessage $hCtl_Form1_Label1 ${WM_SETFONT} $(^Font) 0

Hope I correctly understood your question, otherwise feel free to post a sample script here and describe how it should be.

Posts: 2
Joined: 21 Nov 2014 - 11:24
Re: More flexibility for font definitions

I just needed to define a font using the current family name and size, but underlined. I solved it using this CustomControlScript:

CreateFont $0 "$(^Font)" "$(^FontSize)" "400" /UNDERLINE
SendMessage $hCtl_mypage_label3 ${WM_SETFONT} $0 0

If I could had set font's size and name as ^Font and ^FontSize directly using the properties panel, then I won't needed to define a CustomControlScript. Not a big issue, obviously.
 
All started when I changed main font using SetFont (and/or Resoure Hacker), and then every custom page's layout broke because fonts aren't created as relative to the main font... Now I have to manually fix every label, defining CustomControlScript for each label.

Posts: 1125
Joined: 25 Mar 2012 - 01:19
Re: More flexibility for font definitions

Another idea could be a single CustomScript at page level where you read the desired font only once:

SendMessage $hCtl_mypage ${WM_GETFONT} $0 0

Then set this font to all other controls:

SendMessage $hCtl_mypage_label1 ${WM_SETFONT} $0 0
SendMessage $hCtl_mypage_label2 ${WM_SETFONT} $0 0
SendMessage $hCtl_mypage_label3 ${WM_SETFONT} $0 0
...

Haven't tested it but it should work...

warning

Warning, JavaScript is disabled!

JavaScript is not available, maybe because you disabled it globally into your browser settings or you are using an addon like NoScript.

We do not have any dangerous JavaScript running here.
Please enable JavaScript; if you're using NoScript this image will help you adding CoolSoft to your whitelist.

Thanks for your comprehension and enjoy CoolSoft.