Difference between revisions of "Skinning"

From Second Life Wiki
Jump to navigation Jump to search
Line 5: Line 5:
* [[User Interface Roadmap]]
* [[User Interface Roadmap]]
== Task Descriptions ==
== Task Descriptions ==
=== XML Templates ===
=== XUI Default Templates ===
Create 'templates.xml' file with default attributes for each widget type
* ''Objective: Make the XUI files less verbose and more readable''
* Other templates for common attribute sets can also be declared here
* Create 'templates.xml' file with default attributes for each widget type
* Widgets can declare a tempate (default to the default one)
** Other templates for common attribute sets can also be declared here
* All default values will be removed from the code
** Widgets can declare a tempate (default to the default one for that type)
* Create a tool to process all existim .xui files and write out only the non default values
* Remove all default values from the code (code cleanup)
* Create a tool to process all existing .xui files and write out only the non default values
** Clean up the XML output at the same time
=== UI Texture Cache ===
=== UI Texture Cache ===
Separate pre-cached images with asset ids from UI images
* ''Objective: Make it easier to add and modify UI art''
* Separate pre-cached images with asset ids from UI images
* Rename UI Images to use file names not asset ids
* Rename UI Images to use file names not asset ids
=== Remove hard coded art and colors from UI ===
=== Remove hard coded art and colors from UI ===
* Replace any art embedded in code  
* ''Objective: Remove any UI art from the code  
** Including programatic art with attributes, e.g. volume sliders
* Remove programmatic art with attributes, e.g. volume sliders
** Remove any backgrounds from icons, etc (use alpha)
* Remove any backgrounds from icons, etc (use alpha)
** Ensure that all images can be cropped and scaled
* Ensure that all images can be cropped and scaled
** Allow specification of fized size borders (i.e. so that button graphics with narrow boarders scale correctly)
* Allow specification of fixed size borders (i.e. so that button graphics with narrow boarders scale correctly)
* Enable additional attributes for colors, etc
* Enable additional attributes to widgets for colors, etc
=== Facilitate UI customization ===
=== Facilitate UI customization ===
* ''Objective: Make it easier to see the effects of XUI edits''
* Enable reloading of all floaters including the menus and overlay bar
* Enable reloading of all floaters including the menus and overlay bar
* Ensure all floaters can handle missing UI elements and will behave reasonably or refuse to open with an appropriate message
* Ensure all floaters can handle missing UI elements and will behave reasonably or refuse to open with an appropriate message
=== Facilitate customization of menus and overlay bar ===
* ''Objective: enable menus and overlay bar to be more easily customized''
* Create a global floater/panel map and have floaters/panels to specify their type (e.g. "floater_inventory" -> LLFloaterInventory) in XML
* Create a global floater/panel map and have floaters/panels to specify their type (e.g. "floater_inventory" -> LLFloaterInventory) in XML
* Allow buttons to open floaters by name
* Allow buttons to open floaters by name
Line 29: Line 35:
** Differentiate between toggling state of singletons, showing/focusing, and opening new instances
** Differentiate between toggling state of singletons, showing/focusing, and opening new instances
* Allow menus to be expanded/collapsed for simple/advanced usage
* Allow menus to be expanded/collapsed for simple/advanced usage
=== Improve Layour ===
* Specify layout of overlay bar and menu bar in "viewer.xml"
* Better grouping / layout / auto sizing
** Allow multiple "overlay bars" to be added so that side bars or corner panels with buttons can be added
=== Improve Layout Language ===
* ''Objective: make it easier to change the XUI layout data''
* Choose a standard model for the layout language (e.g. CSS? qt-like?)
* Allow elements to be grouped for layout purposes
* Auto layout elements when no layout information is provided
=== Enable Packaging and Resident customizations ===
=== Enable Packaging and Resident customizations ===
* Allow residents to save changes to the UI and preserve them across updates
* ''Objective: enable external developers and residents to preserve changes across updates and distribute custom UI layouts''
* Allow residents to save changes to a user local directory (i.e. Documents and Settings\User\Application Data\SecondLife\skins)
* Allow residents to package changes and easily distribute them for easy installation by other users
* Allow residents to package changes and easily distribute them for easy installation by other users
* Include the ability to show/restore the original skin
** Define location to search for installed skin packages
** Include the ability to change skins and restore the original skin
=== Specific Requests ===
=== Specific Requests ===
* Make iconic panels (i.e.. build tools) generally available
* Make iconic panels (i.e.. build tools) generally available
** Combination of fully iconic buttons and the ability for a button to open a specific tab in a floater
** Combination of fully iconic buttons and the ability for a button to open a specific tab in a floater

Revision as of 18:23, 23 July 2007

Objectives

  • Enable internal designers to more easily customize the look of Second Life
  • Enable external developers and residents to save customizations and prepare skin "packages"

Links

Task Descriptions

XUI Default Templates

  • Objective: Make the XUI files less verbose and more readable
  • Create 'templates.xml' file with default attributes for each widget type
    • Other templates for common attribute sets can also be declared here
    • Widgets can declare a tempate (default to the default one for that type)
  • Remove all default values from the code (code cleanup)
  • Create a tool to process all existing .xui files and write out only the non default values
    • Clean up the XML output at the same time

UI Texture Cache

  • Objective: Make it easier to add and modify UI art
  • Separate pre-cached images with asset ids from UI images
  • Rename UI Images to use file names not asset ids

Remove hard coded art and colors from UI

  • Objective: Remove any UI art from the code
  • Remove programmatic art with attributes, e.g. volume sliders
  • Remove any backgrounds from icons, etc (use alpha)
  • Ensure that all images can be cropped and scaled
  • Allow specification of fixed size borders (i.e. so that button graphics with narrow boarders scale correctly)
  • Enable additional attributes to widgets for colors, etc

Facilitate UI customization

  • Objective: Make it easier to see the effects of XUI edits
  • Enable reloading of all floaters including the menus and overlay bar
  • Ensure all floaters can handle missing UI elements and will behave reasonably or refuse to open with an appropriate message

Facilitate customization of menus and overlay bar

  • Objective: enable menus and overlay bar to be more easily customized
  • Create a global floater/panel map and have floaters/panels to specify their type (e.g. "floater_inventory" -> LLFloaterInventory) in XML
  • Allow buttons to open floaters by name
    • Include support for opening a specific tab
    • Differentiate between toggling state of singletons, showing/focusing, and opening new instances
  • Allow menus to be expanded/collapsed for simple/advanced usage
  • Specify layout of overlay bar and menu bar in "viewer.xml"
    • Allow multiple "overlay bars" to be added so that side bars or corner panels with buttons can be added

Improve Layout Language

  • Objective: make it easier to change the XUI layout data
  • Choose a standard model for the layout language (e.g. CSS? qt-like?)
  • Allow elements to be grouped for layout purposes
  • Auto layout elements when no layout information is provided

Enable Packaging and Resident customizations

  • Objective: enable external developers and residents to preserve changes across updates and distribute custom UI layouts
  • Allow residents to save changes to a user local directory (i.e. Documents and Settings\User\Application Data\SecondLife\skins)
  • Allow residents to package changes and easily distribute them for easy installation by other users
    • Define location to search for installed skin packages
    • Include the ability to change skins and restore the original skin

Specific Requests

  • Make iconic panels (i.e.. build tools) generally available
    • Combination of fully iconic buttons and the ability for a button to open a specific tab in a floater