Skinning HowTo/XUI Text Entry Widgets

== Overview ==
This page describes the XML attributes for the XUI text entry widgets. These are some of the XML elements and attributes used within 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. 
Many XUI elements share the same attributes.
Rather than repeatedly describing them, we just list their names here and describe them at Skinning HowTo/Common XUI attributes.
== line_editor ==
<line_editor> creates a single line text box
*Class LLLineEditor : LLUICtrl : LLView
*In source file llui/lllineeditor.cpp
*Used by floater, panel, and layout_panel.
<xml><?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <floater bottom="400" can_close="true" can_drag_on_left="false" can_minimize="true"
 can_resize="true" can_tear_off="false" enabled="true" follows="left|top"
 height="80" left="550" min_height="80" min_width="250" mouse_opaque="true"
 name="example_line_editor" tab_stop="false" title="line_editor" width="250">
 <line_editor bevel_style="in" border_style="line" border_thickness="1" bottom="20"
 enabled="true" font="SansSerif" handle_edit_keys_directly="false"
 height="20" label="line_editor label" left="20" max_length="128"
 mouse_opaque="true" name="line_editor" select_all_on_focus_received="false"
 select_on_focus="false" tab_stop="true" width="200" />
 </floater></xml>
===Common attributes===
*General: name, mouse_opaque, tool_tip, control_name, enabled, visible, use_bounding_rect, default_tab_group
*Positioning: width, height, left, right, left_delta, bottom, top, bottom_delta, follows, rect_control
*Text: label, font, font_size, font_style
*Others: tab_group
===Special attributes===
==== max_length ====
Optional.
==== bevel_style ====
Optional.
* none
* in 
* out 
* bright 
* line 
* texture 
==== border_style ====
Optional.
==== border_thickness ====
Optional.
==== select_on_focus ====
Optional.
==== select_all_focus_received ====
Optional.
==== handle_edit_keys_directly ====
Optional.
==== cursor_color ====
Optional.
==== text_color ====
Optional.
==== text_readonly_color ====
Optional.
==== bg_readonly_color ====
Optional.
==== bg_writeable_color ====
Optional.
==== bg_focus_color ====
Optional.
==== handle_edit_keys_directly ====
Optional.
==== commit_on_focus_lost ====
Optional.
==== hidden ====
Optional.
==== is_unicode ====
Optional.
==== increment ====
Optional.
==== initial_val ====
Optional.
==== max_val ====
Optional.
==== min_val ====
Optional.
==== bg_visible ====
Optional.
==== border_drop_shadow_visible ====
Optional.
==== border_visible ====
Optional.
==== drop_shadow_visible ====
Optional.
==== h_pad ====
Optional.
==== prevalidate_callback ====
Optional.
Function to run on text to validate before the text is entered.
* ascii -- guarantees that text entered is ascii encoded (non-unicode)
==== v_pad ====
Optional.
==== word_wrap ====
Optional.
== name_editor ==
NOTE: This widget is deprecated and not used in Viewer 2. 
*Class LLNameEditor : LLLineEditor : LLUICtrl : LLView
*In source file newview/llnameditor.cpp
*Used by panel.
<xml><?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <floater bottom="400" can_close="true" can_drag_on_left="false" can_minimize="true"
 can_resize="true" can_tear_off="false" enabled="true" follows="left|top"
 height="80" left="550" min_height="80" min_width="250" mouse_opaque="true"
 name="example_name_editor" tab_stop="false" title="name_editor" width="250">
 <name_editor bevel_style="in" border_style="line" border_thickness="1" bottom="20"
 enabled="true" font="SansSerif" handle_edit_keys_directly="false"
 height="20" label="name_editor label" left="20" max_length="128"
 mouse_opaque="true" name="name_editor" select_all_on_focus_received="false"
 select_on_focus="false" tab_stop="true" width="200" />
 </floater></xml>
===Common attributes===
*General: name, mouse_opaque, tool_tip, control_name, enabled, visible, use_bounding_rect, default_tab_group
*Positioning: width, height, left, right, left_delta, bottom, top, bottom_delta, follows, rect_control
*Text: font, font_size, font_style
===Special attributes===
==== bevel_style ====
==== bg_readonly_color ====
Optional.
==== border_style ====
==== border_thickness ====
==== max_length ====
==== text_readonly_color ====
Optional.
==== is_unicode ====
Optional.
== text ==
*Class LLTextBox : LLUICtrl : LLView
*In source file llui/lltextbox.cpp
*Used by floater, panel, and layout_panel.
<xml><?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <floater bottom="400" can_close="true" can_drag_on_left="false" can_minimize="true"
 can_resize="true" can_tear_off="false" enabled="true" follows="left|top"
 height="80" left="550" min_height="80" min_width="80" mouse_opaque="true"
 name="example_text" tab_stop="false" title="text" width="250">
 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
 bottom="20" enabled="true" font="SansSerif" h_pad="0" halign="left"
 height="20" left="20" mouse_opaque="false" name="text" tab_stop="false"
 v_pad="0" width="235">
 Text
 </text>
 </floater></xml>
===Common attributes===
*General: name, mouse_opaque, tool_tip, control_name, enabled, visible, use_bounding_rect, default_tab_group
*Positioning: width, height, left, right, left_delta, bottom, top, bottom_delta, follows, rect_control
*Text: label, font, font_size, font_style, halign
*Others: hover_cursor
===Special attributes===
==== type ====
Optional.
==== length ====
Optional.
==== bg_visible ====
Optional.
==== border_drop_shadow_visible ====
Optional.
==== drop_shadow_visible ====
Optional.
==== border_visible ====
Optional.
==== h_pad ====
Optional.
==== v_pad ====
Optional.
==== hidden ====
Optional.
==== tab_stop ====
Optional.
==== initial_value ====
Optional.
==== radio_style ====
Optional.
==== word_wrap ====
Optional.
==== bevel_style ====
Optional.
==== border_style ====
Optional.
==== border_thickness ====
Optional.
==== is_unicode ====
Optional.
==== max_length ==== 
Optional.
==== hover ====
Optional.
==== hover_color ====
Optional.
==== text_color ====
Optional.
==== align ====
Optional.
==== text_wrap ====
Optional.
==== text_enabled_color ====
Optional.
==== allow_html ====
Optional.
==== bg_readonly_color ====
Optional.
==== embedded_items ====
Optional.
==== hide_border ====
Optional.
==== hide_scrollbar ====
Optional.
==== line_spacing ====
Optional.
==== disabled_color ====
Optional.
== text_editor ==
Both text_editor and simple_text_editor create a multi-line text box, but text_editor has more functionality.
*Class LLViewerTextEditor : LLTextEditor : LLUICtrl : LLView
*In source file newview/llviewertexteditor.cpp
*Class LLTextEditor : LLUICtrl : LLView
*In source file llui/lltexteditor.cpp
*Used by floater, panel, and layout_panel.
<xml><?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <floater bottom="400" can_close="true" can_drag_on_left="false" can_minimize="true"
 can_resize="true" can_tear_off="false" enabled="true" follows="left|top"
 height="160" left="550" min_height="160" min_width="250" mouse_opaque="true"
 name="example_text_editor" tab_stop="false" title="text_editor" width="250">
 <text_editor type="string" length="1" bottom="20" embedded_items="false"
 enabled="true" font="SansSerif" height="100"
 hide_scrollbar="false" left="20" max_length="255" mouse_opaque="true"
 name="text_editor" tab_stop="true" width="200" word_wrap="false" />
 </floater></xml>
NOTE: The simple_text_editor widget is deprecated and not used in Viewer2.
<xml><?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <floater bottom="400" can_close="true" can_drag_on_left="false" can_minimize="true"
 can_resize="true" can_tear_off="false" enabled="true" follows="left|top"
 height="160" left="550" min_height="160" min_width="250" mouse_opaque="true"
 name="example_simple_text_editor" tab_stop="false"
 title="simple_text_editor" width="250">
 <simple_text_editor type="string" length="1" bottom="20" embedded_items="true"
 enabled="true" font="SansSerif" height="100"
 hide_scrollbar="false" left="20" max_length="255" mouse_opaque="true"
 name="text_editor" tab_stop="true" width="200" word_wrap="false" />
 </floater></xml>
===Common attributes===
*General: name, mouse_opaque, tool_tip, control_name, enabled, visible, use_bounding_rect, default_tab_group
*Positioning: width, height, left, right, left_delta, bottom, top, bottom_delta, follows, rect_control
*Text: font, font_size, font_style
===Special attributes===
==== max_length ====
Optional. 
==== embedded_items ====
Optional. 
==== word_wrap ====
Optional. 
==== hide_scrollbar ====
Optional. 
==== cursor_color ====
Optional. 
==== text_color ====
Optional. 
Attribute values can include
* RGB + alpha values
* Reserved color words such as "black," "white," or "green."
==== text_readonly_color ====
Optional. 
==== bg_readonly_color ====
Optional. 
==== bg_writeable_color ====
Optional. 
==== bg_focus_color ====
Optional. 
==== max_length ====
Optional. 
==== type ====
Optional. 
==== bevel_style ====
Optional. 
==== border_style ====
Optional. 
==== border_thickness ====
Optional. 
==== handle_edit_keys_directly ====
Optional. 
==== select_all_on_focus_received ====
Optional. 
==== select_on_focus ====
Optional. 
==== length ====
Optional. 
==== track_bottom ====
Optional. 
==== ignore_tab ====
Optional. 
==== border_drop_shadow_visible ====
Optional. 
==== border_visible ====
Optional. 
==== show_line_numbers ====
Optional. 
==== allow_html ====
Optional. 
==== hide_border ====
Optional. 
==== tab_stop ====
Optional. 
==== is_unicode ====
Optional. 
==== bg_visible ====
Optional. 
==== drop_shadow_visible ====
Optional. 
==== h_pad ====
Optional. 
==== v_pad ====
Optional. 
==== background_visible ====
Optional. 
==== text_wrap ====
Optional.