summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview')
-rw-r--r--indra/newview/app_settings/settings.xml11
-rw-r--r--indra/newview/llappviewer.cpp1
-rw-r--r--indra/newview/llchathistory.cpp12
-rw-r--r--indra/newview/llexpandabletextbox.cpp23
-rw-r--r--indra/newview/llinspectobject.cpp12
-rw-r--r--indra/newview/llmaniptranslate.cpp59
-rw-r--r--indra/newview/llmaniptranslate.h13
-rwxr-xr-xindra/newview/llmediadataclient.cpp2
-rw-r--r--indra/newview/llpanelmaininventory.cpp14
-rw-r--r--indra/newview/llpanelmaininventory.h3
-rw-r--r--indra/newview/llpanelmediasettingsgeneral.cpp6
-rw-r--r--indra/newview/llpanelmediasettingsgeneral.h2
-rw-r--r--indra/newview/llpanelmediasettingspermissions.cpp46
-rw-r--r--indra/newview/llpanelmediasettingspermissions.h1
-rw-r--r--indra/newview/llselectmgr.cpp12
-rw-r--r--indra/newview/lltoastpanel.cpp2
-rw-r--r--indra/newview/lltoolpie.cpp43
-rw-r--r--indra/newview/llviewermedia.cpp14
-rw-r--r--indra/newview/llviewermedia.h2
-rw-r--r--indra/newview/llviewermediafocus.cpp16
-rw-r--r--indra/newview/llviewermenu.cpp76
-rw-r--r--indra/newview/llviewermenu.h22
-rw-r--r--indra/newview/llviewerwindow.cpp75
-rw-r--r--indra/newview/llviewerwindow.h5
-rw-r--r--indra/newview/llvovolume.cpp7
-rw-r--r--indra/newview/skins/default/colors.xml4
-rw-r--r--indra/newview/skins/default/textures/bottomtray/Notices_Unread.pngbin331 -> 3693 bytes
-rw-r--r--indra/newview/skins/default/textures/bottomtray/Unread_IM.pngbin416 -> 458 bytes
-rw-r--r--indra/newview/skins/default/textures/bottomtray/WellButton_Lit.pngbin288 -> 553 bytes
-rw-r--r--indra/newview/skins/default/textures/bottomtray/WellButton_Lit_Selected.pngbin405 -> 687 bytes
-rw-r--r--indra/newview/skins/default/textures/textures.xml7
-rw-r--r--indra/newview/skins/default/xui/en/floater_media_settings.xml1
-rw-r--r--indra/newview/skins/default/xui/en/floater_preview_texture.xml103
-rw-r--r--indra/newview/skins/default/xui/en/floater_select_key.xml2
-rw-r--r--indra/newview/skins/default/xui/en/floater_texture_ctrl.xml2
-rw-r--r--indra/newview/skins/default/xui/en/inspect_object.xml12
-rw-r--r--indra/newview/skins/default/xui/en/menu_attachment_other.xml105
-rw-r--r--indra/newview/skins/default/xui/en/menu_attachment_self.xml124
-rw-r--r--indra/newview/skins/default/xui/en/menu_avatar_other.xml96
-rw-r--r--indra/newview/skins/default/xui/en/menu_avatar_self.xml227
-rw-r--r--indra/newview/skins/default/xui/en/menu_land.xml65
-rw-r--r--indra/newview/skins/default/xui/en/menu_object.xml158
-rw-r--r--indra/newview/skins/default/xui/en/panel_bottomtray.xml84
-rw-r--r--indra/newview/skins/default/xui/en/panel_login.xml40
-rw-r--r--indra/newview/skins/default/xui/en/panel_main_inventory.xml2
-rw-r--r--indra/newview/skins/default/xui/en/panel_media_settings_general.xml30
-rw-r--r--indra/newview/skins/default/xui/en/panel_media_settings_permissions.xml43
-rw-r--r--indra/newview/skins/default/xui/en/panel_places.xml2
-rw-r--r--indra/newview/skins/default/xui/en/panel_preferences_advanced.xml2
-rw-r--r--indra/newview/skins/default/xui/en/panel_preferences_sound.xml44
-rw-r--r--indra/newview/skins/default/xui/en/sidepanel_item_info.xml244
-rw-r--r--indra/newview/skins/default/xui/en/strings.xml6
-rw-r--r--indra/newview/skins/default/xui/en/widgets/button.xml1
-rw-r--r--indra/newview/skins/default/xui/en/widgets/floater.xml2
54 files changed, 1358 insertions, 527 deletions
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index eed84671c1..7ac7a09d56 100644
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -1068,17 +1068,6 @@
<key>Value</key>
<integer>23</integer>
</map>
- <key>ButtonVPad</key>
- <map>
- <key>Comment</key>
- <string>Default vertical spacing between buttons (pixels)</string>
- <key>Persist</key>
- <integer>1</integer>
- <key>Type</key>
- <string>S32</string>
- <key>Value</key>
- <integer>1</integer>
- </map>
<key>CacheLocation</key>
<map>
<key>Comment</key>
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index dfec5eb0a4..1ccb691fb3 100644
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -394,7 +394,6 @@ bool handleCrashSubmitBehaviorChanged(const LLSD& newvalue)
static void settings_to_globals()
{
LLBUTTON_H_PAD = gSavedSettings.getS32("ButtonHPad");
- LLBUTTON_V_PAD = gSavedSettings.getS32("ButtonVPad");
BTN_HEIGHT_SMALL = gSavedSettings.getS32("ButtonHeightSmall");
BTN_HEIGHT = gSavedSettings.getS32("ButtonHeight");
diff --git a/indra/newview/llchathistory.cpp b/indra/newview/llchathistory.cpp
index efe9ea4c35..6c843e1ec3 100644
--- a/indra/newview/llchathistory.cpp
+++ b/indra/newview/llchathistory.cpp
@@ -332,12 +332,12 @@ LLChatHistory::~LLChatHistory()
{
static LLUICachedControl<S32> texteditor_border ("UITextEditorBorder", 0);
- LLRect old_text_rect = mTextRect;
- mTextRect = mScroller->getContentWindowRect();
- mTextRect.stretch(-texteditor_border);
- mTextRect.mLeft += mLeftTextPad;
- mTextRect.mRight -= mRightTextPad;
- if (mTextRect != old_text_rect)
+ LLRect old_text_rect = mVisibleTextRect;
+ mVisibleTextRect = mScroller->getContentWindowRect();
+ mVisibleTextRect.stretch(-texteditor_border);
+ mVisibleTextRect.mLeft += mLeftTextPad;
+ mVisibleTextRect.mRight -= mRightTextPad;
+ if (mVisibleTextRect != old_text_rect)
{
needsReflow();
}
diff --git a/indra/newview/llexpandabletextbox.cpp b/indra/newview/llexpandabletextbox.cpp
index bd6936f05c..9c37c953fe 100644
--- a/indra/newview/llexpandabletextbox.cpp
+++ b/indra/newview/llexpandabletextbox.cpp
@@ -51,8 +51,16 @@ public:
/*virtual*/ bool getDimensions(S32 first_char, S32 num_chars, S32& width, S32& height) const
{
// more label always spans width of text box
- width = mEditor.getTextRect().getWidth() - mEditor.getHPad();
- height = llceil(mStyle->getFont()->getLineHeight());
+ if (num_chars == 0)
+ {
+ width = 0;
+ height = 0;
+ }
+ else
+ {
+ width = mEditor.getDocumentView()->getRect().getWidth() - mEditor.getHPad();
+ height = llceil(mStyle->getFont()->getLineHeight());
+ }
return true;
}
/*virtual*/ S32 getOffset(S32 segment_local_x_coord, S32 start_offset, S32 num_chars, bool round) const
@@ -104,7 +112,8 @@ private:
LLExpandableTextBox::LLTextBoxEx::Params::Params()
: more_label("more_label")
-{}
+{
+}
LLExpandableTextBox::LLTextBoxEx::LLTextBoxEx(const Params& p)
: LLTextBox(p),
@@ -117,16 +126,13 @@ LLExpandableTextBox::LLTextBoxEx::LLTextBoxEx(const Params& p)
void LLExpandableTextBox::LLTextBoxEx::reshape(S32 width, S32 height, BOOL called_from_parent)
{
+ hideExpandText();
LLTextBox::reshape(width, height, called_from_parent);
if (getTextPixelHeight() > getRect().getHeight())
{
showExpandText();
}
- else
- {
- hideExpandText();
- }
}
void LLExpandableTextBox::LLTextBoxEx::setText(const LLStringExplicit& text,const LLStyle::Params& input_params)
@@ -317,7 +323,8 @@ void LLExpandableTextBox::expandTextBox()
mTextBox->hideExpandText();
S32 text_delta = mTextBox->getVerticalTextDelta();
- text_delta += mTextBox->getVPad() * 2 + mScroll->getBorderWidth() * 2;
+ text_delta += mTextBox->getVPad() * 2;
+ text_delta += mScroll->getBorderWidth() * 2;
// no need to expand
if(text_delta <= 0)
{
diff --git a/indra/newview/llinspectobject.cpp b/indra/newview/llinspectobject.cpp
index 42d061ff72..cb35a287e9 100644
--- a/indra/newview/llinspectobject.cpp
+++ b/indra/newview/llinspectobject.cpp
@@ -416,18 +416,6 @@ void LLInspectObject::updateDescription(LLSelectNode* nodep)
LLTextBox* textbox = getChild<LLTextBox>("object_description");
textbox->setValue(desc);
-
- // Truncate description text to fit in widget
- // *HACK: OMG, use lower-left corner to truncate text
- // Don't round the position, we want the left of the character
- S32 corner_index = textbox->getDocIndexFromLocalCoord( 0, 0, FALSE);
- LLWString desc_wide = textbox->getWText();
- // index == length if position is past last character
- if (corner_index < (S32)desc_wide.length())
- {
- desc_wide = desc_wide.substr(0, corner_index);
- textbox->setWText(desc_wide);
- }
}
void LLInspectObject::updateMediaCurrentURL()
diff --git a/indra/newview/llmaniptranslate.cpp b/indra/newview/llmaniptranslate.cpp
index 765b504afe..5f30ab4e01 100644
--- a/indra/newview/llmaniptranslate.cpp
+++ b/indra/newview/llmaniptranslate.cpp
@@ -101,6 +101,16 @@ const U32 ARROW_TO_AXIS[4] =
VZ
};
+// Sort manipulator handles by their screen-space projection
+struct ClosestToCamera
+{
+ bool operator()(const LLManipTranslate::ManipulatorHandle& a,
+ const LLManipTranslate::ManipulatorHandle& b) const
+ {
+ return a.mEndPosition.mV[VZ] < b.mEndPosition.mV[VZ];
+ }
+};
+
LLManipTranslate::LLManipTranslate( LLToolComposite* composite )
: LLManip( std::string("Move"), composite ),
mLastHoverMouseX(-1),
@@ -273,7 +283,6 @@ void LLManipTranslate::restoreGL()
LLManipTranslate::~LLManipTranslate()
{
- for_each(mProjectedManipulators.begin(), mProjectedManipulators.end(), DeletePointer());
}
@@ -888,8 +897,9 @@ void LLManipTranslate::highlightManipulators(S32 x, S32 y)
planar_manip_xy_visible = TRUE;
}
- for_each(mProjectedManipulators.begin(), mProjectedManipulators.end(), DeletePointer());
- mProjectedManipulators.clear();
+ // Project up to 9 manipulators to screen space 2*X, 2*Y, 2*Z, 3*planes
+ std::vector<ManipulatorHandle> projected_manipulators;
+ projected_manipulators.reserve(9);
for (S32 i = 0; i < num_arrow_manips; i+= 2)
{
@@ -899,12 +909,12 @@ void LLManipTranslate::highlightManipulators(S32 x, S32 y)
LLVector4 projected_end = mManipulatorVertices[i + 1] * transform;
projected_end = projected_end * (1.f / projected_end.mV[VW]);
- ManipulatorHandle* projManipulator =
- new ManipulatorHandle(LLVector3(projected_start.mV[VX], projected_start.mV[VY], projected_start.mV[VZ]),
+ ManipulatorHandle projected_manip(
+ LLVector3(projected_start.mV[VX], projected_start.mV[VY], projected_start.mV[VZ]),
LLVector3(projected_end.mV[VX], projected_end.mV[VY], projected_end.mV[VZ]),
MANIPULATOR_IDS[i / 2],
10.f); // 10 pixel hotspot for arrows
- mProjectedManipulators.insert(projManipulator);
+ projected_manipulators.push_back(projected_manip);
}
if (planar_manip_yz_visible)
@@ -916,12 +926,12 @@ void LLManipTranslate::highlightManipulators(S32 x, S32 y)
LLVector4 projected_end = mManipulatorVertices[i + 1] * transform;
projected_end = projected_end * (1.f / projected_end.mV[VW]);
- ManipulatorHandle* projManipulator =
- new ManipulatorHandle(LLVector3(projected_start.mV[VX], projected_start.mV[VY], projected_start.mV[VZ]),
+ ManipulatorHandle projected_manip(
+ LLVector3(projected_start.mV[VX], projected_start.mV[VY], projected_start.mV[VZ]),
LLVector3(projected_end.mV[VX], projected_end.mV[VY], projected_end.mV[VZ]),
MANIPULATOR_IDS[i / 2],
20.f); // 20 pixels for planar manipulators
- mProjectedManipulators.insert(projManipulator);
+ projected_manipulators.push_back(projected_manip);
}
if (planar_manip_xz_visible)
@@ -933,12 +943,12 @@ void LLManipTranslate::highlightManipulators(S32 x, S32 y)
LLVector4 projected_end = mManipulatorVertices[i + 1] * transform;
projected_end = projected_end * (1.f / projected_end.mV[VW]);
- ManipulatorHandle* projManipulator =
- new ManipulatorHandle(LLVector3(projected_start.mV[VX], projected_start.mV[VY], projected_start.mV[VZ]),
+ ManipulatorHandle projected_manip(
+ LLVector3(projected_start.mV[VX], projected_start.mV[VY], projected_start.mV[VZ]),
LLVector3(projected_end.mV[VX], projected_end.mV[VY], projected_end.mV[VZ]),
MANIPULATOR_IDS[i / 2],
20.f); // 20 pixels for planar manipulators
- mProjectedManipulators.insert(projManipulator);
+ projected_manipulators.push_back(projected_manip);
}
if (planar_manip_xy_visible)
@@ -950,12 +960,12 @@ void LLManipTranslate::highlightManipulators(S32 x, S32 y)
LLVector4 projected_end = mManipulatorVertices[i + 1] * transform;
projected_end = projected_end * (1.f / projected_end.mV[VW]);
- ManipulatorHandle* projManipulator =
- new ManipulatorHandle(LLVector3(projected_start.mV[VX], projected_start.mV[VY], projected_start.mV[VZ]),
+ ManipulatorHandle projected_manip(
+ LLVector3(projected_start.mV[VX], projected_start.mV[VY], projected_start.mV[VZ]),
LLVector3(projected_end.mV[VX], projected_end.mV[VY], projected_end.mV[VZ]),
MANIPULATOR_IDS[i / 2],
20.f); // 20 pixels for planar manipulators
- mProjectedManipulators.insert(projManipulator);
+ projected_manipulators.push_back(projected_manip);
}
LLVector2 manip_start_2d;
@@ -967,13 +977,18 @@ void LLManipTranslate::highlightManipulators(S32 x, S32 y)
LLVector2 mousePos((F32)x - half_width, (F32)y - half_height);
LLVector2 mouse_delta;
- for (minpulator_list_t::iterator iter = mProjectedManipulators.begin();
- iter != mProjectedManipulators.end(); ++iter)
+ // Keep order consistent with insertion via stable_sort
+ std::stable_sort( projected_manipulators.begin(),
+ projected_manipulators.end(),
+ ClosestToCamera() );
+
+ std::vector<ManipulatorHandle>::iterator it = projected_manipulators.begin();
+ for ( ; it != projected_manipulators.end(); ++it)
{
- ManipulatorHandle* manipulator = *iter;
+ ManipulatorHandle& manipulator = *it;
{
- manip_start_2d.setVec(manipulator->mStartPosition.mV[VX] * half_width, manipulator->mStartPosition.mV[VY] * half_height);
- manip_end_2d.setVec(manipulator->mEndPosition.mV[VX] * half_width, manipulator->mEndPosition.mV[VY] * half_height);
+ manip_start_2d.setVec(manipulator.mStartPosition.mV[VX] * half_width, manipulator.mStartPosition.mV[VY] * half_height);
+ manip_end_2d.setVec(manipulator.mEndPosition.mV[VX] * half_width, manipulator.mEndPosition.mV[VY] * half_height);
manip_dir = manip_end_2d - manip_start_2d;
mouse_delta = mousePos - manip_start_2d;
@@ -985,9 +1000,9 @@ void LLManipTranslate::highlightManipulators(S32 x, S32 y)
if (mouse_pos_manip > 0.f &&
mouse_pos_manip < manip_length &&
- mouse_dist_manip_squared < manipulator->mHotSpotRadius * manipulator->mHotSpotRadius)
+ mouse_dist_manip_squared < manipulator.mHotSpotRadius * manipulator.mHotSpotRadius)
{
- mHighlightedPart = manipulator->mManipID;
+ mHighlightedPart = manipulator.mManipID;
break;
}
}
diff --git a/indra/newview/llmaniptranslate.h b/indra/newview/llmaniptranslate.h
index 25ff35cc72..d20b86b2f4 100644
--- a/indra/newview/llmaniptranslate.h
+++ b/indra/newview/llmaniptranslate.h
@@ -89,17 +89,6 @@ protected:
F32 getMinGridScale();
private:
- struct compare_manipulators
- {
- bool operator() (const ManipulatorHandle* const a, const ManipulatorHandle* const b) const
- {
- if (a->mEndPosition.mV[VZ] != b->mEndPosition.mV[VZ])
- return (a->mEndPosition.mV[VZ] < b->mEndPosition.mV[VZ]);
- else
- return a->mManipID < b->mManipID;
- }
- };
-
S32 mLastHoverMouseX;
S32 mLastHoverMouseY;
BOOL mSendUpdateOnMouseUp;
@@ -116,8 +105,6 @@ private:
LLVector3d mDragCursorStartGlobal;
LLVector3d mDragSelectionStartGlobal;
LLTimer mUpdateTimer;
- typedef std::set<ManipulatorHandle*, compare_manipulators> minpulator_list_t;
- minpulator_list_t mProjectedManipulators;
LLVector4 mManipulatorVertices[18];
F32 mSnapOffsetMeters;
LLVector3 mSnapOffsetAxis;
diff --git a/indra/newview/llmediadataclient.cpp b/indra/newview/llmediadataclient.cpp
index 2694075a58..91064eea6b 100755
--- a/indra/newview/llmediadataclient.cpp
+++ b/indra/newview/llmediadataclient.cpp
@@ -402,7 +402,7 @@ std::ostream& operator<<(std::ostream &s, const LLMediaDataClient::request_queue
LLMediaDataClient::request_queue_t::const_iterator end = q.end();
while (iter != end)
{
- s << "\t" << i << "]: " << (*iter)->getObject()->getID().asString();
+ s << "\t" << i << "]: " << (*iter)->getObject()->getID().asString() << "(" << (*iter)->getObject()->getMediaInterest() << ")";
iter++;
i++;
}
diff --git a/indra/newview/llpanelmaininventory.cpp b/indra/newview/llpanelmaininventory.cpp
index cef21e85d6..c0da8f3daa 100644
--- a/indra/newview/llpanelmaininventory.cpp
+++ b/indra/newview/llpanelmaininventory.cpp
@@ -530,11 +530,23 @@ BOOL LLPanelMainInventory::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop,
return handled;
}
-void LLPanelMainInventory::changed(U32 mask)
+// virtual
+void LLPanelMainInventory::changed(U32)
{
+ // empty, but must have this defined for abstract base class.
}
+// virtual
+void LLPanelMainInventory::draw()
+{
+ if (mActivePanel && mFilterEditor)
+ {
+ mFilterEditor->setText(mActivePanel->getFilterSubString());
+ }
+ LLPanel::draw();
+}
+
void LLPanelMainInventory::setFilterTextFromFilter()
{
mFilterText = mActivePanel->getFilter()->getFilterText();
diff --git a/indra/newview/llpanelmaininventory.h b/indra/newview/llpanelmaininventory.h
index 92443df369..920de2665c 100644
--- a/indra/newview/llpanelmaininventory.h
+++ b/indra/newview/llpanelmaininventory.h
@@ -72,7 +72,8 @@ public:
void* cargo_data,
EAcceptance* accept,
std::string& tooltip_msg);
- /*virtual*/ void changed(U32 mask);
+ /*virtual*/ void changed(U32);
+ /*virtual*/ void draw();
LLInventoryPanel* getPanel() { return mActivePanel; }
LLInventoryPanel* getActivePanel() { return mActivePanel; }
diff --git a/indra/newview/llpanelmediasettingsgeneral.cpp b/indra/newview/llpanelmediasettingsgeneral.cpp
index 88eba14553..f574f55beb 100644
--- a/indra/newview/llpanelmediasettingsgeneral.cpp
+++ b/indra/newview/llpanelmediasettingsgeneral.cpp
@@ -67,7 +67,6 @@ const char *CHECKERBOARD_DATA_URL = "data:image/svg+xml,%3Csvg xmlns=%22http://w
////////////////////////////////////////////////////////////////////////////////
//
LLPanelMediaSettingsGeneral::LLPanelMediaSettingsGeneral() :
- mControls( NULL ),
mAutoLoop( NULL ),
mFirstClick( NULL ),
mAutoZoom( NULL ),
@@ -93,7 +92,6 @@ BOOL LLPanelMediaSettingsGeneral::postBuild()
mAutoPlay = getChild< LLCheckBoxCtrl >( LLMediaEntry::AUTO_PLAY_KEY );
mAutoScale = getChild< LLCheckBoxCtrl >( LLMediaEntry::AUTO_SCALE_KEY );
mAutoZoom = getChild< LLCheckBoxCtrl >( LLMediaEntry::AUTO_ZOOM_KEY );
- mControls = getChild< LLComboBox >( LLMediaEntry::CONTROLS_KEY );
mCurrentURL = getChild< LLTextBox >( LLMediaEntry::CURRENT_URL_KEY );
mFirstClick = getChild< LLCheckBoxCtrl >( LLMediaEntry::FIRST_CLICK_INTERACT_KEY );
mHeightPixels = getChild< LLSpinCtrl >( LLMediaEntry::HEIGHT_PIXELS_KEY );
@@ -211,7 +209,6 @@ void LLPanelMediaSettingsGeneral::clearValues( void* userdata, bool editable)
self->mAutoPlay->clear();
self->mAutoScale->clear();
self->mAutoZoom ->clear();
- self->mControls->clear();
self->mCurrentURL->clear();
self->mFirstClick->clear();
self->mHeightPixels->clear();
@@ -221,7 +218,6 @@ void LLPanelMediaSettingsGeneral::clearValues( void* userdata, bool editable)
self->mAutoPlay ->setEnabled(editable);
self->mAutoScale ->setEnabled(editable);
self->mAutoZoom ->setEnabled(editable);
- self->mControls ->setEnabled(editable);
self->mCurrentURL ->setEnabled(editable);
self->mFirstClick ->setEnabled(editable);
self->mHeightPixels ->setEnabled(editable);
@@ -283,7 +279,6 @@ void LLPanelMediaSettingsGeneral::initValues( void* userdata, const LLSD& media_
{ LLMediaEntry::AUTO_PLAY_KEY, self->mAutoPlay, "LLCheckBoxCtrl" },
{ LLMediaEntry::AUTO_SCALE_KEY, self->mAutoScale, "LLCheckBoxCtrl" },
{ LLMediaEntry::AUTO_ZOOM_KEY, self->mAutoZoom, "LLCheckBoxCtrl" },
- { LLMediaEntry::CONTROLS_KEY, self->mControls, "LLComboBox" },
{ LLMediaEntry::CURRENT_URL_KEY, self->mCurrentURL, "LLTextBox" },
{ LLMediaEntry::HEIGHT_PIXELS_KEY, self->mHeightPixels, "LLSpinCtrl" },
{ LLMediaEntry::HOME_URL_KEY, self->mHomeURL, "LLLineEditor" },
@@ -416,7 +411,6 @@ void LLPanelMediaSettingsGeneral::getValues( LLSD &fill_me_in )
fill_me_in[LLMediaEntry::AUTO_PLAY_KEY] = (LLSD::Boolean)mAutoPlay->getValue();
fill_me_in[LLMediaEntry::AUTO_SCALE_KEY] = (LLSD::Boolean)mAutoScale->getValue();
fill_me_in[LLMediaEntry::AUTO_ZOOM_KEY] = (LLSD::Boolean)mAutoZoom->getValue();
- fill_me_in[LLMediaEntry::CONTROLS_KEY] = (LLSD::Integer)mControls->getCurrentIndex();
//Don't fill in current URL: this is only supposed to get changed via navigate
// fill_me_in[LLMediaEntry::CURRENT_URL_KEY] = mCurrentURL->getValue();
fill_me_in[LLMediaEntry::HEIGHT_PIXELS_KEY] = (LLSD::Integer)mHeightPixels->getValue();
diff --git a/indra/newview/llpanelmediasettingsgeneral.h b/indra/newview/llpanelmediasettingsgeneral.h
index c6895b1dc9..5f90321362 100644
--- a/indra/newview/llpanelmediasettingsgeneral.h
+++ b/indra/newview/llpanelmediasettingsgeneral.h
@@ -37,7 +37,6 @@
class LLButton;
class LLCheckBoxCtrl;
-class LLComboBox;
class LLLineEditor;
class LLSpinCtrl;
class LLTextureCtrl;
@@ -90,7 +89,6 @@ private:
void checkHomeUrlPassesWhitelist();
- LLComboBox* mControls;
LLCheckBoxCtrl* mAutoLoop;
LLCheckBoxCtrl* mFirstClick;
LLCheckBoxCtrl* mAutoZoom;
diff --git a/indra/newview/llpanelmediasettingspermissions.cpp b/indra/newview/llpanelmediasettingspermissions.cpp
index 2f3f550e35..a23aed2e98 100644
--- a/indra/newview/llpanelmediasettingspermissions.cpp
+++ b/indra/newview/llpanelmediasettingspermissions.cpp
@@ -51,9 +51,11 @@
#include "llnamebox.h"
#include "lltrans.h"
#include "llfloatermediasettings.h"
+
////////////////////////////////////////////////////////////////////////////////
//
LLPanelMediaSettingsPermissions::LLPanelMediaSettingsPermissions() :
+ mControls( NULL ),
mPermsOwnerInteract( 0 ),
mPermsOwnerControl( 0 ),
mPermsGroupName( 0 ),
@@ -71,6 +73,7 @@ LLPanelMediaSettingsPermissions::LLPanelMediaSettingsPermissions() :
BOOL LLPanelMediaSettingsPermissions::postBuild()
{
// connect member vars with UI widgets
+ mControls = getChild< LLComboBox >( LLMediaEntry::CONTROLS_KEY );
mPermsOwnerInteract = getChild< LLCheckBoxCtrl >( LLPanelContents::PERMS_OWNER_INTERACT_KEY );
mPermsOwnerControl = getChild< LLCheckBoxCtrl >( LLPanelContents::PERMS_OWNER_CONTROL_KEY );
mPermsGroupInteract = getChild< LLCheckBoxCtrl >( LLPanelContents::PERMS_GROUP_INTERACT_KEY );
@@ -123,19 +126,22 @@ void LLPanelMediaSettingsPermissions::draw()
void LLPanelMediaSettingsPermissions::clearValues( void* userdata, bool editable)
{
LLPanelMediaSettingsPermissions *self =(LLPanelMediaSettingsPermissions *)userdata;
+
+ self->mControls->clear();
self->mPermsOwnerInteract->clear();
self->mPermsOwnerControl->clear();
- self->mPermsGroupInteract ->clear();
+ self->mPermsGroupInteract->clear();
self->mPermsGroupControl->clear();
- self->mPermsWorldInteract ->clear();
- self->mPermsWorldControl ->clear();
+ self->mPermsWorldInteract->clear();
+ self->mPermsWorldControl->clear();
+ self->mControls->setEnabled(editable);
self->mPermsOwnerInteract->setEnabled(editable);
- self->mPermsOwnerControl ->setEnabled(editable);
+ self->mPermsOwnerControl->setEnabled(editable);
self->mPermsGroupInteract->setEnabled(editable);
- self->mPermsGroupControl ->setEnabled(editable);
+ self->mPermsGroupControl->setEnabled(editable);
self->mPermsWorldInteract->setEnabled(editable);
- self->mPermsWorldControl ->setEnabled(editable);
+ self->mPermsWorldControl->setEnabled(editable);
}
////////////////////////////////////////////////////////////////////////////////
@@ -175,6 +181,7 @@ void LLPanelMediaSettingsPermissions::initValues( void* userdata, const LLSD& me
} data_set [] =
{
+ { LLMediaEntry::CONTROLS_KEY, self->mControls, "LLComboBox" },
{ LLPanelContents::PERMS_OWNER_INTERACT_KEY, self->mPermsOwnerInteract, "LLCheckBoxCtrl" },
{ LLPanelContents::PERMS_OWNER_CONTROL_KEY, self->mPermsOwnerControl, "LLCheckBoxCtrl" },
{ LLPanelContents::PERMS_GROUP_INTERACT_KEY, self->mPermsGroupInteract, "LLCheckBoxCtrl" },
@@ -194,27 +201,27 @@ void LLPanelMediaSettingsPermissions::initValues( void* userdata, const LLSD& me
{
if ( data_set[ i ].ctrl_type == "LLCheckBoxCtrl" )
{
- // the sense of the checkboxes changed and it made sense
- // to just reverse their sense back again here and avoid
- // changing server code.
+ // Most recent change to the "sense" of these checkboxes
+ // means the value in the checkbox matches that on the server
static_cast< LLCheckBoxCtrl* >( data_set[ i ].ctrl_ptr )->
- setValue( ! media_settings[ base_key ].asBoolean() );
+ setValue( media_settings[ base_key ].asBoolean() );
}
else
if ( data_set[ i ].ctrl_type == "LLComboBox" )
static_cast< LLComboBox* >( data_set[ i ].ctrl_ptr )->
setCurrentByIndex( media_settings[ base_key ].asInteger() );
+
data_set[ i ].ctrl_ptr->setEnabled(editable);
data_set[ i ].ctrl_ptr->setTentative( media_settings[ tentative_key ].asBoolean() );
};
};
+
self->childSetEnabled("media_perms_label_owner", editable );
self->childSetText("media_perms_label_owner", LLTrans::getString("Media Perms Owner") );
self->childSetEnabled("media_perms_label_group", editable );
self->childSetText("media_perms_label_group", LLTrans::getString("Media Perms Group") );
self->childSetEnabled("media_perms_label_anyone", editable );
self->childSetText("media_perms_label_anyone", LLTrans::getString("Media Perms Anyone") );
-
}
////////////////////////////////////////////////////////////////////////////////
@@ -228,6 +235,9 @@ void LLPanelMediaSettingsPermissions::preApply()
//
void LLPanelMediaSettingsPermissions::getValues( LLSD &fill_me_in )
{
+ // moved over from the 'General settings' tab
+ fill_me_in[LLMediaEntry::CONTROLS_KEY] = (LLSD::Integer)mControls->getCurrentIndex();
+
// *NOTE: For some reason, gcc does not like these symbol references in the
// expressions below (inside the static_casts). I have NO idea why :(.
// For some reason, assigning them to const temp vars here fixes the link
@@ -237,13 +247,13 @@ void LLPanelMediaSettingsPermissions::getValues( LLSD &fill_me_in )
const U8 group = LLMediaEntry::PERM_GROUP;
const U8 anyone = LLMediaEntry::PERM_ANYONE;
const LLSD::Integer control = static_cast<LLSD::Integer>(
- (mPermsOwnerControl->getValue() ? none : owner ) |
- (mPermsGroupControl->getValue() ? none : group ) |
- (mPermsWorldControl->getValue() ? none : anyone ));
+ (mPermsOwnerControl->getValue() ? owner : none ) |
+ (mPermsGroupControl->getValue() ? group: none ) |
+ (mPermsWorldControl->getValue() ? anyone : none ));
const LLSD::Integer interact = static_cast<LLSD::Integer>(
- (mPermsOwnerInteract->getValue() ? none : owner ) |
- (mPermsGroupInteract->getValue() ? none : group ) |
- (mPermsWorldInteract->getValue() ? none : anyone ));
+ (mPermsOwnerInteract->getValue() ? owner: none ) |
+ (mPermsGroupInteract->getValue() ? group : none ) |
+ (mPermsWorldInteract->getValue() ? anyone : none ));
fill_me_in[LLMediaEntry::PERMS_CONTROL_KEY] = control;
fill_me_in[LLMediaEntry::PERMS_INTERACT_KEY] = interact;
}
@@ -255,3 +265,5 @@ void LLPanelMediaSettingsPermissions::postApply()
{
// no-op
}
+
+
diff --git a/indra/newview/llpanelmediasettingspermissions.h b/indra/newview/llpanelmediasettingspermissions.h
index 45a596c615..bd0c3b8ab5 100644
--- a/indra/newview/llpanelmediasettingspermissions.h
+++ b/indra/newview/llpanelmediasettingspermissions.h
@@ -65,6 +65,7 @@ public:
static void clearValues( void* userdata, bool editable);
private:
+ LLComboBox* mControls;
LLCheckBoxCtrl* mPermsOwnerInteract;
LLCheckBoxCtrl* mPermsOwnerControl;
LLNameBox* mPermsGroupName;
diff --git a/indra/newview/llselectmgr.cpp b/indra/newview/llselectmgr.cpp
index 44930f03c5..6e99d5a5f0 100644
--- a/indra/newview/llselectmgr.cpp
+++ b/indra/newview/llselectmgr.cpp
@@ -3494,7 +3494,7 @@ void LLSelectMgr::deselectAllIfTooFar()
// HACK: Don't deselect when we're navigating to rate an object's
// owner or creator. JC
- if (gPieObject->getVisible() || gPieRate->getVisible() )
+ if (gMenuObject->getVisible())
{
return;
}
@@ -5493,11 +5493,15 @@ void dialog_refresh_all()
gFloaterTools->dirty();
- gPieObject->needsArrange();
+ gMenuObject->needsArrange();
- if( gPieAttachment->getVisible() )
+ if( gMenuAttachmentSelf->getVisible() )
{
- gPieAttachment->arrange();
+ gMenuAttachmentSelf->arrange();
+ }
+ if( gMenuAttachmentOther->getVisible() )
+ {
+ gMenuAttachmentOther->arrange();
}
LLFloaterProperties::dirtyAll();
diff --git a/indra/newview/lltoastpanel.cpp b/indra/newview/lltoastpanel.cpp
index afb9e261b0..755e647777 100644
--- a/indra/newview/lltoastpanel.cpp
+++ b/indra/newview/lltoastpanel.cpp
@@ -80,7 +80,7 @@ void LLToastPanel::snapToMessageHeight(LLTextBase* message, S32 maxLineCount)
//Knowing the height is set to max allowed, getTextPixelHeight returns needed text height
//Perhaps we need to pass maxLineCount as parameter to getTextPixelHeight to avoid previous reshape.
- S32 requiredTextHeight = message->getContentsRect().getHeight();
+ S32 requiredTextHeight = message->getTextBoundingRect().getHeight();
S32 newTextHeight = llmin(requiredTextHeight, maxTextHeight);
//Calculate last delta height deducting previous heightDelta
diff --git a/indra/newview/lltoolpie.cpp b/indra/newview/lltoolpie.cpp
index 5ed8dc5fb9..74fbce890d 100644
--- a/indra/newview/lltoolpie.cpp
+++ b/indra/newview/lltoolpie.cpp
@@ -1243,8 +1243,6 @@ bool LLToolPie::handleMediaClick(const LLPickInfo& pick)
return false;
}
-
-
// Does this face have media?
const LLTextureEntry* tep = objectp->getTE(pick.mObjectFace);
if(!tep)
@@ -1257,11 +1255,11 @@ bool LLToolPie::handleMediaClick(const LLPickInfo& pick)
viewer_media_t media_impl = mep ? LLViewerMedia::getMediaImplFromTextureID(mep->getMediaID()) : NULL;
- if (gSavedSettings.getBOOL("MediaOnAPrimUI")
- && media_impl.notNull())
+ if (gSavedSettings.getBOOL("MediaOnAPrimUI"))
{
- if (!LLViewerMediaFocus::getInstance()->isFocusedOnFace(pick.getObject(), pick.mObjectFace) )
+ if (!LLViewerMediaFocus::getInstance()->isFocusedOnFace(pick.getObject(), pick.mObjectFace) || media_impl.isNull())
{
+ // It's okay to give this a null impl
LLViewerMediaFocus::getInstance()->setFocusFace(pick.getObject(), pick.mObjectFace, media_impl, pick.mNormal);
}
else
@@ -1445,28 +1443,29 @@ BOOL LLToolPie::pickRightMouseDownCallback()
{
LLParcelSelectionHandle selection = LLViewerParcelMgr::getInstance()->selectParcelAt( mPick.mPosGlobal );
gMenuHolder->setParcelSelection(selection);
- gPieLand->show(x, y);
+ gMenuLand->show(x, y);
showVisualContextMenuEffect();
}
else if (mPick.mObjectID == gAgent.getID() )
{
- if(!gPieSelf)
+ if(!gMenuAvatarSelf)
{
//either at very early startup stage or at late quitting stage,
//this event is ignored.
return TRUE ;
}
- gPieSelf->show(x, y);
+ gMenuAvatarSelf->show(x, y);
}
else if (object)
{
gMenuHolder->setObjectSelection(LLSelectMgr::getInstance()->getSelection());
+ bool is_other_attachment = (object->isAttachment() && !object->isHUDAttachment() && !object->permYouOwner());
if (object->isAvatar()
- || (object->isAttachment() && !object->isHUDAttachment() && !object->permYouOwner()))
+ || is_other_attachment)
{
// Find the attachment's avatar
while( object && object->isAttachment())
@@ -1477,20 +1476,30 @@ BOOL LLToolPie::pickRightMouseDownCallback()
// Object is an avatar, so check for mute by id.
LLVOAvatar* avatar = (LLVOAvatar*)object;
std::string name = avatar->getFullname();
+ std::string mute_msg;
if (LLMuteList::getInstance()->isMuted(avatar->getID(), avatar->getFullname()))
{
- gMenuHolder->childSetText("Avatar Mute", std::string("Unmute")); // *TODO:Translate
+ mute_msg = LLTrans::getString("UnmuteAvatar");
}
else
{
- gMenuHolder->childSetText("Avatar Mute", std::string("Mute")); // *TODO:Translate
+ mute_msg = LLTrans::getString("MuteAvatar");
}
- gPieAvatar->show(x, y);
+ if (is_other_attachment)
+ {
+ gMenuAttachmentOther->getChild<LLUICtrl>("Avatar Mute")->setValue(mute_msg);
+ gMenuAttachmentOther->show(x, y);
+ }
+ else
+ {
+ gMenuAvatarOther->getChild<LLUICtrl>("Avatar Mute")->setValue(mute_msg);
+ gMenuAvatarOther->show(x, y);
+ }
}
else if (object->isAttachment())
{
- gPieAttachment->show(x, y);
+ gMenuAttachmentSelf->show(x, y);
}
else
{
@@ -1501,16 +1510,18 @@ BOOL LLToolPie::pickRightMouseDownCallback()
{
name = node->mName;
}
+ std::string mute_msg;
if (LLMuteList::getInstance()->isMuted(object->getID(), name))
{
- gMenuHolder->childSetText("Object Mute", std::string("Unmute")); // *TODO:Translate
+ mute_msg = LLTrans::getString("UnmuteObject");
}
else
{
- gMenuHolder->childSetText("Object Mute", std::string("Mute")); // *TODO:Translate
+ mute_msg = LLTrans::getString("MuteObject");
}
- gPieObject->show(x, y);
+ gMenuHolder->childSetText("Object Mute", mute_msg);
+ gMenuObject->show(x, y);
showVisualContextMenuEffect();
}
diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp
index 57e4ed0c1e..7c5b360b92 100644
--- a/indra/newview/llviewermedia.cpp
+++ b/indra/newview/llviewermedia.cpp
@@ -558,6 +558,20 @@ bool LLViewerMedia::getInWorldMediaDisabled()
return sInWorldMediaDisabled;
}
+//////////////////////////////////////////////////////////////////////////////////////////
+// static
+bool LLViewerMedia::isInterestingEnough(const LLUUID &object_id, const F64 &object_interest)
+{
+ if (LLViewerMediaFocus::getInstance()->getFocusedObjectID() == object_id)
+ {
+ return true;
+ }
+ else {
+ // XXX HACK
+ return object_interest > 1023;// INTEREST_THRESHHOLD;
+ }
+}
+
LLViewerMedia::impl_list &LLViewerMedia::getPriorityList()
{
return sViewerMediaImplList;
diff --git a/indra/newview/llviewermedia.h b/indra/newview/llviewermedia.h
index 349a66867a..26b822aba6 100644
--- a/indra/newview/llviewermedia.h
+++ b/indra/newview/llviewermedia.h
@@ -112,6 +112,8 @@ class LLViewerMedia
static void setInWorldMediaDisabled(bool disabled);
static bool getInWorldMediaDisabled();
+ static bool isInterestingEnough(const LLUUID& object_id, const F64 &object_interest);
+
// Returns the priority-sorted list of all media impls.
static impl_list &getPriorityList();
diff --git a/indra/newview/llviewermediafocus.cpp b/indra/newview/llviewermediafocus.cpp
index f639c841e7..e04a54fbd6 100644
--- a/indra/newview/llviewermediafocus.cpp
+++ b/indra/newview/llviewermediafocus.cpp
@@ -144,9 +144,19 @@ void LLViewerMediaFocus::setFocusFace(LLPointer<LLViewerObject> objectp, S32 fac
}
mFocusedImplID = LLUUID::null;
- mFocusedObjectID = LLUUID::null;
- mFocusedObjectFace = 0;
+ if (objectp.notNull())
+ {
+ // Still record the focused object...it may mean we need to load media data.
+ // This will aid us in determining this object is "important enough"
+ mFocusedObjectID = objectp->getID();
+ mFocusedObjectFace = face;
+ }
+ else {
+ mFocusedObjectID = LLUUID::null;
+ mFocusedObjectFace = 0;
+ }
}
+
}
void LLViewerMediaFocus::clearFocus()
@@ -336,7 +346,7 @@ BOOL LLViewerMediaFocus::handleScrollWheel(S32 x, S32 y, S32 clicks)
void LLViewerMediaFocus::update()
{
- if(mFocusedImplID.notNull() || mFocusedObjectID.notNull())
+ if(mFocusedImplID.notNull())
{
// We have a focused impl/face.
if(!getFocus())
diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp
index 36d9e7935f..0be0b56bc3 100644
--- a/indra/newview/llviewermenu.cpp
+++ b/indra/newview/llviewermenu.cpp
@@ -134,11 +134,12 @@ LLMenuGL *gPopupMenuView = NULL;
LLMenuBarGL *gLoginMenuBarView = NULL;
// Pie menus
-LLContextMenu *gPieSelf = NULL;
-LLContextMenu *gPieAvatar = NULL;
-LLContextMenu *gPieObject = NULL;
-LLContextMenu *gPieAttachment = NULL;
-LLContextMenu *gPieLand = NULL;
+LLContextMenu *gMenuAvatarSelf = NULL;
+LLContextMenu *gMenuAvatarOther = NULL;
+LLContextMenu *gMenuObject = NULL;
+LLContextMenu *gMenuAttachmentSelf = NULL;
+LLContextMenu *gMenuAttachmentOther = NULL;
+LLContextMenu *gMenuLand = NULL;
const std::string SAVE_INTO_INVENTORY("Save Object Back to My Inventory");
const std::string SAVE_INTO_TASK_INVENTORY("Save Object Back to Object Contents");
@@ -146,7 +147,6 @@ const std::string SAVE_INTO_TASK_INVENTORY("Save Object Back to Object Contents"
LLMenuGL* gAttachSubMenu = NULL;
LLMenuGL* gDetachSubMenu = NULL;
LLMenuGL* gTakeOffClothes = NULL;
-LLContextMenu* gPieRate = NULL;
LLContextMenu* gAttachScreenPieMenu = NULL;
LLContextMenu* gAttachPieMenu = NULL;
LLContextMenu* gAttachBodyPartPieMenus[8];
@@ -376,25 +376,31 @@ void init_menus()
gMenuHolder->addChild( gPopupMenuView );
///
- /// Pie menus
+ /// Context menus
///
- gPieSelf = LLUICtrlFactory::getInstance()->createFromFile<LLContextMenu>("menu_pie_self.xml", gMenuHolder, LLViewerMenuHolderGL::child_registry_t::instance());
+ const widget_registry_t& registry =
+ LLViewerMenuHolderGL::child_registry_t::instance();
+ gMenuAvatarSelf = LLUICtrlFactory::createFromFile<LLContextMenu>(
+ "menu_avatar_self.xml", gMenuHolder, registry);
+ gMenuAvatarOther = LLUICtrlFactory::createFromFile<LLContextMenu>(
+ "menu_avatar_other.xml", gMenuHolder, registry);
- // TomY TODO: what shall we do about these?
gDetachScreenPieMenu = gMenuHolder->getChild<LLContextMenu>("Object Detach HUD", true);
gDetachPieMenu = gMenuHolder->getChild<LLContextMenu>("Object Detach", true);
- gPieAvatar = LLUICtrlFactory::getInstance()->createFromFile<LLContextMenu>("menu_pie_avatar.xml", gMenuHolder, LLViewerMenuHolderGL::child_registry_t::instance());
-
- gPieObject = LLUICtrlFactory::getInstance()->createFromFile<LLContextMenu>("menu_pie_object.xml", gMenuHolder, LLViewerMenuHolderGL::child_registry_t::instance());
+ gMenuObject = LLUICtrlFactory::createFromFile<LLContextMenu>(
+ "menu_object.xml", gMenuHolder, registry);
gAttachScreenPieMenu = gMenuHolder->getChild<LLContextMenu>("Object Attach HUD");
gAttachPieMenu = gMenuHolder->getChild<LLContextMenu>("Object Attach");
- gPieRate = gMenuHolder->getChild<LLContextMenu>("Rate Menu");
- gPieAttachment = LLUICtrlFactory::getInstance()->createFromFile<LLContextMenu>("menu_pie_attachment.xml", gMenuHolder, LLViewerMenuHolderGL::child_registry_t::instance());
+ gMenuAttachmentSelf = LLUICtrlFactory::createFromFile<LLContextMenu>(
+ "menu_attachment_self.xml", gMenuHolder, registry);
+ gMenuAttachmentOther = LLUICtrlFactory::createFromFile<LLContextMenu>(
+ "menu_attachment_other.xml", gMenuHolder, registry);
- gPieLand = LLUICtrlFactory::getInstance()->createFromFile<LLContextMenu>("menu_pie_land.xml", gMenuHolder, LLViewerMenuHolderGL::child_registry_t::instance());
+ gMenuLand = LLUICtrlFactory::createFromFile<LLContextMenu>(
+ "menu_land.xml", gMenuHolder, registry);
///
/// set up the colors
@@ -403,12 +409,13 @@ void init_menus()
LLColor4 context_menu_color = LLUIColorTable::instance().getColor("MenuPopupBgColor");
- gPieSelf->setBackgroundColor( context_menu_color );
- gPieAvatar->setBackgroundColor( context_menu_color );
- gPieObject->setBackgroundColor( context_menu_color );
- gPieAttachment->setBackgroundColor( context_menu_color );
+ gMenuAvatarSelf->setBackgroundColor( context_menu_color );
+ gMenuAvatarOther->setBackgroundColor( context_menu_color );
+ gMenuObject->setBackgroundColor( context_menu_color );
+ gMenuAttachmentSelf->setBackgroundColor( context_menu_color );
+ gMenuAttachmentOther->setBackgroundColor( context_menu_color );
- gPieLand->setBackgroundColor( context_menu_color );
+ gMenuLand->setBackgroundColor( context_menu_color );
color = LLUIColorTable::instance().getColor( "MenuPopupBgColor" );
gPopupMenuView->setBackgroundColor( color );
@@ -2263,20 +2270,23 @@ void cleanup_menus()
delete gMenuParcelObserver;
gMenuParcelObserver = NULL;
- delete gPieSelf;
- gPieSelf = NULL;
+ delete gMenuAvatarSelf;
+ gMenuAvatarSelf = NULL;
+
+ delete gMenuAvatarOther;
+ gMenuAvatarOther = NULL;
- delete gPieAvatar;
- gPieAvatar = NULL;
+ delete gMenuObject;
+ gMenuObject = NULL;
- delete gPieObject;
- gPieObject = NULL;
+ delete gMenuAttachmentSelf;
+ gMenuAttachmentSelf = NULL;
- delete gPieAttachment;
- gPieAttachment = NULL;
+ delete gMenuAttachmentOther;
+ gMenuAttachmentSelf = NULL;
- delete gPieLand;
- gPieLand = NULL;
+ delete gMenuLand;
+ gMenuLand = NULL;
delete gMenuBarView;
gMenuBarView = NULL;
@@ -4911,7 +4921,7 @@ class LLEditDelete : public view_listener_t
// When deleting an object we may not actually be done
// Keep selection so we know what to delete when confirmation is needed about the delete
- gPieObject->hide();
+ gMenuObject->hide();
return true;
}
};
@@ -4944,7 +4954,7 @@ void handle_object_delete()
// When deleting an object we may not actually be done
// Keep selection so we know what to delete when confirmation is needed about the delete
- gPieObject->hide();
+ gMenuObject->hide();
return;
}
@@ -6006,7 +6016,7 @@ public:
protected:
virtual void done()
{
- gPieAttachment->buildDrawLabels();
+ gMenuAttachmentSelf->buildDrawLabels();
gInventory.removeObserver(this);
delete this;
}
diff --git a/indra/newview/llviewermenu.h b/indra/newview/llviewermenu.h
index 8266452d85..d3c34f0de4 100644
--- a/indra/newview/llviewermenu.h
+++ b/indra/newview/llviewermenu.h
@@ -161,21 +161,13 @@ extern LLMenuGL* gPopupMenuView;
extern LLViewerMenuHolderGL* gMenuHolder;
extern LLMenuBarGL* gLoginMenuBarView;
-// Pie menus
-extern LLContextMenu *gPieSelf;
-extern LLContextMenu *gPieAvatar;
-extern LLContextMenu *gPieObject;
-extern LLContextMenu *gPieAttachment;
-
-extern LLContextMenu *gPieLand;
-extern LLContextMenu *gPieRate;
-
-// Pie menus
-extern LLContextMenu *gPieSelfSimple;
-extern LLContextMenu *gPieAvatarSimple;
-extern LLContextMenu *gPieObjectSimple;
-extern LLContextMenu *gPieAttachmentSimple;
-extern LLContextMenu *gPieLandSimple;
+// Context menus in 3D scene
+extern LLContextMenu *gMenuAvatarSelf;
+extern LLContextMenu *gMenuAvatarOther;
+extern LLContextMenu *gMenuObject;
+extern LLContextMenu *gMenuAttachmentSelf;
+extern LLContextMenu *gMenuAttachmentOther;
+extern LLContextMenu *gMenuLand;
// Needed to build menus when attachment site list available
extern LLMenuGL* gAttachSubMenu;
diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp
index 480c0d81bd..43eb3071dd 100644
--- a/indra/newview/llviewerwindow.cpp
+++ b/indra/newview/llviewerwindow.cpp
@@ -260,19 +260,21 @@ public:
virtual void recordMessage(LLError::ELevel level,
const std::string& message)
{
- // only log warnings to chat console
- if (level == LLError::LEVEL_WARN)
- {
- LLFloaterChat* chat_floater = LLFloaterReg::findTypedInstance<LLFloaterChat>("chat");
- if (chat_floater && gSavedSettings.getBOOL("WarningsAsChat"))
- {
- LLChat chat;
- chat.mText = message;
- chat.mSourceType = CHAT_SOURCE_SYSTEM;
+ //FIXME: this is NOT thread safe, and will do bad things when a warning is issued from a non-UI thread
- chat_floater->addChat(chat, FALSE, FALSE);
- }
- }
+ // only log warnings to chat console
+ //if (level == LLError::LEVEL_WARN)
+ //{
+ //LLFloaterChat* chat_floater = LLFloaterReg::findTypedInstance<LLFloaterChat>("chat");
+ //if (chat_floater && gSavedSettings.getBOOL("WarningsAsChat"))
+ //{
+ // LLChat chat;
+ // chat.mText = message;
+ // chat.mSourceType = CHAT_SOURCE_SYSTEM;
+
+ // chat_floater->addChat(chat, FALSE, FALSE);
+ //}
+ //}
}
};
@@ -3141,7 +3143,6 @@ void LLViewerWindow::pickAsync(S32 x, S32 y_from_bot, MASK mask, void (*callback
return;
}
- // push back pick info object
BOOL in_build_mode = LLFloaterReg::instanceVisible("build");
if (in_build_mode || LLDrawPoolAlpha::sShowDebugAlpha)
{
@@ -3150,27 +3151,8 @@ void LLViewerWindow::pickAsync(S32 x, S32 y_from_bot, MASK mask, void (*callback
pick_transparent = TRUE;
}
- // center initial pick frame buffer region under mouse cursor
- // since that area is guaranteed to be onscreen and hence a valid
- // part of the framebuffer
- if (mPicks.empty())
- {
- mPickScreenRegion.setCenterAndSize(x, y_from_bot, PICK_DIAMETER, PICK_DIAMETER);
-
- if (mPickScreenRegion.mLeft < mWorldViewRectScaled.mLeft) mPickScreenRegion.translate(mWorldViewRectScaled.mLeft - mPickScreenRegion.mLeft, 0);
- if (mPickScreenRegion.mBottom < mWorldViewRectScaled.mBottom) mPickScreenRegion.translate(0, mWorldViewRectScaled.mBottom - mPickScreenRegion.mBottom);
- if (mPickScreenRegion.mRight > mWorldViewRectScaled.mRight ) mPickScreenRegion.translate(mWorldViewRectScaled.mRight - mPickScreenRegion.mRight, 0);
- if (mPickScreenRegion.mTop > mWorldViewRectScaled.mTop ) mPickScreenRegion.translate(0, mWorldViewRectScaled.mTop - mPickScreenRegion.mTop);
- }
-
- // set frame buffer region for picking results
- // stack multiple picks left to right
- LLRect screen_region = mPickScreenRegion;
- screen_region.translate(mPicks.size() * PICK_DIAMETER, 0);
-
- LLPickInfo pick(LLCoordGL(x, y_from_bot), screen_region, mask, pick_transparent, TRUE, callback);
-
- schedulePick(pick);
+ LLPickInfo pick_info(LLCoordGL(x, y_from_bot), mask, pick_transparent, TRUE, callback);
+ schedulePick(pick_info);
}
void LLViewerWindow::schedulePick(LLPickInfo& pick_info)
@@ -3185,10 +3167,11 @@ void LLViewerWindow::schedulePick(LLPickInfo& pick_info)
return;
}
- llassert_always(pick_info.mScreenRegion.notEmpty());
mPicks.push_back(pick_info);
// delay further event processing until we receive results of pick
+ // only do this for async picks so that handleMouseUp won't be called
+ // until the pick triggered in handleMouseDown has been processed, for example
mWindow->delayInputProcessing();
}
@@ -3236,20 +3219,18 @@ LLPickInfo LLViewerWindow::pickImmediate(S32 x, S32 y_from_bot, BOOL pick_trans
return LLPickInfo();
}
- pickAsync(x, y_from_bot, gKeyboard->currentMask(TRUE), NULL, pick_transparent);
- // assume that pickAsync put the results in the back of the mPicks list
- if(mPicks.size() != 0)
- {
- mLastPick = mPicks.back();
- mLastPick.fetchResults();
- mPicks.pop_back();
- }
- else
+ BOOL in_build_mode = LLFloaterReg::instanceVisible("build");
+ if (in_build_mode || LLDrawPoolAlpha::sShowDebugAlpha)
{
- lldebugs << "List of last picks is empty: Using stub pick" << llendl;
- mLastPick = LLPickInfo();
+ // build mode allows interaction with all transparent objects
+ // "Show Debug Alpha" means no object actually transparent
+ pick_transparent = TRUE;
}
+ // shortcut queueing in mPicks and just update mLastPick in place
+ mLastPick = LLPickInfo(LLCoordGL(x, y_from_bot), gKeyboard->currentMask(TRUE), pick_transparent, TRUE, NULL);
+ mLastPick.fetchResults();
+
return mLastPick;
}
@@ -4896,13 +4877,11 @@ LLPickInfo::LLPickInfo()
}
LLPickInfo::LLPickInfo(const LLCoordGL& mouse_pos,
- const LLRect& screen_region,
MASK keyboard_mask,
BOOL pick_transparent,
BOOL pick_uv_coords,
void (*pick_callback)(const LLPickInfo& pick_info))
: mMousePt(mouse_pos),
- mScreenRegion(screen_region),
mKeyMask(keyboard_mask),
mPickCallback(pick_callback),
mPickType(PICK_INVALID),
diff --git a/indra/newview/llviewerwindow.h b/indra/newview/llviewerwindow.h
index 2b87fabb4f..b488276a18 100644
--- a/indra/newview/llviewerwindow.h
+++ b/indra/newview/llviewerwindow.h
@@ -89,7 +89,6 @@ public:
public:
LLPickInfo();
LLPickInfo(const LLCoordGL& mouse_pos,
- const LLRect& screen_region,
MASK keyboard_mask,
BOOL pick_transparent,
BOOL pick_surface_info,
@@ -121,7 +120,6 @@ public:
LLVector3 mNormal;
LLVector3 mBinormal;
BOOL mPickTransparent;
- LLRect mScreenRegion;
void getSurfaceInfo();
private:
@@ -346,7 +344,6 @@ public:
void performPick();
void returnEmptyPicks();
-
void pickAsync(S32 x, S32 y_from_bot, MASK mask, void (*callback)(const LLPickInfo& pick_info), BOOL pick_transparent = FALSE);
LLPickInfo pickImmediate(S32 x, S32 y, BOOL pick_transparent);
LLHUDIcon* cursorIntersectIcon(S32 mouse_x, S32 mouse_y, F32 depth,
@@ -398,7 +395,7 @@ public:
private:
bool shouldShowToolTipFor(LLMouseHandler *mh);
static bool onAlert(const LLSD& notify);
-
+
void switchToolByMask(MASK mask);
void destroyWindow();
void drawMouselookInstructions();
diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp
index 08e12f4ad9..801bd90423 100644
--- a/indra/newview/llvovolume.cpp
+++ b/indra/newview/llvovolume.cpp
@@ -68,6 +68,7 @@
#include "llmediaentry.h"
#include "llmediadataclient.h"
#include "llagent.h"
+#include "llviewermediafocus.h"
const S32 MIN_QUIET_FRAMES_COALESCE = 30;
const F32 FORCE_SIMPLE_RENDER_AREA = 512.f;
@@ -138,8 +139,7 @@ public:
}
virtual bool isInterestingEnough() const
{
- // TODO: use performance manager to control this
- return true;
+ return LLViewerMedia::isInterestingEnough(mObject->getID(), getMediaInterest());
}
virtual std::string getCapabilityUrl(const std::string &name) const
@@ -2089,6 +2089,9 @@ viewer_media_t LLVOVolume::getMediaImpl(U8 face_id) const
F64 LLVOVolume::getTotalMediaInterest() const
{
+ if (LLViewerMediaFocus::getInstance()->getFocusedObjectID() == getID())
+ return F64_MAX;
+
F64 interest = (F64)-1.0; // means not interested;
int i = 0;
const int end = getNumTEs();
diff --git a/indra/newview/skins/default/colors.xml b/indra/newview/skins/default/colors.xml
index cdbeed111e..b6995d2122 100644
--- a/indra/newview/skins/default/colors.xml
+++ b/indra/newview/skins/default/colors.xml
@@ -67,7 +67,7 @@
value="0 0 1 1" />
<color
name="Yellow"
- value="1 1 0 1" />
+ value="0.114 0.65 0.1" />
<color
name="Unused?"
value="1 0.5 0 1" />
@@ -513,7 +513,7 @@
reference="White" />
<color
name="ObjectChatColor"
- reference="0.7 0.8 0.9 1" />
+ reference="EmphasisColor" />
<color
name="OverdrivenColor"
value="1 0 0 1" />
diff --git a/indra/newview/skins/default/textures/bottomtray/Notices_Unread.png b/indra/newview/skins/default/textures/bottomtray/Notices_Unread.png
index aa3898ca99..0ac5b72b8f 100644
--- a/indra/newview/skins/default/textures/bottomtray/Notices_Unread.png
+++ b/indra/newview/skins/default/textures/bottomtray/Notices_Unread.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/bottomtray/Unread_IM.png b/indra/newview/skins/default/textures/bottomtray/Unread_IM.png
index 598342ea80..5c0c85b864 100644
--- a/indra/newview/skins/default/textures/bottomtray/Unread_IM.png
+++ b/indra/newview/skins/default/textures/bottomtray/Unread_IM.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/bottomtray/WellButton_Lit.png b/indra/newview/skins/default/textures/bottomtray/WellButton_Lit.png
index 60676b43fd..dd9133bcc4 100644
--- a/indra/newview/skins/default/textures/bottomtray/WellButton_Lit.png
+++ b/indra/newview/skins/default/textures/bottomtray/WellButton_Lit.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/bottomtray/WellButton_Lit_Selected.png b/indra/newview/skins/default/textures/bottomtray/WellButton_Lit_Selected.png
index 98cde96aff..0080e71f41 100644
--- a/indra/newview/skins/default/textures/bottomtray/WellButton_Lit_Selected.png
+++ b/indra/newview/skins/default/textures/bottomtray/WellButton_Lit_Selected.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/textures.xml b/indra/newview/skins/default/textures/textures.xml
index 24d3512bcb..0317d55768 100644
--- a/indra/newview/skins/default/textures/textures.xml
+++ b/indra/newview/skins/default/textures/textures.xml
@@ -143,6 +143,7 @@ with the same filename but different name
<texture name="DropDown_Over" file_name="widgets/DropDown_Over.png" preload="true" scale.left="2" scale.top="19" scale.right="18" scale.bottom="2" />
<texture name="DropDown_Press" file_name="widgets/DropDown_Press.png" preload="true" scale.left="2" scale.top="19" scale.right="18" scale.bottom="2" />
<texture name="DropDown_Selected" file_name="widgets/DropDown_Selected.png" preload="true" scale.left="2" scale.top="19" scale.right="18" scale.bottom="2" />
+ <texture name="DropDown_On" file_name="widgets/DropDown_On.png" preload="true" scale.left="2" scale.top="19" scale.right="18" scale.bottom="2" />
<texture name="DropDown_Off" file_name="widgets/DropDown_Off.png" preload="true" scale.left="2" scale.top="19" scale.right="18" scale.bottom="2" />
<texture name="DropTarget" file_name="widgets/DropTarget.png" preload="false" />
@@ -592,9 +593,9 @@ with the same filename but different name
<texture name="Unread_IM" file_name="bottomtray/Unread_IM.png" preload="false" />
<texture name="Unread_Msg" file_name="bottomtray/Unread_Msg.png" preload="false" />
-
- <texture name="WellButton_Lit" file_name="bottomtray/WellButton_Lit.png" />
- <texture name="WellButton_Lit_Selected" file_name="bottomtray/WellButton_Lit_Selected.png" />
+
+ <texture name="WellButton_Lit" file_name="bottomtray/WellButton_Lit.png" preload="true" scale.left="4" scale.top="19" scale.right="28" scale.bottom="4" />
+ <texture name="WellButton_Lit_Selected" file_name="bottomtray/WellButton_Lit_Selected.png" preload="true" scale.left="4" scale.top="19" scale.right="28" scale.bottom="4" />
<texture name="VoicePTT_Lvl1" file_name="bottomtray/VoicePTT_Lvl1.png" preload="false" />
<texture name="VoicePTT_Lvl2" file_name="bottomtray/VoicePTT_Lvl2.png" preload="false" />
diff --git a/indra/newview/skins/default/xui/en/floater_media_settings.xml b/indra/newview/skins/default/xui/en/floater_media_settings.xml
index 8122386fae..681731b0da 100644
--- a/indra/newview/skins/default/xui/en/floater_media_settings.xml
+++ b/indra/newview/skins/default/xui/en/floater_media_settings.xml
@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater
legacy_header_height="18"
- bottom="666"
can_close="true"
can_drag_on_left="false"
can_minimize="true"
diff --git a/indra/newview/skins/default/xui/en/floater_preview_texture.xml b/indra/newview/skins/default/xui/en/floater_preview_texture.xml
index 602a18ea56..abc30c335c 100644
--- a/indra/newview/skins/default/xui/en/floater_preview_texture.xml
+++ b/indra/newview/skins/default/xui/en/floater_preview_texture.xml
@@ -3,15 +3,15 @@
legacy_header_height="18"
auto_tile="true"
can_resize="true"
- follows="left|bottom"
- height="331"
+ follows="left|top"
+ height="313"
layout="topleft"
min_height="120"
- min_width="300"
+ min_width="320"
name="preview_texture"
help_topic="preview_texture"
- width="300">
- <floater.string
+ width="320">
+ <floater.string
name="Title">
Texture: [NAME]
</floater.string>
@@ -43,72 +43,38 @@
max_length="127"
name="desc"
width="190" />
- <button
- follows="left|bottom"
- height="22"
- label="OK"
- layout="topleft"
- left="80"
- name="Keep"
- top="302"
- width="100" />
- <button
- follows="left|bottom"
- height="22"
- label="Cancel"
- layout="topleft"
- left_pad="5"
- name="Discard"
- top_delta="0"
- width="100" />
- <button
- follows="left|bottom"
- height="22"
- label="Save As"
- layout="topleft"
- left_pad="5"
- name="save_tex_btn"
- top_delta="0"
- width="100" />
<text
type="string"
+ halign="right"
length="1"
- follows="left|bottom"
+ follows="right|bottom"
height="16"
layout="topleft"
- left="13"
+ left="110"
name="dimensions"
- top="309"
- width="303">
+ top="255"
+ width="200">
[WIDTH]px x [HEIGHT]px
</text>
<text
type="string"
+ halign="right"
length="1"
- bg_visible="false"
- border_drop_shadow_visible="false"
- border_visible="false"
- top="309"
- drop_shadow_visible="true"
- enabled="true"
follows="right|bottom"
- font="SansSerifSmall"
- h_pad="0"
- halign="right"
- height="14"
- left="54"
- mouse_opaque="true"
- name="aspect_ratio"
- v_pad="0"
- width="110">
- Preview Aspect Ratio
+ height="16"
+ layout="topleft"
+ left_delta="-110"
+ name="dimensions"
+ top_pad="5"
+ width="200">
+ Preview aspect ratio
</text>
<combo_box
allow_text_entry="true"
- top="306"
+ top_delta="-3"
follows="right|bottom"
- height="20"
- left="176"
+ height="23"
+ left_pad="10"
max_chars="20"
mouse_opaque="true"
enabled="true"
@@ -140,4 +106,31 @@
2:1
</combo_item>
</combo_box>
+ <button
+ follows="right|bottom"
+ height="22"
+ label="OK"
+ layout="topleft"
+ left="6"
+ name="keep"
+ top_pad="5"
+ width="100" />
+ <button
+ follows="right|bottom"
+ height="22"
+ label="Cancel"
+ layout="topleft"
+ left_pad="5"
+ name="discard"
+ top_delta="0"
+ width="100" />
+ <button
+ follows="right|bottom"
+ height="22"
+ label="Save As"
+ layout="topleft"
+ left_pad="5"
+ name="save_tex_btn"
+ top_delta="0"
+ width="100" />
</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_select_key.xml b/indra/newview/skins/default/xui/en/floater_select_key.xml
index 6050aede79..93aa1f0e31 100644
--- a/indra/newview/skins/default/xui/en/floater_select_key.xml
+++ b/indra/newview/skins/default/xui/en/floater_select_key.xml
@@ -21,7 +21,7 @@
word_wrap="true"
width="220">
Press a key to set your
-Speak button toggle
+Speak button trigger.
</text>
<button
height="23"
diff --git a/indra/newview/skins/default/xui/en/floater_texture_ctrl.xml b/indra/newview/skins/default/xui/en/floater_texture_ctrl.xml
index 113da9ea4d..695021f755 100644
--- a/indra/newview/skins/default/xui/en/floater_texture_ctrl.xml
+++ b/indra/newview/skins/default/xui/en/floater_texture_ctrl.xml
@@ -101,7 +101,7 @@
<filter_editor
follows="left|top|right"
height="23"
- label="Filter textures"
+ label="Filter Textures"
layout="topleft"
left="175"
name="inventory search editor"
diff --git a/indra/newview/skins/default/xui/en/inspect_object.xml b/indra/newview/skins/default/xui/en/inspect_object.xml
index 16f6e49092..cedf83f8b1 100644
--- a/indra/newview/skins/default/xui/en/inspect_object.xml
+++ b/indra/newview/skins/default/xui/en/inspect_object.xml
@@ -9,7 +9,7 @@
bg_opaque_image="Inspector_Background"
can_close="false"
can_minimize="false"
- height="148"
+ height="150"
layout="topleft"
name="inspect_object"
single_instance="true"
@@ -71,13 +71,15 @@ owner secondlife:///app/agent/0e346d8b-4433-4d66-a6b0-fd37083abc4c/about
width="196">
L$300,000
</text>
- <text
+ <text
+ clip_partial="true"
follows="all"
font="SansSerifSmall"
- height="36"
+ height="37"
left="8"
name="object_description"
top_pad="0"
+ use_ellipses="true"
width="220"
word_wrap="true">
This is a really long description for an object being as how it is at least 80 characters in length and maybe more like 120 at this point. Who knows, really?
@@ -90,7 +92,7 @@ This is a really long description for an object being as how it is at least 80 c
height="13"
left_delta="0"
name="object_media_url"
- top_pad="0"
+ top_pad="-1"
width="291"
max_length = "50"
use_ellipses="true">
@@ -102,7 +104,7 @@ This is a really long description for an object being as how it is at least 80 c
label="Buy"
left="8"
name="buy_btn"
- top="119"
+ top="121"
width="80" />
<button
follows="top|left"
diff --git a/indra/newview/skins/default/xui/en/menu_attachment_other.xml b/indra/newview/skins/default/xui/en/menu_attachment_other.xml
new file mode 100644
index 0000000000..5b94645b60
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/menu_attachment_other.xml
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<!-- *NOTE: See also menu_avatar_other.xml -->
+<context_menu
+ layout="topleft"
+ name="Avatar Pie">
+ <menu_item_call
+ label="View Profile"
+ name="Profile...">
+ <menu_item_call.on_click
+ function="ShowAgentProfile"
+ parameter="hit object" />
+ </menu_item_call>
+ <menu_item_call
+ enabled="false"
+ label="Add Friend"
+ name="Add Friend">
+ <menu_item_call.on_click
+ function="Avatar.AddFriend" />
+ <menu_item_call.on_enable
+ function="Avatar.EnableAddFriend" />
+ </menu_item_call>
+ <menu_item_call
+ label="IM"
+ name="Send IM...">
+ <menu_item_call.on_click
+ function="Avatar.SendIM" />
+ </menu_item_call>
+ <menu_item_call
+ label="Call"
+ name="Call">
+ <menu_item_call.on_click
+ function="Avatar.Call" />
+ </menu_item_call>
+ <menu_item_call
+ label="Invite to Group"
+ name="Invite...">
+ <menu_item_call.on_click
+ function="Avatar.InviteToGroup" />
+ </menu_item_call>
+ <menu_item_separator />
+ <menu_item_call
+ enabled="false"
+ label="Block"
+ name="Avatar Mute">
+ <menu_item_call.on_click
+ function="Avatar.Mute" />
+ <menu_item_call.on_enable
+ function="Avatar.EnableMute" />
+ </menu_item_call>
+ <menu_item_call
+ label="Report"
+ name="abuse">
+ <menu_item_call.on_click
+ function="Avatar.ReportAbuse" />
+ </menu_item_call>
+ <menu_item_call
+ label="Freeze"
+ name="Freeze...">
+ <menu_item_call.on_click
+ function="Avatar.Freeze" />
+ <menu_item_call.on_visible
+ function="Avatar.EnableFreezeEject"/>
+ </menu_item_call>
+ <menu_item_call
+ label="Eject"
+ name="Eject...">
+ <menu_item_call.on_click
+ function="Avatar.Eject" />
+ <menu_item_call.on_visible
+ function="Avatar.EnableFreezeEject"/>
+ </menu_item_call>
+ <menu_item_call
+ label="Debug"
+ name="Debug...">
+ <menu_item_call.on_click
+ function="Avatar.Debug" />
+ <menu_item_call.on_visible
+ function="IsGodCustomerService"/>
+ </menu_item_call>
+ <menu_item_call
+ label="Zoom In"
+ name="Zoom In">
+ <menu_item_call.on_click
+ function="Tools.LookAtSelection"
+ parameter="zoom" />
+ </menu_item_call>
+ <menu_item_call
+ enabled="false"
+ label="Pay"
+ name="Pay...">
+ <menu_item_call.on_click
+ function="PayObject" />
+ <menu_item_call.on_enable
+ function="EnablePayAvatar" />
+ </menu_item_call>
+ <menu_item_separator />
+ <menu_item_call
+ label="Object Profile"
+ name="Object Inspect">
+ <menu_item_call.on_click
+ function="Object.Inspect" />
+ <menu_item_call.on_enable
+ function="Object.EnableInspect" />
+ </menu_item_call>
+</context_menu>
diff --git a/indra/newview/skins/default/xui/en/menu_attachment_self.xml b/indra/newview/skins/default/xui/en/menu_attachment_self.xml
new file mode 100644
index 0000000000..c85dbbb1bc
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/menu_attachment_self.xml
@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<context_menu
+ layout="topleft"
+ name="Attachment Pie">
+ <menu_item_call
+ enabled="false"
+ label="Touch"
+ layout="topleft"
+ name="Attachment Object Touch">
+ <menu_item_call.on_click
+ function="Object.Touch" />
+ <menu_item_call.on_enable
+ function="Object.EnableTouch"
+ name="EnableTouch"
+ parameter="Touch" />
+ </menu_item_call>
+ <!--menu_item_call
+ label="Stand Up"
+ layout="topleft"
+ name="Stand Up">
+ <menu_item_call.on_click
+ function="Self.StandUp"
+ parameter="" />
+ <menu_item_call.on_enable
+ function="Self.EnableStandUp" />
+ </menu_item_call-->
+ <menu_item_call
+ enabled="false"
+ label="Edit"
+ layout="topleft"
+ name="Edit...">
+ <menu_item_call.on_click
+ function="Object.Edit" />
+ <menu_item_call.on_enable
+ function="EnableEdit" />
+ </menu_item_call>
+ <menu_item_call
+ enabled="false"
+ label="Detach"
+ layout="topleft"
+ name="Detach">
+ <menu_item_call.on_click
+ function="Attachment.Detach" />
+ <menu_item_call.on_enable
+ function="Attachment.EnableDetach" />
+ </menu_item_call>
+ <menu_item_call
+ enabled="false"
+ label="Drop"
+ layout="topleft"
+ name="Drop">
+ <menu_item_call.on_click
+ function="Attachment.Drop" />
+ <menu_item_call.on_enable
+ function="Attachment.EnableDrop" />
+ </menu_item_call>
+ <!--menu_item_call
+ label="My Profile"
+ layout="topleft"
+ name="Profile...">
+ <menu_item_call.on_click
+ function="ShowAgentProfile"
+ parameter="agent" />
+ </menu_item_call>
+ <menu_item_call
+ label="My Appearance"
+ layout="topleft"
+ name="Appearance...">
+ <menu_item_call.on_click
+ function="ShowFloater"
+ parameter="appearance" />
+ <menu_item_call.on_enable
+ function="Edit.EnableCustomizeAvatar" />
+
+ </menu_item_call-->
+ <menu_item_separator
+ layout="topleft" />
+
+ <menu_item_call
+ label="Stand Up"
+ layout="topleft"
+ name="Stand Up">
+ <menu_item_call.on_click
+ function="Self.StandUp"
+ parameter="" />
+ <menu_item_call.on_enable
+ function="Self.EnableStandUp" />
+ </menu_item_call>
+ <menu_item_call
+ label="My Appearance"
+ layout="topleft"
+ name="Appearance...">
+ <menu_item_call.on_click
+ function="ShowFloater"
+ parameter="appearance" />
+ <menu_item_call.on_enable
+ function="Edit.EnableCustomizeAvatar" />
+ </menu_item_call>
+ <menu_item_call
+ label="My Friends"
+ layout="topleft"
+ name="Friends...">
+ <menu_item_call.on_click
+ function="SideTray.PanelPeopleTab"
+ parameter="friends_panel" />
+ </menu_item_call>
+ <menu_item_call
+ label="My Groups"
+ layout="topleft"
+ name="Groups...">
+ <menu_item_call.on_click
+ function="SideTray.PanelPeopleTab"
+ parameter="groups_panel" />
+ </menu_item_call>
+ <menu_item_call
+ label="My Profile"
+ layout="topleft"
+ name="Profile...">
+ <menu_item_call.on_click
+ function="ShowAgentProfile"
+ parameter="agent" />
+ </menu_item_call>
+
+</context_menu>
diff --git a/indra/newview/skins/default/xui/en/menu_avatar_other.xml b/indra/newview/skins/default/xui/en/menu_avatar_other.xml
new file mode 100644
index 0000000000..0ad41546d2
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/menu_avatar_other.xml
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<!-- *NOTE: See also menu_attachment_other.xml -->
+<context_menu
+ layout="topleft"
+ name="Avatar Pie">
+ <menu_item_call
+ label="View Profile"
+ name="Profile...">
+ <menu_item_call.on_click
+ function="ShowAgentProfile"
+ parameter="hit object" />
+ </menu_item_call>
+ <menu_item_call
+ enabled="false"
+ label="Add Friend"
+ name="Add Friend">
+ <menu_item_call.on_click
+ function="Avatar.AddFriend" />
+ <menu_item_call.on_enable
+ function="Avatar.EnableAddFriend" />
+ </menu_item_call>
+ <menu_item_call
+ label="IM"
+ name="Send IM...">
+ <menu_item_call.on_click
+ function="Avatar.SendIM" />
+ </menu_item_call>
+ <menu_item_call
+ label="Call"
+ name="Call">
+ <menu_item_call.on_click
+ function="Avatar.Call" />
+ </menu_item_call>
+ <menu_item_call
+ label="Invite to Group"
+ name="Invite...">
+ <menu_item_call.on_click
+ function="Avatar.InviteToGroup" />
+ </menu_item_call>
+ <menu_item_separator />
+ <menu_item_call
+ enabled="false"
+ label="Block"
+ name="Avatar Mute">
+ <menu_item_call.on_click
+ function="Avatar.Mute" />
+ <menu_item_call.on_enable
+ function="Avatar.EnableMute" />
+ </menu_item_call>
+ <menu_item_call
+ label="Report"
+ name="abuse">
+ <menu_item_call.on_click
+ function="Avatar.ReportAbuse" />
+ </menu_item_call>
+ <menu_item_call
+ label="Freeze"
+ name="Freeze...">
+ <menu_item_call.on_click
+ function="Avatar.Freeze" />
+ <menu_item_call.on_visible
+ function="Avatar.EnableFreezeEject"/>
+ </menu_item_call>
+ <menu_item_call
+ label="Eject"
+ name="Eject...">
+ <menu_item_call.on_click
+ function="Avatar.Eject" />
+ <menu_item_call.on_visible
+ function="Avatar.EnableFreezeEject"/>
+ </menu_item_call>
+ <menu_item_call
+ label="Debug"
+ name="Debug...">
+ <menu_item_call.on_click
+ function="Avatar.Debug" />
+ <menu_item_call.on_visible
+ function="IsGodCustomerService"/>
+ </menu_item_call>
+ <menu_item_call
+ label="Zoom In"
+ name="Zoom In">
+ <menu_item_call.on_click
+ function="Tools.LookAtSelection"
+ parameter="zoom" />
+ </menu_item_call>
+ <menu_item_call
+ enabled="false"
+ label="Pay"
+ name="Pay...">
+ <menu_item_call.on_click
+ function="PayObject" />
+ <menu_item_call.on_enable
+ function="EnablePayAvatar" />
+ </menu_item_call>
+</context_menu>
diff --git a/indra/newview/skins/default/xui/en/menu_avatar_self.xml b/indra/newview/skins/default/xui/en/menu_avatar_self.xml
new file mode 100644
index 0000000000..c6ce612a76
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/menu_avatar_self.xml
@@ -0,0 +1,227 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<context_menu
+ layout="topleft"
+ name="Self Pie">
+ <menu_item_call
+ label="Stand Up"
+ layout="topleft"
+ name="Stand Up">
+ <menu_item_call.on_click
+ function="Self.StandUp"
+ parameter="" />
+ <menu_item_call.on_enable
+ function="Self.EnableStandUp" />
+ </menu_item_call>
+ <context_menu
+ label="Take Off &gt;"
+ layout="topleft"
+ name="Take Off &gt;">
+ <context_menu
+ label="Clothes &gt;"
+ layout="topleft"
+ name="Clothes &gt;">
+ <menu_item_call
+ enabled="false"
+ label="Shirt"
+ layout="topleft"
+ name="Shirt">
+ <menu_item_call.on_click
+ function="Edit.TakeOff"
+ parameter="shirt" />
+ <menu_item_call.on_enable
+ function="Edit.EnableTakeOff"
+ parameter="shirt" />
+ </menu_item_call>
+ <menu_item_call
+ enabled="false"
+ label="Pants"
+ layout="topleft"
+ name="Pants">
+ <menu_item_call.on_click
+ function="Edit.TakeOff"
+ parameter="pants" />
+ <menu_item_call.on_enable
+ function="Edit.EnableTakeOff"
+ parameter="pants" />
+ </menu_item_call>
+ <menu_item_call
+ enabled="false"
+ label="Skirt"
+ layout="topleft"
+ name="Skirt">
+ <menu_item_call.on_click
+ function="Edit.TakeOff"
+ parameter="skirt" />
+ <menu_item_call.on_enable
+ function="Edit.EnableTakeOff"
+ parameter="skirt" />
+ </menu_item_call>
+ <menu_item_call
+ enabled="false"
+ label="Shoes"
+ layout="topleft"
+ name="Shoes">
+ <menu_item_call.on_click
+ function="Edit.TakeOff"
+ parameter="shoes" />
+ <menu_item_call.on_enable
+ function="Edit.EnableTakeOff"
+ parameter="shoes" />
+ </menu_item_call>
+ <menu_item_call
+ enabled="false"
+ label="Socks"
+ layout="topleft"
+ name="Socks">
+ <menu_item_call.on_click
+ function="Edit.TakeOff"
+ parameter="socks" />
+ <menu_item_call.on_enable
+ function="Edit.EnableTakeOff"
+ parameter="socks" />
+ </menu_item_call>
+ <menu_item_call
+ enabled="false"
+ label="Jacket"
+ layout="topleft"
+ name="Jacket">
+ <menu_item_call.on_click
+ function="Edit.TakeOff"
+ parameter="jacket" />
+ <menu_item_call.on_enable
+ function="Edit.EnableTakeOff"
+ parameter="jacket" />
+ </menu_item_call>
+ <menu_item_call
+ enabled="false"
+ label="Gloves"
+ layout="topleft"
+ name="Gloves">
+ <menu_item_call.on_click
+ function="Edit.TakeOff"
+ parameter="gloves" />
+ <menu_item_call.on_enable
+ function="Edit.EnableTakeOff"
+ parameter="gloves" />
+ </menu_item_call>
+ <menu_item_call
+ enabled="false"
+ label="Undershirt"
+ layout="topleft"
+ name="Self Undershirt">
+ <menu_item_call.on_click
+ function="Edit.TakeOff"
+ parameter="undershirt" />
+ <menu_item_call.on_enable
+ function="Edit.EnableTakeOff"
+ parameter="undershirt" />
+ </menu_item_call>
+ <menu_item_call
+ enabled="false"
+ label="Underpants"
+ layout="topleft"
+ name="Self Underpants">
+ <menu_item_call.on_click
+ function="Edit.TakeOff"
+ parameter="underpants" />
+ <menu_item_call.on_enable
+ function="Edit.EnableTakeOff"
+ parameter="underpants" />
+ </menu_item_call>
+ <menu_item_call
+ enabled="false"
+ label="Tattoo"
+ layout="topleft"
+ name="Self Tattoo">
+ <menu_item_call.on_click
+ function="Edit.TakeOff"
+ parameter="tattoo" />
+ <menu_item_call.on_enable
+ function="Edit.EnableTakeOff"
+ parameter="tattoo" />
+ </menu_item_call>
+ <menu_item_call
+ enabled="false"
+ label="Alpha"
+ layout="topleft"
+ name="Self Alpha">
+ <menu_item_call.on_click
+ function="Edit.TakeOff"
+ parameter="alpha" />
+ <menu_item_call.on_enable
+ function="Edit.EnableTakeOff"
+ parameter="alpha" />
+ </menu_item_call>
+ <menu_item_separator
+ layout="topleft" />
+ <menu_item_call
+ label="All Clothes"
+ layout="topleft"
+ name="All Clothes">
+ <menu_item_call.on_click
+ function="Edit.TakeOff"
+ parameter="all" />
+ </menu_item_call>
+ </context_menu>
+ <context_menu
+ label="HUD &gt;"
+ layout="topleft"
+ name="Object Detach HUD" />
+ <context_menu
+ label="Detach &gt;"
+ layout="topleft"
+ name="Object Detach" />
+ <menu_item_call
+ label="Detach All"
+ layout="topleft"
+ name="Detach All">
+ <menu_item_call.on_click
+ function="Self.RemoveAllAttachments"
+ parameter="" />
+ <menu_item_call.on_enable
+ function="Self.EnableRemoveAllAttachments" />
+ </menu_item_call>
+ </context_menu>
+ <menu_item_call
+ label="My Appearance"
+ layout="topleft"
+ name="Appearance...">
+ <menu_item_call.on_click
+ function="ShowFloater"
+ parameter="appearance" />
+ <menu_item_call.on_enable
+ function="Edit.EnableCustomizeAvatar" />
+ </menu_item_call>
+ <menu_item_call
+ label="My Friends"
+ layout="topleft"
+ name="Friends...">
+ <menu_item_call.on_click
+ function="SideTray.PanelPeopleTab"
+ parameter="friends_panel" />
+ </menu_item_call>
+ <!--menu_item_call
+ label="My Gestures"
+ layout="topleft"
+ name="Gestures...">
+ <menu_item_call.on_click
+ function="ShowFloater"
+ parameter="gestures" />
+ </menu_item_call-->
+ <menu_item_call
+ label="My Groups"
+ layout="topleft"
+ name="Groups...">
+ <menu_item_call.on_click
+ function="SideTray.PanelPeopleTab"
+ parameter="groups_panel" />
+ </menu_item_call>
+ <menu_item_call
+ label="My Profile"
+ layout="topleft"
+ name="Profile...">
+ <menu_item_call.on_click
+ function="ShowAgentProfile"
+ parameter="agent" />
+ </menu_item_call>
+</context_menu>
diff --git a/indra/newview/skins/default/xui/en/menu_land.xml b/indra/newview/skins/default/xui/en/menu_land.xml
new file mode 100644
index 0000000000..d88a2f8d25
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/menu_land.xml
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<context_menu
+ layout="topleft"
+ name="Land Pie">
+ <menu_item_call
+ label="About Land"
+ name="Place Information...">
+ <menu_item_call.on_click
+ function="ShowFloater"
+ parameter="about_land" />
+ </menu_item_call>
+ <!-- <menu_item_call
+ label="Go Here"
+ name="Go Here">
+ <menu_item_call.on_click
+ function="GoToObject" />
+ </menu_item_call>-->
+ <menu_item_call
+ label="Sit Here"
+ name="Sit Here">
+ <menu_item_call.on_click
+ function="Land.Sit" />
+ </menu_item_call>
+ <menu_item_separator
+ layout="topleft" />
+ <menu_item_call
+ enabled="false"
+ label="Buy This Land"
+ name="Land Buy">
+ <menu_item_call.on_click
+ function="ShowFloater"
+ parameter="buy land" />
+ <menu_item_call.on_enable
+ function="World.EnableBuyLand" />
+ </menu_item_call>
+ <menu_item_call
+ enabled="false"
+ label="Buy Pass"
+ name="Land Buy Pass">
+ <menu_item_call.on_click
+ function="Land.BuyPass" />
+ <menu_item_call.on_enable
+ function="Land.EnableBuyPass" />
+ </menu_item_call>
+ <menu_item_separator
+ layout="topleft" />
+ <menu_item_call
+ enabled="false"
+ label="Build"
+ name="Create">
+ <menu_item_call.on_click
+ function="Land.Build" />
+ <menu_item_call.on_enable
+ function="EnableEdit" />
+ </menu_item_call>
+ <menu_item_call
+ enabled="false"
+ label="Edit Terrain"
+ name="Edit Terrain">
+ <menu_item_call.on_click
+ function="Land.Edit" />
+ <menu_item_call.on_enable
+ function="EnableEdit" />
+ </menu_item_call>
+</context_menu>
diff --git a/indra/newview/skins/default/xui/en/menu_object.xml b/indra/newview/skins/default/xui/en/menu_object.xml
new file mode 100644
index 0000000000..62500c5116
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/menu_object.xml
@@ -0,0 +1,158 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<context_menu
+ layout="topleft"
+ name="Object Pie">
+ <menu_item_call
+ enabled="false"
+ label="Touch"
+ name="Object Touch">
+ <menu_item_call.on_click
+ function="Object.Touch" />
+ <menu_item_call.on_enable
+ function="Object.EnableTouch"
+ name="EnableTouch"
+ parameter="Touch" />
+ </menu_item_call>
+ <menu_item_call
+ label="Edit"
+ name="Edit...">
+ <menu_item_call.on_click
+ function="Object.Edit" />
+ <menu_item_call.on_visible
+ function="EnableEdit"/>
+ </menu_item_call>
+ <menu_item_call
+ label="Build"
+ name="Build">
+ <menu_item_call.on_click
+ function="Object.Edit" />
+ <menu_item_call.on_visible
+ function="VisibleBuild"/>
+ </menu_item_call>
+ <menu_item_call
+ enabled="false"
+ label="Open"
+ name="Open">
+ <menu_item_call.on_click
+ function="Object.Open" />
+ <menu_item_call.on_enable
+ function="Object.EnableOpen" />
+ </menu_item_call>
+ <menu_item_call
+ enabled="false"
+ label="Sit Here"
+ name="Object Sit">
+ <menu_item_call.on_click
+ function="Object.SitOrStand" />
+ <menu_item_call.on_enable
+ function="Object.EnableSitOrStand"
+ name="EnableSitOrStand"
+ parameter="Sit Here,Stand Up" />
+ </menu_item_call>
+ <menu_item_call
+ label="Object Profile"
+ name="Object Inspect">
+ <menu_item_call.on_click
+ function="Object.Inspect" />
+ <menu_item_call.on_enable
+ function="Object.EnableInspect" />
+ </menu_item_call>
+<menu_item_separator layout="topleft" />
+ <context_menu
+ label="Put On &gt;"
+ name="Put On" >
+ <menu_item_call
+ enabled="false"
+ label="Wear"
+ name="Wear">
+ <menu_item_call.on_click
+ function="Object.AttachToAvatar" />
+ <menu_item_call.on_enable
+ function="Object.EnableWear" />
+ </menu_item_call>
+ <context_menu
+ label="Attach &gt;"
+ name="Object Attach" />
+ <context_menu
+ label="Attach HUD &gt;"
+ name="Object Attach HUD" />
+ </context_menu>
+ <context_menu
+ label="Remove &gt;"
+ name="Remove">
+ <menu_item_call
+ enabled="false"
+ label="Take"
+ name="Pie Object Take">
+ <menu_item_call.on_click
+ function="Tools.BuyOrTake" />
+ <menu_item_call.on_enable
+ function="Tools.EnableBuyOrTake"
+ parameter="Buy,Take" />
+ </menu_item_call>
+ <menu_item_call
+ enabled="false"
+ label="Report Abuse"
+ name="Report Abuse...">
+ <menu_item_call.on_click
+ function="Object.ReportAbuse" />
+ <menu_item_call.on_enable
+ function="Object.EnableReportAbuse" />
+ </menu_item_call>
+ <menu_item_call
+ enabled="false"
+ label="Block"
+ name="Object Mute">
+ <menu_item_call.on_click
+ function="Object.Mute" />
+ <menu_item_call.on_enable
+ function="Object.EnableMute" />
+ </menu_item_call>
+ <menu_item_call
+ enabled="false"
+ label="Return"
+ name="Return...">
+ <menu_item_call.on_click
+ function="Object.Return" />
+ <menu_item_call.on_enable
+ function="Object.EnableReturn" />
+ </menu_item_call>
+ <menu_item_call
+ enabled="false"
+ label="Delete"
+ name="Delete">
+ <menu_item_call.on_click
+ function="Object.Delete" />
+ <menu_item_call.on_enable
+ function="Object.EnableDelete" />
+ </menu_item_call>
+ </context_menu>
+ <menu_item_separator layout="topleft" />
+ <menu_item_call
+ enabled="false"
+ label="Take Copy"
+ name="Take Copy">
+ <menu_item_call.on_click
+ function="Tools.TakeCopy" />
+ <menu_item_call.on_enable
+ function="Tools.EnableTakeCopy" />
+ </menu_item_call>
+ <menu_item_call
+ enabled="false"
+ label="Pay"
+ name="Pay...">
+ <menu_item_call.on_click
+ function="PayObject" />
+ <menu_item_call.on_enable
+ function="EnablePayObject" />
+</menu_item_call>
+ <menu_item_call
+ enabled="false"
+ label="Buy"
+ name="Buy...">
+ <menu_item_call.on_click
+ function="Object.Buy" />
+ <menu_item_call.on_enable
+ function="Object.EnableBuy" />
+ </menu_item_call>
+</context_menu>
diff --git a/indra/newview/skins/default/xui/en/panel_bottomtray.xml b/indra/newview/skins/default/xui/en/panel_bottomtray.xml
index a41d492624..034f685ee9 100644
--- a/indra/newview/skins/default/xui/en/panel_bottomtray.xml
+++ b/indra/newview/skins/default/xui/en/panel_bottomtray.xml
@@ -114,7 +114,7 @@
width="82"
tool_tip="Shows/hides gestures">
<gesture_combo_box.drop_down_button
- pad_right="10"
+ pad_right="10"
use_ellipses="true" />
</gesture_combo_box>
</layout_panel>
@@ -126,7 +126,7 @@
image_name="spacer24.tga"
layout="topleft"
left="0"
- min_width="4"
+ min_width="4"
name="DUMMY"
top="0"
width="4"/>
@@ -168,7 +168,7 @@
image_name="spacer24.tga"
layout="topleft"
left="0"
- min_width="4"
+ min_width="4"
name="DUMMY"
top="0"
width="4"/>
@@ -211,7 +211,7 @@
image_name="spacer24.tga"
layout="topleft"
left="0"
- min_width="4"
+ min_width="4"
name="DUMMY"
top="0"
width="4"/>
@@ -243,7 +243,7 @@
<layout_panel
mouse_opaque="false"
follows="left|right"
- height="28"
+ height="29"
layout="topleft"
top="0"
name="chiclet_list_panel"
@@ -251,24 +251,24 @@
min_width="180"
user_resize="false"
auto_resize="true">
-<!--*NOTE: min_width of the chiclet_panel (chiclet_list) must be the same
+<!--*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
mouse_opaque="false"
follows="left|right"
height="23"
layout="topleft"
- left="0"
+ left="1"
min_width="180"
name="chiclet_list"
- top="4"
+ top="6"
chiclet_padding="4"
scrolling_offset="40"
width="189">
<button
auto_resize="true"
follows="right"
- height="23"
+ height="29"
image_selected="SegmentedBtn_Left_Off"
image_unselected="SegmentedBtn_Left_Off"
image_hover_selected="SegmentedBtn_Left_Over"
@@ -278,14 +278,16 @@ as for parent layout_panel (chiclet_list_panel) to resize bottom tray properly.
image_overlay="Arrow_Small_Left"
layout="topleft"
name="chicklet_left_scroll_button"
+ scale_image="true"
tab_stop="false"
- top="0"
+ top="-2"
+ right_pad="2"
visible="false"
- width="20" />
+ width="7" />
<button
auto_resize="true"
follows="right"
- height="23"
+ height="29"
image_selected="SegmentedBtn_Right_Off"
image_unselected="SegmentedBtn_Right_Off"
image_hover_selected="SegmentedBtn_Right_Over"
@@ -295,10 +297,11 @@ as for parent layout_panel (chiclet_list_panel) to resize bottom tray properly.
image_overlay="Arrow_Small_Right"
layout="topleft"
name="chicklet_right_scroll_button"
+ scale_image="true"
tab_stop="false"
- top="0"
+ top="-2"
visible="false"
- width="20" />
+ width="7" />
</chiclet_panel>
</layout_panel>
<icon
@@ -309,7 +312,7 @@ as for parent layout_panel (chiclet_list_panel) to resize bottom tray properly.
image_name="spacer24.tga"
layout="topleft"
left="0"
- min_width="4"
+ min_width="4"
top="0"
width="5"/>
<layout_panel
@@ -320,18 +323,18 @@ as for parent layout_panel (chiclet_list_panel) to resize bottom tray properly.
min_height="28"
top="0"
name="im_well_panel"
- width="34"
- min_width="34"
+ width="35"
+ min_width="35"
user_resize="false">
<chiclet_im_well
- flash_period="0.3"
+ flash_period="0.3"
follows="right"
height="23"
layout="topleft"
left="0"
name="im_well"
top="4"
- width="34">
+ width="35">
<!--
Emulate 4 states of button by background images, see detains in EXT-3147. The same should be for notification_well button
xml attribute Description
@@ -342,21 +345,22 @@ image_pressed_selected "Lit" + "Selected" - there are new messages and the Well
-->
<button
auto_resize="true"
- flash_color="EmphasisColor"
+ flash_color="Yellow"
follows="right"
halign="center"
height="23"
- image_overlay="Notices_Unread"
- image_overlay_alignment="center"
- image_pressed="WellButton_Lit"
- image_pressed_selected="WellButton_Lit_Selected"
- image_selected="PushButton_Selected_Press"
+ image_overlay="Unread_IM"
+ image_overlay_alignment="center"
+ image_pressed="WellButton_Lit_Selected"
+ image_pressed_selected="WellButton_Lit"
+ image_selected="WellButton_Lit"
+ label_color="Black"
left="0"
max_displayed_count="99"
name="Unread IM messages"
pad_left="0"
pad_right="0"
- width="34" >
+ width="35" >
<button.init_callback
function="Button.SetDockableFloaterToggle"
parameter="im_well_window" />
@@ -370,9 +374,10 @@ image_pressed_selected "Lit" + "Selected" - there are new messages and the Well
layout="topleft"
min_height="28"
top="0"
+ left_pad="4"
name="notification_well_panel"
- width="34"
- min_width="34"
+ width="35"
+ min_width="35"
user_resize="false">
<chiclet_notification
flash_period="0.25"
@@ -383,23 +388,24 @@ image_pressed_selected "Lit" + "Selected" - there are new messages and the Well
max_displayed_count="99"
name="notification_well"
top="4"
- width="34">
+ width="35">
<button
- image_selected="PushButton_Selected_Press"
- image_pressed="WellButton_Lit"
- image_pressed_selected="WellButton_Lit_Selected"
+ bottom_pad="3"
+ image_selected="WellButton_Lit"
+ image_pressed="WellButton_Lit_Selected"
+ image_pressed_selected="WellButton_Lit "
auto_resize="true"
halign="center"
height="23"
follows="right"
- flash_color="EmphasisColor"
- left="0"
+ flash_color="Yellow"
+ label_color="Black"
+ left="5"
name="Unread"
image_overlay="Notices_Unread"
- image_overlay_alignment="center"
- pad_right="0"
- pad_left="0"
- width="34" >
+ image_overlay_alignment="center"
+ pad_right="5"
+ width="35" >
<button.init_callback
function="Button.SetDockableFloaterToggle"
parameter="notification_well_window" />
@@ -413,7 +419,7 @@ image_pressed_selected "Lit" + "Selected" - there are new messages and the Well
height="10"
image_name="spacer24.tga"
layout="topleft"
- min_width="4"
+ min_width="4"
right="-1"
top="0"
width="4"/>
diff --git a/indra/newview/skins/default/xui/en/panel_login.xml b/indra/newview/skins/default/xui/en/panel_login.xml
index c9db75b5d8..6187b8f1e2 100644
--- a/indra/newview/skins/default/xui/en/panel_login.xml
+++ b/indra/newview/skins/default/xui/en/panel_login.xml
@@ -33,21 +33,31 @@ name="login_html"
start_url=""
top="0"
height="600"
- width="996" />
-<panel
+ width="980" />
+<layout_stack
follows="left|bottom|right"
name="login_widgets"
layout="topleft"
+orientation="horizontal"
top="519"
width="996"
- height="80">
+height="80">
+<layout_panel
+auto_resize="false"
+follows="left|bottom"
+name="login"
+layout="topleft"
+width="695"
+min_width="695"
+user_resize="false"
+height="80">
<text
follows="left|bottom"
font="SansSerifSmall"
height="16"
-left="20"
name="first_name_text"
top="20"
+left="20"
width="150">
First name:
</text>
@@ -145,7 +155,7 @@ name="Typeregionname" value="" />
<combo_box
allow_text_entry="true"
font="SansSerifSmall"
- follows="left|bottom"
+ follows="left|right|bottom"
height="23"
layout="topleft"
top_pad="2"
@@ -164,14 +174,20 @@ width="135"
name="connect_btn"
top="35"
width="90" />
- <text
+</layout_panel>
+<layout_panel
+follows="right|bottom"
+name="links"
+width="200"
+min_width="200"
+user_resize="false"
+height="80">
+ <text
follows="right|bottom"
font="SansSerifSmall"
-text_color="EmphasisColor"
halign="right"
height="16"
top="12"
-left_pad="5"
right="-10"
name="create_new_account_text"
width="180">
@@ -183,7 +199,9 @@ font="SansSerifSmall"
text_color="EmphasisColor"
halign="right"
height="16"
-name="forgot_password_text" top_pad="12"
+name="forgot_password_text"
+top_pad="12"
+right="-10"
width="180">
Forgot your name or password?
</text>
@@ -195,6 +213,7 @@ halign="right"
height="16"
name="login_help"
top_pad="2"
+right="-10"
width="180">
Need help logging in? </text>
<!-- <text
@@ -208,5 +227,6 @@ top_pad="2"
word_wrap="true">
[VERSION]
</text>-->
-</panel>
+ </layout_panel>
+</layout_stack>
</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_main_inventory.xml b/indra/newview/skins/default/xui/en/panel_main_inventory.xml
index 9990215dfd..4353b306cd 100644
--- a/indra/newview/skins/default/xui/en/panel_main_inventory.xml
+++ b/indra/newview/skins/default/xui/en/panel_main_inventory.xml
@@ -17,7 +17,7 @@
text_pad_left="14"
follows="left|top|right"
height="23"
- label="Filter"
+ label="Filter Inventory"
layout="topleft"
left="15"
max_length="300"
diff --git a/indra/newview/skins/default/xui/en/panel_media_settings_general.xml b/indra/newview/skins/default/xui/en/panel_media_settings_general.xml
index 24c40b32fb..c8ec515e6d 100644
--- a/indra/newview/skins/default/xui/en/panel_media_settings_general.xml
+++ b/indra/newview/skins/default/xui/en/panel_media_settings_general.xml
@@ -93,35 +93,6 @@
<button.commit_callback
function="Media.ResetCurrentUrl"/>
</button>
- <text
- bottom_delta="-5"
- follows="top|left"
- height="15"
- left="10"
- name="controls_label">
- Controls:
- </text>
- <combo_box
- allow_text_entry="false"
- bottom_delta="-20"
- follows="left|top"
- height="18"
- left="10"
- max_chars="20"
- name="controls"
- width="120">
- <combo_item
- name="Standard"
- value="Standard">
- Standard
- </combo_item>
- <combo_item
- name="Mini"
- value="Mini">
- Mini
- </combo_item>
- </combo_box>
-
<check_box
bottom_delta="-25"
enabled="true"
@@ -135,7 +106,6 @@
name="auto_loop"
radio_style="false"
width="150" />
-
<check_box
bottom_delta="-25"
visible="false"
diff --git a/indra/newview/skins/default/xui/en/panel_media_settings_permissions.xml b/indra/newview/skins/default/xui/en/panel_media_settings_permissions.xml
index 85f534c4a3..b5c2371510 100644
--- a/indra/newview/skins/default/xui/en/panel_media_settings_permissions.xml
+++ b/indra/newview/skins/default/xui/en/panel_media_settings_permissions.xml
@@ -4,13 +4,42 @@
enabled="true"
follows="left|top|right|bottom"
height="500"
- label="Controls"
+ label="Customize"
left="102"
mouse_opaque="true"
name="Media settings for controls"
help_topic = "media_settings_controls"
width="365">
+ <text
+ bottom_delta="-50"
+ follows="top|left"
+ height="15"
+ left="10"
+ name="controls_label">
+ Controls:
+ </text>
+ <combo_box
+ allow_text_entry="false"
+ bottom_delta="0"
+ follows="left|top"
+ height="18"
+ left="100"
+ max_chars="20"
+ name="controls"
+ width="120">
+ <combo_item
+ name="Standard"
+ value="Standard">
+ Standard
+ </combo_item>
+ <combo_item
+ name="Mini"
+ value="Mini">
+ Mini
+ </combo_item>
+ </combo_box>
+
<text
bottom_delta="-50"
follows="top|left"
@@ -27,7 +56,7 @@
font="SansSerifSmall"
height="16"
initial_value="false"
- label="Disable Navigation &amp; Interactivity"
+ label="Allow Navigation &amp; Interactivity"
left="30"
mouse_opaque="true"
name="perms_owner_interact"
@@ -41,7 +70,7 @@
font="SansSerifSmall"
height="16"
initial_value="false"
- label="Hide Control Bar"
+ label="Show Control Bar"
left="30"
mouse_opaque="true"
name="perms_owner_control"
@@ -74,7 +103,7 @@
font="SansSerifSmall"
height="16"
initial_value="false"
- label="Disable Navigation &amp; Interactivity"
+ label="Allow Navigation &amp; Interactivity"
left="30"
mouse_opaque="true"
name="perms_group_interact"
@@ -88,7 +117,7 @@
font="SansSerifSmall"
height="16"
initial_value="false"
- label="Hide Control Bar"
+ label="Show Control Bar"
left="30"
mouse_opaque="true"
name="perms_group_control"
@@ -111,7 +140,7 @@
font="SansSerifSmall"
height="16"
initial_value="false"
- label="Disable Navigation &amp; Interactivity"
+ label="Allow Navigation &amp; Interactivity"
left="30"
mouse_opaque="true"
name="perms_anyone_interact"
@@ -125,7 +154,7 @@
font="SansSerifSmall"
height="16"
initial_value="false"
- label="Hide Control Bar"
+ label="Show Control Bar"
left="30"
mouse_opaque="true"
name="perms_anyone_control"
diff --git a/indra/newview/skins/default/xui/en/panel_places.xml b/indra/newview/skins/default/xui/en/panel_places.xml
index 88df529ec1..c24f47750b 100644
--- a/indra/newview/skins/default/xui/en/panel_places.xml
+++ b/indra/newview/skins/default/xui/en/panel_places.xml
@@ -22,7 +22,7 @@ background_visible="true"
height="23"
layout="topleft"
left="15"
- label="Filter"
+ label="Filter Places"
max_length="300"
name="Filter"
top="3"
diff --git a/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml
index 78b90eefcc..405ff02836 100644
--- a/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml
@@ -284,7 +284,7 @@ Avatars:
enabled_control="EnableVoiceChat"
control_name="PushToTalkToggle"
height="20"
- label="Toggle mode for microphone when I press the speak trigger key:"
+ label="Toggle mode for microphone when I press the Speak trigger key:"
layout="topleft"
left="30"
name="push_to_talk_toggle_check"
diff --git a/indra/newview/skins/default/xui/en/panel_preferences_sound.xml b/indra/newview/skins/default/xui/en/panel_preferences_sound.xml
index 5332007baf..d8e3f4ccfb 100644
--- a/indra/newview/skins/default/xui/en/panel_preferences_sound.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_sound.xml
@@ -348,23 +348,24 @@
label="Input/Output devices"
layout="topleft"
left="30"
- top="270"
+ top="262"
name="device_settings_btn"
width="190">
</button>
<panel
- background_visible="true"
+ background_visible="false"
bg_alpha_color="DkGray"
visiblity_control="ShowDeviceSettings"
border="false"
follows="top|left"
- height="145"
+ height="120"
label="Device Settings"
layout="topleft"
left="0"
name="device_settings_panel"
class="panel_voice_device_settings"
- width="501">
+ width="501"
+ top="285">
<panel.string
name="default_text">
Default
@@ -397,8 +398,33 @@
left="165"
max_chars="128"
name="voice_input_device"
- top_pad="0"
+ top_pad="-2"
width="200" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="165"
+ name="My volume label"
+ top_pad="5"
+ width="200">
+ My volume:
+ </text>
+ <slider_bar
+ control_name="AudioLevelMic"
+ follows="left|top"
+ height="17"
+ increment="0.05"
+ initial_value="1.0"
+ layout="topleft"
+ left="160"
+ max_val="2"
+ name="mic_volume_slider"
+ tool_tip="Change the volume using this slider"
+ top_pad="-2"
+ width="220" />
<text
type="string"
text_color="EmphasisColor"
@@ -408,7 +434,7 @@
layout="topleft"
left_pad="5"
name="wait_text"
- top_delta="5"
+ top_delta="0"
width="110">
Please wait
</text>
@@ -417,7 +443,7 @@
layout="topleft"
left_delta="0"
name="bar0"
- top_delta="-5"
+ top_delta="0"
width="20" />
<locate
height="20"
@@ -453,7 +479,7 @@
left="80"
name="speaker_icon"
mouse_opaque="false"
- top_pad="4"
+ top_pad="-8"
visible="true"
width="22" />
<text
@@ -475,7 +501,7 @@
left="165"
max_chars="128"
name="voice_output_device"
- top_pad="0"
+ top_pad="-2"
width="200" />
</panel>
</panel>
diff --git a/indra/newview/skins/default/xui/en/sidepanel_item_info.xml b/indra/newview/skins/default/xui/en/sidepanel_item_info.xml
index 3cddbed2d4..e04af2bad6 100644
--- a/indra/newview/skins/default/xui/en/sidepanel_item_info.xml
+++ b/indra/newview/skins/default/xui/en/sidepanel_item_info.xml
@@ -6,7 +6,7 @@
name="item properties"
help_topic="item_properties"
save_rect="true"
- title="Object Profile"
+ title="Inventory Item Properties"
width="333">
<panel.string
name="unknown">
@@ -50,15 +50,15 @@
width="23" />
<text
follows="top|left|right"
- font="SansSerifHuge"
+ font="SansSerifHugeBold"
height="26"
layout="topleft"
left_pad="10"
name="title"
- text_color="LtGray"
+ text_color="white"
top="0"
use_ellipses="true"
- value="Object Profile"
+ value="Item Properties"
width="275" />
<panel
follows="all"
@@ -71,7 +71,7 @@
width="313"
background_visible="true"
bg_alpha_color="DkGray2">
- <text
+ <text
type="string"
length="1"
follows="left|top"
@@ -79,7 +79,7 @@
layout="topleft"
left="5"
name="LabelItemNameTitle"
- top="10"
+ top="5"
width="78">
Name:
</text>
@@ -87,7 +87,7 @@
border_style="line"
border_thickness="1"
follows="left|top|right"
- height="20"
+ height="16"
layout="topleft"
left_delta="78"
max_length="63"
@@ -102,7 +102,7 @@
layout="topleft"
left="5"
name="LabelItemDescTitle"
- top_pad="10"
+ top_delta="20"
width="78">
Description:
</text>
@@ -115,7 +115,7 @@
left_delta="78"
max_length="127"
name="LabelItemDesc"
- top_delta="-5"
+ top_delta="0"
width="225" />
<text
type="string"
@@ -123,41 +123,32 @@
follows="left|top"
height="23"
layout="topleft"
- left="5"
+ left="10"
name="LabelCreatorTitle"
-top_pad="10"
+ top="65"
width="78">
Creator:
</text>
- <avatar_icon
- follows="top|left"
- height="20"
- default_icon_name="Generic_Person"
- layout="topleft"
- left_pad="0"
- top_delta="-6"
- mouse_opaque="true"
- width="20" />
<text
type="string"
- follows="left|right"
- font="SansSerifSmall"
- height="15"
- layout="topleft"
- left_pad="5"
+ length="1"
+ follows="left|top"
+ height="23"
+ layout="topleft"
+ left_delta="78"
name="LabelCreatorName"
- top_delta="6"
+ top_delta="0"
width="140">
Nicole Linden
</text>
<button
follows="top|right"
height="23"
- label="Profile"
+ label="Profile..."
layout="topleft"
- right="-1"
+ left_delta="144"
name="BtnCreator"
- top_delta="-6"
+ top_delta="0"
width="78" />
<text
type="string"
@@ -165,41 +156,32 @@ top_pad="10"
follows="left|top"
height="23"
layout="topleft"
- left="5"
+ left="10"
name="LabelOwnerTitle"
-top_pad="5"
+ top="85"
width="78">
Owner:
</text>
- <avatar_icon
- follows="top|left"
- height="20"
- default_icon_name="Generic_Person"
- layout="topleft"
- left_pad="0"
- top_delta="-6"
- mouse_opaque="true"
- width="20" />
<text
type="string"
- follows="left|right"
- font="SansSerifSmall"
- height="15"
- layout="topleft"
- left_pad="5"
+ length="1"
+ follows="left|top"
+ height="23"
+ layout="topleft"
+ left_delta="78"
name="LabelOwnerName"
- top_delta="6"
+ top_delta="0"
width="140">
Thrax Linden
</text>
<button
follows="top|right"
height="23"
- label="Profile"
+ label="Profile..."
layout="topleft"
- right="-1"
+ left_delta="144"
name="BtnOwner"
- top_delta="-3"
+ top_delta="0"
width="78" />
<text
type="string"
@@ -207,9 +189,9 @@ top_pad="5"
follows="left|top"
height="23"
layout="topleft"
- left="5"
+ left="10"
name="LabelAcquiredTitle"
-top_pad="10"
+ top="105"
width="78">
Acquired:
</text>
@@ -225,146 +207,134 @@ top_pad="10"
width="222">
Wed May 24 12:50:46 2006
</text>
- <panel
- border="false"
- follows="left|top"
- layout="topleft"
- mouse_opaque="false"
- background_visible="true"
- bg_alpha_color="DkGray"
- name="perms_inv"
- left="0"
- top_pad="25"
- height="155"
- width="313">
- <text
- type="string"
- length="1"
- left="10"
- top_pad="13"
- text_color="EmphasisColor"
- height="15"
- follows="left|top|right"
- layout="topleft"
- name="perm_modify"
- width="200">
- You can:
- </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="23"
+ layout="topleft"
+ left="10"
+ name="OwnerLabel"
+ top="125"
+ width="78">
+ You:
+ </text>
<check_box
- height="18"
- label="Modify"
+ height="23"
+ label="Edit"
layout="topleft"
- left="20"
+ left_pad="5"
name="CheckOwnerModify"
- top_pad="0"
- width="90" />
+ top_delta="0"
+ width="78" />
<check_box
- height="18"
+ height="23"
label="Copy"
layout="topleft"
- left_pad="0"
+ left_delta="0"
name="CheckOwnerCopy"
- width="90" />
+ top_pad="5"
+ width="88" />
<check_box
- height="18"
- label="Transfer"
+ height="23"
+ label="Resell"
layout="topleft"
- left_pad="0"
+ left_delta="0"
name="CheckOwnerTransfer"
+ top_pad="5"
width="106" />
<text
type="string"
length="1"
follows="left|top"
- height="16"
+ height="10"
layout="topleft"
left="10"
name="AnyoneLabel"
- top_pad="8"
- width="100">
+ top_pad="5"
+ width="78">
Anyone:
</text>
<check_box
- height="18"
+ height="16"
label="Copy"
layout="topleft"
- left_pad="0"
+ left_pad="5"
name="CheckEveryoneCopy"
- top_delta="-2"
- width="150" />
+ top_delta="0"
+ width="130" />
<text
type="string"
length="1"
follows="left|top"
- height="16"
+ height="10"
layout="topleft"
left="10"
name="GroupLabel"
- top_pad="8"
- width="100">
+ top_pad="5"
+ width="78">
Group:
</text>
<check_box
- height="18"
+ height="16"
label="Share"
layout="topleft"
- left_pad="0"
- top_delta="-2"
+ left_pad="5"
name="CheckShareWithGroup"
- tool_tip="Allow all members of the set group to share your modify permissions for this object. You must Deed to enable role restrictions."
- width="150" />
+ top_delta="5"
+ width="106" />
<text
type="string"
length="1"
follows="left|top"
- height="16"
+ height="25"
layout="topleft"
left="10"
name="NextOwnerLabel"
- top_pad="8"
- width="200"
+ top_pad="5"
+ width="78"
word_wrap="true">
Next owner:
</text>
<check_box
- height="18"
- label="Modify"
+ height="16"
+ label="Edit"
layout="topleft"
- left="20"
- top_pad="0"
+ left_pad="5"
name="CheckNextOwnerModify"
- width="90" />
+ top_delta="0"
+ width="78" />
<check_box
- height="18"
+ height="16"
label="Copy"
layout="topleft"
- left_pad="0"
+ left_delta="0"
name="CheckNextOwnerCopy"
- width="90" />
+ top_pad="5"
+ width="88" />
<check_box
- height="18"
- label="Transfer"
+ height="16"
+ label="Resell"
layout="topleft"
- left_pad="0"
+ left_delta="0"
name="CheckNextOwnerTransfer"
- tool_tip="Next owner can give away or resell this object"
+ top_pad="5"
width="106" />
- </panel>
<check_box
- height="18"
+ height="16"
label="For Sale"
layout="topleft"
- left="20"
+ left="10"
name="CheckPurchase"
- top_pad="20"
- width="100" />
+ top_pad="5"
+ width="78" />
<combo_box
- height="23"
- left_pad="0"
+ height="19"
+ left_pad="5"
layout="topleft"
follows="left|top"
name="combobox sale copy"
- width="170">
+ width="110">
<combo_box.item
label="Copy"
name="Copy"
@@ -380,14 +350,26 @@ top_pad="10"
increment="1"
control_name="Edit Cost"
name="Edit Cost"
- label="Price: L$"
- label_width="75"
- left="120"
- width="170"
+ label="Price:"
+ label_width="100"
+ left="10"
+ width="192"
min_val="1"
- height="23"
+ height="19"
max_val="999999999"
- top_pad="10"/>
+ top_pad="5"/>
+ <text
+ type="string"
+ length="1"
+ height="15"
+ follows="left|top"
+ layout="topleft"
+ left_delta="82"
+ name="CurrencySymbol"
+ top_delta="1"
+ width="18">
+ L$
+ </text>
<!--line_editor
border_style="line"
border_thickness="1"
diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml
index 3044f10573..1f7784d9ab 100644
--- a/indra/newview/skins/default/xui/en/strings.xml
+++ b/indra/newview/skins/default/xui/en/strings.xml
@@ -460,7 +460,7 @@ Returns the rotation of detected object number (returns &lt;0,0,0,1&gt; if numbe
</string>
<string name="LSLTipText_llDetectedGroup" translate="false">
integer llDetectedGroup(integer number)
-Returns an integer that is a boolean representing if the detected object or avatar is in the same group that the prim containing the script is set to
+Returns TRUE if detected object is part of same group as owner
</string>
<string name="LSLTipText_llDetectedLinkNumber" translate="false">
integer llDetectedLinkNumber(integer number)
@@ -2112,6 +2112,10 @@ this texture in your inventory
Unknown file extension .%s
Expected .wav, .tga, .bmp, .jpg, .jpeg, or .bvh
</string>
+ <string name="MuteObject">Block</string>
+ <string name="MuteAvatar">Block</string>
+ <string name="UnmuteObject">Unblock</string>
+ <string name="UnmuteAvatar">Unblock</string>
<string name="AddLandmarkNavBarMenu">Add to My Landmarks...</string>
<string name="EditLandmarkNavBarMenu">Edit my Landmark...</string>
diff --git a/indra/newview/skins/default/xui/en/widgets/button.xml b/indra/newview/skins/default/xui/en/widgets/button.xml
index 28ed560543..d7aa71a441 100644
--- a/indra/newview/skins/default/xui/en/widgets/button.xml
+++ b/indra/newview/skins/default/xui/en/widgets/button.xml
@@ -18,5 +18,6 @@
font="SansSerifSmall"
hover_glow_amount="0.15"
halign="center"
+ pad_bottom="2"
scale_image="true">
</button>
diff --git a/indra/newview/skins/default/xui/en/widgets/floater.xml b/indra/newview/skins/default/xui/en/widgets/floater.xml
index 19fb520b44..85d0c633af 100644
--- a/indra/newview/skins/default/xui/en/widgets/floater.xml
+++ b/indra/newview/skins/default/xui/en/widgets/floater.xml
@@ -9,8 +9,6 @@
background_visible="true"
background_opaque="false"
header_height="25"
- top="0"
- left="0"
close_image="Icon_Close_Foreground"
restore_image="Icon_Restore_Foreground"
minimize_image="Icon_Minimize_Foreground"