summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authorEric M. Tulla (BigPapi) <tulla@lindenlab.com>2009-11-02 12:13:52 -0500
committerEric M. Tulla (BigPapi) <tulla@lindenlab.com>2009-11-02 12:13:52 -0500
commitcdf639087011dc7f4510cedd9951e8d890818b97 (patch)
tree6d70a6994ab11f0677370dda4f80a205d00660a1 /indra
parent7335c6276865061d8b4a549b7cf29f8a8df929a0 (diff)
parent3783852444825edf420e6109927df21fd004c3e7 (diff)
merging in viewer2 changes
--HG-- branch : avatar-pipeline
Diffstat (limited to 'indra')
-rw-r--r--indra/llcommon/llstring.cpp16
-rw-r--r--indra/llcommon/llstring.h17
-rw-r--r--indra/llrender/lltexture.h2
-rw-r--r--indra/llui/llfloaterreg.cpp2
-rw-r--r--indra/llui/lliconctrl.cpp18
-rw-r--r--indra/llui/lliconctrl.h8
-rw-r--r--indra/llui/llmultifloater.cpp3
-rw-r--r--indra/llui/llpanel.cpp2
-rw-r--r--indra/llui/llradiogroup.cpp2
-rw-r--r--indra/llui/llscrolllistcolumn.cpp15
-rw-r--r--indra/llui/llscrolllistcolumn.h15
-rw-r--r--indra/llui/lltextbase.cpp29
-rw-r--r--indra/llui/lltextbase.h3
-rw-r--r--indra/llui/lltexteditor.cpp34
-rw-r--r--indra/llui/lltooltip.cpp32
-rw-r--r--indra/llui/lltooltip.h15
-rw-r--r--indra/llui/llui.cpp5
-rw-r--r--indra/llui/llui.h14
-rw-r--r--indra/llui/lluictrl.cpp3
-rw-r--r--indra/llui/lluictrl.h3
-rw-r--r--indra/newview/llappviewer.cpp2
-rw-r--r--indra/newview/llappviewer.h4
-rw-r--r--indra/newview/llavatariconctrl.cpp3
-rw-r--r--indra/newview/llcurrencyuimanager.cpp14
-rw-r--r--indra/newview/lleventinfo.cpp1
-rw-r--r--indra/newview/llexpandabletextbox.cpp7
-rw-r--r--indra/newview/llexpandabletextbox.h10
-rw-r--r--indra/newview/llface.h2
-rw-r--r--indra/newview/llflexibleobject.cpp2
-rw-r--r--indra/newview/llfloaterabout.cpp2
-rw-r--r--indra/newview/llfloaterbump.cpp1
-rw-r--r--indra/newview/llfloatersearch.cpp9
-rw-r--r--indra/newview/llpanelpicks.cpp8
-rw-r--r--indra/newview/llstartup.cpp8
-rw-r--r--indra/newview/llviewermedia.cpp17
-rw-r--r--indra/newview/llviewermedia.h5
-rw-r--r--indra/newview/llviewermediafocus.cpp44
-rw-r--r--indra/newview/llviewermediafocus.h6
-rw-r--r--indra/newview/llviewertexture.cpp98
-rw-r--r--indra/newview/llviewertexture.h17
-rw-r--r--indra/newview/llviewerwindow.cpp22
-rw-r--r--indra/newview/llvoiceclient.cpp33
-rw-r--r--indra/newview/llvoiceclient.h5
-rw-r--r--indra/newview/llvopartgroup.cpp6
-rw-r--r--indra/newview/llworldmap.cpp1
-rw-r--r--indra/newview/skins/default/textures/icons/ForSale_Badge.pngbin0 -> 5727 bytes
-rw-r--r--indra/newview/skins/default/textures/icons/YouAreHere_Badge.pngbin0 -> 6143 bytes
-rw-r--r--indra/newview/skins/default/textures/navbar/BuyArrow_Over.pngbin2985 -> 2956 bytes
-rw-r--r--indra/newview/skins/default/textures/navbar/BuyArrow_Press.pngbin249 -> 2949 bytes
-rw-r--r--indra/newview/skins/default/textures/textures.xml45
-rw-r--r--indra/newview/skins/default/xui/en/floater_about.xml1
-rw-r--r--indra/newview/skins/default/xui/en/floater_about_land.xml165
-rw-r--r--indra/newview/skins/default/xui/en/floater_inventory.xml6
-rw-r--r--indra/newview/skins/default/xui/en/floater_test_widgets.xml96
-rw-r--r--indra/newview/skins/default/xui/en/floater_tools.xml9
-rw-r--r--indra/newview/skins/default/xui/en/floater_water.xml2
-rw-r--r--indra/newview/skins/default/xui/en/floater_windlight_options.xml2
-rw-r--r--indra/newview/skins/default/xui/en/fonts.xml21
-rw-r--r--indra/newview/skins/default/xui/en/notifications.xml60
-rw-r--r--indra/newview/skins/default/xui/en/panel_activeim_row.xml43
-rw-r--r--indra/newview/skins/default/xui/en/panel_avatar_list_item.xml25
-rw-r--r--indra/newview/skins/default/xui/en/panel_bottomtray.xml1
-rw-r--r--indra/newview/skins/default/xui/en/panel_group_land_money.xml12
-rw-r--r--indra/newview/skins/default/xui/en/panel_group_list_item.xml24
-rw-r--r--indra/newview/skins/default/xui/en/panel_group_roles.xml1
-rw-r--r--indra/newview/skins/default/xui/en/panel_people.xml138
-rw-r--r--indra/newview/skins/default/xui/en/panel_pick_list_item.xml2
-rw-r--r--indra/newview/skins/default/xui/en/panel_places.xml7
-rw-r--r--indra/newview/skins/default/xui/en/panel_profile_view.xml1
-rw-r--r--indra/newview/skins/default/xui/en/panel_status_bar.xml153
-rw-r--r--indra/newview/skins/default/xui/en/panel_sys_well_item.xml69
-rw-r--r--indra/newview/skins/default/xui/en/panel_teleport_history_item.xml37
-rw-r--r--indra/newview/skins/default/xui/en/panel_toast.xml47
-rw-r--r--indra/newview/skins/default/xui/en/widgets/expandable_text.xml2
-rw-r--r--indra/newview/skins/default/xui/en/widgets/panel.xml3
-rw-r--r--indra/newview/skins/default/xui/en/widgets/tab_container.xml4
-rw-r--r--indra/newview/skins/default/xui/en/widgets/tool_tip.xml10
77 files changed, 831 insertions, 720 deletions
diff --git a/indra/llcommon/llstring.cpp b/indra/llcommon/llstring.cpp
index 721e5670e7..c027aa7bdd 100644
--- a/indra/llcommon/llstring.cpp
+++ b/indra/llcommon/llstring.cpp
@@ -671,9 +671,9 @@ std::string ll_convert_wide_to_string(const wchar_t* in)
}
#endif // LL_WINDOWS
-long LLStringOps::sltOffset;
-long LLStringOps::localTimeOffset;
-bool LLStringOps::daylightSavings;
+long LLStringOps::sPacificTimeOffset = 0;
+long LLStringOps::sLocalTimeOffset = 0;
+bool LLStringOps::sPacificDaylightTime = 0;
std::map<std::string, std::string> LLStringOps::datetimeToCodes;
S32 LLStringOps::collate(const llwchar* a, const llwchar* b)
@@ -700,11 +700,11 @@ void LLStringOps::setupDatetimeInfo (bool daylight)
tmpT = gmtime (&nowT);
gmtT = mktime (tmpT);
- localTimeOffset = (long) (gmtT - localT);
+ sLocalTimeOffset = (long) (gmtT - localT);
- daylightSavings = daylight;
- sltOffset = (daylightSavings? 7 : 8 ) * 60 * 60;
+ sPacificDaylightTime = daylight;
+ sPacificTimeOffset = (sPacificDaylightTime? 7 : 8 ) * 60 * 60;
datetimeToCodes["wkday"] = "%a"; // Thu
datetimeToCodes["weekday"] = "%A"; // Thursday
@@ -957,7 +957,7 @@ bool LLStringUtil::formatDatetime(std::string& replacement, std::string token,
}
else if (param != "utc") // slt
{
- secFromEpoch -= LLStringOps::getSltOffset();
+ secFromEpoch -= LLStringOps::getPacificTimeOffset();
}
// if never fell into those two ifs above, param must be utc
@@ -980,7 +980,7 @@ bool LLStringUtil::formatDatetime(std::string& replacement, std::string token,
{
// "slt" = Second Life Time, which is deprecated.
// If not utc or user local time, fallback to Pacific time
- replacement = LLStringOps::getDaylightSavings() ? "PDT" : "PST";
+ replacement = LLStringOps::getPacificDaylightTime() ? "PDT" : "PST";
}
return true;
}
diff --git a/indra/llcommon/llstring.h b/indra/llcommon/llstring.h
index 0f2f05a0d8..edbb007f61 100644
--- a/indra/llcommon/llstring.h
+++ b/indra/llcommon/llstring.h
@@ -151,9 +151,9 @@ struct char_traits<U16>
class LL_COMMON_API LLStringOps
{
private:
- static long sltOffset;
- static long localTimeOffset;
- static bool daylightSavings;
+ static long sPacificTimeOffset;
+ static long sLocalTimeOffset;
+ static bool sPacificDaylightTime;
static std::map<std::string, std::string> datetimeToCodes;
public:
@@ -184,10 +184,13 @@ public:
static S32 collate(const char* a, const char* b) { return strcoll(a, b); }
static S32 collate(const llwchar* a, const llwchar* b);
- static void setupDatetimeInfo (bool daylight);
- static long getSltOffset (void) {return sltOffset;}
- static long getLocalTimeOffset (void) {return localTimeOffset;}
- static bool getDaylightSavings (void) {return daylightSavings;}
+ static void setupDatetimeInfo(bool pacific_daylight_time);
+ static long getPacificTimeOffset(void) { return sPacificTimeOffset;}
+ static long getLocalTimeOffset(void) { return sLocalTimeOffset;}
+ // Is the Pacific time zone (aka server time zone)
+ // currently in daylight savings time?
+ static bool getPacificDaylightTime(void) { return sPacificDaylightTime;}
+
static std::string getDatetimeCode (std::string key);
};
diff --git a/indra/llrender/lltexture.h b/indra/llrender/lltexture.h
index c18917b663..0cd9667644 100644
--- a/indra/llrender/lltexture.h
+++ b/indra/llrender/lltexture.h
@@ -61,6 +61,8 @@ public:
//
//interfaces to access LLViewerTexture
//
+ virtual S8 getType() const = 0 ;
+ virtual void setKnownDrawSize(S32 width, S32 height) = 0 ;
virtual bool bindDefaultImage(const S32 stage = 0) const = 0 ;
virtual void forceImmediateUpdate() = 0 ;
virtual void setActive() = 0 ;
diff --git a/indra/llui/llfloaterreg.cpp b/indra/llui/llfloaterreg.cpp
index d60a879410..8bb9e0d9ff 100644
--- a/indra/llui/llfloaterreg.cpp
+++ b/indra/llui/llfloaterreg.cpp
@@ -127,7 +127,7 @@ LLFloater* LLFloaterReg::getInstance(const std::string& name, const LLSD& key)
bool success = LLUICtrlFactory::getInstance()->buildFloater(res, xui_file, NULL);
if (!success)
{
- llwarns << "Failed to buid floater type: '" << name << "'." << llendl;
+ llwarns << "Failed to build floater type: '" << name << "'." << llendl;
return NULL;
}
diff --git a/indra/llui/lliconctrl.cpp b/indra/llui/lliconctrl.cpp
index 66c2ba682f..b1bd2b89a9 100644
--- a/indra/llui/lliconctrl.cpp
+++ b/indra/llui/lliconctrl.cpp
@@ -57,7 +57,9 @@ LLIconCtrl::LLIconCtrl(const LLIconCtrl::Params& p)
: LLUICtrl(p),
mColor(p.color()),
mImagep(p.image),
- mPriority(0)
+ mPriority(0),
+ mDrawWidth(0),
+ mDrawHeight(0)
{
if (mImagep.notNull())
{
@@ -100,6 +102,8 @@ void LLIconCtrl::setValue(const LLSD& value )
{
mImagep = LLUI::getUIImage(tvalue.asString(), mPriority);
}
+
+ setIconImageDrawSize();
}
std::string LLIconCtrl::getImageName() const
@@ -109,3 +113,15 @@ std::string LLIconCtrl::getImageName() const
else
return std::string();
}
+
+void LLIconCtrl::setIconImageDrawSize()
+{
+ if(mImagep.notNull() && mDrawWidth && mDrawHeight)
+ {
+ if(mImagep->getImage().notNull())
+ {
+ mImagep->getImage()->setKnownDrawSize(mDrawWidth, mDrawHeight) ;
+ }
+ }
+}
+
diff --git a/indra/llui/lliconctrl.h b/indra/llui/lliconctrl.h
index 90f1693060..66368f979b 100644
--- a/indra/llui/lliconctrl.h
+++ b/indra/llui/lliconctrl.h
@@ -60,6 +60,7 @@ public:
protected:
LLIconCtrl(const Params&);
friend class LLUICtrlFactory;
+
public:
virtual ~LLIconCtrl();
@@ -73,9 +74,16 @@ public:
void setColor(const LLColor4& color) { mColor = color; }
+private:
+ void setIconImageDrawSize() ;
+
protected:
S32 mPriority;
+ //the output size of the icon image if set.
+ S32 mDrawWidth ;
+ S32 mDrawHeight ;
+
private:
LLUIColor mColor;
LLPointer<LLUIImage> mImagep;
diff --git a/indra/llui/llmultifloater.cpp b/indra/llui/llmultifloater.cpp
index 7d21c7e0c1..78738c826d 100644
--- a/indra/llui/llmultifloater.cpp
+++ b/indra/llui/llmultifloater.cpp
@@ -434,6 +434,7 @@ void LLMultiFloater::onTabSelected()
void LLMultiFloater::setCanResize(BOOL can_resize)
{
LLFloater::setCanResize(can_resize);
+ if (!mTabContainer) return;
if (isResizable() && mTabContainer->getTabPosition() == LLTabContainer::BOTTOM)
{
mTabContainer->setRightTabBtnOffset(RESIZE_HANDLE_WIDTH);
@@ -457,6 +458,8 @@ BOOL LLMultiFloater::postBuild()
}
mTabContainer = getChild<LLTabContainer>("Preview Tabs");
+
+ setCanResize(mResizable);
return TRUE;
}
diff --git a/indra/llui/llpanel.cpp b/indra/llui/llpanel.cpp
index 0d340699c5..07c0f3ce84 100644
--- a/indra/llui/llpanel.cpp
+++ b/indra/llui/llpanel.cpp
@@ -110,8 +110,6 @@ LLPanel::LLPanel(const LLPanel::Params& p)
// *NOTE: Be sure to also change LLPanel::initFromParams(). We have too
// many classes derived from LLPanel to retrofit them all to pass in params.
{
- setIsChrome(FALSE);
-
if (p.has_border)
{
addBorder(p.border);
diff --git a/indra/llui/llradiogroup.cpp b/indra/llui/llradiogroup.cpp
index f9f0307d17..86bd2f05ce 100644
--- a/indra/llui/llradiogroup.cpp
+++ b/indra/llui/llradiogroup.cpp
@@ -106,7 +106,7 @@ void LLRadioGroup::setIndexEnabled(S32 index, BOOL enabled)
child->setEnabled(enabled);
if (index == mSelectedIndex && enabled == FALSE)
{
- mSelectedIndex = -1;
+ setSelectedIndex(-1);
}
break;
}
diff --git a/indra/llui/llscrolllistcolumn.cpp b/indra/llui/llscrolllistcolumn.cpp
index 073e14386f..ba53f84877 100644
--- a/indra/llui/llscrolllistcolumn.cpp
+++ b/indra/llui/llscrolllistcolumn.cpp
@@ -47,6 +47,21 @@ const S32 MIN_COLUMN_WIDTH = 20;
//---------------------------------------------------------------------------
// LLScrollColumnHeader
//---------------------------------------------------------------------------
+LLScrollColumnHeader::Params::Params()
+: column("column")
+{
+ name = "column_header";
+ image_unselected.name("square_btn_32x128.tga");
+ image_selected.name("square_btn_selected_32x128.tga");
+ image_disabled.name("square_btn_32x128.tga");
+ image_disabled_selected.name("square_btn_selected_32x128.tga");
+ image_overlay.name("combobox_arrow.tga");
+ image_overlay_alignment("right");
+ font_halign = LLFontGL::LEFT;
+ tab_stop(false);
+ scale_image(true);
+}
+
LLScrollColumnHeader::LLScrollColumnHeader(const LLScrollColumnHeader::Params& p)
: LLButton(p), // use combobox params to steal images
diff --git a/indra/llui/llscrolllistcolumn.h b/indra/llui/llscrolllistcolumn.h
index 23318fd7c4..5aef6e8e94 100644
--- a/indra/llui/llscrolllistcolumn.h
+++ b/indra/llui/llscrolllistcolumn.h
@@ -50,20 +50,7 @@ public:
{
Mandatory<LLScrollListColumn*> column;
- Params()
- : column("column")
- {
- name = "column_header";
- image_unselected.name("square_btn_32x128.tga");
- image_selected.name("square_btn_selected_32x128.tga");
- image_disabled.name("square_btn_32x128.tga");
- image_disabled_selected.name("square_btn_selected_32x128.tga");
- image_overlay.name("combobox_arrow.tga");
- image_overlay_alignment("right");
- font_halign = LLFontGL::LEFT;
- tab_stop(false);
- scale_image(true);
- }
+ Params();
};
LLScrollColumnHeader(const Params&);
~LLScrollColumnHeader();
diff --git a/indra/llui/lltextbase.cpp b/indra/llui/lltextbase.cpp
index 2b1d677ffb..9a26f0b472 100644
--- a/indra/llui/lltextbase.cpp
+++ b/indra/llui/lltextbase.cpp
@@ -933,13 +933,16 @@ BOOL LLTextBase::handleToolTip(S32 x, S32 y, MASK mask)
void LLTextBase::reshape(S32 width, S32 height, BOOL called_from_parent)
{
- LLUICtrl::reshape( width, height, called_from_parent );
+ if (width != getRect().getWidth() || height != getRect().getHeight())
+ {
+ LLUICtrl::reshape( width, height, called_from_parent );
- // do this first after reshape, because other things depend on
- // up-to-date mTextRect
- updateRects();
-
- needsReflow();
+ // do this first after reshape, because other things depend on
+ // up-to-date mTextRect
+ updateRects();
+
+ needsReflow();
+ }
}
void LLTextBase::draw()
@@ -1193,11 +1196,10 @@ void LLTextBase::reflow(S32 start_index)
//llassert_always(getLocalRectFromDocIndex(mScrollIndex).mBottom == first_char_rect.mBottom);
}
}
- }
-
- // reset desired x cursor position
- updateCursorXPos();
+ // reset desired x cursor position
+ updateCursorXPos();
+ }
}
LLRect LLTextBase::getContentsRect()
@@ -2108,9 +2110,12 @@ LLRect LLTextBase::getVisibleDocumentRect() const
}
else
{
- // entire document rect when not scrolling
+ // entire document rect is visible when not scrolling
+ // but offset according to height of widget
LLRect doc_rect = mDocumentView->getLocalRect();
- doc_rect.translate(-mDocumentView->getRect().mLeft, -mDocumentView->getRect().mBottom);
+ doc_rect.mLeft -= mDocumentView->getRect().mLeft;
+ // adjust for height of text above widget baseline
+ doc_rect.mBottom = llmin(0, doc_rect.getHeight() - mTextRect.getHeight());
return doc_rect;
}
}
diff --git a/indra/llui/lltextbase.h b/indra/llui/lltextbase.h
index 14fd786127..4cca522a23 100644
--- a/indra/llui/lltextbase.h
+++ b/indra/llui/lltextbase.h
@@ -154,6 +154,9 @@ public:
LLRect getContentsRect();
LLRect getVisibleDocumentRect() const;
+ S32 getVPad() { return mVPad; }
+ S32 getHPad() { return mHPad; }
+
S32 getDocIndexFromLocalCoord( S32 local_x, S32 local_y, BOOL round ) const;
LLRect getLocalRectFromDocIndex(S32 pos) const;
diff --git a/indra/llui/lltexteditor.cpp b/indra/llui/lltexteditor.cpp
index f0238dba49..3ce5a0320b 100644
--- a/indra/llui/lltexteditor.cpp
+++ b/indra/llui/lltexteditor.cpp
@@ -652,6 +652,13 @@ BOOL LLTextEditor::handleMouseDown(S32 x, S32 y, MASK mask)
{
BOOL handled = FALSE;
+ // set focus first, in case click callbacks want to change it
+ // RN: do we really need to have a tab stop?
+ if (hasTabStop())
+ {
+ setFocus( TRUE );
+ }
+
// Let scrollbar have first dibs
handled = LLTextBase::handleMouseDown(x, y, mask);
@@ -694,12 +701,6 @@ BOOL LLTextEditor::handleMouseDown(S32 x, S32 y, MASK mask)
handled = TRUE;
}
- if (hasTabStop())
- {
- setFocus( TRUE );
- handled = TRUE;
- }
-
// Delay cursor flashing
resetCursorBlink();
@@ -708,29 +709,32 @@ BOOL LLTextEditor::handleMouseDown(S32 x, S32 y, MASK mask)
BOOL LLTextEditor::handleRightMouseDown(S32 x, S32 y, MASK mask)
{
- BOOL handled = LLTextBase::handleRightMouseDown(x, y, mask);
- if (!handled && hasTabStop())
+ if (hasTabStop())
+ {
+ setFocus(TRUE);
+ }
+ if (!LLTextBase::handleRightMouseDown(x, y, mask))
{
- setFocus( TRUE );
showContextMenu(x, y);
- handled = TRUE;
}
- return handled;
+ return TRUE;
}
BOOL LLTextEditor::handleMiddleMouseDown(S32 x, S32 y, MASK mask)
{
- BOOL handled = FALSE;
- handled = LLTextBase::handleMouseDown(x, y, mask);
+ if (hasTabStop())
+ {
+ setFocus(TRUE);
+ }
- if (!handled)
+ if (!LLTextBase::handleMouseDown(x, y, mask))
{
- setFocus( TRUE );
if( canPastePrimary() )
{
setCursorAtLocalPos( x, y, true );
+ // does not rely on focus being set
pastePrimary();
}
}
diff --git a/indra/llui/lltooltip.cpp b/indra/llui/lltooltip.cpp
index 34501ae080..23c87c7522 100644
--- a/indra/llui/lltooltip.cpp
+++ b/indra/llui/lltooltip.cpp
@@ -161,10 +161,7 @@ LLToolTip::Params::Params()
web_based_media("web_based_media", false),
media_playing("media_playing", false)
{
- name = "tooltip";
- font = LLFontGL::getFontSansSerif();
- bg_opaque_color = LLUIColorTable::instance().getColor( "ToolTipBgColor" );
- background_visible = true;
+ chrome = true;
}
LLToolTip::LLToolTip(const LLToolTip::Params& p)
@@ -208,6 +205,7 @@ LLToolTip::LLToolTip(const LLToolTip::Params& p)
icon_params.rect = icon_rect;
//icon_params.follows.flags = FOLLOWS_LEFT | FOLLOWS_BOTTOM;
icon_params.image_unselected(imagep);
+ icon_params.image_selected(imagep);
icon_params.scale_image(true);
icon_params.flash_color(icon_params.highlight_color());
mInfoButton = LLUICtrlFactory::create<LLButton>(icon_params);
@@ -221,7 +219,7 @@ LLToolTip::LLToolTip(const LLToolTip::Params& p)
mTextBox->translate(TOOLTIP_ICON_SIZE + mPadding, 0);
}
- if (p.time_based_media.isProvided() && p.time_based_media == true)
+ if (p.time_based_media)
{
LLButton::Params p_button;
p_button.name(std::string("play_media"));
@@ -238,17 +236,14 @@ LLToolTip::LLToolTip(const LLToolTip::Params& p)
{
mPlayMediaButton->setCommitCallback(boost::bind(p.click_playmedia_callback()));
}
- if(p.media_playing.isProvided())
- {
- mPlayMediaButton->setToggleState(p.media_playing);
- }
+ mPlayMediaButton->setToggleState(p.media_playing);
addChild(mPlayMediaButton);
// move text over to fit image in
mTextBox->translate(TOOLTIP_PLAYBUTTON_SIZE + mPadding, 0);
}
- if (p.web_based_media.isProvided() && p.web_based_media == true)
+ if (p.web_based_media)
{
LLButton::Params p_w_button;
p_w_button.name(std::string("home_page"));
@@ -455,7 +450,10 @@ void LLToolTipMgr::show(const std::string& msg)
void LLToolTipMgr::show(const LLToolTip::Params& params)
{
- if (!params.validateBlock())
+ // fill in default tooltip params from tool_tip.xml
+ LLToolTip::Params params_with_defaults(params);
+ params_with_defaults.fillFrom(LLUICtrlFactory::instance().getDefaultParams<LLToolTip>());
+ if (!params_with_defaults.validateBlock())
{
llwarns << "Could not display tooltip!" << llendl;
return;
@@ -467,12 +465,12 @@ void LLToolTipMgr::show(const LLToolTip::Params& params)
// are we ready to show the tooltip?
if (!mToolTipsBlocked // we haven't hit a key, moved the mouse, etc.
- && LLUI::getMouseIdleTime() > params.delay_time) // the mouse has been still long enough
+ && LLUI::getMouseIdleTime() > params_with_defaults.delay_time) // the mouse has been still long enough
{
- bool tooltip_changed = mLastToolTipParams.message() != params.message()
- || mLastToolTipParams.pos() != params.pos()
- || mLastToolTipParams.time_based_media() != params.time_based_media()
- || mLastToolTipParams.web_based_media() != params.web_based_media();
+ bool tooltip_changed = mLastToolTipParams.message() != params_with_defaults.message()
+ || mLastToolTipParams.pos() != params_with_defaults.pos()
+ || mLastToolTipParams.time_based_media() != params_with_defaults.time_based_media()
+ || mLastToolTipParams.web_based_media() != params_with_defaults.web_based_media();
bool tooltip_shown = mToolTip
&& mToolTip->getVisible()
@@ -480,7 +478,7 @@ void LLToolTipMgr::show(const LLToolTip::Params& params)
mNeedsToolTip = tooltip_changed || !tooltip_shown;
// store description of tooltip for later creation
- mNextToolTipParams = params;
+ mNextToolTipParams = params_with_defaults;
}
}
diff --git a/indra/llui/lltooltip.h b/indra/llui/lltooltip.h
index 4a5f60f93d..30d251266c 100644
--- a/indra/llui/lltooltip.h
+++ b/indra/llui/lltooltip.h
@@ -78,16 +78,13 @@ public:
visible_time_far; // time for which tooltip is visible while mouse moved away
Optional<LLRect> sticky_rect;
Optional<const LLFontGL*> font;
-
- Optional<click_callback_t> click_callback;
Optional<LLUIImage*> image;
-
-
- Optional<bool> time_based_media;
- Optional<bool> web_based_media;
- Optional<bool> media_playing;
- Optional<click_callback_t> click_playmedia_callback;
- Optional<click_callback_t> click_homepage_callback;
+ Optional<bool> time_based_media,
+ web_based_media,
+ media_playing;
+ Optional<click_callback_t> click_callback,
+ click_playmedia_callback,
+ click_homepage_callback;
Optional<S32> max_width;
Optional<S32> padding;
Optional<bool> wrap;
diff --git a/indra/llui/llui.cpp b/indra/llui/llui.cpp
index 48504a1e54..a82e6eb372 100644
--- a/indra/llui/llui.cpp
+++ b/indra/llui/llui.cpp
@@ -1953,11 +1953,6 @@ namespace LLInitParam
}
}
- if (mData.mValue == NULL)
- {
- mData.mValue = LLFontGL::getFontDefault();
- }
-
// default to current value
return mData.mValue;
}
diff --git a/indra/llui/llui.h b/indra/llui/llui.h
index efb1b0a36f..5ec07f1941 100644
--- a/indra/llui/llui.h
+++ b/indra/llui/llui.h
@@ -404,6 +404,20 @@ namespace LLInitParam
LLUIColor getValueFromBlock() const;
};
+ // provide a better default for Optional<const LLFontGL*> than NULL
+ template <>
+ struct DefaultInitializer<const LLFontGL*>
+ {
+ // return reference to a single default instance of T
+ // built-in types will be initialized to zero, default constructor otherwise
+ static const LLFontGL* get()
+ {
+ static const LLFontGL* sDefaultFont = LLFontGL::getFontDefault();
+ return sDefaultFont;
+ }
+ };
+
+
template<>
class TypedParam<const LLFontGL*>
: public BlockValue<const LLFontGL*>
diff --git a/indra/llui/lluictrl.cpp b/indra/llui/lluictrl.cpp
index 0faff5eff6..08fc8fb784 100644
--- a/indra/llui/lluictrl.cpp
+++ b/indra/llui/lluictrl.cpp
@@ -42,6 +42,7 @@ static LLDefaultChildRegistry::Register<LLUICtrl> r("ui_ctrl");
LLUICtrl::Params::Params()
: tab_stop("tab_stop", true),
+ chrome("chrome", false),
label("label"),
initial_value("value"),
init_callback("init_callback"),
@@ -86,6 +87,7 @@ void LLUICtrl::initFromParams(const Params& p)
{
LLView::initFromParams(p);
+ setIsChrome(p.chrome);
setControlName(p.control_name);
if(p.enabled_controls.isProvided())
{
@@ -582,7 +584,6 @@ void LLUICtrl::setIsChrome(BOOL is_chrome)
// virtual
BOOL LLUICtrl::getIsChrome() const
{
-
LLView* parent_ctrl = getParent();
while(parent_ctrl)
{
diff --git a/indra/llui/lluictrl.h b/indra/llui/lluictrl.h
index 45fe47772b..dd22851100 100644
--- a/indra/llui/lluictrl.h
+++ b/indra/llui/lluictrl.h
@@ -126,7 +126,8 @@ public:
struct Params : public LLInitParam::Block<Params, LLView::Params>
{
Optional<std::string> label;
- Optional<bool> tab_stop;
+ Optional<bool> tab_stop,
+ chrome;
Optional<LLSD> initial_value;
Optional<CommitCallbackParam> init_callback,
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index 06c9171d67..873215169e 100644
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -238,8 +238,6 @@ U32 gFrameCount = 0;
U32 gForegroundFrameCount = 0; // number of frames that app window was in foreground
LLPumpIO* gServicePump = NULL;
-BOOL gPacificDaylightTime = FALSE;
-
U64 gFrameTime = 0;
F32 gFrameTimeSeconds = 0.f;
F32 gFrameIntervalSeconds = 0.f;
diff --git a/indra/newview/llappviewer.h b/indra/newview/llappviewer.h
index d970aa6ae1..73256a8fe6 100644
--- a/indra/newview/llappviewer.h
+++ b/indra/newview/llappviewer.h
@@ -301,10 +301,6 @@ extern U32 gForegroundFrameCount;
extern LLPumpIO* gServicePump;
-// Is the Pacific time zone (aka server time zone)
-// currently in daylight savings time?
-extern BOOL gPacificDaylightTime;
-
extern U64 gFrameTime; // The timestamp of the most-recently-processed frame
extern F32 gFrameTimeSeconds; // Loses msec precision after ~4.5 hours...
extern F32 gFrameIntervalSeconds; // Elapsed time between current and previous gFrameTimeSeconds
diff --git a/indra/newview/llavatariconctrl.cpp b/indra/newview/llavatariconctrl.cpp
index ebcda13dd4..b56e8d1ec2 100644
--- a/indra/newview/llavatariconctrl.cpp
+++ b/indra/newview/llavatariconctrl.cpp
@@ -155,6 +155,8 @@ LLAvatarIconCtrl::LLAvatarIconCtrl(const LLAvatarIconCtrl::Params& p)
mPriority = LLViewerFetchedTexture::BOOST_ICON;
LLRect rect = p.rect;
+ mDrawWidth = llmax(32, rect.getWidth()) ;
+ mDrawHeight = llmax(32, rect.getHeight()) ;
static LLUICachedControl<S32> llavatariconctrl_symbol_hpad("UIAvatariconctrlSymbolHPad", 2);
static LLUICachedControl<S32> llavatariconctrl_symbol_vpad("UIAvatariconctrlSymbolVPad", 2);
@@ -193,7 +195,6 @@ LLAvatarIconCtrl::LLAvatarIconCtrl(const LLAvatarIconCtrl::Params& p)
LLIconCtrl::setValue("default_profile_picture.j2c");
}
-
LLUICtrl::CommitCallbackRegistry::ScopedRegistrar registrar;
registrar.add("AvatarIcon.Action", boost::bind(&LLAvatarIconCtrl::onAvatarIconContextMenuItemClicked, this, _2));
diff --git a/indra/newview/llcurrencyuimanager.cpp b/indra/newview/llcurrencyuimanager.cpp
index 979a1a9a60..c4bfd71999 100644
--- a/indra/newview/llcurrencyuimanager.cpp
+++ b/indra/newview/llcurrencyuimanager.cpp
@@ -35,6 +35,8 @@
#include "lluictrlfactory.h"
#include "lltextbox.h"
#include "lllineeditor.h"
+#include "llviewercontrol.h"
+#include "llversionviewer.h"
#include "llcurrencyuimanager.h"
@@ -156,6 +158,11 @@ void LLCurrencyUIManager::Impl::updateCurrencyInfo()
"secureSessionId",
gAgent.getSecureSessionID().asString());
keywordArgs.appendInt("currencyBuy", mUserCurrencyBuy);
+ keywordArgs.appendString("viewerChannel", gSavedSettings.getString("VersionChannelName"));
+ keywordArgs.appendInt("viewerMajorVersion", LL_VERSION_MAJOR);
+ keywordArgs.appendInt("viewerMinorVersion", LL_VERSION_MINOR);
+ keywordArgs.appendInt("viewerPatchVersion", LL_VERSION_PATCH);
+ keywordArgs.appendInt("viewerBuildVersion", LL_VERSION_BUILD);
LLXMLRPCValue params = LLXMLRPCValue::createArray();
params.append(keywordArgs);
@@ -209,7 +216,12 @@ void LLCurrencyUIManager::Impl::startCurrencyBuy(const std::string& password)
{
keywordArgs.appendString("password", password);
}
-
+ keywordArgs.appendString("viewerChannel", gSavedSettings.getString("VersionChannelName"));
+ keywordArgs.appendInt("viewerMajorVersion", LL_VERSION_MAJOR);
+ keywordArgs.appendInt("viewerMinorVersion", LL_VERSION_MINOR);
+ keywordArgs.appendInt("viewerPatchVersion", LL_VERSION_PATCH);
+ keywordArgs.appendInt("viewerBuildVersion", LL_VERSION_BUILD);
+
LLXMLRPCValue params = LLXMLRPCValue::createArray();
params.append(keywordArgs);
diff --git a/indra/newview/lleventinfo.cpp b/indra/newview/lleventinfo.cpp
index 9be45d18fb..aabd7ed997 100644
--- a/indra/newview/lleventinfo.cpp
+++ b/indra/newview/lleventinfo.cpp
@@ -33,7 +33,6 @@
#include "llviewerprecompiledheaders.h"
#include "lleventinfo.h"
-#include "llappviewer.h" // for gPacificDaylightTime
#include "lluuid.h"
#include "message.h"
diff --git a/indra/newview/llexpandabletextbox.cpp b/indra/newview/llexpandabletextbox.cpp
index 48b5fc11b7..7bc48185e6 100644
--- a/indra/newview/llexpandabletextbox.cpp
+++ b/indra/newview/llexpandabletextbox.cpp
@@ -51,7 +51,7 @@ public:
/*virtual*/ void getDimensions(S32 first_char, S32 num_chars, S32& width, S32& height) const
{
// more label always spans width of text box
- width = mEditor.getTextRect().getWidth();
+ width = mEditor.getTextRect().getWidth() - mEditor.getHPad();
height = llceil(mStyle->getFont()->getLineHeight());
}
/*virtual*/ S32 getOffset(S32 segment_local_x_coord, S32 start_offset, S32 num_chars, bool round) const
@@ -153,6 +153,11 @@ void LLExpandableTextBox::LLTextBoxEx::showExpandText()
{
if (!mExpanderVisible)
{
+ // make sure we're scrolled to top when collapsing
+ if (mScroller)
+ {
+ mScroller->goToTop();
+ }
// get fully visible lines
std::pair<S32, S32> visible_lines = getVisibleLines(true);
S32 last_line = visible_lines.second - 1;
diff --git a/indra/newview/llexpandabletextbox.h b/indra/newview/llexpandabletextbox.h
index d45527aabb..3fe646c29c 100644
--- a/indra/newview/llexpandabletextbox.h
+++ b/indra/newview/llexpandabletextbox.h
@@ -69,16 +69,6 @@ protected:
virtual S32 getVerticalTextDelta();
/**
- * Returns text vertical padding
- */
- virtual S32 getVPad() { return mVPad; }
-
- /**
- * Returns text horizontal padding
- */
- virtual S32 getHPad() { return mHPad; }
-
- /**
* Shows "More" link
*/
void showExpandText();
diff --git a/indra/newview/llface.h b/indra/newview/llface.h
index d734b327d9..2b134c8c31 100644
--- a/indra/newview/llface.h
+++ b/indra/newview/llface.h
@@ -246,7 +246,7 @@ protected:
//atlas
LLPointer<LLTextureAtlasSlot> mAtlasInfop ;
- BOOL mUsingAtlas ;
+ BOOL mUsingAtlas ;
protected:
static BOOL sSafeRenderSelect;
diff --git a/indra/newview/llflexibleobject.cpp b/indra/newview/llflexibleobject.cpp
index 216bca8262..fc8790c172 100644
--- a/indra/newview/llflexibleobject.cpp
+++ b/indra/newview/llflexibleobject.cpp
@@ -704,7 +704,7 @@ BOOL LLVolumeImplFlexible::doUpdateGeometry(LLDrawable *drawable)
}
if (volume->mLODChanged || volume->mFaceMappingChanged ||
- volume->mVolumeChanged)
+ volume->mVolumeChanged || drawable->isState(LLDrawable::REBUILD_MATERIAL))
{
volume->regenFaces();
volume->mDrawable->setState(LLDrawable::REBUILD_VOLUME);
diff --git a/indra/newview/llfloaterabout.cpp b/indra/newview/llfloaterabout.cpp
index 63ea990d14..88658f7b9f 100644
--- a/indra/newview/llfloaterabout.cpp
+++ b/indra/newview/llfloaterabout.cpp
@@ -39,6 +39,7 @@
#include "llagent.h"
#include "llappviewer.h"
#include "llsecondlifeurls.h"
+#include "llvoiceclient.h"
#include "lluictrlfactory.h"
#include "llviewertexteditor.h"
#include "llviewercontrol.h"
@@ -268,6 +269,7 @@ LLSD LLFloaterAbout::getInfo()
info["J2C_VERSION"] = LLImageJ2C::getEngineInfo();
bool want_fullname = true;
info["AUDIO_DRIVER_VERSION"] = gAudiop ? LLSD(gAudiop->getDriverName(want_fullname)) : LLSD();
+ info["VIVOX_VERSION"] = gVoiceClient ? gVoiceClient->getAPIVersion() : "Unknown";
// TODO: Implement media plugin version query
info["QT_WEBKIT_VERSION"] = "4.5.2";
diff --git a/indra/newview/llfloaterbump.cpp b/indra/newview/llfloaterbump.cpp
index 8b64f913e0..68f06b1e5b 100644
--- a/indra/newview/llfloaterbump.cpp
+++ b/indra/newview/llfloaterbump.cpp
@@ -40,7 +40,6 @@
#include "llsd.h"
#include "lluictrlfactory.h"
#include "llviewermessage.h"
-#include "llappviewer.h" // gPacificDaylightTime
///----------------------------------------------------------------------------
/// Class LLFloaterBump
diff --git a/indra/newview/llfloatersearch.cpp b/indra/newview/llfloatersearch.cpp
index 4c83530f43..bd9798c18e 100644
--- a/indra/newview/llfloatersearch.cpp
+++ b/indra/newview/llfloatersearch.cpp
@@ -34,6 +34,7 @@
#include "llviewerprecompiledheaders.h"
#include "llfloatersearch.h"
#include "llmediactrl.h"
+#include "llagent.h"
LLFloaterSearch::LLFloaterSearch(const LLSD& key) :
@@ -117,6 +118,14 @@ void LLFloaterSearch::search(const LLSD &key)
std::string search_text = key.has("id") ? key["id"].asString() : "";
url += std::string("?q=") + search_text;
+ // append the maturity and teen capabilities for this agent
+ BOOL godlike = gAgent.isGodlike();
+ bool mature_enabled = gAgent.canAccessMature() || godlike;
+ bool adult_enabled = gAgent.canAccessAdult() || godlike;
+ std::string mature = (mature_enabled) ? "True" : "False";
+ std::string teen = (!adult_enabled) ? "True" : "False";
+ url += "&t=" + teen + "&m=" + mature;
+
// and load the URL in the web view
mBrowser->navigateTo(url);
}
diff --git a/indra/newview/llpanelpicks.cpp b/indra/newview/llpanelpicks.cpp
index aa6909560d..6181531f82 100644
--- a/indra/newview/llpanelpicks.cpp
+++ b/indra/newview/llpanelpicks.cpp
@@ -73,10 +73,10 @@ LLPanelPicks::LLPanelPicks()
mPopupMenu(NULL),
mProfilePanel(NULL),
mPickPanel(NULL),
- mPicksList(NULL)
- , mPanelPickInfo(NULL)
- , mPanelPickEdit(NULL)
- , mOverflowMenu(NULL)
+ mPicksList(NULL),
+ mPanelPickInfo(NULL),
+ mPanelPickEdit(NULL),
+ mOverflowMenu(NULL)
{
}
diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp
index 43b039f94e..9aa74e8b9f 100644
--- a/indra/newview/llstartup.cpp
+++ b/indra/newview/llstartup.cpp
@@ -1149,7 +1149,8 @@ bool idle_startup()
}
//setup map of datetime strings to codes and slt & local time offset from utc
- LLStringOps::setupDatetimeInfo (gPacificDaylightTime);
+ // *TODO: Does this need to be here?
+ LLStringOps::setupDatetimeInfo (false);
transition_back_to_login_panel(emsg.str());
show_connect_box = true;
}
@@ -3037,14 +3038,15 @@ bool process_login_success_response()
gAgent.setGenderChosen(TRUE);
}
+ bool pacific_daylight_time = false;
flag = login_flags["daylight_savings"].asString();
if(flag == "Y")
{
- gPacificDaylightTime = (flag == "Y") ? TRUE : FALSE;
+ pacific_daylight_time = (flag == "Y");
}
//setup map of datetime strings to codes and slt & local time offset from utc
- LLStringOps::setupDatetimeInfo (gPacificDaylightTime);
+ LLStringOps::setupDatetimeInfo(pacific_daylight_time);
}
LLSD initial_outfit = response["initial-outfit"][0];
diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp
index 249b55d2ab..e89f17cf72 100644
--- a/indra/newview/llviewermedia.cpp
+++ b/indra/newview/llviewermedia.cpp
@@ -604,7 +604,7 @@ void LLViewerMedia::updateMedia()
pimpl->setPriority(new_priority);
- if(!pimpl->getUsedInUI())
+ if(pimpl->getUsedInUI())
{
// Any impls used in the UI should not be in the proximity list.
pimpl->mProximity = -1;
@@ -1597,7 +1597,7 @@ LLViewerMediaTexture* LLViewerMediaImpl::updatePlaceholderImage()
//////////////////////////////////////////////////////////////////////////////////////////
-LLUUID LLViewerMediaImpl::getMediaTextureID()
+LLUUID LLViewerMediaImpl::getMediaTextureID() const
{
return mTextureId;
}
@@ -2073,6 +2073,19 @@ const std::list< LLVOVolume* >* LLViewerMediaImpl::getObjectList() const
return &mObjectList ;
}
+LLVOVolume *LLViewerMediaImpl::getSomeObject()
+{
+ LLVOVolume *result = NULL;
+
+ std::list< LLVOVolume* >::iterator iter = mObjectList.begin() ;
+ if(iter != mObjectList.end())
+ {
+ result = *iter;
+ }
+
+ return result;
+}
+
//////////////////////////////////////////////////////////////////////////////////////////
//static
void LLViewerMedia::toggleMusicPlay(void*)
diff --git a/indra/newview/llviewermedia.h b/indra/newview/llviewermedia.h
index ee7f84b4cd..dac0482078 100644
--- a/indra/newview/llviewermedia.h
+++ b/indra/newview/llviewermedia.h
@@ -172,7 +172,7 @@ public:
bool handleUnicodeCharHere(llwchar uni_char);
bool canNavigateForward();
bool canNavigateBack();
- std::string getMediaURL() { return mMediaURL; }
+ std::string getMediaURL() const { return mMediaURL; }
std::string getCurrentMediaURL();
std::string getHomeURL() { return mHomeURL; }
void setHomeURL(const std::string& home_url) { mHomeURL = home_url; };
@@ -181,7 +181,7 @@ public:
void update();
void updateImagesMediaStreams();
- LLUUID getMediaTextureID();
+ LLUUID getMediaTextureID() const;
void suspendUpdates(bool suspend) { mSuspendUpdates = suspend; };
void setVisible(bool visible);
@@ -250,6 +250,7 @@ public:
void addObject(LLVOVolume* obj) ;
void removeObject(LLVOVolume* obj) ;
const std::list< LLVOVolume* >* getObjectList() const ;
+ LLVOVolume *getSomeObject();
void setUpdated(BOOL updated) ;
BOOL isUpdated() ;
diff --git a/indra/newview/llviewermediafocus.cpp b/indra/newview/llviewermediafocus.cpp
index 0ef4679057..2f7040aaa3 100644
--- a/indra/newview/llviewermediafocus.cpp
+++ b/indra/newview/llviewermediafocus.cpp
@@ -50,6 +50,7 @@
#include "llmediaentry.h"
#include "llkeyboard.h"
#include "lltoolmgr.h"
+#include "llvovolume.h"
//
// LLViewerMediaFocus
@@ -473,3 +474,46 @@ LLViewerObject* LLViewerMediaFocus::getHoverObject()
{
return gObjectList.findObject(mHoverObjectID);
}
+
+void LLViewerMediaFocus::focusZoomOnMedia(LLUUID media_id)
+{
+ LLViewerMediaImpl* impl = LLViewerMedia::getMediaImplFromTextureID(media_id);
+
+ if(impl)
+ {
+ // Get the first object from the media impl's object list. This is completely arbitrary, but should suffice.
+ LLVOVolume *obj = impl->getSomeObject();
+ if(obj)
+ {
+ // This media is attached to at least one object. Figure out which face it's on.
+ S32 face = obj->getFaceIndexWithMediaImpl(impl, -1);
+
+ // We don't have a proper pick normal here, and finding a face's real normal is... complicated.
+ // For now, use +z to look at the top of the object.
+ LLVector3 normal(0.0f, 0.0f, 1.0f);
+
+ // Attempt to focus/zoom on that face.
+ setFocusFace(obj, face, impl, normal);
+
+ if(mMediaControls.get())
+ {
+ mMediaControls.get()->resetZoomLevel();
+ mMediaControls.get()->nextZoomLevel();
+ }
+ }
+ }
+}
+
+LLUUID LLViewerMediaFocus::getControlsMediaID()
+{
+ if(getFocusedMediaImpl())
+ {
+ return mFocusedImplID;
+ }
+ else if(getHoverMediaImpl())
+ {
+ return mHoverImplID;
+ }
+
+ return LLUUID::null;
+}
diff --git a/indra/newview/llviewermediafocus.h b/indra/newview/llviewermediafocus.h
index c1179de39d..e5f36d341c 100644
--- a/indra/newview/llviewermediafocus.h
+++ b/indra/newview/llviewermediafocus.h
@@ -81,6 +81,12 @@ public:
LLViewerMediaImpl* getHoverMediaImpl();
LLViewerObject* getHoverObject();
S32 getHoverFace() { return mHoverObjectFace; }
+
+ // Try to focus/zoom on the specified media (if it's on an object in world).
+ void focusZoomOnMedia(LLUUID media_id);
+
+ // Return the ID of the media instance the controls are currently attached to (either focus or hover).
+ LLUUID getControlsMediaID();
protected:
/*virtual*/ void onFocusReceived();
diff --git a/indra/newview/llviewertexture.cpp b/indra/newview/llviewertexture.cpp
index e5c53c91c9..758bf8c1aa 100644
--- a/indra/newview/llviewertexture.cpp
+++ b/indra/newview/llviewertexture.cpp
@@ -93,6 +93,7 @@ BOOL LLViewerTexture::sUseTextureAtlas = FALSE ;
const F32 desired_discard_bias_min = -2.0f; // -max number of levels to improve image quality by
const F32 desired_discard_bias_max = 1.5f; // max number of levels to reduce image quality by
+const F64 log_2 = log(2.0);
//----------------------------------------------------------------------------------------------
//namespace: LLViewerTextureAccess
@@ -134,7 +135,7 @@ LLViewerMediaTexture* LLViewerTextureManager::getMediaTexture(const LLUUID& id,
return tex ;
}
-LLViewerFetchedTexture* LLViewerTextureManager::staticCastToFetchedTexture(LLViewerTexture* tex, BOOL report_error)
+LLViewerFetchedTexture* LLViewerTextureManager::staticCastToFetchedTexture(LLTexture* tex, BOOL report_error)
{
if(!tex)
{
@@ -415,6 +416,7 @@ void LLViewerTexture::init(bool firstinit)
mDontDiscard = FALSE;
mMaxVirtualSize = 0.f;
mNeedsResetMaxVirtualSize = FALSE ;
+ mParcelMedia = NULL ;
}
//virtual
@@ -522,6 +524,12 @@ F32 LLViewerTexture::getMaxVirtualSize()
return mMaxVirtualSize ;
}
+//virtual
+void LLViewerTexture::setKnownDrawSize(S32 width, S32 height)
+{
+ //nothing here.
+}
+
//virtual
void LLViewerTexture::addFace(LLFace* facep)
{
@@ -852,6 +860,7 @@ void LLViewerFetchedTexture::init(bool firstinit)
mKnownDrawWidth = 0;
mKnownDrawHeight = 0;
+ mKnownDrawSizeChanged = FALSE ;
if (firstinit)
{
@@ -1084,10 +1093,17 @@ BOOL LLViewerFetchedTexture::createTexture(S32 usename/*= 0*/)
}
// Call with 0,0 to turn this feature off.
+//virtual
void LLViewerFetchedTexture::setKnownDrawSize(S32 width, S32 height)
{
- mKnownDrawWidth = width;
- mKnownDrawHeight = height;
+ if(mKnownDrawWidth != width || mKnownDrawHeight != height)
+ {
+ mKnownDrawWidth = width;
+ mKnownDrawHeight = height;
+
+ mKnownDrawSizeChanged = TRUE ;
+ mFullyLoaded = FALSE ;
+ }
addTextureStats((F32)(width * height));
}
@@ -1104,13 +1120,26 @@ void LLViewerFetchedTexture::processTextureStats()
mDesiredDiscardLevel = getMaxDiscardLevel() ;
}
else
- {
- mDesiredDiscardLevel = 0;
- if (mFullWidth > MAX_IMAGE_SIZE_DEFAULT || mFullHeight > MAX_IMAGE_SIZE_DEFAULT)
+ {
+ if(!mKnownDrawWidth || !mKnownDrawHeight || mFullWidth <= mKnownDrawWidth || mFullHeight <= mKnownDrawHeight)
{
- mDesiredDiscardLevel = 1; // MAX_IMAGE_SIZE_DEFAULT = 1024 and max size ever is 2048
+ if (mFullWidth > MAX_IMAGE_SIZE_DEFAULT || mFullHeight > MAX_IMAGE_SIZE_DEFAULT)
+ {
+ mDesiredDiscardLevel = 1; // MAX_IMAGE_SIZE_DEFAULT = 1024 and max size ever is 2048
+ }
+ else
+ {
+ mDesiredDiscardLevel = 0;
+ }
}
-
+ else if(mKnownDrawSizeChanged)//known draw size is set
+ {
+ mDesiredDiscardLevel = (S8)llmin(log((F32)mFullWidth / mKnownDrawWidth) / log_2,
+ log((F32)mFullHeight / mKnownDrawHeight) / log_2) ;
+ mDesiredDiscardLevel = llclamp(mDesiredDiscardLevel, (S8)0, (S8)getMaxDiscardLevel()) ;
+ }
+ mKnownDrawSizeChanged = FALSE ;
+
if(getDiscardLevel() >= 0 && (getDiscardLevel() <= mDesiredDiscardLevel))
{
mFullyLoaded = TRUE ;
@@ -1121,8 +1150,6 @@ void LLViewerFetchedTexture::processTextureStats()
//texture does not have any data, so we don't know the size of the image, treat it like 32 * 32.
F32 LLViewerFetchedTexture::calcDecodePriorityForUnknownTexture(F32 pixel_priority)
{
- static const F64 log_2 = log(2.0);
-
F32 desired = (F32)(log(32.0/pixel_priority) / log_2);
S32 ddiscard = MAX_DISCARD_LEVEL - (S32)desired + 1;
ddiscard = llclamp(ddiscard, 1, 9);
@@ -1169,7 +1196,7 @@ F32 LLViewerFetchedTexture::calcDecodePriority()
// Don't decode anything we don't need
priority = -1.0f;
}
- else if (mBoostLevel == LLViewerTexture::BOOST_UI && !have_all_data)
+ else if ((mBoostLevel == LLViewerTexture::BOOST_UI || mBoostLevel == LLViewerTexture::BOOST_ICON) && !have_all_data)
{
priority = 1.f;
}
@@ -2121,22 +2148,29 @@ void LLViewerMediaTexture::updateClass()
{
static const F32 MAX_INACTIVE_TIME = 30.f ;
+#if 0
+ //force to play media.
+ gSavedSettings.setBOOL("AudioSteamingMedia", true) ;
+ gSavedSettings.setBOOL("AudioStreamingVideo", true) ;
+#endif
+
for(media_map_t::iterator iter = sMediaMap.begin() ; iter != sMediaMap.end(); )
{
LLViewerMediaTexture* mediap = iter->second;
-
- //
- //Note: delay some time to delete the media textures to stop endlessly creating and immediately removing media texture.
- //
- if(mediap->getNumRefs() == 1 && mediap->getLastReferencedTimer()->getElapsedTimeF32() > MAX_INACTIVE_TIME) //one by sMediaMap
- {
- media_map_t::iterator cur = iter++ ;
- sMediaMap.erase(cur) ;
- }
- else
+
+ if(mediap->getNumRefs() == 1) //one reference by sMediaMap
{
- ++iter ;
+ //
+ //Note: delay some time to delete the media textures to stop endlessly creating and immediately removing media texture.
+ //
+ if(mediap->getLastReferencedTimer()->getElapsedTimeF32() > MAX_INACTIVE_TIME)
+ {
+ media_map_t::iterator cur = iter++ ;
+ sMediaMap.erase(cur) ;
+ continue ;
+ }
}
+ ++iter ;
}
}
@@ -2189,11 +2223,22 @@ LLViewerMediaTexture::LLViewerMediaTexture(const LLUUID& id, BOOL usemipmaps, LL
mIsPlaying = FALSE ;
setMediaImpl() ;
+
+ LLViewerTexture* tex = gTextureList.findImage(mID) ;
+ if(tex) //this media is a parcel media for tex.
+ {
+ tex->setParcelMedia(this) ;
+ }
}
//virtual
LLViewerMediaTexture::~LLViewerMediaTexture()
{
+ LLViewerTexture* tex = gTextureList.findImage(mID) ;
+ if(tex) //this media is a parcel media for tex.
+ {
+ tex->setParcelMedia(NULL) ;
+ }
}
void LLViewerMediaTexture::reinit(BOOL usemipmaps /* = TRUE */)
@@ -2244,10 +2289,9 @@ BOOL LLViewerMediaTexture::findFaces()
mMediaFaceList.clear() ;
BOOL ret = TRUE ;
-
- //for parcel media
- LLViewerTexture* tex = gTextureList.findImage(mID) ;
- if(tex)
+
+ LLViewerTexture* tex = gTextureList.findImage(mID) ;
+ if(tex) //this media is a parcel media for tex.
{
const ll_face_list_t* face_list = tex->getFaceList() ;
for(ll_face_list_t::const_iterator iter = face_list->begin(); iter != face_list->end(); ++iter)
@@ -2358,7 +2402,7 @@ void LLViewerMediaTexture::addFace(LLFace* facep)
mTextureList.push_back(facep->getTexture()) ; //a parcel media.
return ;
}
-
+
llerrs << "The face does not have a valid texture before media texture." << llendl ;
}
diff --git a/indra/newview/llviewertexture.h b/indra/newview/llviewertexture.h
index 480e1c1cbc..020478beef 100644
--- a/indra/newview/llviewertexture.h
+++ b/indra/newview/llviewertexture.h
@@ -163,6 +163,7 @@ public:
S32 getFullWidth() const { return mFullWidth; }
S32 getFullHeight() const { return mFullHeight; }
+ /*virtual*/ void setKnownDrawSize(S32 width, S32 height);
virtual void addFace(LLFace* facep) ;
virtual void removeFace(LLFace* facep) ;
@@ -220,6 +221,10 @@ public:
BOOL getDontDiscard() const { return mDontDiscard; }
//-----------------
+ void setParcelMedia(LLViewerMediaTexture* media) {mParcelMedia = media;}
+ BOOL hasParcelMedia() const { return mParcelMedia != NULL;}
+ LLViewerMediaTexture* getParcelMedia() const { return mParcelMedia;}
+
/*virtual*/ void updateBindStatsForTester() ;
protected:
void cleanup() ;
@@ -246,6 +251,9 @@ protected:
LLPointer<LLImageGL> mGLTexturep ;
S8 mDontDiscard; // Keep full res version of this image (for UI, etc)
+ //do not use LLPointer here.
+ LLViewerMediaTexture* mParcelMedia ;
+
protected:
typedef enum
{
@@ -357,7 +365,7 @@ public:
// Override the computation of discard levels if we know the exact output
// size of the image. Used for UI textures to not decode, even if we have
// more data.
- void setKnownDrawSize(S32 width, S32 height);
+ /*virtual*/ void setKnownDrawSize(S32 width, S32 height);
void setIsMissingAsset();
/*virtual*/ BOOL isMissingAsset() const { return mIsMissingAsset; }
@@ -406,6 +414,8 @@ private:
BOOL mFullyLoaded;
protected:
+ std::string mLocalFileName;
+
S32 mOrigWidth;
S32 mOrigHeight;
@@ -413,8 +423,7 @@ protected:
// Used for UI textures to not decode, even if we have more data.
S32 mKnownDrawWidth;
S32 mKnownDrawHeight;
-
- std::string mLocalFileName;
+ BOOL mKnownDrawSizeChanged ;
S8 mDesiredDiscardLevel; // The discard level we'd LIKE to have - if we have it and there's space
S8 mMinDesiredDiscardLevel; // The minimum discard level we'd like to have
@@ -570,7 +579,7 @@ public:
static LLTexturePipelineTester* sTesterp ;
//returns NULL if tex is not a LLViewerFetchedTexture nor derived from LLViewerFetchedTexture.
- static LLViewerFetchedTexture* staticCastToFetchedTexture(LLViewerTexture* tex, BOOL report_error = FALSE) ;
+ static LLViewerFetchedTexture* staticCastToFetchedTexture(LLTexture* tex, BOOL report_error = FALSE) ;
//
//"find-texture" just check if the texture exists, if yes, return it, otherwise return null.
diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp
index ba32e07464..b574a9c110 100644
--- a/indra/newview/llviewerwindow.cpp
+++ b/indra/newview/llviewerwindow.cpp
@@ -2424,19 +2424,35 @@ void LLViewerWindow::updateUI()
BOOL handled_by_top_ctrl = FALSE;
LLUICtrl* top_ctrl = gFocusMgr.getTopCtrl();
LLMouseHandler* mouse_captor = gFocusMgr.getMouseCapture();
+ LLView* captor_view = dynamic_cast<LLView*>(mouse_captor);
+
+ //FIXME: only include captor and captor's ancestors if mouse is truly over them --RN
//build set of views containing mouse cursor by traversing UI hierarchy and testing
//screen rect against mouse cursor
view_handle_set_t mouse_hover_set;
- // start at current mouse captor (if is a view) or UI root
- LLView* root_view = NULL;
- root_view = dynamic_cast<LLView*>(mouse_captor);
+ // constraint mouse enter events to children of mouse captor
+ LLView* root_view = captor_view;
+
+ // if mouse captor doesn't exist or isn't a LLView
+ // then allow mouse enter events on entire UI hierarchy
if (!root_view)
{
root_view = mRootView;
}
+ // include all ancestors of captor_view as automatically having mouse
+ if (captor_view)
+ {
+ LLView* captor_parent_view = captor_view->getParent();
+ while(captor_parent_view)
+ {
+ mouse_hover_set.insert(captor_parent_view->getHandle());
+ captor_parent_view = captor_parent_view->getParent();
+ }
+ }
+
// aggregate visible views that contain mouse cursor in display order
// while the top_ctrl contains the mouse cursor, only it and its descendants will receive onMouseEnter events
diff --git a/indra/newview/llvoiceclient.cpp b/indra/newview/llvoiceclient.cpp
index 2834284a9b..df5481c874 100644
--- a/indra/newview/llvoiceclient.cpp
+++ b/indra/newview/llvoiceclient.cpp
@@ -254,6 +254,7 @@ protected:
std::string nameString;
std::string audioMediaString;
std::string displayNameString;
+ std::string deviceString;
int participantType;
bool isLocallyMuted;
bool isModeratorMuted;
@@ -485,6 +486,14 @@ void LLVivoxProtocolParser::StartTag(const char *tag, const char **attr)
{
gVoiceClient->clearRenderDevices();
}
+ else if (!stricmp("CaptureDevice", tag))
+ {
+ deviceString.clear();
+ }
+ else if (!stricmp("RenderDevice", tag))
+ {
+ deviceString.clear();
+ }
else if (!stricmp("Buddies", tag))
{
gVoiceClient->deleteAllBuddies();
@@ -508,7 +517,6 @@ void LLVivoxProtocolParser::StartTag(const char *tag, const char **attr)
void LLVivoxProtocolParser::EndTag(const char *tag)
{
const std::string& string = textBuffer;
- bool clearbuffer = true;
responseDepth--;
@@ -580,6 +588,8 @@ void LLVivoxProtocolParser::EndTag(const char *tag)
nameString = string;
else if (!stricmp("DisplayName", tag))
displayNameString = string;
+ else if (!stricmp("Device", tag))
+ deviceString = string;
else if (!stricmp("AccountName", tag))
nameString = string;
else if (!stricmp("ParticipantType", tag))
@@ -596,18 +606,13 @@ void LLVivoxProtocolParser::EndTag(const char *tag)
uriString = string;
else if (!stricmp("Presence", tag))
statusString = string;
- else if (!stricmp("Device", tag))
- {
- // This closing tag shouldn't clear the accumulated text.
- clearbuffer = false;
- }
else if (!stricmp("CaptureDevice", tag))
{
- gVoiceClient->addCaptureDevice(textBuffer);
+ gVoiceClient->addCaptureDevice(deviceString);
}
else if (!stricmp("RenderDevice", tag))
{
- gVoiceClient->addRenderDevice(textBuffer);
+ gVoiceClient->addRenderDevice(deviceString);
}
else if (!stricmp("Buddy", tag))
{
@@ -648,12 +653,8 @@ void LLVivoxProtocolParser::EndTag(const char *tag)
else if (!stricmp("SubscriptionType", tag))
subscriptionType = string;
-
- if(clearbuffer)
- {
- textBuffer.clear();
- accumulateText= false;
- }
+ textBuffer.clear();
+ accumulateText= false;
if (responseDepth == 0)
{
@@ -1160,7 +1161,8 @@ LLVoiceClient::LLVoiceClient() :
mVoiceEnabled(false),
mWriteInProgress(false),
- mLipSyncEnabled(false)
+ mLipSyncEnabled(false),
+ mAPIVersion("Unknown")
{
gVoiceClient = this;
@@ -3749,6 +3751,7 @@ void LLVoiceClient::connectorCreateResponse(int statusCode, std::string &statusS
{
// Connector created, move forward.
LL_INFOS("Voice") << "Connector.Create succeeded, Vivox SDK version is " << versionID << LL_ENDL;
+ mAPIVersion = versionID;
mConnectorHandle = connectorHandle;
if(getState() == stateConnectorStarting)
{
diff --git a/indra/newview/llvoiceclient.h b/indra/newview/llvoiceclient.h
index bddd18dee8..9df96d9a52 100644
--- a/indra/newview/llvoiceclient.h
+++ b/indra/newview/llvoiceclient.h
@@ -204,6 +204,9 @@ static void updatePosition(void);
void keyDown(KEY key, MASK mask);
void keyUp(KEY key, MASK mask);
void middleMouseState(bool down);
+
+ // Return the version of the Vivox library
+ std::string getAPIVersion() const { return mAPIVersion; }
/////////////////////////////
// Accessors for data related to nearby speakers
@@ -739,6 +742,8 @@ static std::string nameFromsipURI(const std::string &uri);
BOOL mLipSyncEnabled;
+ std::string mAPIVersion;
+
typedef std::set<LLVoiceClientParticipantObserver*> observer_set_t;
observer_set_t mParticipantObservers;
diff --git a/indra/newview/llvopartgroup.cpp b/indra/newview/llvopartgroup.cpp
index 7585842623..143cd2d9c6 100644
--- a/indra/newview/llvopartgroup.cpp
+++ b/indra/newview/llvopartgroup.cpp
@@ -249,6 +249,12 @@ BOOL LLVOPartGroup::updateGeometry(LLDrawable *drawable)
facep->mCenterLocal = part->mPosAgent;
facep->setFaceColor(part->mColor);
facep->setTexture(part->mImagep);
+
+ //check if this particle texture is replaced by a parcel media texture.
+ if(part->mImagep.notNull() && part->mImagep->hasParcelMedia())
+ {
+ part->mImagep->getParcelMedia()->addMediaToFace(facep) ;
+ }
mPixelArea = tot_area * pixel_meter_ratio;
const F32 area_scale = 10.f; // scale area to increase priority a bit
diff --git a/indra/newview/llworldmap.cpp b/indra/newview/llworldmap.cpp
index 829d631473..f198f3a0cf 100644
--- a/indra/newview/llworldmap.cpp
+++ b/indra/newview/llworldmap.cpp
@@ -37,7 +37,6 @@
#include "llregionhandle.h"
#include "message.h"
-#include "llappviewer.h" // for gPacificDaylightTime
#include "llagent.h"
#include "llmapresponders.h"
#include "llviewercontrol.h"
diff --git a/indra/newview/skins/default/textures/icons/ForSale_Badge.png b/indra/newview/skins/default/textures/icons/ForSale_Badge.png
new file mode 100644
index 0000000000..5bee570cee
--- /dev/null
+++ b/indra/newview/skins/default/textures/icons/ForSale_Badge.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/icons/YouAreHere_Badge.png b/indra/newview/skins/default/textures/icons/YouAreHere_Badge.png
new file mode 100644
index 0000000000..c057e9743d
--- /dev/null
+++ b/indra/newview/skins/default/textures/icons/YouAreHere_Badge.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/navbar/BuyArrow_Over.png b/indra/newview/skins/default/textures/navbar/BuyArrow_Over.png
index 7c10aaaead..41cb88628a 100644
--- a/indra/newview/skins/default/textures/navbar/BuyArrow_Over.png
+++ b/indra/newview/skins/default/textures/navbar/BuyArrow_Over.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/navbar/BuyArrow_Press.png b/indra/newview/skins/default/textures/navbar/BuyArrow_Press.png
index 9d7716c6de..a02675502a 100644
--- a/indra/newview/skins/default/textures/navbar/BuyArrow_Press.png
+++ b/indra/newview/skins/default/textures/navbar/BuyArrow_Press.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/textures.xml b/indra/newview/skins/default/textures/textures.xml
index d2c0ab9ae2..c322d2aebb 100644
--- a/indra/newview/skins/default/textures/textures.xml
+++ b/indra/newview/skins/default/textures/textures.xml
@@ -29,9 +29,9 @@
<texture name="BottomTray_BG" file_name="bottomtray/BottomTray_BG.png" preload="false" />
- <texture name="BuyArrow_Off" file_name="navbar/BuyArrow_Off.png" preload="false" />
- <texture name="BuyArrow_Over" file_name="navbar/BuyArrow_Over.png" preload="false" />
- <texture name="BuyArrow_Press" file_name="navbar/BuyArrow_Press.png" preload="false" />
+ <texture name="BuyArrow_Off" file_name="navbar/BuyArrow_Off.png" preload="true" scale.left="1" scale.top="1" scale.right="0" scale.bottom="0" />
+ <texture name="BuyArrow_Over" file_name="navbar/BuyArrow_Over.png" preload="true" scale.left="1" scale.top="1" scale.right="0" scale.bottom="0" />
+ <texture name="BuyArrow_Press" file_name="navbar/BuyArrow_Press.png" preload="true" scale.left="1" scale.top="1" scale.right="0" scale.bottom="0" />
<texture name="Cam_Avatar_Disabled" file_name="bottomtray/Cam_Avatar_Disabled.png" preload="false" />
<texture name="Cam_Avatar_Over" file_name="bottomtray/Cam_Avatar_Over.png" preload="false" />
@@ -93,6 +93,7 @@
<texture name="FileMenu_BarSelect" file_name="navbar/FileMenu_BarSelect.png" preload="false" scale.left="2" scale.top="0" scale.right="2" scale.bottom="0" />
<texture name="FileMenu_BG" file_name="navbar/FileMenu_BG.png" preload="false" />
+ <texture name="ForSale_Badge" file_name="icons/ForSale_Badge.png" preload="false" />
<texture name="ForwardArrow_Off" file_name="icons/ForwardArrow_Off.png" preload="false" />
<texture name="ForwardArrow_Press" file_name="icons/ForwardArrow_Press.png" preload="false" />
@@ -259,6 +260,42 @@
<texture name="Overhead_M" file_name="world/Overhead_M.png" preload="false" />
<texture name="Overhead_S" file_name="world/Overhead_S.png" preload="false" />
+ <texture name="parcel_drk_Build" file_name="icons/parcel_drk_Build.png" preload="false" />
+ <texture name="parcel_drk_BuildNo" file_name="icons/parcel_drk_BuildNo.png" preload="false" />
+ <texture name="parcel_drk_Damage" file_name="icons/parcel_drk_Damage.png" preload="false" />
+ <texture name="parcel_drk_DamageNo" file_name="icons/parcel_drk_DamageNo.png" preload="false" />
+ <texture name="parcel_drk_Fly" file_name="icons/parcel_drk_Fly.png" preload="false" />
+ <texture name="parcel_drk_FlyNo" file_name="icons/parcel_drk_FlyNo.png" preload="false" />
+ <texture name="parcel_drk_ForSale" file_name="icons/parcel_drk_ForSale.png" preload="false" />
+ <texture name="parcel_drk_ForSaleNo" file_name="icons/parcel_drk_ForSaleNo.png" preload="false" />
+ <texture name="parcel_drk_M" file_name="icons/parcel_drk_M.png" preload="false" />
+ <texture name="parcel_drk_PG" file_name="icons/parcel_drk_PG.png" preload="false" />
+ <texture name="parcel_drk_Push" file_name="icons/parcel_drk_Push.png" preload="false" />
+ <texture name="parcel_drk_PushNo" file_name="icons/parcel_drk_PushNo.png" preload="false" />
+ <texture name="parcel_drk_R" file_name="icons/parcel_drk_R.png" preload="false" />
+ <texture name="parcel_drk_Scripts" file_name="icons/parcel_drk_Scripts.png" preload="false" />
+ <texture name="parcel_drk_ScriptsNo" file_name="icons/parcel_drk_ScriptsNo.png" preload="false" />
+ <texture name="parcel_drk_Voice" file_name="icons/parcel_drk_Voice.png" preload="false" />
+ <texture name="parcel_drk_VoiceNo" file_name="icons/parcel_drk_VoiceNo.png" preload="false" />
+
+ <texture name="parcel_lght_Build" file_name="icons/parcel_lght_Build.png" preload="false" />
+ <texture name="parcel_lght_BuildNo" file_name="icons/parcel_lght_BuildNo.png" preload="false" />
+ <texture name="parcel_lght_Damage" file_name="icons/parcel_lght_Damage.png" preload="false" />
+ <texture name="parcel_lght_DamageNo" file_name="icons/parcel_lght_DamageNo.png" preload="false" />
+ <texture name="parcel_lght_Fly" file_name="icons/parcel_lght_Fly.png" preload="false" />
+ <texture name="parcel_lght_FlyNo" file_name="icons/parcel_lght_FlyNo.png" preload="false" />
+ <texture name="parcel_lght_ForSale" file_name="icons/parcel_lght_ForSale.png" preload="false" />
+ <texture name="parcel_lght_ForSaleNo" file_name="icons/parcel_lght_ForSaleNo.png" preload="false" />
+ <texture name="parcel_lght_M" file_name="icons/parcel_lght_M.png" preload="false" />
+ <texture name="parcel_lght_PG" file_name="icons/parcel_lght_PG.png" preload="false" />
+ <texture name="parcel_lght_Push" file_name="icons/parcel_lght_Push.png" preload="false" />
+ <texture name="parcel_lght_PushNo" file_name="icons/parcel_lght_PushNo.png" preload="false" />
+ <texture name="parcel_lght_R" file_name="icons/parcel_lght_R.png" preload="false" />
+ <texture name="parcel_lght_Scripts" file_name="icons/parcel_lght_Scripts.png" preload="false" />
+ <texture name="parcel_lght_ScriptsNo" file_name="icons/parcel_lght_ScriptsNo.png" preload="false" />
+ <texture name="parcel_lght_Voice" file_name="icons/parcel_lght_Voice.png" preload="false" />
+ <texture name="parcel_lght_VoiceNo" file_name="icons/parcel_lght_VoiceNo.png" preload="false" />
+
<texture name="Progress_1" file_name="icons/Progress_1.png" preload="false" />
<texture name="Progress_2" file_name="icons/Progress_2.png" preload="false" />
<texture name="Progress_3" file_name="icons/Progress_3.png" preload="false" />
@@ -447,6 +484,8 @@
<texture name="Window_NoTitle_Foreground" file_name="windows/Window_NoTitle_Foreground.png" preload="true"
scale.left="4" scale.top="24" scale.right="26" scale.bottom="4" />
+ <texture name="YouAreHere_Badge" file_name="icons/YouAreHere_Badge.png" preload="false" />
+
<!--WARNING OLD ART *do not use*-->
<texture name="btn_chatbar.tga" scale.left="20" scale.top="24" scale.right="44" scale.bottom="0" />
diff --git a/indra/newview/skins/default/xui/en/floater_about.xml b/indra/newview/skins/default/xui/en/floater_about.xml
index 02c6ed1b20..3f2636ae52 100644
--- a/indra/newview/skins/default/xui/en/floater_about.xml
+++ b/indra/newview/skins/default/xui/en/floater_about.xml
@@ -49,6 +49,7 @@ libcurl Version: [LIBCURL_VERSION]
J2C Decoder Version: [J2C_VERSION]
Audio Driver Version: [AUDIO_DRIVER_VERSION]
Qt Webkit Version: [QT_WEBKIT_VERSION]
+Vivox Version: [VIVOX_VERSION]
</floater.string>
<floater.string
name="none">
diff --git a/indra/newview/skins/default/xui/en/floater_about_land.xml b/indra/newview/skins/default/xui/en/floater_about_land.xml
index c245f877c7..e13aa610e5 100644
--- a/indra/newview/skins/default/xui/en/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/en/floater_about_land.xml
@@ -26,26 +26,28 @@
remaining
</floater.string>
<tab_container
- follows="left|top|right|bottom"
+ follows="all"
height="400"
+ halign="center"
layout="topleft"
font="SansSerifSmall"
left="1"
- tab_padding_right="5"
+ tab_padding_right="5"
+ tab_height="20"
name="landtab"
tab_position="top"
top="20"
width="459">
- <panel
+ <panel
border="true"
- follows="left|top|right|bottom"
+ follows="all"
height="380"
label="General"
layout="topleft"
left="1"
help_topic="land_general_tab"
name="land_general_panel"
- top="-31"
+ top="0"
width="458">
<panel.string
name="new users only">
@@ -534,7 +536,7 @@ Go to World menu &gt; About Land or select another parcel to show its details.
</panel>
<panel
border="true"
- follows="left|top|right|bottom"
+ follows="all"
height="380"
label="Covenant"
layout="topleft"
@@ -630,7 +632,7 @@ Go to World menu &gt; About Land or select another parcel to show its details.
length="1"
enabled="false"
follows="left|top|right|bottom"
- handle_edit_keys_directly="true"
+ handle_edit_keys_directly="true"
height="115"
layout="topleft"
left_delta="0"
@@ -801,7 +803,7 @@ Go to World menu &gt; About Land or select another parcel to show its details.
</panel>
<panel
border="true"
- follows="left|top|right|bottom"
+ follows="all"
height="380"
label="Objects"
layout="topleft"
@@ -1167,7 +1169,7 @@ Go to World menu &gt; About Land or select another parcel to show its details.
</panel>
<panel
border="true"
- follows="left|top|right|bottom"
+ follows="all"
height="333"
label="Options"
layout="topleft"
@@ -1603,16 +1605,15 @@ Only large parcels can be listed in search.
value="Anywhere" />
</combo_box>
</panel>
- <panel
+ <panel
border="true"
- follows="left|top|right|bottom"
+ follows="all"
height="363"
label="Media"
layout="topleft"
left_delta="0"
help_topic="land_media_tab"
name="land_media_panel"
- top_delta="1"
width="458">
<text
type="string"
@@ -1623,24 +1624,22 @@ Only large parcels can be listed in search.
left="10"
name="with media:"
top="9"
- width="65">
+ width="100">
Type:
</text>
<combo_box
- height="18"
+ height="20"
layout="topleft"
- left_pad="5"
+ left_pad="10"
name="media type"
tool_tip="Specify if the URL is a movie, web page, or other media"
- top_delta="-2"
- width="120" />
+ width="150" />
<text
follows="left|top"
height="16"
layout="topleft"
left_pad="10"
name="mime_type"
- top_delta="2"
width="200" />
<text
type="string"
@@ -1650,32 +1649,30 @@ Only large parcels can be listed in search.
layout="topleft"
left="10"
name="at URL:"
- top="29"
- width="65">
+ top_pad="10"
+ width="100">
Home URL:
</text>
<line_editor
- bottom_delta="0"
follows="left|top"
- height="16"
+ height="20"
layout="topleft"
- left="80"
+ left_pad="10"
max_length="255"
name="media_url"
- right="-80"
select_on_focus="true"
- text_readonly_color="0.576471 0.662745 0.835294 1" />
+ width="270"
+ />
<button
follows="left|top"
font="SansSerifSmall"
- height="16"
- label="Set..."
- label_selected="Set..."
+ height="20"
+ label="Set"
+ label_selected="Set"
layout="topleft"
- left_pad="8"
+ left_pad="5"
name="set_media_url"
- top_delta="0"
- width="60" />
+ width="50" />
<text
type="string"
length="1"
@@ -1684,37 +1681,34 @@ Only large parcels can be listed in search.
layout="topleft"
left="10"
name="CurrentURL:"
- top="49"
- width="65">
+ top_pad="10"
+ width="100">
Current URL:
</text>
<text
follows="left|top"
height="16"
layout="topleft"
- left_pad="5"
+ left_pad="10"
name="current_url"
- top_delta="0"
- width="300" />
+ width="260">http://</text>
<button
follows="left|top"
- font="SansSerifSmall"
- height="16"
- label="Reset..."
- label_selected="Reset..."
+ height="20"
+ label="Reset"
+ label_selected="Reset"
layout="topleft"
left_pad="6"
name="reset_media_url"
- top_delta="0"
width="60" />
<check_box
height="16"
label="Hide URL"
layout="topleft"
- left="100"
+ left="120"
name="hide_media_url"
tool_tip="Checking this option will hide the media url to any non-authorized viewers of this parcel information. Note this is not available for HTML types."
- top="89"
+ top_pad="2"
width="200" />
<text
type="string"
@@ -1724,23 +1718,20 @@ Only large parcels can be listed in search.
layout="topleft"
left="10"
name="Description:"
- top="49"
- width="364">
+ top_pad="10"
+ width="100">
Description:
</text>
<line_editor
- border_style="line"
- border_thickness="1"
- bottom_delta="0"
follows="left|top"
- height="16"
+ height="35"
layout="topleft"
- left="80"
- max_length="255"
name="url_description"
- right="-80"
+ left_pad="10"
select_on_focus="true"
- tool_tip="Text displayed next to play/load button" />
+ tool_tip="Text displayed next to play/load button"
+ top_delta="0"
+ width="270" />
<text
type="string"
length="1"
@@ -1749,10 +1740,9 @@ Only large parcels can be listed in search.
layout="topleft"
left="10"
name="Media texture:"
- top="69"
- width="364">
- Replace
-Texture:
+ top_pad="10"
+ width="100">
+ Replace Texture:
</text>
<texture_picker
allow_no_texture="true"
@@ -1760,7 +1750,7 @@ Texture:
follows="left|top"
height="80"
layout="topleft"
- left_delta="70"
+ left_pad="10"
name="media texture"
tool_tip="Click to choose a picture"
top_delta="0"
@@ -1769,25 +1759,22 @@ Texture:
type="string"
length="1"
follows="left|top"
- height="16"
+ height="50"
layout="topleft"
- left_delta="75"
+ left_pad="10"
name="replace_texture_help"
- top="85"
- width="270">
- Objects using this texture will show the movie or
- web page after you click the play arrow.
-
- Select the thumbnail to choose a different texture.
+ top_delta="0"
+ word_wrap="true"
+ width="240">
+ Objects using this texture will show the movie or web page after you click the play arrow.
</text>
<check_box
height="16"
label="Auto scale"
layout="topleft"
- left_delta="70"
name="media_auto_scale"
tool_tip="Checking this option will scale the content for this parcel automatically. It may be slightly slower and lower quality visually but no other texture scaling or alignment will be required."
- top_delta="0"
+ top_pad="3"
width="200" />
<text
type="string"
@@ -1795,11 +1782,11 @@ Texture:
follows="left|top"
height="16"
layout="topleft"
- left="85"
+ left="10"
+ top_pad="10"
name="media_size"
tool_tip="Size to render Web media, leave 0 for default."
- top="185"
- width="85">
+ width="100">
Size:
</text>
<spinner
@@ -1811,12 +1798,22 @@ Texture:
increment="1"
initial_value="0"
layout="topleft"
- left_delta="65"
+ left_pad="10"
max_val="1024"
name="media_size_width"
tool_tip="Size to render Web media, leave 0 for default."
top_delta="0"
width="64" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_pad="5"
+ name="pixels">
+ px wide
+ </text>
<spinner
decimal_digits="0"
enabled="false"
@@ -1826,23 +1823,21 @@ Texture:
increment="1"
initial_value="0"
layout="topleft"
- left_pad="16"
+ left="120"
+ top_pad="3"
max_val="1024"
name="media_size_height"
tool_tip="Size to render Web media, leave 0 for default."
- top_delta="0"
width="64" />
<text
type="string"
length="1"
- bottom_delta="0"
follows="left|top"
height="16"
layout="topleft"
- left_delta="70"
- name="pixels"
- right="-10">
- pixels
+ left_pad="5"
+ name="pixels">
+ px high
</text>
<text
type="string"
@@ -1852,15 +1847,15 @@ Texture:
layout="topleft"
left="10"
name="Options:"
- top="237"
- width="292">
+ top_pad="10"
+ width="100">
Options:
</text>
<check_box
height="16"
label="Loop"
layout="topleft"
- left_delta="70"
+ left_pad="10"
name="media_loop"
tool_tip="Play media in a loop. When the media has finished playing, it will restart from the beginning."
top_delta="0"
@@ -1868,9 +1863,9 @@ Texture:
</panel>
<panel
border="true"
- follows="left|top|right|bottom"
+ follows="all"
height="363"
- label="Audio"
+ label="Sound"
layout="topleft"
left_delta="0"
help_topic="land_audio_tab"
@@ -1972,7 +1967,7 @@ Texture:
</panel>
<panel
border="true"
- follows="left|top|right|bottom"
+ follows="all"
height="333"
label="Access"
layout="topleft"
diff --git a/indra/newview/skins/default/xui/en/floater_inventory.xml b/indra/newview/skins/default/xui/en/floater_inventory.xml
index 2011635790..dfa6c83b4e 100644
--- a/indra/newview/skins/default/xui/en/floater_inventory.xml
+++ b/indra/newview/skins/default/xui/en/floater_inventory.xml
@@ -42,13 +42,15 @@
top="34"
width="455" />
<tab_container
- follows="left|top|right|bottom"
+ follows="all"
height="508"
+ halign="center"
layout="topleft"
left_delta="-4"
name="inventory filter tabs"
tab_position="top"
- top_pad="4"
+ tab_height="20"
+ top_pad="5"
width="463">
<inventory_panel
follows="left|top|right|bottom"
diff --git a/indra/newview/skins/default/xui/en/floater_test_widgets.xml b/indra/newview/skins/default/xui/en/floater_test_widgets.xml
index 12d7e18762..129fd863dd 100644
--- a/indra/newview/skins/default/xui/en/floater_test_widgets.xml
+++ b/indra/newview/skins/default/xui/en/floater_test_widgets.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<!-- Sample "floater" window with examples of common widgets.
+<!-- Sample "floater" window with examples of common widgets.
Notes:
XML UI (XUI) files use spaces for indentation, not tabs.
@@ -16,17 +16,17 @@
-->
<floater
legacy_header_height="18"
- can_dock="true"
+ can_dock="true"
can_resize="true"
title="Test Floater"
height="500"
- min_width="850"
- min_height="500"
+ min_width="850"
+ min_height="500"
layout="topleft"
name="floater_test_widgets"
help_topic="floater_test_widgets"
width="850">
-
+
<!-- Strings are used by C++ code for localization. They are not visible
unless the C++ code uses them to fill in another widget. -->
<floater.string
@@ -35,15 +35,15 @@
<floater.string
name="other_string"
value="Other String" />
-
+
<!-- Floaters can contain drop-down menus.
The menu_bar widget contains the inividual menus.
The width is automatically computed to fit the labels. -->
<menu_bar
height="18"
layout="topleft"
- follows="top|left"
- tool_tip="menu"
+ follows="top|left"
+ tool_tip="menu"
left="2"
name="test_menu_bar"
top="16">
@@ -71,7 +71,7 @@
name="test_menu_item_2" />
</menu>
</menu_bar>
-
+
<!-- "text" is one or more read-only lines of text.
It can be made clickable but this requires C++ code
support. URLs are not automatically underlined. -->
@@ -85,27 +85,27 @@
</text>
<!-- First column -->
-
+
<button
height="20"
- follows="top|left"
+ follows="top|left"
label="Button"
layout="topleft"
left_delta="0"
name="test_button"
- tool_tip="button"
+ tool_tip="button"
top="80"
- width="100" />
+ width="100" />
<!-- "flyout_button" is a button that can spawn a menu -->
<flyout_button
- follows="top|left"
+ follows="top|left"
height="20"
label="Flyout"
layout="topleft"
left_delta="0"
name="fly_btn"
top_pad="15"
- tool_tip="flyout button"
+ tool_tip="flyout button"
width="100">
<flyout_button.item
label="Item 1"
@@ -121,19 +121,19 @@
bottom_delta="35"
label="Checkbox"
layout="topleft"
- tool_tip="checkbox"
+ tool_tip="checkbox"
name="test_checkbox" />
<!-- "combo_box" is a pop-menu of items. Optionally the box itself can
contain a general purpose line input editor, allowing the user to
provide input that is not a list item. -->
<combo_box
bottom_delta="35"
- follows="top|left"
+ follows="top|left"
height="16"
width="150"
label="Combobox"
layout="topleft"
- tool_tip="combo box"
+ tool_tip="combo box"
name="test_combo_box">
<combo_box.item
name="item1"
@@ -149,21 +149,21 @@
image_name="icon_avatar_online.tga"
layout="topleft"
left_delta="0"
- tool_tip="icon"
+ tool_tip="icon"
name="test_icon"
top_pad="40"
width="16" />
- <!-- "line_editor" allows a single line of editable text input.
+ <!-- "line_editor" allows a single line of editable text input.
The contents of this XML node are used as the initial value for
the text. -->
<line_editor
height="20"
- follows="top|left"
+ follows="top|left"
layout="topleft"
left_delta="0"
name="test_line_editor"
top_pad="20"
- tool_tip="line editor"
+ tool_tip="line editor"
width="200">
Line Editor Sample Text
</line_editor>
@@ -176,18 +176,18 @@
layout="topleft"
left_delta="0"
name="search editor"
- tool_tip="search editor"
+ tool_tip="search editor"
top_pad="30"
width="200" />
<!-- "progress_bar" percent completed gets set in C++ code -->
<progress_bar
height="16"
- follows="top|left"
+ follows="top|left"
layout="topleft"
left_delta="0"
name="test_progress_bar"
top_pad="30"
- tool_tip="progress bar"
+ tool_tip="progress bar"
width="200" />
<!-- "stat_view" is a container for statistics graphs. It is only used
for debugging/diagnostic displays. -->
@@ -199,10 +199,10 @@
name="axis_view"
show_label="true"
top_pad="30"
- tool_tip="stat view"
+ tool_tip="stat view"
width="200">
<stat_bar
- width="100"
+ width="100"
bar_max="100"
bottom_delta="30"
label="Test Stat"
@@ -211,9 +211,9 @@
bar_min="20"
name="test_stat_bar" />
</stat_view>
-
+
<!-- New column -->
-
+
<!-- "radio_group" is a set of mutually exclusive choices, like the buttons
on a car radio that allow a single radio station to be chosen. -->
<radio_group
@@ -221,7 +221,7 @@
layout="topleft"
left_pad="90"
name="size_radio_group"
- tool_tip="radio group"
+ tool_tip="radio group"
top="80"
width="200">
<radio_item
@@ -237,10 +237,10 @@
<!-- "scroll_list" is a scrolling list of columnar data. -->
<scroll_list
bottom_delta="100"
- follows="top|left"
+ follows="top|left"
height="80"
draw_heading="true"
- tool_tip="scroll list"
+ tool_tip="scroll list"
layout="topleft">
<scroll_list.columns
dynamic_width="true"
@@ -262,29 +262,29 @@
<!-- "slider" is a horizontal input widget for numerical data. -->
<slider
bottom_delta="45"
- follows="top|left"
+ follows="top|left"
layout="topleft"
min_val="0"
max_val="100"
initial_value="20"
label="Slider"
name="test_slider"
- tool_tip="slider"
+ tool_tip="slider"
width="200" />
<!-- "spinner" is a numerical input widget with an up and down arrow to
change the value. -->
<spinner
bottom_delta="35"
- follows="top|left"
+ follows="top|left"
label="Spinner"
layout="topleft"
- label_width="45"
- name="test_spinner"
+ label_width="45"
+ name="test_spinner"
tool_tip="spinner"/>
<text
bottom_delta="50"
- follows="top|left"
- font.name="SansSerifSmall"
+ follows="top|left"
+ font.name="SansSerifSmall"
font.style = "UNDERLINE"
layout="topleft"
name="test_text"
@@ -293,23 +293,23 @@
</text>
<text
top_pad="10"
- follows="top|left"
+ follows="top|left"
layout="topleft"
- width="60"
- use_ellipses="true"
+ width="60"
+ use_ellipses="true"
name="test_text"
tool_tip="text">
Truncated text here
</text>
- <!-- "text_editor" is a multi-line text input widget, similar to
+ <!-- "text_editor" is a multi-line text input widget, similar to
textarea in HTML. -->
<text_editor
height="40"
- follows="top|left|bottom"
+ follows="top|left|bottom"
layout="topleft"
left_delta="0"
name="test_text_editor"
- tool_tip="text editor"
+ tool_tip="text editor"
top_pad="25"
width="200">
Text Editor
@@ -330,17 +330,19 @@ many
line to actually fit
</text>
<!-- And a third column -->
-
+
<!-- "tab_container" is a holder for multiple panels of UI widgets.
Tabs can appear at the top, bottom, or left of the container. -->
<tab_container
follows="all"
height="400"
+ halign="center"
layout="topleft"
left="575"
name="group_tab_container"
tab_position="top"
- tool_tip="tab container"
+ tab_height="20"
+ tool_tip="tab container"
top="80"
width="250">
<!-- "panel" is a container for widgets. It is automatically resized to
diff --git a/indra/newview/skins/default/xui/en/floater_tools.xml b/indra/newview/skins/default/xui/en/floater_tools.xml
index e6ac39e40b..ca12538302 100644
--- a/indra/newview/skins/default/xui/en/floater_tools.xml
+++ b/indra/newview/skins/default/xui/en/floater_tools.xml
@@ -4,8 +4,8 @@
follows="left|top|right"
height="570"
layout="topleft"
- bg_opaque_image="Window_NoTitle_Foreground"
- bg_alpha_image="Window_NoTitle_Background"
+ bg_opaque_image="Window_NoTitle_Foreground"
+ bg_alpha_image="Window_NoTitle_Background"
name="toolbox floater"
help_topic="toolbox_floater"
save_rect="true"
@@ -749,6 +749,7 @@
<tab_container
follows="left|top"
height="400"
+ halign="center"
left="0"
name="Object Info Tabs"
tab_max_width="55"
@@ -2739,8 +2740,8 @@
function="BuildTool.EditMedia"/>
</button>
<web_browser
- visible="false"
- enabled="false"
+ visible="false"
+ enabled="false"
border_visible="true"
bottom_delta="0"
follows="top|left"
diff --git a/indra/newview/skins/default/xui/en/floater_water.xml b/indra/newview/skins/default/xui/en/floater_water.xml
index 9c55e8ea16..af3606fd1c 100644
--- a/indra/newview/skins/default/xui/en/floater_water.xml
+++ b/indra/newview/skins/default/xui/en/floater_water.xml
@@ -62,10 +62,12 @@
<tab_container
follows="left|top"
height="180"
+ halign="center"
layout="topleft"
left="0"
name="Water Tabs"
tab_position="top"
+ tab_height="20"
top="60"
width="700">
<panel
diff --git a/indra/newview/skins/default/xui/en/floater_windlight_options.xml b/indra/newview/skins/default/xui/en/floater_windlight_options.xml
index 0ea769921f..2c09e82f08 100644
--- a/indra/newview/skins/default/xui/en/floater_windlight_options.xml
+++ b/indra/newview/skins/default/xui/en/floater_windlight_options.xml
@@ -71,10 +71,12 @@
<tab_container
follows="left|top"
height="160"
+ halign="center"
layout="topleft"
left="0"
name="WindLight Tabs"
tab_position="top"
+ tab_height="20"
top="60"
width="700">
<panel
diff --git a/indra/newview/skins/default/xui/en/fonts.xml b/indra/newview/skins/default/xui/en/fonts.xml
index b261281c64..65dfb13f4a 100644
--- a/indra/newview/skins/default/xui/en/fonts.xml
+++ b/indra/newview/skins/default/xui/en/fonts.xml
@@ -18,7 +18,7 @@
</os>
</font>
- <font name="SansSerifBold"
+ <font name="SansSerifBold"
comment="Name of bold sans-serif font">
<file>DejaVuSans-Bold.ttf</file>
<os name="Windows">
@@ -39,20 +39,20 @@
</os>
</font>
- <font name="SansSerif"
- comment="Name of bold sans-serif font"
+ <font name="SansSerif"
+ comment="Name of bold sans-serif font"
font_style="BOLD">
<file>DejaVuSans-Bold.ttf</file>
</font>
- <font name="SansSerif"
- comment="Name of italic sans-serif font"
+ <font name="SansSerif"
+ comment="Name of italic sans-serif font"
font_style="ITALIC">
<file>DejaVuSans-Oblique.ttf</file>
</font>
- <font name="SansSerif"
- comment="Name of bold italic sans-serif font"
+ <font name="SansSerif"
+ comment="Name of bold italic sans-serif font"
font_style="BOLD|ITALIC">
<file>DejaVuSans-BoldOblique.ttf</file>
</font>
@@ -140,11 +140,11 @@
<font_size name="Monospace"
comment="Size for monospaced font (points, or 1/72 of an inch)"
- size="9.0"
+ size="8.0"
/>
<font_size name="Huge"
comment="Size of huge font (points, or 1/72 of an inch)"
- size="16.0"
+ size="15.0"
/>
<font_size name="Large"
comment="Size of large font (points, or 1/72 of an inch)"
@@ -158,7 +158,6 @@
/>
<font_size name="Small"
comment="Size of small font (points, or 1/72 of an inch)"
- size="8.0"
+ size="7.8"
/>
</fonts>
-
diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml
index 9aacb8a92c..d51cb13093 100644
--- a/indra/newview/skins/default/xui/en/notifications.xml
+++ b/indra/newview/skins/default/xui/en/notifications.xml
@@ -13,7 +13,7 @@
<global name="implicitclosebutton">
Close
</global>
-
+
<template name="okbutton">
<form>
<button
@@ -154,7 +154,7 @@ No tutorial is currently available.
icon="alertmodal.tga"
name="BadInstallation"
type="alertmodal">
- An error occurred while updating [APP_NAME]. Please download the latest version of the Viewer. http://get.secondlife.com
+ An error occurred while updating [APP_NAME]. Please [http://get.secondlife.com download the latest version] of the Viewer.
<usetemplate
name="okbutton"
yestext="Ok"/>
@@ -507,7 +507,7 @@ For L$[COST] you can enter this land (&apos;[PARCEL_NAME]&apos;) for [TIME] hour
notext="Cancel"
yestext="OK"/>
</notification>
-
+
<notification
icon="alertmodal.tga"
name="SalePriceRestriction"
@@ -664,7 +664,7 @@ Scripts must be allowed to run for weapons to work.
icon="alertmodal.tga"
name="MultipleFacesSelected"
type="alertmodal">
-Multiple faces are currently selected.
+Multiple faces are currently selected.
If you continue this action, separate instances of media will be set on multiple faces of the object.
To place the media on only one face, choose Select Texture and click on the desired face of that object then click Add.
<usetemplate
@@ -791,7 +791,7 @@ Oops! Something was left blank.
You need to enter both the First and Last name of your avatar.
You need an account to enter [SECOND_LIFE]. Would you like to create one now?
- <url
+ <url
option="0"
name="url"
openexternally = "1">
@@ -808,7 +808,7 @@ You need an account to enter [SECOND_LIFE]. Would you like to create one now?
icon="alertmodal.tga"
name="AddClassified"
type="alertmodal">
-Classified ads appear in the &apos;Classified&apos; section of the Search directory and on www.secondlife.com for one week.
+Classified ads appear in the &apos;Classified&apos; section of the Search directory and on [http://www.secondlife.com secondlife.com] for one week.
Fill out your ad, then click &apos;Publish...&apos; to add it to the directory.
You&apos;ll be asked for a price to pay when clicking Publish.
Paying more makes your ad appear higher in the list, and also appear higher when people search for keywords.
@@ -1060,13 +1060,13 @@ There was a problem saving a compiled script due to the following reason: [REASO
icon="alertmodal.tga"
name="StartRegionEmpty"
type="alertmodal">
-Oops, Your Start Region is not defined.
-Please type the Region name in Start Location box or choose My Last Location or My Home as your Start Location.
+Oops, Your Start Region is not defined.
+Please type the Region name in Start Location box or choose My Last Location or My Home as your Start Location.
<usetemplate
name="okbutton"
yestext="OK"/>
</notification>
-
+
<notification
icon="alertmodal.tga"
name="CouldNotStartStopScript"
@@ -2409,7 +2409,7 @@ You can use [SECOND_LIFE] normally and other people will see you correctly.
[APP_NAME] installation is complete.
If this is your first time using [SECOND_LIFE], you will need to create an account before you can log in.
-Return to www.secondlife.com to create a new account?
+Return to [http://join.secondlife.com secondlife.com] to create a new account?
<usetemplate
name="okcancelbuttons"
notext="Continue"
@@ -2426,7 +2426,7 @@ You can either check your Internet connection and try again in a few minutes, cl
<url option="1" name="url">
http://secondlife.com/support/
- </url>
+ </url>
<form name="form">
<button
default="true"
@@ -2801,7 +2801,7 @@ Do you want to open your Web browser to view this content?
icon="alertmodal.tga"
name="WebLaunchJoinNow"
type="alertmodal">
-Go to secondlife.com to manage your account?
+Go to your [http://secondlife.com/account/ Dashboard] to manage your account?
<usetemplate
ignoretext="Launch my browser to manage my account"
name="okcancelignore"
@@ -3163,7 +3163,7 @@ Teleport to [PICK]?
notext="Cancel"
yestext="Teleport"/>
</notification>
-
+
<notification
icon="alert.tga"
label="Message everyone in your Estate"
@@ -3657,7 +3657,7 @@ Default: off
label="Bulk Change Content Permissions"
name="HelpBulkPermission"
type="alertmodal">
-The Bulk Permissions tool helps you to quickly change the permissions on multiple items in the contents of the selected object(s). However, please note that you are only setting permissions on the items in the Contents of the selected objects -- not permissions on the container object(s) themselves.
+The Bulk Permissions tool helps you to quickly change the permissions on multiple items in the contents of the selected object(s). However, please note that you are only setting permissions on the items in the Contents of the selected objects -- not permissions on the container object(s) themselves.
Also note, the permissions are not applied to the nested contents of any of the contained items. Your request only operates on items exactly one level deep.
@@ -4251,7 +4251,7 @@ There are no items in this object that you are allowed to copy.
icon="alertmodal.tga"
name="WebLaunchAccountHistory"
type="alertmodal">
-Go to secondlife.com to see your account history?
+Go to your [http://secondlife.com/account/ Dashboard] to see your account history?
<usetemplate
ignoretext="Launch my browser to see my account history"
name="okcancelignore"
@@ -4288,14 +4288,9 @@ Are you sure you want to quit?
icon="alertmodal.tga"
name="HelpReportAbuseEmailLL"
type="alertmodal">
-Use this tool to report violations of the Terms of Service and Community Standards. See:
-
-http://secondlife.com/corporate/tos.php
-http://secondlife.com/corporate/cs.php
+Use this tool to report violations of the [http://secondlife.com/corporate/tos.php Terms of Service] and [http://secondlife.com/corporate/cs.php Community Standards].
-All reported abuses of the Terms of Service and Community Standards are investigated and resolved. You can view the incident resolution on the Incident Report at:
-
-http://secondlife.com/support/incidentreport.php
+All reported abuses are investigated and resolved. You can view the resolution by reading the [http://secondlife.com/support/incidentreport.php Incident Report].
<unique/>
</notification>
@@ -4363,9 +4358,9 @@ Dear Resident,
You appear to be reporting intellectual property infringement. Please make sure you are reporting it correctly:
-(1) The Abuse Process. You may submit an abuse report if you believe a Resident is exploiting the [SECOND_LIFE] permissions system, for example, by using CopyBot or similar copying tools, to infringe intellectual property rights. The Abuse Team investigates and issues appropriate disciplinary action for behavior that violates the [SECOND_LIFE] Community Standards or Terms of Service. However, the Abuse Team does not handle and will not respond to requests to remove content from the [SECOND_LIFE] world.
+(1) The Abuse Process. You may submit an abuse report if you believe a Resident is exploiting the [SECOND_LIFE] permissions system, for example, by using CopyBot or similar copying tools, to infringe intellectual property rights. The Abuse Team investigates and issues appropriate disciplinary action for behavior that violates the [SECOND_LIFE] [http://secondlife.com/corporate/tos.php Terms of Service] or [http://secondlife.com/corporate/cs.php Community Standards]. However, the Abuse Team does not handle and will not respond to requests to remove content from the [SECOND_LIFE] world.
-(2) The DMCA or Content Removal Process. To request removal of content from [SECOND_LIFE], you MUST submit a valid notification of infringement as provided in our DMCA Policy at http://secondlife.com/corporate/dmca.php.
+(2) The DMCA or Content Removal Process. To request removal of content from [SECOND_LIFE], you MUST submit a valid notification of infringement as provided in our [http://secondlife.com/corporate/dmca.php DMCA Policy].
If you still wish to continue with the abuse process, please close this window and finish submitting your report. You may need to select the specific category &apos;CopyBot or Permissions Exploit&apos;.
@@ -5463,7 +5458,7 @@ Deactivated gestures with same trigger:
name="NoQuickTime"
type="notify">
Apple&apos;s QuickTime software does not appear to be installed on your system.
-If you want to view streaming media on parcels that support it you should go to the QuickTime site (http://www.apple.com/quicktime) and install the QuickTime Player.
+If you want to view streaming media on parcels that support it you should go to the [http://www.apple.com/quicktime QuickTime site] and install the QuickTime Player.
</notification>
<notification
icon="notify.tga"
@@ -5527,7 +5522,7 @@ The objects on the selected parcel that are NOT owned by you have been returned
type="notify">
[MSG]
</notification>
-
+
<notification
icon="notify.tga"
name="NotSafe"
@@ -6149,7 +6144,7 @@ Thank you for your payment!
Your L$ balance will be updated when processing completes. If processing takes more than 20 mins, your transaction may be cancelled. In that case, the purchase amount will be credited to your US$ balance.
-The status of your payment can be checked on your Transaction History page at Me > My Dashboard, or http://secondlife.com/account/
+The status of your payment can be checked on your Transaction History page on your [http://secondlife.com/account/ Dashboard]
</notification>
<notification
icon="notify.tga"
@@ -6603,12 +6598,11 @@ Yes
<global name="PermNo">
No
</global>
-<!-- this is alert string from server. the name needs to match entire the server string, and needs to be changed
- whenever the server string changes -->
+<!-- this is alert string from server. the name needs to match entire the server string, and needs to be changed
+ whenever the server string changes -->
<global name="You can only set your 'Home Location' on your land or at a mainland Infohub.">
-If you own a piece of land, you can make it your home location.
+If you own a piece of land, you can make it your home location.
Otherwise, you can look at the Map and find places marked &quot;Infohub&quot;.
- </global>
-
-</notifications>
+ </global>
+</notifications>
diff --git a/indra/newview/skins/default/xui/en/panel_activeim_row.xml b/indra/newview/skins/default/xui/en/panel_activeim_row.xml
index 4dc4a9ff46..8b815b0f71 100644
--- a/indra/newview/skins/default/xui/en/panel_activeim_row.xml
+++ b/indra/newview/skins/default/xui/en/panel_activeim_row.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<panel
+<panel
name="panel_activeim_row"
layout="topleft"
follows="left|right"
@@ -7,56 +7,51 @@
left="0"
height="35"
width="318"
- background_visible="true"
- bevel_style="in"
- bg_alpha_color="0 0 0 0">
+ background_visible="false">
<chiclet_im_p2p
name="p2p_chiclet"
layout="topleft"
follows="left"
- top="5"
+ top="3"
left="5"
height="25"
- width="45">
+ width="25">
</chiclet_im_p2p>
<chiclet_im_group
name="group_chiclet"
layout="topleft"
follows="left"
- top="5"
+ top="3"
left="5"
height="25"
- width="45">
+ width="25">
</chiclet_im_group>
<text
type="string"
name="contact_name"
layout="topleft"
- top="8"
- left_pad="6"
- height="28"
- width="235"
+ top="10"
+ left_pad="0"
+ height="14"
+ width="245"
length="1"
follows="right|left"
- font="SansSerifBold"
- text_color="White">
- Contact Name
+ use_ellipses="true"
+ font="SansSerifBold">
+ Grumpity ProductEngine
</text>
<button
- top="5"
- left_pad="5"
- width="15"
- height="15"
+ top="10"
+ right="-5"
+ width="17"
+ height="17"
layout="topleft"
follows="right"
name="hide_btn"
mouse_opaque="true"
label=""
tab_stop="false"
- image_unselected="toast_hide_btn.tga"
- image_disabled="toast_hide_btn.tga"
- image_selected="toast_hide_btn.tga"
- image_hover_selected="toast_hide_btn.tga"
- image_disabled_selected="toast_hide_btn.tga"
+ image_unselected="Toast_CloseBtn"
+ image_selected="Toast_CloseBtn"
/>
</panel> \ No newline at end of file
diff --git a/indra/newview/skins/default/xui/en/panel_avatar_list_item.xml b/indra/newview/skins/default/xui/en/panel_avatar_list_item.xml
index 8aaa462aaf..18761c3bb9 100644
--- a/indra/newview/skins/default/xui/en/panel_avatar_list_item.xml
+++ b/indra/newview/skins/default/xui/en/panel_avatar_list_item.xml
@@ -39,7 +39,6 @@
<text
follows="left|right"
font="SansSerifSmall"
- font.style="BOLD"
height="15"
layout="topleft"
left_pad="5"
@@ -47,13 +46,13 @@
top="6"
use_ellipses="true"
value="Unknown"
- width="196" />
+ width="182" />
<text
follows="right"
font="SansSerifSmall"
height="15"
layout="topleft"
- left_pad="10"
+ left_pad="8"
name="last_interaction"
text_color="LtGray_50"
value="0s"
@@ -69,28 +68,26 @@
name="speaking_indicator"
visible="true"
width="20" />
- <button
+ <button
follows="right"
height="16"
image_pressed="Info_Press"
- image_hover="Info_Over"
- image_unselected="Info_Off"
- layout="topleft"
+ image_unselected="Info_Over"
left_pad="3"
- right="-25"
+ right="-31"
name="info_btn"
picture_style="true"
+ top_delta="-2"
width="16" />
<button
follows="right"
- height="16"
- image_selected="BuyArrow_Press"
- image_pressed="BuyArrow_Press"
- image_unselected="BuyArrow_Press"
+ height="20"
+ image_overlay="ForwardArrow_Off"
layout="topleft"
left_pad="5"
- right="-5"
+ right="-3"
name="profile_btn"
picture_style="true"
- width="16" />
+ top_delta="-2"
+ width="20" />
</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_bottomtray.xml b/indra/newview/skins/default/xui/en/panel_bottomtray.xml
index 9065c6b3e8..73a1bae1c6 100644
--- a/indra/newview/skins/default/xui/en/panel_bottomtray.xml
+++ b/indra/newview/skins/default/xui/en/panel_bottomtray.xml
@@ -10,6 +10,7 @@
left="0"
name="bottom_tray"
top="28"
+ chrome="true"
border_visible="false"
width="1000">
<layout_stack
diff --git a/indra/newview/skins/default/xui/en/panel_group_land_money.xml b/indra/newview/skins/default/xui/en/panel_group_land_money.xml
index 0845ec014e..04e0ad3be8 100644
--- a/indra/newview/skins/default/xui/en/panel_group_land_money.xml
+++ b/indra/newview/skins/default/xui/en/panel_group_land_money.xml
@@ -230,7 +230,7 @@
top_delta="0"
width="250">
Group members must contribute more land credits to support land in use.
- </text>
+ </text>
<text
type="string"
follows="left|top"
@@ -247,15 +247,17 @@
<tab_container
follows="all"
height="200"
+ halign="center"
layout="topleft"
left="10"
name="group_money_tab_container"
tab_position="top"
+ tab_height="20"
top_pad="10"
width="265">
<panel
border="true"
- follows="left|top|right|bottom"
+ follows="all"
height="180"
label="Planning"
layout="topleft"
@@ -305,7 +307,7 @@
width="250"
word_wrap="true">
Computing...
- </text_editor>
+ </text_editor>
<button
height="20"
label="&lt; Earlier"
@@ -325,7 +327,7 @@
name="later_details_button"
tool_tip="Go forward in time"
top_delta="0"
- width="125" />
+ width="125" />
</panel>
<panel
border="true"
@@ -375,4 +377,4 @@
width="125" />
</panel>
</tab_container>
-</panel>
+</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_group_list_item.xml b/indra/newview/skins/default/xui/en/panel_group_list_item.xml
index 7bdcaafe31..ffa485051c 100644
--- a/indra/newview/skins/default/xui/en/panel_group_list_item.xml
+++ b/indra/newview/skins/default/xui/en/panel_group_list_item.xml
@@ -28,13 +28,11 @@
visible="false"
width="320" />
<icon
- follows="top|left"
height="20"
image_name="Generic_Group"
name="group_icon"
- layout="topleft"
- left="5"
mouse_opaque="true"
+ left="5"
top="2"
width="20" />
<text
@@ -47,28 +45,28 @@
top="6"
use_ellipses="true"
value="Unknown"
- width="246" />
+ width="242" />
<button
follows="right"
height="16"
image_pressed="Info_Press"
- image_hover="Info_Over"
- image_unselected="Info_Off"
+ image_unselected="Info_Over"
left_pad="3"
- right="-25"
+ right="-31"
name="info_btn"
picture_style="true"
+ top_delta="-2"
width="16" />
+ <!--*TODO: Should only appear on rollover-->
<button
follows="right"
- height="16"
- image_selected="BuyArrow_Press"
- image_pressed="BuyArrow_Press"
- image_unselected="BuyArrow_Press"
+ height="20"
+ image_overlay="ForwardArrow_Off"
layout="topleft"
left_pad="5"
- right="-5"
+ right="-3"
name="profile_btn"
picture_style="true"
- width="16" />
+ top_delta="-2"
+ width="20" />
</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_group_roles.xml b/indra/newview/skins/default/xui/en/panel_group_roles.xml
index e2e4ca8b8f..909c3f4577 100644
--- a/indra/newview/skins/default/xui/en/panel_group_roles.xml
+++ b/indra/newview/skins/default/xui/en/panel_group_roles.xml
@@ -163,6 +163,7 @@
border="true"
follows="left|top"
height="260"
+ halign="center"
layout="topleft"
left="5"
name="roles_tab_container"
diff --git a/indra/newview/skins/default/xui/en/panel_people.xml b/indra/newview/skins/default/xui/en/panel_people.xml
index 0db5a41cc5..e234a7b358 100644
--- a/indra/newview/skins/default/xui/en/panel_people.xml
+++ b/indra/newview/skins/default/xui/en/panel_people.xml
@@ -34,7 +34,6 @@ background_visible="true"
value="Filter Groups" />
<filter_editor
follows="left|top|right"
- font="SansSerif"
height="23"
layout="topleft"
left="15"
@@ -49,18 +48,17 @@ background_visible="true"
height="500"
layout="topleft"
left="10"
- font="SansSerifBigBold"
name="tabs"
tab_min_width="70"
tab_height="30"
tab_position="top"
top_pad="10"
- halign="center"
+ halign="center"
width="313">
<panel
follows="all"
height="500"
- label="Nearby"
+ label="NEARBY"
layout="topleft"
left="0"
help_topic="people_nearby_tab"
@@ -100,17 +98,30 @@ background_visible="true"
picture_style="true"
top="5"
width="18" />
+ <button
+ follows="bottom|left"
+ height="18"
+ image_selected="AddItem_Press"
+ image_unselected="AddItem_Off"
+ image_disabled="AddItem_Disabled"
+ layout="topleft"
+ left_pad="5"
+ name="add_friend_btn"
+ picture_style="true"
+ top_delta="0"
+ tool_tip="Add selected resident to your friends List"
+ width="18" />
</panel>
</panel>
<panel
follows="all"
height="500"
- left="0"
- top="0"
- label="Friends"
+ label="FRIENDS"
layout="topleft"
+ left="0"
help_topic="people_friends_tab"
name="friends_panel"
+ top="0"
width="313">
<accordion
follows="all"
@@ -123,14 +134,13 @@ background_visible="true"
<accordion_tab
can_resize="false"
layout="topleft"
- height="230"
+ height="235"
min_height="150"
name="tab_online"
title="Online">
<avatar_list
allow_select="true"
follows="all"
- height="150"
layout="topleft"
left="0"
multi_select="true"
@@ -141,13 +151,12 @@ background_visible="true"
<accordion_tab
can_resize="false"
layout="topleft"
- height="230"
+ height="235"
name="tab_all"
title="All">
<avatar_list
allow_select="true"
follows="all"
- height="230"
layout="topleft"
left="0"
multi_select="true"
@@ -209,11 +218,12 @@ background_visible="true"
<panel
follows="all"
height="500"
- label="Groups"
- top="0"
+ label="GROUPS"
layout="topleft"
+ left="0"
help_topic="people_groups_tab"
name="groups_panel"
+ top="0"
width="313">
<group_list
follows="all"
@@ -287,13 +297,14 @@ background_visible="true"
</panel>
</panel>
<panel
- top="0"
follows="all"
height="500"
- label="Recent"
+ label="RECENT"
layout="topleft"
+ left="0"
help_topic="people_recent_tab"
name="recent_panel"
+ top="0"
width="313">
<avatar_list
allow_select="true"
@@ -304,11 +315,9 @@ background_visible="true"
multi_select="true"
name="avatar_list"
show_last_interaction_time="true"
- top="2"
+ top="0"
width="313" />
<panel
- background_visible="true"
- bevel_style="none"
top_pad="0"
follows="left|right|bottom"
height="30"
@@ -330,6 +339,19 @@ background_visible="true"
picture_style="true"
top="7"
width="18" />
+ <button
+ follows="bottom|left"
+ height="18"
+ image_selected="AddItem_Press"
+ image_unselected="AddItem_Off"
+ image_disabled="AddItem_Disabled"
+ layout="topleft"
+ left_pad="5"
+ name="add_friend_btn"
+ picture_style="true"
+ top_delta="0"
+ tool_tip="Add selected resident to your friends List"
+ width="18" />
</panel>
</panel>
</tab_container>
@@ -345,104 +367,88 @@ background_visible="true"
width="313">
<layout_panel
default_tab_group="1"
- follows="left|top|right"
+ follows="left|top"
height="25"
layout="topleft"
left="0"
name="view_profile_btn_panel"
top="-25"
- width="65">
+ width="100">
<button
- follows="top|left|right"
+ follows="top|left"
font="SansSerifSmall"
height="19"
label="Profile"
layout="topleft"
name="view_profile_btn"
tool_tip="Show picture, groups, and other residents information"
- width="65" />
- </layout_panel>
- <layout_panel
- default_tab_group="1"
- follows="left|top|right"
- height="25"
- layout="topleft"
- left_delta="0"
- min_width="85"
- name="add_friend_btn_panel"
- top_delta="0"
- width="50">
- <button
- follows="top|left|right"
- font="SansSerifSmall"
- height="19"
- label="Add"
- layout="topleft"
- name="add_friend_btn"
- tool_tip="Add selected resident to your friends List"
- width="50" />
+ width="100" />
</layout_panel>
<layout_panel
default_tab_group="1"
- follows="left|top|right"
+ follows="left|top"
height="19"
layout="topleft"
+ left="0"
min_width="80"
name="group_info_btn_panel"
- width="80">
+ width="100">
<button
- follows="top|left|right"
+ follows="top|left"
font="SansSerifSmall"
height="19"
label="Group Profile"
layout="topleft"
name="group_info_btn"
tool_tip="Show group information"
- width="80" />
+ width="100" />
</layout_panel>
<layout_panel
default_tab_group="1"
- follows="left|top|right"
+ follows="left|top"
height="25"
layout="topleft"
+ left_pad="5"
min_width="45"
name="chat_btn_panel"
top_delta="0"
- width="45">
+ width="100">
<button
- follows="top|left|right"
+ follows="top|left"
font="SansSerifSmall"
height="19"
- label="Chat"
+ label="Group Chat"
layout="topleft"
name="chat_btn"
tool_tip="Open chat session"
- width="45" />
+ width="100" />
</layout_panel>
<layout_panel
default_tab_group="1"
- follows="left|top|right"
+ follows="left|top|"
height="25"
layout="topleft"
+ left_pad="5"
min_width="35"
name="im_btn_panel"
top_delta="0"
- width="35">
+ width="50">
<button
- follows="top|left|right"
+ follows="top|left"
font="SansSerifSmall"
height="19"
label="IM"
layout="topleft"
name="im_btn"
tool_tip="Open instant message session"
- width="35" />
+ width="50" />
</layout_panel>
<layout_panel
default_tab_group="1"
follows="left|top|right"
height="25"
layout="topleft"
+ left_pad="5"
min_width="40"
name="call_btn_panel"
top_delta="0"
@@ -450,53 +456,55 @@ background_visible="true"
width="40">
<button
enabled="false"
- follows="top|left|right"
+ follows="top|left"
font="SansSerifSmall"
height="19"
label="Call"
layout="topleft"
name="call_btn"
- width="40" />
+ width="50" />
</layout_panel>
<layout_panel
default_tab_group="1"
- follows="left|top|right"
+ follows="left|top"
height="25"
layout="topleft"
+ left_pad="5"
min_width="65"
name="teleport_btn_panel"
top_delta="0"
- width="65">
+ width="100">
<button
- follows="left|top|right"
+ follows="left|top"
font="SansSerifSmall"
height="19"
label="Teleport"
layout="topleft"
name="teleport_btn"
tool_tip="Offer teleport"
- width="65" />
+ width="100" />
</layout_panel>
<layout_panel
default_tab_group="1"
enabled="false"
- follows="left|top|right"
+ follows="left|top"
height="25"
layout="topleft"
+ left_pad="5"
min_width="50"
name="share_btn_panel"
top_delta="0"
visible="false"
- width="50">
+ width="80">
<button
enabled="false"
- follows="top|left|right"
+ follows="top|left"
font="SansSerifSmall"
height="19"
label="Share"
layout="topleft"
name="share_btn"
- width="50" />
+ width="80" />
</layout_panel>
</layout_stack>
</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_pick_list_item.xml b/indra/newview/skins/default/xui/en/panel_pick_list_item.xml
index 1074dd4627..38ea6b6196 100644
--- a/indra/newview/skins/default/xui/en/panel_pick_list_item.xml
+++ b/indra/newview/skins/default/xui/en/panel_pick_list_item.xml
@@ -57,7 +57,7 @@
use_ellipses="false"
width="197"
word_wrap="false" />
- <text
+ <expandable_text
follows="top|left|right"
font="SansSerifSmall"
height="40"
diff --git a/indra/newview/skins/default/xui/en/panel_places.xml b/indra/newview/skins/default/xui/en/panel_places.xml
index 50108aa21f..5aa53ab46b 100644
--- a/indra/newview/skins/default/xui/en/panel_places.xml
+++ b/indra/newview/skins/default/xui/en/panel_places.xml
@@ -12,10 +12,10 @@ background_visible="true"
width="333">
<string
name="landmarks_tab_title"
- value="My Landmarks" />
+ value="MY LANDMARKS" />
<string
name="teleport_history_tab_title"
- value="Teleport History" />
+ value="TELEPORT HISTORY" />
<filter_editor
follows="left|top|right"
font="SansSerif"
@@ -29,11 +29,12 @@ background_visible="true"
width="303" />
<tab_container
follows="all"
+ halign="center"
height="500"
layout="topleft"
left="10"
name="Places Tabs"
- tab_min_width="70"
+ tab_min_width="80"
tab_height="30"
tab_position="top"
top_pad="10"
diff --git a/indra/newview/skins/default/xui/en/panel_profile_view.xml b/indra/newview/skins/default/xui/en/panel_profile_view.xml
index 7a5781651d..195b731531 100644
--- a/indra/newview/skins/default/xui/en/panel_profile_view.xml
+++ b/indra/newview/skins/default/xui/en/panel_profile_view.xml
@@ -50,6 +50,7 @@
<tab_container
follows="all"
height="535"
+ halign="center"
layout="topleft"
left="10"
min_width="333"
diff --git a/indra/newview/skins/default/xui/en/panel_status_bar.xml b/indra/newview/skins/default/xui/en/panel_status_bar.xml
index 795e0ffc0d..7b9c9f47a2 100644
--- a/indra/newview/skins/default/xui/en/panel_status_bar.xml
+++ b/indra/newview/skins/default/xui/en/panel_status_bar.xml
@@ -41,20 +41,18 @@
</panel.string>
<button
auto_resize="true"
- halign="right"
+ halign="right"
follows="right|bottom"
font="SansSerifSmall"
- image_color="White_05"
- flash_color="EmphasisColor"
- image_overlay="BuyArrow_Over"
- height="18"
- layout="topleft"
- left="-225"
+ image_selected="BuyArrow_Over"
+ image_unselected="BuyArrow_Off"
+ image_pressed="BuyArrow_Press"
+ height="16"
+ left="-220"
name="buycurrency"
- pad_right="23px"
- picture_style="true"
+ pad_right="22px"
tool_tip="My Balance: Click to buy more L$"
- top="0"
+ top="1"
width="117" />
<text
type="string"
@@ -65,148 +63,21 @@
height="16"
top="3"
layout="topleft"
- left_pad="20"
+ left_pad="15"
name="TimeText"
text_color="TimeTextColor"
tool_tip="Current time (Pacific)"
width="80">
12:00 AM
</text>
- <button
- follows="right|bottom"
- height="16"
- layout="topleft"
- left_delta="-537"
- image_selected="Inv_DangerousScript"
- image_unselected="Inv_DangerousScript"
- name="scriptout"
- picture_style="true"
- scale_image="false"
- tool_tip="Script warnings and errors"
- top="0"
- visible="false"
- width="16" />
- <button
- follows="right|bottom"
- height="16"
- image_selected="Health"
- image_unselected="Health"
- layout="topleft"
- left_pad="7"
- name="health"
- picture_style="true"
- scale_image="false"
- tool_tip="Health"
- top="0"
- visible="false"
- width="16" />
- <text
- bg_visible="false"
- text_readonly_color="HealthTextColor"
- follows="rsight|bottom"
- font_shadow="none"
- height="16"
- layout="topleft"
- left_pad="18"
- name="HealthText"
- text_color="HealthTextColor"
- tool_tip="Health"
- top="0"
- visible="false"
- width="31">
- 100%
- </text>
- <button
- follows="right|bottom"
- height="16"
- image_selected="Move_Fly_Disabled"
- image_unselected="Move_Fly_Disabled"
- layout="topleft"
- left_pad="7"
- name="no_fly"
- picture_style="true"
- scale_image="false"
- tool_tip="Flying not allowed"
- top="3"
- visible="false"
- width="16" />
- <button
- follows="right|bottom"
- height="16"
- image_selected="Tool_Create"
- image_unselected="Tool_Create"
- layout="topleft"
- left_pad="7"
- name="no_build"
- picture_style="true"
- scale_image="false"
- tool_tip="Building/rezzing not allowed"
- top="0"
- visible="false"
- width="16" />
- <button
- follows="right|bottom"
- height="16"
- image_selected="Inv_Script"
- image_unselected="Inv_Script"
- layout="topleft"
- left_pad="7"
- name="no_scripts"
- picture_style="true"
- scale_image="false"
- tool_tip="Scripts not allowed"
- top="0"
- visible="false"
- width="16" />
- <button
- follows="right|bottom"
- height="16"
- image_selected="Inv_Gesture"
- image_unselected="Inv_Gesture"
- layout="topleft"
- left_pad="7"
- name="restrictpush"
- picture_style="true"
- scale_image="false"
- tool_tip="No pushing"
- top="0"
- visible="false"
- width="16" />
- <button
- follows="right|bottom"
- height="18"
- image_selected="Microphone_Mute"
- image_unselected="Microphone_Mute"
- layout="topleft"
- left_pad="7"
- name="status_no_voice"
- picture_style="true"
- scale_image="false"
- tool_tip="Voice not available here"
- top="1"
- visible="false"
- width="16" />
- <button
- follows="right|bottom"
- height="16"
- image_selected="Icon_For_Sale"
- image_unselected="Icon_For_Sale"
- layout="topleft"
- left_pad="7"
- name="buyland"
- picture_style="true"
- tool_tip="Buy this parcel"
- top="0"
- visible="false"
- width="16" />
<text
enabled="true"
follows="right|bottom"
halign="center"
height="12"
layout="topleft"
- left_delta="-4"
+ left_delta="0"
name="stat_btn"
- top_delta="3"
- width="20" />
+ top_delta="0"
+ width="20"/>
</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_sys_well_item.xml b/indra/newview/skins/default/xui/en/panel_sys_well_item.xml
index 53ee0d159d..7722583ce2 100644
--- a/indra/newview/skins/default/xui/en/panel_sys_well_item.xml
+++ b/indra/newview/skins/default/xui/en/panel_sys_well_item.xml
@@ -1,65 +1,40 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<!-- All our XML is utf-8 encoded. -->
-
<panel
- name="sys_well_item"
- title="sys_well_item"
+ name="sys_well_item"
+ title="sys_well_item"
visible="true"
- top="0"
- left="0"
- width="318"
- height="35"
+ top="0"
+ left="0"
+ width="300"
+ height="35"
layout="topleft"
- follows="left|right"
- background_opaque="false"
- background_visible="true"
- bg_alpha_color="0.0 0.0 0.0 0.0" >
-
- <icon
- top="8"
- left="8"
- width="20"
- height="20"
- layout="topleft"
- follows="left"
- name="icon"
- label=""
- mouse_opaque="false"
- image_name="lag_status_warning.tga"
- />
-
+ follows="left|right">
<text
- top="2"
- left_pad="8"
- width="255"
- height="28"
+ top="2"
+ left="10"
+ width="267"
+ height="28"
layout="topleft"
follows="right|left"
- font="SansSerifBold"
text_color="white"
- use_ellipses="true"
+ use_ellipses="true"
word_wrap="true"
mouse_opaque="false"
name="title" >
- Select your streaming media preference. Select your streaming media preference.
- </text>
-
+ Beware the trout. BEWARE! THE! TROUT!
+ </text>
<button
- top="5"
- left_pad="5"
- width="15"
- height="15"
+ top="5"
+ right="-5"
+ width="17"
+ height="17"
layout="topleft"
follows="right"
- name="close_btn"
+ name="close_btn"
mouse_opaque="true"
- label=""
tab_stop="false"
- image_unselected="toast_hide_btn.tga"
- image_disabled="toast_hide_btn.tga"
- image_selected="toast_hide_btn.tga"
- image_hover_selected="toast_hide_btn.tga"
- image_disabled_selected="toast_hide_btn.tga"
+ image_unselected="Icon_Close_Toast"
+ image_selected="Icon_Close_Toast"
/>
-
-</panel>
+</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_teleport_history_item.xml b/indra/newview/skins/default/xui/en/panel_teleport_history_item.xml
index 63c2d4538e..73a7d95ff4 100644
--- a/indra/newview/skins/default/xui/en/panel_teleport_history_item.xml
+++ b/indra/newview/skins/default/xui/en/panel_teleport_history_item.xml
@@ -18,7 +18,7 @@
visible="false"
width="380" />
<icon
- height="20"
+ height="24"
follows="top|right|left"
image_name="ListItem_Select"
layout="topleft"
@@ -26,7 +26,7 @@
name="selected_icon"
top="0"
visible="false"
- width="380" />
+ width="320" />
<icon
height="20"
follows="top|right|left"
@@ -46,21 +46,28 @@
name="region"
text_color="white"
top="4"
- value="Unknown"
- width="330" />
+ value="..."
+ width="242" />
<button
follows="right"
- height="18"
- image_disabled="Info"
- image_disabled_selected="Info"
- image_hover_selected="Info"
- image_selected="Info"
- image_unselected="Info"
- layout="topleft"
+ height="16"
+ image_pressed="Info_Press"
+ image_unselected="Info_Over"
+ left_pad="3"
+ right="-31"
name="info_btn"
picture_style="true"
- visible="false"
- right="-5"
- top="2"
- width="18" />
+ top_delta="-2"
+ width="16" />
+ <button
+ follows="right"
+ height="20"
+ image_overlay="ForwardArrow_Off"
+ layout="topleft"
+ left_pad="5"
+ right="-3"
+ name="profile_btn"
+ picture_style="true"
+ top_delta="-2"
+ width="20" />
</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_toast.xml b/indra/newview/skins/default/xui/en/panel_toast.xml
index 66237d585a..7f7777586c 100644
--- a/indra/newview/skins/default/xui/en/panel_toast.xml
+++ b/indra/newview/skins/default/xui/en/panel_toast.xml
@@ -12,15 +12,15 @@
width="305"
left="0"
top="0"
- follows="right|bottom"
- bg_opaque_image="Toast_Background"
- bg_alpha_image="Toast_Background"
+ follows="right|bottom"
+ bg_opaque_image="Toast_Background"
+ bg_alpha_image="Toast_Background"
can_minimize="false"
can_tear_off="false"
can_resize="false"
can_drag_on_left="false"
can_close="false"
- can_dock="false"
+ can_dock="false"
border_visible = "false"
border_drop_shadow_visible = "false"
drop_shadow_visible = "false"
@@ -43,36 +43,33 @@
Toast text;
</text>
<icon
- top="20"
- left="10"
- width="32"
+ top="20"
+ left="10"
+ width="32"
height="32"
follows="top|left"
layout="topleft"
visible="false"
- color="1 1 1 1"
- enabled="true"
+ color="1 1 1 1"
+ enabled="true"
image_name="notify_tip_icon.tga"
- mouse_opaque="true"
+ mouse_opaque="true"
name="icon"
/>-->
<button
layout="topleft"
- top="-6"
- left="293"
- width="17"
- height="17"
+ top="-6"
+ left="293"
+ width="17"
+ height="17"
follows="top|right"
- visible="false"
- enabled="true"
- mouse_opaque="false"
- name="hide_btn"
- label=""
+ visible="false"
+ enabled="true"
+ mouse_opaque="false"
+ name="hide_btn"
+ label=""
tab_stop="false"
- image_unselected="windows/Toast_CloseBtn.png"
- image_disabled="windows/Toast_CloseBtn.png"
- image_selected="windows/Toast_CloseBtn.png"
- image_hover_selected="windows/Toast_CloseBtn.png"
- image_disabled_selected="windows/Toast_CloseBtn.png"
+ image_unselected="Toast_CloseBtn"
+ image_selected="Toast_CloseBtn"
/>
-</floater>
+</floater>
diff --git a/indra/newview/skins/default/xui/en/widgets/expandable_text.xml b/indra/newview/skins/default/xui/en/widgets/expandable_text.xml
index 319beac291..f59c46b2f5 100644
--- a/indra/newview/skins/default/xui/en/widgets/expandable_text.xml
+++ b/indra/newview/skins/default/xui/en/widgets/expandable_text.xml
@@ -3,7 +3,7 @@
max_height="300" >
<textbox
more_label="More"
- follows="left|top"
+ follows="left|top|right"
name="text"
allow_scroll="true"
use_ellipses="true"
diff --git a/indra/newview/skins/default/xui/en/widgets/panel.xml b/indra/newview/skins/default/xui/en/widgets/panel.xml
index 1bd5a5bda2..7262c0dc5c 100644
--- a/indra/newview/skins/default/xui/en/widgets/panel.xml
+++ b/indra/newview/skins/default/xui/en/widgets/panel.xml
@@ -7,4 +7,5 @@
<panel bg_opaque_color="PanelFocusBackgroundColor"
bg_alpha_color="PanelDefaultBackgroundColor"
background_visible="false"
- background_opaque="false"/>
+ background_opaque="false"
+ chrome="false"/> \ No newline at end of file
diff --git a/indra/newview/skins/default/xui/en/widgets/tab_container.xml b/indra/newview/skins/default/xui/en/widgets/tab_container.xml
index 7d10df1af7..fe2f1423b7 100644
--- a/indra/newview/skins/default/xui/en/widgets/tab_container.xml
+++ b/indra/newview/skins/default/xui/en/widgets/tab_container.xml
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<tab_container tab_min_width="60"
tab_max_width="150"
- font_halign="left"
- tab_height="16">
+ font_halign="center"
+ tab_height="21">
<first_tab tab_top_image_unselected="TabTop_Left_Off"
tab_top_image_selected="TabTop_Left_Selected"
tab_bottom_image_unselected="Toolbar_Left_Off"
diff --git a/indra/newview/skins/default/xui/en/widgets/tool_tip.xml b/indra/newview/skins/default/xui/en/widgets/tool_tip.xml
new file mode 100644
index 0000000000..6b49f832fd
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/widgets/tool_tip.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<!-- See also settings.xml UIFloater* settings for configuration -->
+<tool_tip name="tooltip"
+ max_width="200"
+ padding="4"
+ wrap="true"
+ font="SansSerif"
+ bg_opaque_color="ToolTipBgColor"
+ background_visible="true"
+ />