For information on creating new styles for eXe see: Creating a new Style.
A key feature of eXe is the separation of content and form. This allows for great flexibility in the presentation and delivery of the content.
An eXe user can select from different styles to be applied while content is edited and when it is exported. Styles are selected from the Styles pulldown menu on eXe.
Cascading Style Sheets (CSS) control how the content is displayed (e.g. what fonts are used?, how navigation is presented, how iDevices are signified, etc).
Style-sheet authors cannot assume what content they are styling, nor can an iDevice creator or content author know how the content will be styled.
iDevice Icons
Styles use icons to draw attention to particular iDevices. Another style might want different icons, or no icons at all.
When rendering an iDevice the Block class should get the icon from the Style object in the package.
Problem: What do we then put in the imsmanifest.xml file?
Without processing the XHTML files we don't know what icons a SCO is going to use :o .
An ugly hack started at v0.2 was to add all icon files to every resource node, which we are still doing. This could be cleaned up to create smaller packages.
For the ScormExport a Block should be able to report what resources it uses, these should be able to be added to the imsmanifest.xml.
WebStyle class
WebStyle determines the presentation of a webpage being authored in, or published by eXe.
Option 1: A data object called by the AuthoringPane, WebExport and ScormExport classes
- getCSS()
- getIcon(idevice)
- getNodeDepth(node)
Option 2: An actor object which renders a node (possibly choosing to include parents and/or children nodes too). Takes over rendering from the AuthoringPane, WebExport and ScormExport classes.
- renderNode(node)
- renderBlock(block)
Prefer Option 2