Difference between revisions of "Skinning How To/Hardcoded limits in the xml files"

From Second Life Wiki
Jump to navigation Jump to search
 
(32 intermediate revisions by 2 users not shown)
Line 3: Line 3:
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.  
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.  


= panel_toolbar.xml =
Under construction.


Opening lltoolbar.cpp, we can see that the toolbar width is hardcoded to display horizontally across the bottom of the screen (http://jira.secondlife.com/browse/VWR-6941 VWR-6941]). This means that toolbars that don't span the entire length of the screen will not display correctly, as their width settings will be altered by a constant in lltoolbar.cpp. Furthermore, it also means that the viewer has no support for vertical toolbars, or toolbars that don't span the entire length of the screen. This can be hacked around somewhat, but is messy.  
= Not able to set in XML =
At least, not yet. As [[Skinning]] project progresses, these should be addressed.


Likewise, the button positioning is ignored by the viewer. Setting left or right values for toolbar buttons will have no effect, and the only way to alter button positions is through the use of spacers, which unfortunately often display incorrectly (again due to the toolbar's width being influenced by a hardcoded constant).  
* panel_status_bar.xml doesn't allow layout changes. Likewise, there is no panel_menubar.xml.
* 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.
* 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).
* Specific images for flyout buttons (image_selected="" doesn't work).


= panel_chat_bar.xml =
= color_base.xml =
 
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 [http://jira.secondlife.com/browse/VWR-8192 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.
* <strike>Background color for inventory window (the treeview, ie, opening folders with objects etc.</strike>
** 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).
 
= floater_instant_message.xml =
* Text entry can only be done via line editors.


The chatbar cannot be moved from its current position ([http://jira.secondlife.com/browse/VWR-6937 VWR-6937]). Regardless of where the position is set in panel_chat_bar.xml, or where the toolbar is located, the chatbar is coded to display at only one location.
= Editing multiple xml files =


* panel_voice_controls.xml and panel_media_controls.xml have this same problem.  
* 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.


= color_base.xml =
= Fonts =


Certain elements of the viewer cannot be specifically colored due to dependencies. These are:
* 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).
* Only three font sizes possible, and the sizes can't be skinned.  


* Background color of the inventory. This is controlled by FocusBackgroundColor and DefaultBackgroundColor. In other words, changing the background color of your inventory will change the color of floaters, and vice versa.
= Misc =
* Text 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.  
* Can't associate overrides.xml file with a skin. Overrides.xml only works when placed in a user's profile folder, and has to be manually loaded.  


[[Category:Skinning]]
[[Category:Skinning]]

Latest revision as of 16:25, 18 September 2011

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.

Under construction.

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.
  • 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.
  • 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).
  • Specific images for flyout buttons (image_selected="" doesn't work).

color_base.xml

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).

floater_instant_message.xml

  • 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

  • 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).
  • Only three font sizes possible, and the sizes can't be skinned.

Misc

  • Can't associate overrides.xml file with a skin. Overrides.xml only works when placed in a user's profile folder, and has to be manually loaded.