cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Superfreak3
Level 11

Skin Customization Kit Question(s)...

Hi all,

I was wondering some things about Skin Customization and was wondering if some can post some examples of what they've done with the Kit. More specifically, is the customization that can be accomplished limited to the size or bounds of the dialog or can you create special skins that appear to extend past the dialog borders. The install that comes to mind is Adobe. I've seen dialog graphics that appear to extend out beyond the main dialog with a somewhat transparent effect. I wish I could remember which product it was so I could get a screen shot, but can't.

Anyway, I was just wondering how cool the skin customization kit can make things. Any examples, again, welcomed!

Thanks for sharing!!
Labels (1)
0 Kudos

(7) Replies
joshstechnij
Level 10 Flexeran
Level 10 Flexeran

The skin images are bounded by the dialog and controls they apply to. So it isn't possible to have a skin extend past the dialog area. The skin is actually painted into the client area of the dialog.
0 Kudos
Superfreak3
Level 11

Another question that comes to mind regards the restriction of using skins with unmodified dialogs. Is this still the case. I've modified and made some custom dialogs so does this mean I have to completely rebuild my installers in order to utilize skins?
0 Kudos
joshstechnij
Level 10 Flexeran
Level 10 Flexeran

Can you clarify what you attempting to change with regard to the dialogs in the installer? Are you making these changes through the Dialog Editor in the IDE or through resource editor?
0 Kudos
Superfreak3
Level 11

joshstechnij wrote:
Can you clarify what you attempting to change with regard to the dialogs in the installer? Are you making these changes through the Dialog Editor in the IDE or through resource editor?


I'm making changes through Dialog Editor in the IDE primarily, but what is the difference between the two (dialog vs resource) as they pertain to the application of skins?
0 Kudos
joshstechnij
Level 10 Flexeran
Level 10 Flexeran

The only real difference is the IDE builds and includes _isuser* resources for you when you use the dialog editor in the IDE. The end result is still resource based dialogs as this is how the InstallScript UI is driven.

Regardless of how a dialog was built, the following are the criteria for applying a skin to a dialog:
- A valid skin was included and loaded at runtime with a setup
- The dialog to apply a skin to does not have the header/banner control (control ID 52)
- The dialog width (in dialog units) is between 458 and 462 units (inclusive), and the dialog height is between 303 and 307 units (inclusive); note that dialog units are affected by things like system font size and DPI

When a dialog does not fit the above criteria (especially the width and height), no skin is applied. For example, notice that a dialog like EnterDisk, even in a skinned setup, still displays as a normal dialog even though it fits the first two criteria listed above.
0 Kudos
Superfreak3
Level 11

You mentioned InstallScript. Does you information apply to basic MSI projects as well?

So, if a skin is included, no banner control and certain size, the skin will be applied. By modifying a dialog I thought that might have been referring to adding different controls (buttons, text, etc.). I usually don't change the size of the dialogs out of the box if/when I make any additions to the controls contained within.

Hopefully, based on that, I'll be OK applying skins.

I thought I may have had to rework my entire install because of the modifications I've made to dialogs if I wanted to apply skins.
0 Kudos
joshstechnij
Level 10 Flexeran
Level 10 Flexeran

Skins only apply to InstallScript or InstallScript MSI dialogs (Basic MSI projects use themes which have no runtime code component).

If a dialog is modified, or is a custom dialog, there is a default template used by the skin to apply the various images onto target controls based on window class. It is possible to provide specific overrides for certain dialogs which will result in the default template being ignored. This case is more difficult to deal with as the specific override will usually need to be updated when the dialog is changed. Otherwise changes to the dialog may not be reflected correctly at runtime.

One thing to be aware of is if a dialog has been edited in a project when no skin was originally selected, and then a skin is selected and the project is rebuilt, any edited dialogs will not be skinned. This is due to the fact that the edited dialog is an unskinned dialog and therefore does not fit the previously mentioned criteria. Either the dialog needs to be manually changed to be suitable for the skin to apply, or the dialog should be reverted and then re-edited. (The same but opposite issue occurs if a dialog was edited when a skin was selected, and then subsequently the project was changed to not use a skin; those edited dialogs, while no longer skinned, do not fit style/size-wise with the unedited dialogs.)
0 Kudos