Skinning HowTo/XUI Other Widgets
These are the XML elements and parameters used to define the floaters, panels, and so forth, that make up the viewer user interface. They are used by the XUI files in the \skins\default\xui folders. See Skinning HowTo/Basics for an explanation of how these are used.
Common parameters
The most common parameters are described here and are just listed under the elements that use them.
name
Required. The XML name of this element. The name must be unique to the floater you are editing.
- IMPORTANT: As noted above, do not re-name XML elements, even for localization. Many of the element names are looked up by the viewer. If the viewer cannot find an element name it expects, it will crash.
String: name="input_first_name"
width
Required. The width of the element, in pixels.
For text, this defines the visible text as well as the clickable area. If the width of a text element is not sufficient to hold the text, the text will be truncated. This is most likely what you will widen when localizing the viewer.
For most other elements, this describes the dimensions of an element, such as a button, icon, panel, text_area, etc.
- Tip: See the bounding boxes of all XML elements in the viewer: Advanced menu > UI > Debug Views.
Integer: width="140"
height
Required. The height of the element, in pixels.
For text, this defines the visible text as well as the clickable area. If the height of a text element is not sufficient to hold the text, the text will be truncated. This is most likely what you will lengthen when localizing the viewer.
For most other elements, this describes the dimensions of an element, such as a button, icon, panel, text_area, etc.
Integer: height="24"
left
Optional. Sets the position in the x dimension of the element's left edge relative to the container's left edge. Positive and negative values are accepted. A negative value will set the position relative to the right edge of the container.
Integer: left="6"
right
Optional. Sets the position in the x dimension of the element's right edge relative to the container's left edge. Positive and negative values are accepted. A negative value will set the position relative to the right edge of the container. Best used to align something to the right.
- For example, given a floater with a width of 500 and a button we wish to right align in the floater, we can set the
right
to 490 -- this puts the right edge of the button 10 pixels away from the right border of the floater.
Integer: right="6"
left_delta
Optional. (use instead of left
) Sets the position in the x dimension of the element's left edge relative to the previous element, or, for the first widget, the left edge of the container. Positive and negative values are accepted. Best used to left-align the current element with the previous element.
- For example, given Button B with a width of 100, a previous Button A with a width of 50 and a distance between elements of 6, we would set the
left_delta
to -106, putting the left edge of Button B 106 pixels to the left of Button A. We use a negative number to move left, and a positive number to move right.
Integer: left_delta="-106"
right_delta
Optional. (use instead of right
) Sets the position in the x dimension of the element's right edge relative to the previous element, or, for the first widget, the left edge of the container. Positive and negative values are accepted. Best used to right-align the current element with the previous element.
- For example, given Button B with a width of 100, a previous Button A with a width of 50 and a distance between elements of 6, we would set the
right_delta
to 106, putting the left edge of Button B 106 pixels to the left of Button A.
Integer: left_delta="106"
bottom
Optional. Sets the position in the y dimension of the element's bottom edge relative to the container. Positive and negative values are accepted. For example, given a floater with a height of 300 and a title 20 pixels tall and we want , we can set the bottom
to (NEED TO DO MATH, LOL) -- putting the bottom edge of the title 40 pixels away from the top border of the floater.
Integer: bottom="(NEED TO DO MATH, LOL)"
bottom_delta
follows
Optional. Sets which edge(s) an element follows when the containing element is resized. Specifying all edges results in an element that can dynamically resize itself with its container.
Values: left, top, right, bottom. String multiple values together using pipes.
The following example sets an element to follow both the left and the top, such as a floater's title may be designed:
String: follows="left|top"
font
Optional. Sets which size and style of the application font to use. The default is SansSerifSmall for text
elements and SansSerif for controls (such as check_box
and button
.
Values: SansSerifSmall, SansSerif, SansSerifBig, SansSerifBold, Monospace
String: font="SansSerifSmall"
Widget Parameters
floater parameters
can_close
can_drag_on_left
can_minimize
can_resize
height
width
max_height
min_height
min_width
name
rect_control
title
bottom
left
can_tear_off
enabled
mouse_opaque
control_name
follows
border
default_tab_group
label
border_drop_shadow_visible
border_visible
border_style
border_thickness
border_bevel
bevel_style
short_title
sound_flags
multi_floater parameters
can_close
can_drag_on_left
can_minimize
can_resize
height
width
min_height
min_width
name
rect_control
title
bottom
left
enabled
follows
mouse_opaque
title_bar
icon parameters
image_name
Required. Specifies the name of the image to load for this icon.
String: image_name="myicon.png"
bottom
bottom_delta
top
left
left_delta
right
follows
name
color
enabled
height
width
mouse_opaque
bg_alpha_color
border
scale_image
auto_resize
visible
label
tool_tip
button parameters
scale_image
Optional. Specifies whether to scale the button art as its container/floater is resized. As of 1.18.x, all button art has this property set to true
where the button size is not equal to 32x128.
Boolean: scale_image="true"
label
Optional. Label is the text on the button's face. Without a specified label (and no image_overlay
declared), your button will be labeled "Button".
String: label="Click Me!"
label_selected
Optional. Label is the text on the button's face when pressed into an 'on' state. Your button will inherit the label
if you omit this property.
String: label_selected="I've been clicked."
font
(under construction)
font_style
Optional. Styles the text. Allows multiple style selections. As of 1.18.x, the style options are:
- normal: Apply the default styles of the selected font. (For example, SansSerifBold has a default bold style applied to it.)
- bold: Bolds the text.
- italic: Italicizes the text.
- underline: Underlines the text.
- drop_shadow: Old-style 1px offset of black under the text.
- drop_shadow_soft: New-style 3px offset of blurred shadow under the text.
String: font_style="bold|underline|drop_shadow_soft"
halign
Optional. Controls horizontal alignment of label on button face. Options are "left", "center" and "right".
image_unselected
Optional. Overrides the default button art for the unselected/up and enabled button state. Art must be located in the ..\skins\textures
directory within the Second Life application folder (on a Mac, this is inside the package at Contents/MacOS/Resources/skins/textures
). Art must also be named in textures.xml
with an assigned UUID. By default, the button art is stretched to fit the specified button size.
String: image_unselected="btn_square_32x128.tga"
image_selected
Optional. Overrides the default button art for the selected/down button state. Art must be located in the ..\skins\[SKIN]\textures
directory within the Second Life application folder (on a Mac, this is inside the package at Contents/MacOS/Resources/skins/textures
). By default, the button art is stretched to fit the specified button size.
String: image_selected="btn_square-down_32x128.tga"
image_hover_selected
Optional. Overrides the default button art for the selected/down and mouseover/hover button state. Art must be located in the ..\skins\textures
directory within the Second Life application folder (on a Mac, this is inside the package at Contents/MacOS/Resources/skins/[SKIN]/textures
). Art must also be named in textures.xml
with an assigned UUID. By default, the button art is stretched to fit the specified button size.
String: image_unselected="btn_square-down-hover_32x128.tga"
image_hover_unselected
Optional. Overrides the default button art for the unselected/up and mouseover/hover button state. Art must be located in the ..\skins\[SKIN]\textures
directory within the Second Life application folder (on a Mac, this is inside the package at Contents/MacOS/Resources/skins/[SKIN]/textures
). Art must also be named in textures.xml
with an assigned UUID. By default, the button art is stretched to fit the specified button size.
String: image_unselected="btn_square-up-hover_32x128.tga"
image_disabled
Optional. Overrides the default button art for the disabled button state. Art must be located in the ..\skins\textures
directory within the Second Life application folder (on a Mac, this is inside the package at Contents/MacOS/Resources/skins/[SKIN]/textures
). Art must also be named in textures.xml
with an assigned UUID. By default, the button art is stretched to fit the specified button size.
String: image_unselected="btn_square-disabled_32x128.tga"
image_disabled_selected
Optional. Overrides the default button art for the disabled and selected/down button state. Art must be located in the ..\skins\[SKIN]\textures
directory within the Second Life application folder (on a Mac, this is inside the package at Contents/MacOS/Resources/skins/textures
). Art must also be named in textures.xml
with an assigned UUID. By default, the button art is stretched to fit the specified button size.
String: image_unselected="btn_square-down-disabled_32x128.tga"
image_overlay
Optional. Applies an overlay image to the button. The button art will be sized to fit. As of 1.18.x, these icons should be 16 pixels high at maximum on a standard height 24px button to minimize scaling artifacts. Can be used with or without text. Art must be located in the ..\skins\[SKIN]\textures
directory within the Second Life application folder (on a Mac, this is inside the package at Contents/MacOS/Resources/skins/[SKIN]/textures
). Art must also be named in textures.xml
with an assigned UUID. See image_overlay_alignment for alignment options.
String: image_overlay="icn_media-play_16.tga"
image_overlay_alignment
Optional. Sets the alignment of the image_overlay
icon.
Values:
- left: left-aligns the art on the button. This standard is used for new button art with text in the Dazzle branch.
- right: right-aligns the the art on the button.
- center: centers the art on the button. This standard is used for new button art without text in the Dazzle branch.
String: image_overlay_alignment="left"
toggle
Optional. Determines whether the button is a toggle button or not. The Fly/Stop Flying button is a toggle button, for example.
Boolean: toggle="false"
bottom
bottom_delta
left
left_delta
right
enabled
follows
height
width
mouse_opaque
name
tool_tip
visible
tab_group
pad_right
tab_stop
help_url
sound_flags
auto_resize
user_resize
valign
default
index
text
ignore
control_name
label_width
image
text_editor parameters
<text_editor> creates a multi-line text box
max_length
embedded_items
font
word_wrap
hide_scrollbar
cursor_color
text_color
text_readonly_color
bg_readonly_color
bg_writeable_color
bg_focus_color
line_editor parameters
<line_editor> creates a single line text box
label
max_length
font
bevel_style
- none
- in
- out
- bright
- line
- texture