diff options
Diffstat (limited to 'indra')
5 files changed, 408 insertions, 311 deletions
| diff --git a/indra/newview/app_settings/settings_minimal.xml b/indra/newview/app_settings/settings_minimal.xml index bc97ec00e9..60aecb279c 100644 --- a/indra/newview/app_settings/settings_minimal.xml +++ b/indra/newview/app_settings/settings_minimal.xml @@ -52,7 +52,7 @@          <key>Type</key>              <string>Boolean</string>          <key>Value</key> -            <integer>0</integer> +            <integer>1</integer>          </map>      <key>HelpURLFormat</key>          <map> @@ -124,7 +124,7 @@          <key>Type</key>              <string>Boolean</string>          <key>Value</key> -            <integer>1</integer> +            <integer>0</integer>          </map>      <key>VoiceDisableMic</key>          <map> @@ -133,7 +133,7 @@          <key>Type</key>              <string>Boolean</string>          <key>Value</key> -            <integer>1</integer> +            <integer>0</integer>          </map>        <key>ScriptsCanShowUI</key>        <map> @@ -290,7 +290,7 @@        <key>Type</key>        <string>Boolean</string>        <key>Value</key> -      <integer>0</integer> +      <integer>1</integer>      </map>      <key>EnableAvatarShare</key>      <map> diff --git a/indra/newview/skins/default/xui/en/panel_bottomtray.xml b/indra/newview/skins/default/xui/en/panel_bottomtray.xml index a92cc886e7..b1c17e402e 100644 --- a/indra/newview/skins/default/xui/en/panel_bottomtray.xml +++ b/indra/newview/skins/default/xui/en/panel_bottomtray.xml @@ -5,23 +5,23 @@   bg_opaque_color="DkGray"   chrome="true"   follows="left|bottom|right" - focus_root="true"    height="33"   layout="topleft"   left="0"   name="bottom_tray" + focus_root="true"   top="28"   width="1310"> -    <string +  <string       name="DragIndicationImageName"       value="Accordion_ArrowOpened_Off" /> -    <string +  <string       name="SpeakBtnToolTip"       value="Turns microphone on/off" /> -    <string +  <string       name="VoiceControlBtnToolTip"       value="Shows/hides voice control panel" /> -    <layout_stack +  <layout_stack       border_size="0"       clip="false"       follows="all" @@ -33,93 +33,71 @@       orientation="horizontal"       top="0"       width="1310"> -        <layout_panel +    <layout_panel           auto_resize="false" -         user_resize="false"  +         user_resize="false"           min_width="2"           width="2" /> -        <layout_panel +    <layout_panel           auto_resize="false"           layout="topleft"           max_width="320"           min_width="214" -         height="28"  +         height="28"           mouse_opaque="false" -         name="chat_bar_layout_panel" +		 name="chat_bar_layout_panel"           user_resize="true" -         width="310" > -          <panel -            name="chat_bar" -            filename="panel_nearby_chat_bar.xml" -            left="0" -            height="28" -            width="308" -            top="0" -            mouse_opaque="false" -            follows="left|right" +         width="308" > +      <panel +		   name="chat_bar" +			  filename="panel_nearby_chat_bar.xml" +			  left="0" +			  height="28" +			  width="306" +			  top="0" +			  mouse_opaque="false" +			  follows="left|right"            /> -        </layout_panel> -        <!-- -         This 5px Panel is an indicator of where the resize handle is. -         The panel provides a gap between the resize handle icon and a button to the right.   -        --> -        <layout_panel -         auto_resize="false" -         layout="topleft" -         max_width="5"  -         min_width="5" -         name="chat_bar_resize_handle_panel" -         user_resize="false" -         width="5"> -            <icon -             follows="top|right" -             height="25" -             image_name="ChatBarHandle" -             layout="topleft" -             left="-7" -             name="resize_handle" -             top="4" -             width="5" /> -        </layout_panel> -        <layout_panel -         auto_resize="false" -         follows="left|right" -         height="28" -         layout="topleft" -         min_height="28" -         min_width="59" -         mouse_opaque="false" -         name="speak_panel" -         top_delta="0" -         user_resize="false" -         width="108"> -            <talk_button -             follows="left|right" -             height="23" -             layout="topleft" -             left="0" -             name="talk" -             top="5" -             width="105"> -                <show_button -                 tab_stop="true"> -                    <init_callback -                     function="Button.SetDockableFloaterToggle" -                     parameter="voice_controls" /> -                </show_button> -                <!-- do not remove halign attribute with default value. otherwise it can't be overridden in other locales. +    </layout_panel> +    <layout_panel +        auto_resize="false" +        follows="left|right" +        height="28" +        layout="topleft" +        min_height="28" +        min_width="59" +        mouse_opaque="false" +        name="speak_panel" +        top_delta="0" +        user_resize="false" +        width="108"> +      <talk_button +       follows="left|right" +       height="23" +       layout="topleft" +       left="0" +       name="talk" +       top="5" +       width="105"> +        <show_button +         tab_stop="true"> +          <init_callback +           function="Button.SetDockableFloaterToggle" +           parameter="voice_controls" /> +        </show_button> +        <!-- do not remove halign attribute with default value. otherwise it can't be overridden in other locales.                   & pad_right is default value for long label which can be right aligned. See EXT-6318 --> -                <speak_button -                 halign="center" -                 label="Speak" -                 label_selected="Speak" -                 name="speak_btn" -                 pad_right="20" -                 tab_stop="true" -                 use_ellipses="true" /> -            </talk_button> -        </layout_panel> -        <layout_panel +        <speak_button +         halign="center" +         label="Speak" +         label_selected="Speak" +         name="speak_btn" +         pad_right="20" +         tab_stop="true" +         use_ellipses="true" /> +      </talk_button> +    </layout_panel> +    <layout_panel           auto_resize="false"           follows="right"           height="28" @@ -131,55 +109,27 @@           top_delta="0"           user_resize="false"           width="85"> -            <gesture_combo_list +      <gesture_combo_list               follows="left|right"               height="23"               label="Gesture"               layout="topleft" +             get_more="false" +             view_all="false"               left="0"               name="Gesture"               tool_tip="Shows/hides gestures"               top="5"               width="82"> -                <combo_button +        <combo_button                   pad_right="10" +                 can_drag="false"                   use_ellipses="true" /> -                <combo_list +        <combo_list                   page_lines="17" /> -            </gesture_combo_list> -        </layout_panel> -        <layout_panel -         auto_resize="false" -         follows="right" -         height="28" -         layout="topleft" -         min_height="28" -         min_width="52" -         mouse_opaque="false" -         name="movement_panel" -         user_resize="false" -         width="83"> -            <bottomtray_button -             follows="left|right" -             height="23" -             image_pressed="PushButton_Press" -             image_pressed_selected="PushButton_Selected_Press" -             image_selected="PushButton_Selected_Press" -             is_toggle="true" -             label="Move" -             layout="topleft" -             name="movement_btn" -             tool_tip="Shows/hides movement controls" -             top="5" -             use_ellipses="true" -             width="80"> -                <init_callback -                 function="Button.SetDockableFloaterToggle" -                 parameter="moveview" /> -            </bottomtray_button> - -        </layout_panel> -        <layout_panel +      </gesture_combo_list> +    </layout_panel> +    <layout_panel           auto_resize="false"           follows="left|right"           height="28" @@ -190,7 +140,8 @@           name="cam_panel"           user_resize="false"           width="83"> -            <bottomtray_button +      <bottomtray_button +              can_drag="false"               follows="left|right"               height="23"               image_pressed="PushButton_Press" @@ -205,180 +156,220 @@               top="5"               use_ellipses="true"               width="80"> -                <init_callback +        <init_callback                   function="Button.SetDockableFloaterToggle"                   parameter="camera" /> -            </bottomtray_button> -        </layout_panel> -        <layout_panel +      </bottomtray_button> +    </layout_panel> +    <layout_panel           auto_resize="false"           follows="left|right"           height="28"           layout="topleft" -         min_width="40" -         mouse_opaque="false" -         name="snapshot_panel" +         min_width="17" +         name="splitter_panel"           user_resize="false" -         width="39"> -            <bottomtray_button -             follows="left|right" -             height="23" -             image_overlay="Snapshot_Off" -             image_pressed="PushButton_Press" -             image_pressed_selected="PushButton_Selected_Press" -             image_selected="PushButton_Selected_Press" -             is_toggle="true" -             layout="topleft" -             left="0" -             name="snapshots" -             tool_tip="Take snapshot" -             top="5" -             width="36"> -                <init_callback -                 function="Button.SetFloaterToggle" -                 parameter="snapshot" /> -            </bottomtray_button> -        </layout_panel> -        <layout_panel +         width="17"> +      <icon +             follows="left|bottom" +             height="18" +             width="2" +             left="6" +             image_name="Button_Separator" +             name="separator" +             top="7"/> +    </layout_panel> +    <layout_panel +		  auto_resize="false" +		  follows="left|right" +		  height="28" +		  layout="topleft" +		  min_height="28" +		  min_width="83" +		  mouse_opaque="false" +		  name="avatar_and_destinations_panel" +		  user_resize="false" +		  width="103"> +      <bottomtray_button +			 can_drag="false" +			follows="left|right" +			height="23" +			image_pressed="PushButton_Press" +			image_pressed_selected="PushButton_Selected_Press" +			image_selected="PushButton_Selected_Press" +			label="Destinations" +			layout="topleft" +			left="0" +			name="destination_btn" +			tool_tip="Shows destinations window" +			top="5" +			is_toggle="true" +			use_ellipses="true" +			width="100"> +        <bottomtray_button.commit_callback +				  function="Destination.show" /> +      </bottomtray_button> +    </layout_panel> +    <layout_panel +		  auto_resize="false" +		  follows="left|right" +		  height="28" +		  layout="topleft" +		  min_height="28" +		  min_width="73" +		  mouse_opaque="false" +		  name="avatar_and_destinations_panel" +		  user_resize="false" +		  width="103"> +      <bottomtray_button +			 can_drag="false" +			follows="left|right" +			height="23" +			image_pressed="PushButton_Press" +			image_pressed_selected="PushButton_Selected_Press" +			image_selected="PushButton_Selected_Press" +			label="My Avatar" +			layout="topleft" +			left="0" +			name="avatar_btn" +			top="5" +			is_toggle="true" +			use_ellipses="true" +			width="100"> +        <bottomtray_button.commit_callback +				  function="Avatar.show" /> +      </bottomtray_button> +    </layout_panel> +    <layout_panel +		  auto_resize="false" +		  follows="left|right" +		  height="28" +		  layout="topleft" +		  min_width="17" +		  name="splitter_panel" +		  user_resize="false" +		  width="17"> +      <icon +             follows="left|bottom" +             height="18" +             width="2" +             left="6" +             image_name="Button_Separator" +             name="separator" +             top="7"/> +    </layout_panel> +    <layout_panel           auto_resize="false" -         follows="left|right" -         height="28" -         layout="topleft" -         min_height="28" -         min_width="52" -         mouse_opaque="false" -         name="build_btn_panel" -         user_resize="false" -         width="83"> -<!--*FIX: Build Floater is not opened with default registration. Will be fixed soon. -Disabled for now. ---> -            <bottomtray_button -             follows="left|right" -             height="23" -             image_pressed="PushButton_Press" -             image_pressed_selected="PushButton_Selected_Press" -             image_selected="PushButton_Selected_Press" -             is_toggle="true" -             label="Build" -             layout="topleft" -             left="0" -             name="build_btn" -             tool_tip="Shows/hides Build Tools" -             top="5" -             use_ellipses="true" -             width="80"> -                <commit_callback -                 function="Build.Toggle" -                 parameter="build" /> -            </bottomtray_button> -        </layout_panel> -        <layout_panel -         auto_resize="false" -         follows="left|right" -         height="28" -         layout="topleft" -         min_height="28" -         min_width="52" -         mouse_opaque="false" -         name="search_btn_panel" -         user_resize="false" -         width="83"> -            <bottomtray_button -             follows="left|right" -             height="23" -             image_pressed="PushButton_Press" -             image_pressed_selected="PushButton_Selected_Press" -             image_selected="PushButton_Selected_Press" -             is_toggle="true" -             label="Search" -             layout="topleft" -             left="0" -             name="search_btn" -             tool_tip="Shows/hides Search" -             top="5" -             use_ellipses="true" -             width="80"> -                <init_callback -                 function="Button.SetFloaterToggle" -                 parameter="search" /> -            </bottomtray_button> -        </layout_panel> -        <layout_panel -         auto_resize="false" -         follows="left|right" -         height="28" -         layout="topleft" -         min_height="28" -         min_width="52" -         mouse_opaque="false" -         name="world_map_btn_panel" -         user_resize="false" -         width="83"> -            <bottomtray_button -             follows="left|right" -             height="23" -             image_pressed="PushButton_Press" -             image_pressed_selected="PushButton_Selected_Press" -             image_selected="PushButton_Selected_Press" -             is_toggle="true" -             label="Map" -             layout="topleft" -             left="0" -             name="world_map_btn" -             tool_tip="Shows/hides World Map" -             top="5" -             use_ellipses="true" -             width="80"> -                <init_callback -                 function="Button.SetFloaterToggle" -                 parameter="world_map" /> -            </bottomtray_button> -        </layout_panel> -        <layout_panel -         auto_resize="false" -         follows="left|right" +         follows="right"           height="28"           layout="topleft"           min_height="28" -         min_width="52" -         mouse_opaque="false" -         name="mini_map_btn_panel" -         user_resize="false" -         width="83"> -            <bottomtray_button -             follows="left|right" -             height="23" -             image_pressed="PushButton_Press" -             image_pressed_selected="PushButton_Selected_Press" -             image_selected="PushButton_Selected_Press" -             is_toggle="true" -             label="Mini-Map" -             layout="topleft" -             left="0" -             name="mini_map_btn" -             tool_tip="Shows/hides Mini-Map" -             top="5" -             use_ellipses="true" -             width="80"> -                <init_callback -                 function="Button.SetFloaterToggle" -                 parameter="mini_map" /> -            </bottomtray_button> -        </layout_panel> -        <layout_panel -         follows="left|right" -         height="30" -         layout="topleft" -         min_width="95" +         min_width="65"           mouse_opaque="false" -         name="chiclet_list_panel" -         top="0" +         name="people_panel" +         top_delta="0"           user_resize="false" -         width="189"> -<!--*NOTE: min_width of the chiclet_panel (chiclet_list) must be the same +         width="105"> +      <bottomtray_button +			   can_drag="false" +			  follows="left|right" +			  height="23" +			  image_pressed="PushButton_Press" +			  image_pressed_selected="PushButton_Selected_Press" +			  image_selected="PushButton_Selected_Press" +			  label="People" +			  layout="topleft" +			  left="0" +			  name="show_people_button" +			  tool_tip="Shows people window" +			  top="5" +			  is_toggle="true" +			  use_ellipses="true" +			  width="100"> +        <bottomtray_button.commit_callback +				  function="ShowSidetrayPanel" +				 parameter="panel_people" /> +      </bottomtray_button> +    </layout_panel> +    <layout_panel +		   auto_resize="false" +		   follows="right" +		   height="28" +		   layout="topleft" +		   min_height="28" +		   min_width="65" +		   mouse_opaque="false" +		   name="profile_panel" +		   top_delta="0" +		   user_resize="false" +		   width="105"> +      <bottomtray_button +			   can_drag="false" +			  follows="left|right" +			  height="23" +			  image_pressed="PushButton_Press" +			  image_pressed_selected="PushButton_Selected_Press" +			  image_selected="PushButton_Selected_Press" +			  label="Profile" +			  layout="topleft" +			  left="0" +			  name="show_profile_btn" +			  tool_tip="Shows profile window" +			  is_toggle="true" +			  top="5" +			  use_ellipses="true" +			  width="100"> +        <bottomtray_button.commit_callback +				  function="ToggleAgentProfile" +				  parameter="agent"/> +      </bottomtray_button> +    </layout_panel> +    <layout_panel +		   auto_resize="false" +		   follows="right" +		   height="28" +		   layout="topleft" +		   min_height="28" +		   min_width="65" +		   mouse_opaque="false" +		   name="howto_panel" +		   top_delta="0" +		   user_resize="false" +		   width="105"> +      <bottomtray_button +			   can_drag="false" +			  follows="left|right" +			  height="23" +			  image_pressed="PushButton_Press" +			  image_pressed_selected="PushButton_Selected_Press" +			  image_selected="PushButton_Selected_Press" +			  label="How To" +			  layout="topleft" +			  left="0" +			  name="show_help_btn" +			  tool_tip="Open Second Life How To topics" +			  is_toggle="true" +			  top="5" +			  use_ellipses="true" +			  width="100"> +        <bottomtray_button.commit_callback +				  function="ToggleHelp" +				  parameter="f1_help" /> +      </bottomtray_button> +    </layout_panel> +    <layout_panel +		   follows="left|right" +		   height="30" +		   layout="topleft" +		   min_width="95" +		   mouse_opaque="false" +		   name="chiclet_list_panel" +		   top="0" +		   user_resize="false" +		   width="189"> +      <!--*NOTE: min_width of the chiclet_panel (chiclet_list) must be the same  as for parent layout_panel (chiclet_list_panel) to resize bottom tray properly. EXT-991--> -            <chiclet_panel +      <chiclet_panel               chiclet_padding="4"               follows="left|right"               height="24" @@ -389,7 +380,7 @@ as for parent layout_panel (chiclet_list_panel) to resize bottom tray properly.               name="chiclet_list"               top="7"               width="189"> -                <button +        <button                   auto_resize="true"                   follows="right"                   height="29" @@ -406,7 +397,7 @@ as for parent layout_panel (chiclet_list_panel) to resize bottom tray properly.                   top="-28"                   visible="false"                   width="7" /> -                <button +        <button                   auto_resize="true"                   follows="right"                   height="29" @@ -423,13 +414,13 @@ as for parent layout_panel (chiclet_list_panel) to resize bottom tray properly.                   top="-28"                   visible="false"                   width="7" /> -            </chiclet_panel> -        </layout_panel> -        <layout_panel auto_resize="false" -                      user_resize="false"  +      </chiclet_panel> +    </layout_panel> +    <layout_panel auto_resize="false" +                      user_resize="false"                        width="4"                        min_width="4"/> -        <layout_panel +    <layout_panel           auto_resize="false"           follows="right"           height="28" @@ -440,7 +431,7 @@ as for parent layout_panel (chiclet_list_panel) to resize bottom tray properly.           top="0"           user_resize="false"           width="37"> -            <chiclet_im_well +      <chiclet_im_well               follows="right"               height="28"               layout="topleft" @@ -449,7 +440,7 @@ as for parent layout_panel (chiclet_list_panel) to resize bottom tray properly.               name="im_well"               top="0"               width="35"> -             <!-- +        <!--  Emulate 4 states of button by background images, see details in EXT-3147. The same should be for notification_well button  xml attribute           Description  image_unselected        "Unlit" - there are no new messages @@ -457,7 +448,7 @@ image_selected          "Unlit" + "Selected" - there are no new messages and the  image_pressed           "Lit" - there are new messages  image_pressed_selected  "Lit" + "Selected" - there are new messages and the Well is open               --> -                <button +        <button                   auto_resize="true"                   follows="right"                   halign="center" @@ -472,13 +463,13 @@ image_pressed_selected  "Lit" + "Selected" - there are new messages and the Well                   name="Unread IM messages"                   tool_tip="Conversations"                   width="34"> -                    <init_callback +          <init_callback                       function="Button.SetDockableFloaterToggle"                       parameter="im_well_window" /> -                </button> -            </chiclet_im_well> -        </layout_panel> -        <layout_panel +        </button> +      </chiclet_im_well> +    </layout_panel> +    <layout_panel           auto_resize="false"           follows="right"           height="28" @@ -489,7 +480,7 @@ image_pressed_selected  "Lit" + "Selected" - there are new messages and the Well           top="0"           user_resize="false"           width="37"> -            <chiclet_notification +      <chiclet_notification               follows="right"               height="23"               layout="topleft" @@ -498,7 +489,7 @@ image_pressed_selected  "Lit" + "Selected" - there are new messages and the Well               name="notification_well"               top="5"               width="35"> -                <button +        <button                   auto_resize="true"                   bottom_pad="3"                   follows="right" @@ -514,17 +505,17 @@ image_pressed_selected  "Lit" + "Selected" - there are new messages and the Well                   name="Unread"                   tool_tip="Notifications"                   width="34"> -                    <init_callback +          <init_callback                       function="Button.SetDockableFloaterToggle"                       parameter="notification_well_window" /> -                </button> -            </chiclet_notification> -        </layout_panel> -      <layout_panel -         auto_resize="false" -         user_resize="false"  -         min_width="4" -         name="DUMMY2" -         width="8" /> -    </layout_stack> +        </button> +      </chiclet_notification> +    </layout_panel> +    <layout_panel +		   auto_resize="false" +		   user_resize="false" +		   min_width="4" +		   name="DUMMY2" +		   width="8" /> +  </layout_stack>  </panel> diff --git a/indra/newview/skins/minimal/xui/en/panel_adhoc_control_panel.xml b/indra/newview/skins/minimal/xui/en/panel_adhoc_control_panel.xml index 5730adab8a..39d1a90850 100644 --- a/indra/newview/skins/minimal/xui/en/panel_adhoc_control_panel.xml +++ b/indra/newview/skins/minimal/xui/en/panel_adhoc_control_panel.xml @@ -42,5 +42,40 @@               show_speaking_indicator="false"               width="147" />          </layout_panel> +      <layout_panel +         auto_resize="false" +         follows="top|left|right" +         height="25" +         layout="topleft" +         min_height="25" +         width="130" +         name="call_btn_panel" +         user_resize="false" +         visible="false"> +        <button +         follows="all" +         height="20" +         label="Call" +         name="call_btn" +         width="130" +         top="5" /> +      </layout_panel> +      <layout_panel +       auto_resize="false" +       follows="top|left|right" +       height="25" +       layout="topleft" +       min_height="25" +       width="130" +       name="end_call_btn_panel" +       user_resize="false" +       visible="false"> +        <button +         follows="all" +         height="20" +         label="Leave Call" +         name="end_call_btn" +         top="5"/> +      </layout_panel>      </layout_stack>  </panel> diff --git a/indra/newview/skins/minimal/xui/en/panel_bottomtray.xml b/indra/newview/skins/minimal/xui/en/panel_bottomtray.xml index a250f95e4f..95f2010e44 100644 --- a/indra/newview/skins/minimal/xui/en/panel_bottomtray.xml +++ b/indra/newview/skins/minimal/xui/en/panel_bottomtray.xml @@ -59,6 +59,44 @@  			  follows="left|right"            />  		</layout_panel> +    <layout_panel +        auto_resize="false" +        follows="left|right" +        height="28" +        layout="topleft" +        min_height="28" +        min_width="59" +        mouse_opaque="false" +        name="speak_panel" +        top_delta="0" +        user_resize="false" +        width="108"> +      <talk_button +       follows="left|right" +       height="23" +       layout="topleft" +       left="0" +       name="talk" +       top="5" +       width="105"> +        <show_button +         tab_stop="true"> +          <init_callback +           function="Button.SetDockableFloaterToggle" +           parameter="voice_controls" /> +        </show_button> +        <!-- do not remove halign attribute with default value. otherwise it can't be overridden in other locales. +                 & pad_right is default value for long label which can be right aligned. See EXT-6318 --> +        <speak_button +         halign="center" +         label="Speak" +         label_selected="Speak" +         name="speak_btn" +         pad_right="20" +         tab_stop="true" +         use_ellipses="true" /> +      </talk_button> +    </layout_panel>  		<layout_panel           auto_resize="false"           follows="right" diff --git a/indra/newview/skins/minimal/xui/en/panel_im_control_panel.xml b/indra/newview/skins/minimal/xui/en/panel_im_control_panel.xml index c3f46f11e0..be13bc1bb7 100644 --- a/indra/newview/skins/minimal/xui/en/panel_im_control_panel.xml +++ b/indra/newview/skins/minimal/xui/en/panel_im_control_panel.xml @@ -78,6 +78,39 @@               width="140" />        </layout_panel>        <layout_panel +         auto_resize="false" +         follows="top|left|right" +         height="25" +         layout="topleft" +         min_height="25" +         width="140" +         name="call_btn_panel" +         user_resize="false"> +        <button +         follows="left|top|right" +         height="23" +         label="Call" +         name="call_btn" +         width="140" /> +      </layout_panel> +      <layout_panel +       auto_resize="false" +       follows="top|left|right" +       height="25" +       layout="topleft" +       min_height="25" +       width="140" +       name="end_call_btn_panel" +       user_resize="false" +       visible="false"> +        <button +         follows="left|top|right" +         height="23" +         label="End Call" +         name="end_call_btn" +         width="140" /> +      </layout_panel> +      <layout_panel         mouse_opaque="false"         auto_resize="true"         follows="top|left" | 
