Skinning How To/Hardcoded limits in the xml files
What is a hardcoded limit?
A hardcoded limit is a limit on functionality by design. This is a list of hard coded limits in the current XUI implementation that limit just what a viewer skin can do. All of these are specific limitations that exist within the way the viewer handles certain elements of the user interface. This page is for addressing shortcomings in the current xml files, and should not be confused with the need for a fully scriptable interface.
Not able to set in XML
At least, not yet. As Skinning project progresses, these should be addressed.
- panel_status_bar.xml doesn't allow layout changes. Likewise, there is no panel_menubar.xml.
- Advanced/Admin menu options are hard-coded, and cannot be set by xml or moved into the main viewer menus without modifying the source. See VWR-2948 (patch included).
- Menu entries for Attach/Detach Object.
- Functions associated with buttons.
- Appearance Editor layout. You can only change tabs, strings, and buttons in floater_customize.xml.
- Settings for the minimap. There is no floater_mini_map.xml, for example.
- No scrollable panels.
- Flyouts always open vertical and up (for example, the list view in the communicate button, or the volume sliders).
- Default window positions can't be set (for example, can't make the script editor search window appear below the editor, or always open the minimap in the upper left).
Certain elements of the viewer cannot be specifically colored. These are:
- Text color of the pie menu, inventory, and menus.
- All three are controlled by MenuItemDisabledColor and MenuItemEnabledColor and cannot be individually changed, even though their backgrounds can be set to different colors.
- Colors for chat, such as Owner say, Object say, etc. See VWR-8192.
- Color for clickable names cannot be set independent of URLs.
- Color for chat console background.
- Color of avatar glyphs on the mini-map.
- Text color of logged Chat text
- The color used to display previously logged chat in IM windows (also the color used for timestamps [00:00]) is hard-coded in the C++ code.
Background color for inventory window (the treeview, ie, opening folders with objects etc.
- UPDATE: This is now settable with the entry InventoryBackgroundColor! The default value is "255, 255, 255, 80".
- Cursor color for line editors (TextCursorColor only works for notecards and scripts).
- Text entry can only be done via line editors.
Editing multiple xml files
- Buttons that exist in one xml file cannot be moved to another xml file. Only rearranged in the file they're placed in.
- Some XML files do not require a relog in order to test changes, like panel_group_invite.xml. Others, like colors.xml, do.
- Fonts can only be included by overwriting the old ones.
- Font settings aren't currently skinnable in xml (fonts.xml and fonts_base.xml are prolly needed).