Version 2 (modified by peko, 16 years ago) (diff) |
---|
Analysis
Overview
The goal of this revision of the task is to create a more beautiful mydoggy interface for every skin of Sophie2.
Task requirements
- Provide a way to define skin parts for mydoggy. Currently there is no such mechanism. The skinning of the layout is provided by the base layout library with titles and tool-tips. The visual part that is mydoggy, should also be skinnable. This means that every layout component that provides a tool window manager should become a BaseVisualElement and define a skin part.
- Mydoggy skin parts for every skin should be themselves included in the skin.
- For some parts of mydoggy a custom UI should be provided. This is needed because mydoggy overrides the look and feel UIs that are provided by default.
- Provide icons for the title bar of every tool window. Icons for flaps are slightly different from icons for inner tool window managers.
- Provide colors for other parts of mydoggy.
- Create a mechanism for auto updating of all mydoggy skin things.
Task result
- Source code.
Implementation idea
- See the already added updateUI() method of MDManageable where the UI is updated upon skin changing.
- Change the super class of some of the layout components to BaseVisualElement and provide a method:
@SkinPartDef private static void defineSkin(ElementSkinPart part) { //fill in skin part. }
- Add an ID for the skin called "mydoggy-properties" that contains mydoggy customizations.
- For UI classes no idea yet.
Related
BASE_LAYOUT_R0
APP_LAYOUT_MYDOGGY_R0
APP_LAYOUT_MYDOGGY_R1
GROUP_BASE_SKINS_R0
How to demo
- Run sophie and change the skin from the skin menu.
- Mydoggy should change its appearance depending on the skin chosen.
Design
- In order to define skinning for mydoggy, every MD component that has a tool window manager should become a BaseVisualElement and fill in skin parts using:
@SkinPartDef private static void defineSkin(ElementSkinPart part) { //fill in skin part. }
- These components are the components that implement MDManageable.
- A class that sets up mydoggy skinning and updates mydoggy upon skin changing will be created. It will be named MDSkinUpdater.