Attached is a schema extract of the skin utility app I used during my Jade User Group 2017 presentation. For the loading of the skins from a folder structure we expect the following structure:
1. Select the folder you want to use as the starting point. This folder is expected to contain 2 x subfolders as follows:
2. Under those folders can be 1 or more levels of grouping folders, such as the following example:
This grouping hierarchy must be the same in both the Control Skins and the Form Skins folders. For the purpose of the 2017 Application Skins, we used two levels of subfolders as we wanted to have multiple skin names for some of the cities, such as Rio and Tokyo. We could have 'simplified' this by using Rio Batucada and Rio Carnival as the top level folder names, instead of a Rio folder with Batucada and Carnival sub-folders inside the Rio folder. eg:
.\Control Skins\Rio Batucada
.\Control Skins\Rio Carnival
.\Form Skins\Rio Batucada
.\Form Skins\Rio Carnival
3. The form skins folder for a given skin contains all the border elements for the form as well as the minimise/restore/maximise/terminate buttons for both the MDI Frame and also for the MDI Child form elements. You can also supply an "AdditionalSettings.txt" file to set all the non-graphic properties for the form skins such as backColor, caption positioning, fonts etc.
4. The control skins folder for a given skin contains one or more folders for each of the control types, such as Button, CheckBox, etc with that folder containing all of the elements for that skin type including, where applicable, the various states for focus, roll over, disabled, etc.
5. If you want more than one style of control, for example a different look for the 'default button' on any given form, then you can use an underscore after the control name, followed by the case-sensitive string you want used as the category for that button. For example, if you set the skinCategory for a button to say DefaultButton, then your folder name would be Button_DefaultButton. eg:
If you already have a skin setup for you system, you can use the "Extract Skin" button on the Skin Select/Load/Extract form to extract your skin following these naming conventions. You can then supply these files to your friendly graphic artist to produce a new version, or versions, of your existing skin.
Please note, the skin utility app schema extracts are provided as is and were created during a quick 1 week hacking session so may not always follow best OO design principles. No liability, financial or otherwise, will be accepted for your use of these schemas. There is no exception handling currently, so you may encounter the occasional UHE if you don't structure things correctly. If you find ways of improving this skin utility app schema, please feel free to share those changes back with the rest of the JADE development community by way of a reply to this forum posting.