diff --git a/autobuild.xml b/autobuild.xml
index 6e48cbf5093..a61f708fc93 100644
--- a/autobuild.xml
+++ b/autobuild.xml
@@ -2482,6 +2482,40 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors
description
Viewer fonts
+ google-fonts
+
viewer-manager
platforms
diff --git a/indra/cmake/ViewerMiscLibs.cmake b/indra/cmake/ViewerMiscLibs.cmake
index cae68fbc119..ee679777152 100644
--- a/indra/cmake/ViewerMiscLibs.cmake
+++ b/indra/cmake/ViewerMiscLibs.cmake
@@ -20,4 +20,5 @@ use_prebuilt_binary(slvoice)
use_prebuilt_binary(nanosvg)
use_prebuilt_binary(viewer-fonts)
+use_prebuilt_binary(google-fonts)
use_prebuilt_binary(emoji_shortcodes)
diff --git a/indra/llrender/llfontfreetype.cpp b/indra/llrender/llfontfreetype.cpp
index d37b16ce0ca..063e308da06 100644
--- a/indra/llrender/llfontfreetype.cpp
+++ b/indra/llrender/llfontfreetype.cpp
@@ -141,6 +141,7 @@ LLFontFreetype::LLFontFreetype()
mDescender(0.f),
mLineHeight(0.f),
mIsFallback(false),
+ mHinting(EFontHinting::FORCE_AUTOHINT),
mFTFace(nullptr),
mRenderGlyphCount(0),
mStyle(0),
@@ -164,7 +165,7 @@ LLFontFreetype::~LLFontFreetype()
// mFallbackFonts cleaned up by LLPointer destructor
}
-bool LLFontFreetype::loadFace(const std::string& filename, F32 point_size, F32 vert_dpi, F32 horz_dpi, bool is_fallback, S32 face_n)
+bool LLFontFreetype::loadFace(const std::string& filename, F32 point_size, F32 vert_dpi, F32 horz_dpi, bool is_fallback, S32 face_n, EFontHinting hinting, S32 flags)
{
// Don't leak face objects. This is also needed to deal with
// changed font file names.
@@ -188,6 +189,8 @@ bool LLFontFreetype::loadFace(const std::string& filename, F32 point_size, F32 v
return false;
mIsFallback = is_fallback;
+ mHinting = hinting;
+ mFontFlags = flags;
F32 pixels_per_em = (point_size / 72.f)*vert_dpi; // Size in inches * dpi
error = FT_Set_Char_Size(mFTFace, /* handle to face object */
@@ -243,6 +246,12 @@ bool LLFontFreetype::loadFace(const std::string& filename, F32 point_size, F32 v
{
mStyle |= LLFontGL::BOLD;
}
+ else if (flags & LLFontGL::BOLD)
+ {
+ // FontGL applies programmatic bolding to fonts that are a part of 'bold' descriptor but don't have the bold style set.
+ // Ex: Inter SemiBold doesn't have FT_STYLE_FLAG_BOLD and without this style it would be bolded programmatically.
+ mStyle |= LLFontGL::BOLD;
+ }
if(mFTFace->style_flags & FT_STYLE_FLAG_ITALIC)
{
@@ -350,7 +359,12 @@ F32 LLFontFreetype::getXKerning(llwchar char_left, llwchar char_right) const
llverify(!FT_Get_Kerning(mFTFace, left_glyph, right_glyph, ft_kerning_unfitted, &delta));
- return delta.x*(1.f/64.f);
+ if (mFTFace->face_flags & FT_FACE_FLAG_SCALABLE)
+ {
+ // Return the X advance
+ return (F32)(delta.x * (1.0 / 64.0));
+ }
+ return (F32)delta.x;
}
F32 LLFontFreetype::getXKerning(const LLFontGlyphInfo* left_glyph_info, const LLFontGlyphInfo* right_glyph_info) const
@@ -365,7 +379,12 @@ F32 LLFontFreetype::getXKerning(const LLFontGlyphInfo* left_glyph_info, const LL
llverify(!FT_Get_Kerning(mFTFace, left_glyph, right_glyph, ft_kerning_unfitted, &delta));
- return delta.x*(1.f/64.f);
+ if (mFTFace->face_flags & FT_FACE_FLAG_SCALABLE)
+ {
+ // Return the X advance
+ return (F32)(delta.x * (1.0 / 64.0));
+ }
+ return (F32)delta.x;
}
bool LLFontFreetype::hasGlyph(llwchar wch) const
@@ -635,7 +654,7 @@ void LLFontFreetype::renderGlyph(EFontGlyphType bitmap_type, U32 glyph_index, ll
if (mFTFace == nullptr)
return;
- FT_Int32 load_flags = FT_LOAD_FORCE_AUTOHINT;
+ FT_Int32 load_flags = (FT_Int32)mHinting;
if (EFontGlyphType::Color == bitmap_type)
{
// We may not actually get a color render so our caller should always examine mFTFace->glyph->bitmap.pixel_mode
@@ -678,7 +697,7 @@ void LLFontFreetype::renderGlyph(EFontGlyphType bitmap_type, U32 glyph_index, ll
void LLFontFreetype::reset(F32 vert_dpi, F32 horz_dpi)
{
resetBitmapCache();
- loadFace(mName, mPointSize, vert_dpi ,horz_dpi, mIsFallback, 0);
+ loadFace(mName, mPointSize, vert_dpi ,horz_dpi, mIsFallback, 0, mHinting, mFontFlags);
if (!mIsFallback)
{
// This is the head of the list - need to rebuild ourself and all fallbacks.
diff --git a/indra/llrender/llfontfreetype.h b/indra/llrender/llfontfreetype.h
index f7600e40a31..96f99fd31c9 100644
--- a/indra/llrender/llfontfreetype.h
+++ b/indra/llrender/llfontfreetype.h
@@ -43,6 +43,7 @@ struct FT_FaceRec_;
typedef struct FT_FaceRec_* LLFT_Face;
struct FT_StreamRec_;
typedef struct FT_StreamRec_ LLFT_Stream;
+enum class EFontHinting : S32;
namespace ll
{
@@ -100,7 +101,7 @@ class LLFontFreetype : public LLRefCount
// is_fallback should be true for fallback fonts that aren't used
// to render directly (Unicode backup, primarily)
- bool loadFace(const std::string& filename, F32 point_size, F32 vert_dpi, F32 horz_dpi, bool is_fallback, S32 face_n);
+ bool loadFace(const std::string& filename, F32 point_size, F32 vert_dpi, F32 horz_dpi, bool is_fallback, S32 face_n, EFontHinting hinting, S32 flags);
S32 getNumFaces(const std::string& filename);
@@ -164,7 +165,11 @@ class LLFontFreetype : public LLRefCount
bool setSubImageBGRA(U32 x, U32 y, U32 bitmap_num, U16 width, U16 height, const U8* data, U32 stride) const;
bool hasGlyph(llwchar wch) const; // Has a glyph for this character
LLFontGlyphInfo* addGlyph(llwchar wch, EFontGlyphType glyph_type) const; // Add a new character to the font if necessary
- LLFontGlyphInfo* addGlyphFromFont(const LLFontFreetype *fontp, llwchar wch, U32 glyph_index, EFontGlyphType bitmap_type) const; // Add a glyph from this font to the other (returns the glyph_index, 0 if not found)
+ LLFontGlyphInfo* addGlyphFromFont(
+ const LLFontFreetype *fontp,
+ llwchar wch,
+ U32 glyph_index,
+ EFontGlyphType bitmap_type) const; // Add a glyph from this font to the other (returns the glyph_index, 0 if not found)
void renderGlyph(EFontGlyphType bitmap_type, U32 glyph_index, llwchar wch) const;
void insertGlyphInfo(llwchar wch, LLFontGlyphInfo* gi) const;
@@ -180,6 +185,8 @@ class LLFontFreetype : public LLRefCount
LLFT_Face mFTFace;
bool mIsFallback;
+ EFontHinting mHinting;
+ S32 mFontFlags;
typedef std::pair, char_functor_t> fallback_font_t;
typedef std::vector fallback_font_vector_t;
fallback_font_vector_t mFallbackFonts; // A list of fallback fonts to look for glyphs in (for Unicode chars)
diff --git a/indra/llrender/llfontgl.cpp b/indra/llrender/llfontgl.cpp
index 16eec1fdd24..d95eea526bb 100644
--- a/indra/llrender/llfontgl.cpp
+++ b/indra/llrender/llfontgl.cpp
@@ -90,14 +90,14 @@ void LLFontGL::destroyGL()
mFontFreetype->destroyGL();
}
-bool LLFontGL::loadFace(const std::string& filename, F32 point_size, const F32 vert_dpi, const F32 horz_dpi, bool is_fallback, S32 face_n)
+bool LLFontGL::loadFace(const std::string& filename, F32 point_size, const F32 vert_dpi, const F32 horz_dpi, bool is_fallback, S32 face_n, EFontHinting hinting, S32 flags)
{
if(mFontFreetype == reinterpret_cast(NULL))
{
mFontFreetype = new LLFontFreetype;
}
- return mFontFreetype->loadFace(filename, point_size, vert_dpi, horz_dpi, is_fallback, face_n);
+ return mFontFreetype->loadFace(filename, point_size, vert_dpi, horz_dpi, is_fallback, face_n, hinting, flags);
}
S32 LLFontGL::getNumFaces(const std::string& filename)
diff --git a/indra/llrender/llfontgl.h b/indra/llrender/llfontgl.h
index 1c8e036f58d..652cec8e5bd 100644
--- a/indra/llrender/llfontgl.h
+++ b/indra/llrender/llfontgl.h
@@ -87,7 +87,7 @@ class LLFontGL
void destroyGL();
- bool loadFace(const std::string& filename, F32 point_size, const F32 vert_dpi, const F32 horz_dpi, bool is_fallback, S32 face_n);
+ bool loadFace(const std::string& filename, F32 point_size, const F32 vert_dpi, const F32 horz_dpi, bool is_fallback, S32 face_n, EFontHinting hinting, S32 flags);
S32 getNumFaces(const std::string& filename);
S32 getCacheGeneration() const;
diff --git a/indra/llrender/llfontregistry.cpp b/indra/llrender/llfontregistry.cpp
index c48a389f6a5..370b08319f8 100644
--- a/indra/llrender/llfontregistry.cpp
+++ b/indra/llrender/llfontregistry.cpp
@@ -181,16 +181,16 @@ LLFontDescriptor LLFontDescriptor::normalize() const
return LLFontDescriptor(new_name,new_size,new_style, getFontFiles(), getFontCollectionFiles());
}
-void LLFontDescriptor::addFontFile(const std::string& file_name, const std::string& char_functor)
+void LLFontDescriptor::addFontFile(const std::string& file_name, EFontHinting hinting, S32 flags, F32 size_delta, const std::string& char_functor)
{
char_functor_map_t::const_iterator it = mCharFunctors.find(char_functor);
- mFontFiles.push_back(LLFontFileInfo(file_name, (mCharFunctors.end() != it) ? it->second : nullptr));
+ mFontFiles.push_back(LLFontFileInfo(file_name, hinting, flags, size_delta, (mCharFunctors.end() != it) ? it->second : nullptr));
}
-void LLFontDescriptor::addFontCollectionFile(const std::string& file_name, const std::string& char_functor)
+void LLFontDescriptor::addFontCollectionFile(const std::string& file_name, EFontHinting hinting, S32 flags, F32 size_delta, const std::string& char_functor)
{
char_functor_map_t::const_iterator it = mCharFunctors.find(char_functor);
- mFontCollectionFiles.push_back(LLFontFileInfo(file_name, (mCharFunctors.end() != it) ? it->second : nullptr));
+ mFontCollectionFiles.push_back(LLFontFileInfo(file_name, hinting, flags, size_delta, (mCharFunctors.end() != it) ? it->second : nullptr));
}
LLFontRegistry::LLFontRegistry(bool create_gl_textures)
@@ -289,23 +289,63 @@ bool font_desc_init_from_xml(LLXMLNodePtr node, LLFontDescriptor& desc)
{
std::string font_file_name = child->getTextContents();
std::string char_functor;
+ EFontHinting hinting = EFontHinting::FORCE_AUTOHINT;
+ S32 flags = 0;
if (child->hasAttribute("functor"))
{
child->getAttributeString("functor", char_functor);
}
+ if (child->hasAttribute("font_hinting"))
+ {
+ std::string attr_hinting;
+ child->getAttributeString("font_hinting", attr_hinting);
+ LLStringUtil::toLower(attr_hinting);
+
+ if (attr_hinting == "default")
+ {
+ hinting = EFontHinting::DEFAULT;
+ }
+ else if (attr_hinting == "force_auto")
+ {
+ hinting = EFontHinting::FORCE_AUTOHINT;
+ }
+ else if (attr_hinting == "no_hinting")
+ {
+ hinting = EFontHinting::NO_HINTING;
+ }
+ }
+
+ if (child->hasAttribute("flags"))
+ {
+ std::string attr_flags;
+ child->getAttributeString("flags", attr_flags);
+ LLStringUtil::toLower(attr_flags);
+
+ if (attr_flags == "bold")
+ {
+ flags |= LLFontGL::BOLD;
+ }
+ }
+
+ F32 size_delta = 0.f;
+ if (child->hasAttribute("size_delta"))
+ {
+ child->getAttributeF32("size_delta", size_delta);
+ }
+
if (child->hasAttribute("load_collection"))
{
bool col = false;
child->getAttributeBOOL("load_collection", col);
if (col)
{
- desc.addFontCollectionFile(font_file_name, char_functor);
+ desc.addFontCollectionFile(font_file_name, hinting, flags, size_delta, char_functor);
}
}
- desc.addFontFile(font_file_name, char_functor);
+ desc.addFontFile(font_file_name, hinting, flags, size_delta, char_functor);
}
else if (child->hasName("os"))
{
@@ -462,7 +502,7 @@ LLFontGL *LLFontRegistry::createFont(const LLFontDescriptor& desc)
// Add ultimate fallback list - generated dynamically on linux,
// null elsewhere.
std::transform(getUltimateFallbackList().begin(), getUltimateFallbackList().end(), std::back_inserter(font_files),
- [](const std::string& file_name) { return LLFontFileInfo(file_name); });
+ [](const std::string& file_name) { return LLFontFileInfo(file_name, EFontHinting::FORCE_AUTOHINT, 0, 0.f); });
// Load fonts based on names.
if (font_files.empty())
@@ -517,8 +557,8 @@ LLFontGL *LLFontRegistry::createFont(const LLFontDescriptor& desc)
{
fontp = new LLFontGL;
}
- if (fontp->loadFace(font_path, point_size_scale,
- LLFontGL::sVertDPI, LLFontGL::sHorizDPI, is_fallback, i))
+ if (fontp->loadFace(font_path, point_size_scale + font_file_it->mSizeDelta,
+ LLFontGL::sVertDPI, LLFontGL::sHorizDPI, is_fallback, i, font_file_it->mHinting, font_file_it->mFlags))
{
is_font_loaded = true;
if (is_first_found)
diff --git a/indra/llrender/llfontregistry.h b/indra/llrender/llfontregistry.h
index 8bbf5aa30c5..a5fa9f338a0 100644
--- a/indra/llrender/llfontregistry.h
+++ b/indra/llrender/llfontregistry.h
@@ -34,22 +34,42 @@ class LLFontGL;
typedef std::vector string_vec_t;
+enum class EFontHinting : S32
+{
+ DEFAULT = 0,
+ NO_HINTING = 0x8000U,
+ FORCE_AUTOHINT = 0x20,
+};
+
struct LLFontFileInfo
{
- LLFontFileInfo(const std::string& file_name, const std::function& char_functor = nullptr)
+ LLFontFileInfo(const std::string& file_name, EFontHinting hinting, S32 flags, F32 size_delta, const std::function& char_functor = nullptr)
: FileName(file_name)
, CharFunctor(char_functor)
+ , mHinting(hinting)
+ , mFlags(flags)
+ , mSizeDelta(size_delta)
{
}
- LLFontFileInfo(const LLFontFileInfo& ffi)
+ LLFontFileInfo(const LLFontFileInfo& ffi, EFontHinting hinting, S32 flags, F32 size_delta)
: FileName(ffi.FileName)
, CharFunctor(ffi.CharFunctor)
+ , mHinting(hinting)
+ , mFlags(flags)
+ , mSizeDelta(size_delta)
{
}
std::string FileName;
std::function CharFunctor;
+ EFontHinting mHinting;
+ S32 mFlags;
+
+ // Not all fonts are the same size, Ex: dejavu is bigger than inter,
+ // so in some cases we want to adjust relative sizes to make characters
+ // from different files match.
+ F32 mSizeDelta;
};
typedef std::vector font_file_info_vec_t;
@@ -71,10 +91,10 @@ class LLFontDescriptor
const std::string& getSize() const { return mSize; }
void setSize(const std::string& size) { mSize = size; }
- void addFontFile(const std::string& file_name, const std::string& char_functor = LLStringUtil::null);
+ void addFontFile(const std::string& file_name, EFontHinting hinting, S32 flags, F32 size_delta, const std::string& char_functor = LLStringUtil::null);
const font_file_info_vec_t & getFontFiles() const { return mFontFiles; }
void setFontFiles(const font_file_info_vec_t& font_files) { mFontFiles = font_files; }
- void addFontCollectionFile(const std::string& file_name, const std::string& char_functor = LLStringUtil::null);
+ void addFontCollectionFile(const std::string& file_name, EFontHinting hinting, S32 flags, F32 size_delta, const std::string& char_functor = LLStringUtil::null);
const font_file_info_vec_t& getFontCollectionFiles() const { return mFontCollectionFiles; }
void setFontCollectionFiles(const font_file_info_vec_t& font_collection_files) { mFontCollectionFiles = font_collection_files; }
diff --git a/indra/llui/llaccordionctrltab.cpp b/indra/llui/llaccordionctrltab.cpp
index 828bfb289b4..fa9de1eb090 100644
--- a/indra/llui/llaccordionctrltab.cpp
+++ b/indra/llui/llaccordionctrltab.cpp
@@ -39,7 +39,7 @@ static const std::string DD_BUTTON_NAME = "dd_button";
static const std::string DD_TEXTBOX_NAME = "dd_textbox";
static const std::string DD_HEADER_NAME = "dd_header";
-static const S32 HEADER_HEIGHT = 23;
+static const S32 HEADER_HEIGHT = 25;
static const S32 HEADER_IMAGE_LEFT_OFFSET = 5;
static const S32 HEADER_TEXT_LEFT_OFFSET = 30;
static const F32 AUTO_OPEN_TIME = 1.f;
diff --git a/indra/llui/llbutton.cpp b/indra/llui/llbutton.cpp
index 0048c44189a..7f209c60a7c 100644
--- a/indra/llui/llbutton.cpp
+++ b/indra/llui/llbutton.cpp
@@ -85,6 +85,7 @@ LLButton::Params::Params()
image_top_pad("image_top_pad"),
image_bottom_pad("image_bottom_pad"),
imgoverlay_label_space("imgoverlay_label_space", 1),
+ image_overlay_right_delta("image_overlay_right_delta", 0),
label_color("label_color"),
label_color_selected("label_color_selected"), // requires is_toggle true
label_color_disabled("label_color_disabled"),
@@ -109,6 +110,8 @@ LLButton::Params::Params()
commit_on_capture_lost("commit_on_capture_lost", false),
display_pressed_state("display_pressed_state", true),
use_draw_context_alpha("use_draw_context_alpha", true),
+ draw_focus_border("draw_focus_border", true),
+ hover_hand_cursor("hover_hand_cursor", false),
badge("badge"),
handle_right_mouse("handle_right_mouse"),
held_down_delay("held_down_delay"),
@@ -158,6 +161,7 @@ LLButton::LLButton(const LLButton::Params& p)
mImageOverlayTopPad(p.image_top_pad),
mImageOverlayBottomPad(p.image_bottom_pad),
mImgOverlayLabelSpace(p.imgoverlay_label_space),
+ mImageOverlayRightDelta(p.image_overlay_right_delta),
mIsToggle(p.is_toggle),
mScaleImage(p.scale_image),
mDropShadowedText(p.label_shadow),
@@ -179,6 +183,8 @@ LLButton::LLButton(const LLButton::Params& p)
mMouseUpSignal(NULL),
mHeldDownSignal(NULL),
mUseDrawContextAlpha(p.use_draw_context_alpha),
+ mDrawFocusBorder(p.draw_focus_border),
+ mHoverHandCursor(p.hover_hand_cursor),
mHandleRightMouse(p.handle_right_mouse),
mFlashingTimer(NULL)
{
@@ -653,7 +659,7 @@ bool LLButton::handleHover(S32 x, S32 y, MASK mask)
}
// We only handle the click if the click both started and ended within us
- getWindow()->setCursor(UI_CURSOR_ARROW);
+ getWindow()->setCursor(mHoverHandCursor ? UI_CURSOR_HAND : UI_CURSOR_ARROW);
LL_DEBUGS("UserInput") << "hover handled by " << getName() << LL_ENDL;
}
return true;
@@ -840,10 +846,9 @@ void LLButton::draw()
label_color = ll::ui::SearchableControl::getHighlightFontColor();
// overlay with keyboard focus border
- if (hasFocus())
+ if (hasFocus() && mDrawFocusBorder)
{
- F32 lerp_amt = gFocusMgr.getFocusFlashAmt();
- drawBorder(imagep, gFocusMgr.getFocusColor() % alpha, ll_round(lerp(1.f, 3.f, lerp_amt)));
+ drawBorder(imagep, gFocusMgr.getFocusColor() % alpha, gFocusMgr.getFocusFlashWidth());
}
if (use_glow_effect)
@@ -930,6 +935,17 @@ void LLButton::draw()
}
overlay_color.mV[VALPHA] *= alpha;
+ if (mImageOverlayRightDelta > 0)
+ {
+ mImageOverlay->draw(getRect().getWidth() - overlay_width - mImageOverlayRightDelta,
+ center_y - (overlay_height / 2),
+ overlay_width,
+ overlay_height,
+ overlay_color);
+ }
+ else
+ {
+
switch(mImageOverlayAlignment)
{
case LLFontGL::LEFT:
@@ -964,6 +980,7 @@ void LLButton::draw()
// draw nothing
break;
}
+ }
}
// Draw label
diff --git a/indra/llui/llbutton.h b/indra/llui/llbutton.h
index f530eceb4b1..0d1a28ee31b 100644
--- a/indra/llui/llbutton.h
+++ b/indra/llui/llbutton.h
@@ -110,6 +110,7 @@ class LLButton
//image overlay paddings
Optional image_top_pad;
Optional image_bottom_pad;
+ Optional image_overlay_right_delta;
/**
* Space between image_overlay and label
@@ -132,7 +133,9 @@ class LLButton
Optional hover_glow_amount;
Optional held_down_delay;
- Optional use_draw_context_alpha;
+ Optional use_draw_context_alpha,
+ draw_focus_border,
+ hover_hand_cursor;
Optional badge;
@@ -366,12 +369,16 @@ class LLButton
S32 mImageOverlayBottomPad;
bool mUseDrawContextAlpha;
+ bool mDrawFocusBorder;
+ bool mHoverHandCursor;
/*
* Space between image_overlay and label
*/
S32 mImgOverlayLabelSpace;
+ S32 mImageOverlayRightDelta;
+
F32 mHoverGlowStrength;
F32 mCurGlowStrength;
diff --git a/indra/llui/lldraghandle.cpp b/indra/llui/lldraghandle.cpp
index 15536178ab5..b3b47084c51 100644
--- a/indra/llui/lldraghandle.cpp
+++ b/indra/llui/lldraghandle.cpp
@@ -59,7 +59,9 @@ LLDragHandle::LLDragHandle(const LLDragHandle::Params& p)
mMaxTitleWidth( 0 ),
mForeground( true ),
mDragHighlightColor(p.drag_highlight_color()),
- mDragShadowColor(p.drag_shadow_color())
+ mDragShadowColor(p.drag_shadow_color()),
+ mFont(p.font),
+ mLabelVPad(p.label_vpad())
{
static LLUICachedControl snap_margin ("SnapMargin", 0);
@@ -98,14 +100,13 @@ void LLDragHandleTop::setTitle(const std::string& title)
}
else
{
- const LLFontGL* font = LLFontGL::getFontSansSerif();
LLTextBox::Params params;
params.name("Drag Handle Title");
params.rect(getRect());
params.initial_value(trimmed_title);
- params.font(font);
+ params.font(mFont);
params.follows.flags(FOLLOWS_TOP | FOLLOWS_LEFT | FOLLOWS_RIGHT);
- params.font_shadow(LLFontGL::DROP_SHADOW_SOFT);
+ params.font_shadow(LLFontGL::NO_SHADOW);
params.use_ellipses = true;
params.parse_urls = false; //cancel URL replacement in floater title
mTitleBox = LLUICtrlFactory::create (params);
@@ -236,7 +237,6 @@ void LLDragHandleLeft::draw()
void LLDragHandleTop::reshapeTitleBox()
{
- static LLUICachedControl title_vpad("UIFloaterTitleVPad", 0);
if( ! mTitleBox)
{
return;
@@ -248,7 +248,7 @@ void LLDragHandleTop::reshapeTitleBox()
LLRect title_rect;
title_rect.setLeftTopAndSize(
LEFT_PAD,
- getRect().getHeight() - title_vpad,
+ getRect().getHeight() - mLabelVPad,
title_width,
title_height);
diff --git a/indra/llui/lldraghandle.h b/indra/llui/lldraghandle.h
index 73211d52924..f768839749f 100644
--- a/indra/llui/lldraghandle.h
+++ b/indra/llui/lldraghandle.h
@@ -43,13 +43,17 @@ class LLDragHandle : public LLView
: public LLInitParam::Block
{
Optional label;
+ Optional label_vpad;
Optional drag_highlight_color;
Optional drag_shadow_color;
+ Optional font;
Params()
: label("label"),
+ label_vpad("label_vpad", 7),
drag_highlight_color("drag_highlight_color", LLUIColorTable::instance().getColor("DefaultHighlightLight")),
- drag_shadow_color("drag_shadow_color", LLUIColorTable::instance().getColor("DefaultShadowDark"))
+ drag_shadow_color("drag_shadow_color", LLUIColorTable::instance().getColor("DefaultShadowDark")),
+ font("font", LLFontGL::getFontSansSerif())
{
changeDefault(mouse_opaque, true);
changeDefault(follows.flags, FOLLOWS_ALL);
@@ -82,6 +86,8 @@ class LLDragHandle : public LLView
protected:
LLTextBox* mTitleBox;
+ const LLFontGL* mFont;
+ S32 mLabelVPad;
private:
LLRect mButtonsRect;
diff --git a/indra/llui/llfloater.cpp b/indra/llui/llfloater.cpp
index c60253e7fe8..9361358cedd 100644
--- a/indra/llui/llfloater.cpp
+++ b/indra/llui/llfloater.cpp
@@ -183,8 +183,10 @@ LLFloater::Params::Params()
show_title("show_title", true),
auto_close("auto_close", false),
positioning("positioning", LLFloaterEnums::POSITIONING_RELATIVE),
+ header_font("header_font", LLFontGL::getFontSansSerif()),
header_height("header_height", 0),
legacy_header_height("legacy_header_height", 0),
+ header_vpad("header_vpad", 7),
close_image("close_image"),
restore_image("restore_image"),
minimize_image("minimize_image"),
@@ -293,7 +295,7 @@ LLFloater::LLFloater(const LLSD& key, const LLFloater::Params& p)
memset(mButtonsEnabled, 0, BUTTON_COUNT * sizeof(bool));
memset(mButtons, 0, BUTTON_COUNT * sizeof(LLButton*));
- addDragHandle();
+ addDragHandle(p);
addResizeCtrls();
initFromParams(p);
@@ -336,7 +338,7 @@ void LLFloater::initFloater(const Params& p)
}
}
-void LLFloater::addDragHandle()
+void LLFloater::addDragHandle(const LLFloater::Params& floater_params)
{
if (!mDragHandle)
{
@@ -346,6 +348,8 @@ void LLFloater::addDragHandle()
p.name("drag");
p.follows.flags(FOLLOWS_ALL);
p.label(mTitle);
+ p.font(floater_params.header_font);
+ p.label_vpad(floater_params.header_vpad);
mDragHandle = LLUICtrlFactory::create(p);
}
else // drag on top
@@ -354,6 +358,8 @@ void LLFloater::addDragHandle()
p.name("Drag Handle");
p.follows.flags(FOLLOWS_ALL);
p.label(mTitle);
+ p.font(floater_params.header_font);
+ p.label_vpad(floater_params.header_vpad);
mDragHandle = LLUICtrlFactory::create(p);
}
addChild(mDragHandle);
diff --git a/indra/llui/llfloater.h b/indra/llui/llfloater.h
index 9e1594bdd2d..bda2531b438 100644
--- a/indra/llui/llfloater.h
+++ b/indra/llui/llfloater.h
@@ -172,8 +172,10 @@ class LLFloater : public LLPanel, public LLInstanceTracker
Optional positioning;
+ Optional header_font;
Optional header_height,
- legacy_header_height; // HACK see initFromXML()
+ legacy_header_height, // HACK see initFromXML()
+ header_vpad;
Optional rel_x,
rel_y;
@@ -442,7 +444,7 @@ class LLFloater : public LLPanel, public LLInstanceTracker
bool offerClickToButton(S32 x, S32 y, MASK mask, EFloaterButton index);
void addResizeCtrls();
void layoutResizeCtrls();
- void addDragHandle();
+ void addDragHandle(const LLFloater::Params& p);
void layoutDragHandle(); // repair layout
static void updateActiveFloaterTransparency();
diff --git a/indra/llui/llfocusmgr.cpp b/indra/llui/llfocusmgr.cpp
index 7544a444785..ce0e8036e71 100644
--- a/indra/llui/llfocusmgr.cpp
+++ b/indra/llui/llfocusmgr.cpp
@@ -464,6 +464,11 @@ F32 LLFocusMgr::getFocusFlashAmt() const
return clamp_rescale(mFocusFlashTimer.getElapsedTimeF32(), 0.f, FOCUS_FADE_TIME, 1.f, 0.f);
}
+S32 LLFocusMgr::getFocusFlashWidth() const
+{
+ return ll_round(lerp(1.f, 2.f, getFocusFlashAmt()));
+}
+
LLColor4 LLFocusMgr::getFocusColor() const
{
static LLUIColor focus_color_cached = LLUIColorTable::instance().getColor("FocusColor");
diff --git a/indra/llui/llfocusmgr.h b/indra/llui/llfocusmgr.h
index 89fee5c9f14..2e2293196bd 100644
--- a/indra/llui/llfocusmgr.h
+++ b/indra/llui/llfocusmgr.h
@@ -101,7 +101,7 @@ class LLFocusMgr
void setKeystrokesOnly(bool keystrokes_only) { mKeystrokesOnly = keystrokes_only; }
F32 getFocusFlashAmt() const;
- S32 getFocusFlashWidth() const { return ll_round(lerp(1.f, 3.f, getFocusFlashAmt())); }
+ S32 getFocusFlashWidth() const;
LLColor4 getFocusColor() const;
void triggerFocusFlash();
bool getAppHasFocus() const { return mAppHasFocus; }
diff --git a/indra/llui/llfolderviewitem.cpp b/indra/llui/llfolderviewitem.cpp
index dafbca7433b..fcc1964bd6d 100644
--- a/indra/llui/llfolderviewitem.cpp
+++ b/indra/llui/llfolderviewitem.cpp
@@ -159,9 +159,11 @@ LLFolderViewItem::Params::Params()
icon_width("icon_width", 0),
text_pad("text_pad", 0),
text_pad_right("text_pad_right", 0),
+ text_pad_top("text_pad_top", 1),
single_folder_mode("single_folder_mode", false),
double_click_override("double_click_override", false),
arrow_size("arrow_size", 0),
+ arrow_pad_top("arrow_pad_top", 1),
max_folder_item_overlap("max_folder_item_overlap", 0)
{ }
@@ -201,7 +203,9 @@ LLFolderViewItem::LLFolderViewItem(const LLFolderViewItem::Params& p)
mIconWidth(p.icon_width),
mTextPad(p.text_pad),
mTextPadRight(p.text_pad_right),
+ mTextPadTop(p.text_pad_top),
mArrowSize(p.arrow_size),
+ mArrowPadTop(p.arrow_pad_top),
mSingleFolderMode(p.single_folder_mode),
mMaxFolderItemOverlap(p.max_folder_item_overlap),
mDoubleClickOverride(p.double_click_override)
@@ -811,7 +815,7 @@ void LLFolderViewItem::drawOpenFolderArrow()
if (hasVisibleChildren() || !isFolderComplete())
{
gl_draw_scaled_rotated_image(
- mIndentation, getRect().getHeight() - mArrowSize - mTextPad - sTopPad,
+ mIndentation, getRect().getHeight() - mArrowSize - mArrowPadTop - sTopPad,
mArrowSize, mArrowSize, mControlLabelRotation, sFolderArrowImg->getImage(), sFgColor);
}
}
@@ -1045,7 +1049,7 @@ void LLFolderViewItem::draw()
S32 filter_string_length = mViewModelItem->hasFilterStringMatch() ? (S32)mViewModelItem->getFilterStringSize() : 0;
F32 right_x = 0;
- F32 y = (F32)rect_height - line_height - (F32)mTextPad - (F32)sTopPad;
+ F32 y = (F32)rect_height - line_height - (F32)mTextPadTop - (F32)sTopPad;
F32 text_left = (F32)getLabelXPos();
LLWString combined_string = mLabel + mLabelSuffix;
@@ -1124,7 +1128,7 @@ void LLFolderViewItem::draw()
if(mLabelSuffix.empty() || (font == sSuffixFont))
{
F32 match_string_left = text_left + font->getWidthF32(combined_string.c_str(), 0, filter_offset + filter_string_length) - font->getWidthF32(combined_string.c_str(), filter_offset, filter_string_length);
- F32 yy = (F32)rect_height - line_height - (F32)mTextPad - (F32)sTopPad;
+ F32 yy = (F32)rect_height - line_height - (F32)mTextPadTop - (F32)sTopPad;
font->render(combined_string, filter_offset, match_string_left, yy,
sFilterTextColor, LLFontGL::LEFT, LLFontGL::BOTTOM, LLFontGL::NORMAL, LLFontGL::NO_SHADOW,
filter_string_length, S32_MAX, &right_x);
@@ -1135,7 +1139,7 @@ void LLFolderViewItem::draw()
if(label_filter_length > 0)
{
F32 match_string_left = text_left + font->getWidthF32(mLabel.c_str(), 0, filter_offset + label_filter_length) - font->getWidthF32(mLabel.c_str(), filter_offset, label_filter_length);
- F32 yy = (F32)rect_height - line_height - (F32)mTextPad - (F32)sTopPad;
+ F32 yy = (F32)rect_height - line_height - (F32)mTextPadTop - (F32)sTopPad;
font->render(mLabel, filter_offset, match_string_left, yy,
sFilterTextColor, LLFontGL::LEFT, LLFontGL::BOTTOM, LLFontGL::NORMAL, LLFontGL::NO_SHADOW,
label_filter_length, S32_MAX, &right_x);
@@ -1146,7 +1150,7 @@ void LLFolderViewItem::draw()
{
S32 suffix_offset = llmax(0, filter_offset - (S32)mLabel.size());
F32 match_string_left = text_left + font->getWidthF32(mLabel.c_str(), 0, static_cast(mLabel.size())) + sSuffixFont->getWidthF32(mLabelSuffix.c_str(), 0, suffix_offset + suffix_filter_length) - sSuffixFont->getWidthF32(mLabelSuffix.c_str(), suffix_offset, suffix_filter_length);
- F32 yy = (F32)rect_height - sSuffixFont->getLineHeight() - (F32)mTextPad - (F32)sTopPad;
+ F32 yy = (F32)rect_height - sSuffixFont->getLineHeight() - (F32)mTextPadTop - (F32)sTopPad;
sSuffixFont->render(mLabelSuffix, suffix_offset, match_string_left, yy, sFilterTextColor,
LLFontGL::LEFT, LLFontGL::BOTTOM, LLFontGL::NORMAL, LLFontGL::NO_SHADOW,
suffix_filter_length, S32_MAX, &right_x);
diff --git a/indra/llui/llfolderviewitem.h b/indra/llui/llfolderviewitem.h
index 23d794bf264..258a806b913 100644
--- a/indra/llui/llfolderviewitem.h
+++ b/indra/llui/llfolderviewitem.h
@@ -73,7 +73,9 @@ class LLFolderViewItem : public LLView
icon_width,
text_pad,
text_pad_right,
+ text_pad_top,
arrow_size,
+ arrow_pad_top,
max_folder_item_overlap;
Optional single_folder_mode,
double_click_override;
@@ -117,7 +119,9 @@ class LLFolderViewItem : public LLView
mIconWidth,
mTextPad,
mTextPadRight,
+ mTextPadTop,
mArrowSize,
+ mArrowPadTop,
mMaxFolderItemOverlap;
F32 mControlLabelRotation;
diff --git a/indra/llui/lllayoutstack.cpp b/indra/llui/lllayoutstack.cpp
index fe0591ce4b3..1dc80671cc7 100644
--- a/indra/llui/lllayoutstack.cpp
+++ b/indra/llui/lllayoutstack.cpp
@@ -48,17 +48,21 @@ static LLLayoutStack::LayoutStackRegistry::Register register_layo
LLLayoutPanel::Params::Params()
: expanded_min_dim("expanded_min_dim", 0),
min_dim("min_dim", -1),
+ max_dim("max_dim", -1),
user_resize("user_resize", false),
auto_resize("auto_resize", true)
{
addSynonym(min_dim, "min_width");
addSynonym(min_dim, "min_height");
+ addSynonym(max_dim, "max_width");
+ addSynonym(max_dim, "max_height");
}
LLLayoutPanel::LLLayoutPanel(const Params& p)
: LLPanel(p),
mExpandedMinDim(p.expanded_min_dim.isProvided() ? p.expanded_min_dim : p.min_dim),
mMinDim(p.min_dim),
+ mMaxDim(p.max_dim),
mAutoResize(p.auto_resize),
mUserResize(p.user_resize),
mCollapsed(false),
@@ -75,6 +79,7 @@ LLLayoutPanel::LLLayoutPanel(const Params& p)
{
mVisibleAmt = 0.f;
}
+ setMaxDim(mMaxDim);
}
void LLLayoutPanel::initFromParams(const Params& p)
@@ -113,6 +118,8 @@ S32 LLLayoutPanel::getTargetDim() const
void LLLayoutPanel::setTargetDim(S32 value)
{
+ value = llmin(value, mMaxDim);
+
LLRect new_rect(getRect());
if (mOrientation == LLLayoutStack::HORIZONTAL)
{
@@ -145,6 +152,7 @@ void LLLayoutPanel::setOrientation( LLView::EOrientation orientation )
setMinDim(layout_dim);
}
mTargetDim = llmax(layout_dim, getMinDim());
+ mTargetDim = llmin(mTargetDim, mMaxDim);
}
void LLLayoutPanel::setVisible( bool visible )
@@ -167,6 +175,7 @@ void LLLayoutPanel::reshape( S32 width, S32 height, bool called_from_parent /*=
if (!mIgnoreReshape && !mAutoResize)
{
mTargetDim = (mOrientation == LLLayoutStack::HORIZONTAL) ? width : height;
+ mTargetDim = llmin(mTargetDim, mMaxDim);
LLLayoutStack* stackp = dynamic_cast(getParent());
if (stackp)
{
@@ -439,6 +448,7 @@ void LLLayoutStack::updateLayout()
F32 fraction_to_distribute = (panelp->mFractionalSize * panelp->getAutoResizeFactor()) / (total_visible_fraction);
S32 delta = ll_round((F32)space_to_distribute * fraction_to_distribute);
panelp->mTargetDim += delta;
+ panelp->mTargetDim = llmin(panelp->mTargetDim, panelp->mMaxDim);
remaining_space -= delta;
}
}
@@ -455,6 +465,7 @@ void LLLayoutStack::updateLayout()
{
S32 space_for_panel = remaining_space > 0 ? 1 : -1;
panelp->mTargetDim += space_for_panel;
+ panelp->mTargetDim = llmin(panelp->mTargetDim, panelp->mMaxDim);
remaining_space -= space_for_panel;
}
}
diff --git a/indra/llui/lllayoutstack.h b/indra/llui/lllayoutstack.h
index 9e3536aaff6..4c78c8a2898 100644
--- a/indra/llui/lllayoutstack.h
+++ b/indra/llui/lllayoutstack.h
@@ -140,7 +140,8 @@ friend class LLUICtrlFactory;
struct Params : public LLInitParam::Block
{
Optional expanded_min_dim,
- min_dim;
+ min_dim,
+ max_dim;
Optional user_resize,
auto_resize;
@@ -164,6 +165,8 @@ friend class LLUICtrlFactory;
S32 getMinDim() const { return llmax(0, mMinDim); }
void setMinDim(S32 value) { mMinDim = value; }
+ void setMaxDim(S32 value) { mMaxDim = value < 0 ? S32_MAX : value; }
+
S32 getExpandedMinDim() const { return mExpandedMinDim >= 0 ? mExpandedMinDim : getMinDim(); }
void setExpandedMinDim(S32 value) { mExpandedMinDim = value; }
@@ -198,6 +201,7 @@ friend class LLUICtrlFactory;
S32 mExpandedMinDim;
S32 mMinDim;
+ S32 mMaxDim;
bool mCollapsed;
F32 mVisibleAmt;
F32 mCollapseAmt;
diff --git a/indra/llui/lllineeditor.cpp b/indra/llui/lllineeditor.cpp
index ef62666918b..9a88083a5d8 100644
--- a/indra/llui/lllineeditor.cpp
+++ b/indra/llui/lllineeditor.cpp
@@ -97,6 +97,7 @@ LLLineEditor::Params::Params()
ignore_tab("ignore_tab", true),
is_password("is_password", false),
allow_emoji("allow_emoji", true),
+ draw_focus_border("draw_focus_border", true),
cursor_color("cursor_color"),
use_bg_color("use_bg_color", false),
bg_color("bg_color"),
@@ -147,6 +148,7 @@ LLLineEditor::LLLineEditor(const LLLineEditor::Params& p)
mIgnoreTab( p.ignore_tab ),
mDrawAsterixes( p.is_password ),
mAllowEmoji( p.allow_emoji ),
+ mDrawFocusBorder(p.draw_focus_border),
mSpellCheck( p.spellcheck ),
mSpellCheckStart(-1),
mSpellCheckEnd(-1),
@@ -1795,7 +1797,7 @@ void LLLineEditor::drawBackground()
if (!image) return;
// optionally draw programmatic border
- if (has_focus)
+ if (has_focus && mDrawFocusBorder)
{
LLColor4 tmp_color = gFocusMgr.getFocusColor();
tmp_color.setAlpha(alpha);
@@ -1955,12 +1957,11 @@ void LLLineEditor::draw()
width = llmin(width, mTextRightEdge - ll_round(rendered_pixels_right));
gl_rect_2d(ll_round(rendered_pixels_right), cursor_top, ll_round(rendered_pixels_right)+width, cursor_bottom, color);
- LLColor4 tmp_color( 1.f - text_color.mV[0], 1.f - text_color.mV[1], 1.f - text_color.mV[2], alpha );
rendered_text += mFontBufferSelection.render(
mGLFont,
mText, mScrollHPos + rendered_text,
rendered_pixels_right, text_bottom,
- tmp_color,
+ LLColor4::black,
LLFontGL::LEFT, LLFontGL::BOTTOM,
0,
LLFontGL::NO_SHADOW,
diff --git a/indra/llui/lllineeditor.h b/indra/llui/lllineeditor.h
index 6384bfdc5f6..fd248edda3d 100644
--- a/indra/llui/lllineeditor.h
+++ b/indra/llui/lllineeditor.h
@@ -95,7 +95,8 @@ class LLLineEditor
show_label_focused,
is_password,
allow_emoji,
- use_bg_color;
+ use_bg_color,
+ draw_focus_border;
// colors
Optional cursor_color,
@@ -411,6 +412,7 @@ class LLLineEditor
bool mAllowEmoji;
bool mUseBgColor;
+ bool mDrawFocusBorder;
LLWString mPreeditWString;
LLWString mPreeditOverwrittenWString;
diff --git a/indra/llui/llmenugl.cpp b/indra/llui/llmenugl.cpp
index 6ba31c251e3..3b21ed8f471 100644
--- a/indra/llui/llmenugl.cpp
+++ b/indra/llui/llmenugl.cpp
@@ -73,7 +73,7 @@ S32 MENU_BAR_WIDTH = 410;
/// Local function declarations, constants, enums, and typedefs
///============================================================================
-const S32 LABEL_BOTTOM_PAD_PIXELS = 2;
+const S32 LABEL_BOTTOM_PAD_PIXELS = 1;
const U32 LEFT_PAD_PIXELS = 3;
const U32 LEFT_WIDTH_PIXELS = 15;
@@ -519,21 +519,25 @@ void LLMenuItemGL::draw( void )
}
else
{
+ // Munus are all of the same size, so fixed offset works here,
+ // but it won't work if somebody decides to use different font
+ // todo: adjust logic to work of rect and font height
+ F32 y = (F32)MENU_ITEM_PADDING / 2.f;
if( !mDrawBoolLabel.empty() )
{
- mFont->render( mDrawBoolLabel.getWString(), 0, (F32)LEFT_PAD_PIXELS, ((F32)MENU_ITEM_PADDING / 2.f), color,
+ mFont->render( mDrawBoolLabel.getWString(), 0, (F32)LEFT_PAD_PIXELS, y, color,
LLFontGL::LEFT, LLFontGL::BOTTOM, LLFontGL::NORMAL, LLFontGL::NO_SHADOW, S32_MAX, S32_MAX, NULL, false );
}
- mFont->render( mLabel.getWString(), 0, (F32)LEFT_PLAIN_PIXELS, ((F32)MENU_ITEM_PADDING / 2.f), color,
+ mFont->render( mLabel.getWString(), 0, (F32)LEFT_PLAIN_PIXELS, y, color,
LLFontGL::LEFT, LLFontGL::BOTTOM, LLFontGL::NORMAL, LLFontGL::NO_SHADOW, S32_MAX, S32_MAX, NULL, false );
if( !mDrawAccelLabel.empty() )
{
- mFont->render( mDrawAccelLabel.getWString(), 0, (F32)getRect().mRight - (F32)RIGHT_PLAIN_PIXELS, ((F32)MENU_ITEM_PADDING / 2.f), color,
+ mFont->render( mDrawAccelLabel.getWString(), 0, (F32)getRect().mRight - (F32)RIGHT_PLAIN_PIXELS, y, color,
LLFontGL::RIGHT, LLFontGL::BOTTOM, LLFontGL::NORMAL, LLFontGL::NO_SHADOW, S32_MAX, S32_MAX, NULL, false );
}
if( !mDrawBranchLabel.empty() )
{
- mFont->render( mDrawBranchLabel.getWString(), 0, (F32)getRect().mRight - (F32)RIGHT_PAD_PIXELS, ((F32)MENU_ITEM_PADDING / 2.f), color,
+ mFont->render( mDrawBranchLabel.getWString(), 0, (F32)getRect().mRight - (F32)RIGHT_PAD_PIXELS, y, color,
LLFontGL::RIGHT, LLFontGL::BOTTOM, LLFontGL::NORMAL, LLFontGL::NO_SHADOW, S32_MAX, S32_MAX, NULL, false );
}
}
@@ -1638,6 +1642,9 @@ void LLMenuItemBranchDownGL::draw( void )
{
color = mDisabledColor.get();
}
+ // Munus are all of the same size, so fixed offset works here,
+ // but it won't work if somebody decides to use different font
+ // todo: adjust logic to work of rect and font height
getFont()->render( mLabel.getWString(), 0, (F32)getRect().getWidth() / 2.f, (F32)LABEL_BOTTOM_PAD_PIXELS, color,
LLFontGL::HCENTER, LLFontGL::BOTTOM, LLFontGL::NORMAL);
diff --git a/indra/llui/lltextbase.cpp b/indra/llui/lltextbase.cpp
index 24ae5c09e98..5882c1edbbb 100644
--- a/indra/llui/lltextbase.cpp
+++ b/indra/llui/lltextbase.cpp
@@ -51,6 +51,9 @@ const F32 CURSOR_FLASH_DELAY = 1.0f; // in seconds
const S32 CURSOR_THICKNESS = 2;
const F32 TRIPLE_CLICK_INTERVAL = 0.3f; // delay between double and triple click.
+constexpr F32 FOCUSED_SELECTION_BG_ALPHA = 1;
+constexpr F32 UNFOCUSED_SELECTION_BG_ALPHA = 0.7f;
+
LLTextBase::line_info::line_info(S32 index_start, S32 index_end, LLRect rect, S32 line_num)
: mDocIndexStart(index_start),
mDocIndexEnd(index_end),
@@ -529,7 +532,7 @@ void LLTextBase::drawSelectionBackground()
// Draw the selection box (we're using a box instead of reversing the colors on the selected text).
gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
const LLColor4& color = mSelectedBGColor;
- F32 alpha = hasFocus() ? 0.7f : 0.3f;
+ F32 alpha = hasFocus() ? FOCUSED_SELECTION_BG_ALPHA : UNFOCUSED_SELECTION_BG_ALPHA;
alpha *= getDrawContext().mAlpha;
LLColor4 selection_color(color.mV[VRED], color.mV[VGREEN], color.mV[VBLUE], alpha);
diff --git a/indra/llui/lltextbase.h b/indra/llui/lltextbase.h
index 3ab5e905e3a..35477bdea92 100644
--- a/indra/llui/lltextbase.h
+++ b/indra/llui/lltextbase.h
@@ -408,6 +408,7 @@ class LLTextBase
/*virtual*/ void setColor(const LLUIColor& c) override;
virtual void setReadOnlyColor(const LLUIColor& c);
/*virtual*/ void onVisibilityChange(bool new_visibility) override;
+ void setBgReadOnlyColor(const LLUIColor& c) { mReadOnlyBgColor = c; }
/*virtual*/ void setValue(const LLSD& value) override;
/*virtual*/ LLTextViewModel* getViewModel() const override;
diff --git a/indra/llui/llviewborder.cpp b/indra/llui/llviewborder.cpp
index d53fd6eb91f..68ca61681ce 100644
--- a/indra/llui/llviewborder.cpp
+++ b/indra/llui/llviewborder.cpp
@@ -149,7 +149,7 @@ void LLViewBorder::drawOnePixelLines()
top_color = gFocusMgr.getFocusColor();
bottom_color = top_color;
- LLUI::setLineWidth(lerp(1.f, 3.f, gFocusMgr.getFocusFlashAmt()));
+ LLUI::setLineWidth(lerp(1.f, 2.f, gFocusMgr.getFocusFlashAmt()));
}
S32 left = 0;
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index 8caa4786c90..78d0e52e3d3 100644
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -12328,17 +12328,6 @@
Value
0
- UIFloaterTitleVPad
-
- Comment
- Distance from top of floater to top of title string, pixels
- Persist
- 1
- Type
- S32
- Value
- 7
-
UIImgDefaultEyesUUID
Comment
diff --git a/indra/newview/llcolorswatch.cpp b/indra/newview/llcolorswatch.cpp
index 97d23457789..ce236dec660 100644
--- a/indra/newview/llcolorswatch.cpp
+++ b/indra/newview/llcolorswatch.cpp
@@ -200,13 +200,14 @@ void LLColorSwatchCtrl::draw()
F32 alpha = getTransparencyType() == TT_ACTIVE ? 1.0f : getCurrentTransparency();
mBorder->setKeyboardFocusHighlight(hasFocus());
- // Draw border
- LLRect border( 0, getRect().getHeight(), getRect().getWidth(), mLabelHeight );
- gl_rect_2d( border, mBorderColor.get(), false );
- LLRect interior = border;
+ LLRect gl_border(0, getRect().getHeight(), getRect().getWidth(), mLabelHeight);
+ LLColor4 gl_border_color = mBorderColor.get();
+ LLRect interior = gl_border;
interior.stretch( -1 );
+ bool show_border_ctrl = true;
+
// Check state
if ( mValid )
{
@@ -239,7 +240,9 @@ void LLColorSwatchCtrl::draw()
{
if (mFallbackImage.notNull())
{
- mFallbackImage->draw(interior.mLeft, interior.mBottom, interior.getWidth(), interior.getHeight(), LLColor4::white % alpha);
+ mFallbackImage->draw(interior.mLeft - 1, interior.mBottom - 1, mFallbackImage->getWidth(), mFallbackImage->getHeight(), LLColor4::white % alpha);
+ gl_border_color = LLUIColorTable::instance().getColor("ColorSwatchBorderColorGray").get();
+ show_border_ctrl = false;
}
else
{
@@ -250,6 +253,11 @@ void LLColorSwatchCtrl::draw()
}
}
+ mBorder->setVisible(show_border_ctrl);
+
+ // Draw border
+ gl_rect_2d(gl_border, gl_border_color, false);
+
LLUICtrl::draw();
}
diff --git a/indra/newview/llnotificationlistitem.cpp b/indra/newview/llnotificationlistitem.cpp
index 9a33bcb1b96..4939cd5fbbe 100644
--- a/indra/newview/llnotificationlistitem.cpp
+++ b/indra/newview/llnotificationlistitem.cpp
@@ -175,13 +175,15 @@ void LLNotificationListItem::onMouseEnter(S32 x, S32 y, MASK mask)
{
mCondensedViewPanel->setTransparentColor(LLUIColorTable::instance().getColor( "ScrollHoveredColor" ));
mExpandedViewPanel->setTransparentColor(LLUIColorTable::instance().getColor( "ScrollHoveredColor" ));
+ mNoticeTextExp->setBgReadOnlyColor(LLUIColorTable::instance().getColor("SelectedBgReadOnlyColor"));
}
void LLNotificationListItem::onMouseLeave(S32 x, S32 y, MASK mask)
{
mCondensedViewPanel->setTransparentColor(LLUIColorTable::instance().getColor( "SysWellItemUnselected" ));
mExpandedViewPanel->setTransparentColor(LLUIColorTable::instance().getColor( "SysWellItemUnselected" ));
-}
+ mNoticeTextExp->setBgReadOnlyColor(LLUIColorTable::instance().getColor("TextBgReadOnlyColor"));
+ }
//static
LLNotificationListItem* LLNotificationListItem::create(const Params& p)
diff --git a/indra/newview/llpanelface.cpp b/indra/newview/llpanelface.cpp
index 128ba42efd4..345426824e6 100644
--- a/indra/newview/llpanelface.cpp
+++ b/indra/newview/llpanelface.cpp
@@ -1927,7 +1927,7 @@ void LLPanelFace::updateUI(bool force_set_values /*false*/)
if (mColorSwatch)
{
mColorSwatch->setEnabled( false );
- mColorSwatch->setFallbackImage(LLUI::getUIImage("locked_image.j2c") );
+ mColorSwatch->setFallbackImage(LLUI::getUIImage("locked_image") );
mColorSwatch->setValid(false);
}
diff --git a/indra/newview/llpanellogin.cpp b/indra/newview/llpanellogin.cpp
index 868e02f28b6..f100fb8c1a3 100644
--- a/indra/newview/llpanellogin.cpp
+++ b/indra/newview/llpanellogin.cpp
@@ -174,6 +174,19 @@ class LLLoginLocationAutoHandler : public LLCommandHandler
};
LLLoginLocationAutoHandler gLoginLocationAutoHandler;
+std::string getShortGridLabel(const std::string& slurl_grid)
+{
+ if (slurl_grid == MAINGRID)
+ {
+ return LLTrans::getString("AgniGridLabelShort");
+ }
+ if (slurl_grid == BETAGRID)
+ {
+ return LLTrans::getString("AditiGridLabelShort");
+ }
+ return LLGridManager::getInstance()->getGridLabel(slurl_grid);
+}
+
//---------------------------------------------------------------------------
// Public methods
//---------------------------------------------------------------------------
@@ -184,7 +197,6 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect,
mCallback(callback),
mCallbackData(cb_data),
mListener(std::make_unique(this)),
- mFirstLoginThisInstall(gSavedSettings.getBOOL("FirstLoginThisInstall")),
mUsernameLength(0),
mPasswordLength(0),
mLocationLength(0),
@@ -204,15 +216,7 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect,
login_holder->addChild(this);
}
- if (mFirstLoginThisInstall)
- {
- buildFromFile( "panel_login_first.xml");
- }
- else
- {
- buildFromFile( "panel_login.xml");
- }
-
+ buildFromFile( "panel_login.xml");
reshape(rect.getWidth(), rect.getHeight());
LLLineEditor* password_edit(getChild("password_edit"));
@@ -221,17 +225,19 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect,
password_edit->setCommitCallback(boost::bind(&LLPanelLogin::onClickConnect, false));
childSetAction("connect_btn", onClickConnect, this);
+ childSetAction("sign_btn", onClickSignUp, this);
mLoginBtn = getChild("connect_btn");
setDefaultBtn(mLoginBtn);
// change z sort of clickable text to be behind buttons
sendChildToBack(getChildView("forgot_password_text"));
- sendChildToBack(getChildView("sign_up_text"));
+
+ mLoginStack = getChild("login_stack");
+ mGridPanel = getChild("grid_panel");
std::string current_grid = LLGridManager::getInstance()->getGrid();
- if (!mFirstLoginThisInstall)
- {
+
LLComboBox* favorites_combo = getChild("start_location_combo");
updateLocationSelectorsVisibility(); // separate so that it can be called from preferences
favorites_combo->setReturnCallback(boost::bind(&LLPanelLogin::onClickConnect, false));
@@ -251,17 +257,16 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect,
if (!grid_choice->first.empty() && current_grid != grid_choice->first)
{
LL_DEBUGS("AppInit") << "adding " << grid_choice->first << LL_ENDL;
- server_choice_combo->add(grid_choice->second, grid_choice->first);
+ server_choice_combo->add(getShortGridLabel(grid_choice->first), grid_choice->first);
}
}
server_choice_combo->sortByName();
LL_DEBUGS("AppInit") << "adding current " << current_grid << LL_ENDL;
- server_choice_combo->add(LLGridManager::getInstance()->getGridLabel(),
+ server_choice_combo->add(getShortGridLabel(current_grid),
current_grid,
ADD_TOP);
server_choice_combo->selectFirstItem();
- }
LLSLURL start_slurl(LLStartUp::getStartSLURL());
// The StartSLURL might have been set either by an explicit command-line
@@ -308,9 +313,6 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect,
LLTextBox* forgot_password_text = getChild("forgot_password_text");
forgot_password_text->setClickedCallback(onClickForgotPassword, NULL);
- LLTextBox* sign_up_text = getChild("sign_up_text");
- sign_up_text->setClickedCallback(onClickSignUp, NULL);
-
// get the web browser control
LLMediaCtrl* web_browser = getChild("login_html");
web_browser->addObserver(this);
@@ -334,15 +336,6 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect,
void LLPanelLogin::addFavoritesToStartLocation()
{
- if (mFirstLoginThisInstall)
- {
- // first login panel has no favorites, just update name length and buttons
- std::string user_defined_name = getChild("username_combo")->getSimple();
- mUsernameLength = static_cast(user_defined_name.length());
- updateLoginButtons();
- return;
- }
-
// Clear the combo.
LLComboBox* combo = getChild("start_location_combo");
if (!combo) return;
@@ -562,16 +555,8 @@ void LLPanelLogin::resetFields()
// function is used to reset list in case of changes by external sources
return;
}
- if (sInstance->mFirstLoginThisInstall)
- {
- // no list to populate
- LL_WARNS() << "Shouldn't happen, user should have no ability to modify list on first install" << LL_ENDL;
- }
- else
- {
- LLPointer cred = gSecAPIHandler->loadCredential(LLGridManager::getInstance()->getGrid());
- sInstance->populateUserList(cred);
- }
+ LLPointer cred = gSecAPIHandler->loadCredential(LLGridManager::getInstance()->getGrid());
+ sInstance->populateUserList(cred);
}
// static
@@ -752,6 +737,11 @@ void LLPanelLogin::updateLocationSelectorsVisibility()
{
server_combo->setVisible(show_server);
}
+ if (LLTextBox* grid_txt = sInstance->getChild("grid_text"))
+ {
+ grid_txt->setVisible(show_server);
+ }
+ sInstance->collapseGridPanel(!show_server);
}
}
@@ -787,7 +777,7 @@ void LLPanelLogin::onUpdateStartSLURL(const LLSLURL& new_start_slurl)
// update the grid selector to match the slurl
LLComboBox* server_combo = sInstance->getChild("server_combo");
- std::string server_label(LLGridManager::getInstance()->getGridLabel(slurl_grid));
+ std::string server_label(getShortGridLabel(slurl_grid));
server_combo->setSimple(server_label);
updateServer(); // to change the links and splash screen
@@ -1084,8 +1074,7 @@ void LLPanelLogin::onRememberUserCheck(void*)
LLComboBox* user_combo(sInstance->getChild("username_combo"));
bool remember = remember_name->getValue().asBoolean();
- if (!sInstance->mFirstLoginThisInstall
- && user_combo->getCurrentIndex() != -1
+ if (user_combo->getCurrentIndex() != -1
&& !remember)
{
remember = true;
@@ -1198,17 +1187,14 @@ void LLPanelLogin::updateLoginButtons()
{
mLoginBtn->setEnabled(mUsernameLength != 0 && mPasswordLength != 0 && !mAlertNotif);
- if (!mFirstLoginThisInstall)
+ LLComboBox* user_combo = getChild("username_combo");
+ LLCheckBoxCtrl* remember_name = getChild("remember_name");
+ if (user_combo->getCurrentIndex() != -1)
{
- LLComboBox* user_combo = getChild("username_combo");
- LLCheckBoxCtrl* remember_name = getChild("remember_name");
- if (user_combo->getCurrentIndex() != -1)
- {
- remember_name->setValue(true);
- LLCheckBoxCtrl* remember_pass = getChild("remember_password");
- remember_pass->setEnabled(true);
- } // Note: might be good idea to do "else remember_name->setValue(mRememberedState)" but it might behave 'weird' to user
- }
+ remember_name->setValue(true);
+ LLCheckBoxCtrl* remember_pass = getChild("remember_password");
+ remember_pass->setEnabled(true);
+ } // Note: might be good idea to do "else remember_name->setValue(mRememberedState)" but it might behave 'weird' to user
}
void LLPanelLogin::populateUserList(LLPointer credential)
@@ -1387,3 +1373,13 @@ bool LLPanelLogin::onUpdateNotification(const LLSD& notify)
}
return false;
}
+
+void LLPanelLogin::collapseGridPanel(bool collapse)
+{
+ if (mGridPanel->isCollapsed() == collapse)
+ {
+ return;
+ }
+ mLoginStack->collapsePanel(mGridPanel, collapse);
+ mLoginStack->updateLayout();
+}
diff --git a/indra/newview/llpanellogin.h b/indra/newview/llpanellogin.h
index f527aa53ac6..f7104a94b1f 100644
--- a/indra/newview/llpanellogin.h
+++ b/indra/newview/llpanellogin.h
@@ -87,6 +87,8 @@ class LLPanelLogin:
// extract name from cred in a format apropriate for username field
static std::string getUserName(LLPointer &cred);
+ void collapseGridPanel(bool collapse);
+
private:
friend class LLPanelLoginListener;
void addFavoritesToStartLocation();
@@ -122,7 +124,6 @@ class LLPanelLogin:
static LLPanelLogin* sInstance;
static bool sCapslockDidNotification;
- bool mFirstLoginThisInstall;
static bool sCredentialSet;
@@ -132,6 +133,8 @@ class LLPanelLogin:
bool mAlertNotif;
LLButton* mLoginBtn;
+ LLLayoutPanel* mGridPanel;
+ LLLayoutStack* mLoginStack;
};
#endif
diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp
index dbcf4fbbf41..ca01d048b4a 100644
--- a/indra/newview/llviewermenu.cpp
+++ b/indra/newview/llviewermenu.cpp
@@ -649,7 +649,7 @@ void init_menus()
LLRect menuBarRect = gLoginMenuBarView->getRect();
menuBarRect.setLeftTopAndSize(0, menu_bar_holder->getRect().getHeight(), menuBarRect.getWidth(), menuBarRect.getHeight());
gLoginMenuBarView->setRect(menuBarRect);
- gLoginMenuBarView->setBackgroundColor( color );
+ gLoginMenuBarView->setBackgroundColor(LLColor4::black);
menu_bar_holder->addChild(gLoginMenuBarView);
// tooltips are on top of EVERYTHING, including menus
diff --git a/indra/newview/llviewernetwork.cpp b/indra/newview/llviewernetwork.cpp
index 890580ddff2..a1f14ad96db 100644
--- a/indra/newview/llviewernetwork.cpp
+++ b/indra/newview/llviewernetwork.cpp
@@ -63,7 +63,7 @@ const std::string GRID_LOGIN_IDENTIFIER_TYPES = "login_identifier_types";
const std::string GRID_SLURL_BASE = "slurl_base";
const std::string GRID_APP_SLURL_BASE = "app_slurl_base";
-const std::string DEFAULT_LOGIN_PAGE = "https://viewer-splash.secondlife.com/";
+const std::string DEFAULT_LOGIN_PAGE = "https://viewer-splash-v2.secondlife.com/";
const std::string MAIN_GRID_LOGIN_URI = "https://login.agni.lindenlab.com/cgi-bin/login.cgi";
@@ -125,7 +125,7 @@ void LLGridManager::initialize(const std::string& grid_file)
MAIN_GRID_WEB_PROFILE_URL,
"Agni");
addSystemGrid(LLTrans::getString("AditiGridLabel"),
- "util.aditi.lindenlab.com",
+ BETAGRID,
"https://login.aditi.lindenlab.com/cgi-bin/login.cgi",
"https://secondlife.aditi.lindenlab.com/helpers/",
DEFAULT_LOGIN_PAGE,
diff --git a/indra/newview/llviewernetwork.h b/indra/newview/llviewernetwork.h
index 2ed663e0381..0937425a188 100644
--- a/indra/newview/llviewernetwork.h
+++ b/indra/newview/llviewernetwork.h
@@ -30,6 +30,7 @@
// @TODO this really should be private, but is used in llslurl
#define MAINGRID "util.agni.lindenlab.com"
+#define BETAGRID "util.aditi.lindenlab.com"
/// Exception thrown when a grid is not valid
class LLInvalidGridName
diff --git a/indra/newview/skins/default/colors.xml b/indra/newview/skins/default/colors.xml
index 2ad285eb1ff..d627556a7c4 100644
--- a/indra/newview/skins/default/colors.xml
+++ b/indra/newview/skins/default/colors.xml
@@ -4,13 +4,16 @@
-
+ value="0.3 0.82 1 1" />
+ value="0.426 0.729 1.0 0.368" />
+
+
@@ -53,6 +56,9 @@
+
@@ -338,7 +344,7 @@
reference="EmphasisColor" />
+ reference="EmphasisColor" />
@@ -359,7 +365,7 @@
reference="Black" />
+ reference="EmphasisColor" />
@@ -377,7 +383,7 @@
reference="Black_50" />
+ value="0.7 0.7 0.7 1" />
@@ -595,7 +601,7 @@
reference="White" />
+ reference="EmphasisColor" />
@@ -740,9 +746,6 @@
-
@@ -761,6 +764,9 @@
+
@@ -791,6 +797,9 @@
+
@@ -862,19 +871,25 @@
+
+
-
-
+
+ value="0.26 0.36 0.47 1"/>
@@ -994,6 +1009,9 @@
+
diff --git a/indra/newview/skins/default/textures/bottomtray/Cam_Rotate_Center.png b/indra/newview/skins/default/textures/bottomtray/Cam_Rotate_Center.png
index ffc3c85ea2a..2e84daaf6b3 100644
Binary files a/indra/newview/skins/default/textures/bottomtray/Cam_Rotate_Center.png and b/indra/newview/skins/default/textures/bottomtray/Cam_Rotate_Center.png differ
diff --git a/indra/newview/skins/default/textures/bottomtray/Cam_Rotate_In.png b/indra/newview/skins/default/textures/bottomtray/Cam_Rotate_In.png
index c8560c08694..1854cb87dfb 100644
Binary files a/indra/newview/skins/default/textures/bottomtray/Cam_Rotate_In.png and b/indra/newview/skins/default/textures/bottomtray/Cam_Rotate_In.png differ
diff --git a/indra/newview/skins/default/textures/bottomtray/Cam_Tracking_Center.png b/indra/newview/skins/default/textures/bottomtray/Cam_Tracking_Center.png
index 2812d614e6a..d009044ee14 100644
Binary files a/indra/newview/skins/default/textures/bottomtray/Cam_Tracking_Center.png and b/indra/newview/skins/default/textures/bottomtray/Cam_Tracking_Center.png differ
diff --git a/indra/newview/skins/default/textures/bottomtray/Cam_Tracking_In.png b/indra/newview/skins/default/textures/bottomtray/Cam_Tracking_In.png
index ae2c57c207c..a9415e9cc04 100644
Binary files a/indra/newview/skins/default/textures/bottomtray/Cam_Tracking_In.png and b/indra/newview/skins/default/textures/bottomtray/Cam_Tracking_In.png differ
diff --git a/indra/newview/skins/default/textures/bottomtray/Movement_Backward_On.png b/indra/newview/skins/default/textures/bottomtray/Movement_Backward_On.png
index 9f31d461b5f..f22f6e23b64 100644
Binary files a/indra/newview/skins/default/textures/bottomtray/Movement_Backward_On.png and b/indra/newview/skins/default/textures/bottomtray/Movement_Backward_On.png differ
diff --git a/indra/newview/skins/default/textures/bottomtray/Movement_Down_On.png b/indra/newview/skins/default/textures/bottomtray/Movement_Down_On.png
index f7ed4c25fb8..238d005bef0 100644
Binary files a/indra/newview/skins/default/textures/bottomtray/Movement_Down_On.png and b/indra/newview/skins/default/textures/bottomtray/Movement_Down_On.png differ
diff --git a/indra/newview/skins/default/textures/bottomtray/Movement_Forward_On.png b/indra/newview/skins/default/textures/bottomtray/Movement_Forward_On.png
index d0a825a682a..ad4a02ee27b 100644
Binary files a/indra/newview/skins/default/textures/bottomtray/Movement_Forward_On.png and b/indra/newview/skins/default/textures/bottomtray/Movement_Forward_On.png differ
diff --git a/indra/newview/skins/default/textures/bottomtray/Movement_Left_On.png b/indra/newview/skins/default/textures/bottomtray/Movement_Left_On.png
index 2f81fb1588b..1a134661eb7 100644
Binary files a/indra/newview/skins/default/textures/bottomtray/Movement_Left_On.png and b/indra/newview/skins/default/textures/bottomtray/Movement_Left_On.png differ
diff --git a/indra/newview/skins/default/textures/bottomtray/Movement_Right_On.png b/indra/newview/skins/default/textures/bottomtray/Movement_Right_On.png
index 4f86e81a155..8c5bf3bc667 100644
Binary files a/indra/newview/skins/default/textures/bottomtray/Movement_Right_On.png and b/indra/newview/skins/default/textures/bottomtray/Movement_Right_On.png differ
diff --git a/indra/newview/skins/default/textures/bottomtray/Movement_TurnLeft_On.png b/indra/newview/skins/default/textures/bottomtray/Movement_TurnLeft_On.png
index b211371e647..1eeab859e56 100644
Binary files a/indra/newview/skins/default/textures/bottomtray/Movement_TurnLeft_On.png and b/indra/newview/skins/default/textures/bottomtray/Movement_TurnLeft_On.png differ
diff --git a/indra/newview/skins/default/textures/bottomtray/Movement_TurnRight_On.png b/indra/newview/skins/default/textures/bottomtray/Movement_TurnRight_On.png
index e937c3f0122..57762defe47 100644
Binary files a/indra/newview/skins/default/textures/bottomtray/Movement_TurnRight_On.png and b/indra/newview/skins/default/textures/bottomtray/Movement_TurnRight_On.png differ
diff --git a/indra/newview/skins/default/textures/bottomtray/Movement_Up_On.png b/indra/newview/skins/default/textures/bottomtray/Movement_Up_On.png
index ed4902f3ee7..512bd3b64e2 100644
Binary files a/indra/newview/skins/default/textures/bottomtray/Movement_Up_On.png and b/indra/newview/skins/default/textures/bottomtray/Movement_Up_On.png differ
diff --git a/indra/newview/skins/default/textures/bottomtray/VoicePTT_Lvl1.png b/indra/newview/skins/default/textures/bottomtray/VoicePTT_Lvl1.png
index cd18ae310d6..b1012e505e0 100644
Binary files a/indra/newview/skins/default/textures/bottomtray/VoicePTT_Lvl1.png and b/indra/newview/skins/default/textures/bottomtray/VoicePTT_Lvl1.png differ
diff --git a/indra/newview/skins/default/textures/bottomtray/VoicePTT_Lvl2.png b/indra/newview/skins/default/textures/bottomtray/VoicePTT_Lvl2.png
index b0ed6ee8ebb..49cdadded7e 100644
Binary files a/indra/newview/skins/default/textures/bottomtray/VoicePTT_Lvl2.png and b/indra/newview/skins/default/textures/bottomtray/VoicePTT_Lvl2.png differ
diff --git a/indra/newview/skins/default/textures/bottomtray/VoicePTT_On.png b/indra/newview/skins/default/textures/bottomtray/VoicePTT_On.png
index be4881b64c1..9afe58dcd1b 100644
Binary files a/indra/newview/skins/default/textures/bottomtray/VoicePTT_On.png and b/indra/newview/skins/default/textures/bottomtray/VoicePTT_On.png differ
diff --git a/indra/newview/skins/default/textures/build/Object_Cone_Selected.png b/indra/newview/skins/default/textures/build/Object_Cone_Selected.png
index d50dc69ffe9..051c85d05da 100644
Binary files a/indra/newview/skins/default/textures/build/Object_Cone_Selected.png and b/indra/newview/skins/default/textures/build/Object_Cone_Selected.png differ
diff --git a/indra/newview/skins/default/textures/build/Object_Cube_Selected.png b/indra/newview/skins/default/textures/build/Object_Cube_Selected.png
index 3d6964530d1..3560b36ec64 100644
Binary files a/indra/newview/skins/default/textures/build/Object_Cube_Selected.png and b/indra/newview/skins/default/textures/build/Object_Cube_Selected.png differ
diff --git a/indra/newview/skins/default/textures/build/Object_Cylinder_Selected.png b/indra/newview/skins/default/textures/build/Object_Cylinder_Selected.png
index 3ed03899610..8f752aaf4cb 100644
Binary files a/indra/newview/skins/default/textures/build/Object_Cylinder_Selected.png and b/indra/newview/skins/default/textures/build/Object_Cylinder_Selected.png differ
diff --git a/indra/newview/skins/default/textures/build/Object_Grass_Selected.png b/indra/newview/skins/default/textures/build/Object_Grass_Selected.png
index 3ebd5ea7a1c..90844abe941 100644
Binary files a/indra/newview/skins/default/textures/build/Object_Grass_Selected.png and b/indra/newview/skins/default/textures/build/Object_Grass_Selected.png differ
diff --git a/indra/newview/skins/default/textures/build/Object_Hemi_Cone_Selected.png b/indra/newview/skins/default/textures/build/Object_Hemi_Cone_Selected.png
index 3bdc4d1fd5b..66e1c45567f 100644
Binary files a/indra/newview/skins/default/textures/build/Object_Hemi_Cone_Selected.png and b/indra/newview/skins/default/textures/build/Object_Hemi_Cone_Selected.png differ
diff --git a/indra/newview/skins/default/textures/build/Object_Hemi_Cylinder_Selected.png b/indra/newview/skins/default/textures/build/Object_Hemi_Cylinder_Selected.png
index 0912442e293..48ae5969a11 100644
Binary files a/indra/newview/skins/default/textures/build/Object_Hemi_Cylinder_Selected.png and b/indra/newview/skins/default/textures/build/Object_Hemi_Cylinder_Selected.png differ
diff --git a/indra/newview/skins/default/textures/build/Object_Hemi_Sphere_Selected.png b/indra/newview/skins/default/textures/build/Object_Hemi_Sphere_Selected.png
index 33db4a2de8c..eff8a231d64 100644
Binary files a/indra/newview/skins/default/textures/build/Object_Hemi_Sphere_Selected.png and b/indra/newview/skins/default/textures/build/Object_Hemi_Sphere_Selected.png differ
diff --git a/indra/newview/skins/default/textures/build/Object_Prism_Selected.png b/indra/newview/skins/default/textures/build/Object_Prism_Selected.png
index 9e80fe2b845..ab7921b97d9 100644
Binary files a/indra/newview/skins/default/textures/build/Object_Prism_Selected.png and b/indra/newview/skins/default/textures/build/Object_Prism_Selected.png differ
diff --git a/indra/newview/skins/default/textures/build/Object_Pyramid_Selected.png b/indra/newview/skins/default/textures/build/Object_Pyramid_Selected.png
index d36bfa55d44..446951d992d 100644
Binary files a/indra/newview/skins/default/textures/build/Object_Pyramid_Selected.png and b/indra/newview/skins/default/textures/build/Object_Pyramid_Selected.png differ
diff --git a/indra/newview/skins/default/textures/build/Object_Ring_Selected.png b/indra/newview/skins/default/textures/build/Object_Ring_Selected.png
index 962f6efb93a..a23e6dba507 100644
Binary files a/indra/newview/skins/default/textures/build/Object_Ring_Selected.png and b/indra/newview/skins/default/textures/build/Object_Ring_Selected.png differ
diff --git a/indra/newview/skins/default/textures/build/Object_Sphere_Selected.png b/indra/newview/skins/default/textures/build/Object_Sphere_Selected.png
index 715d597144e..daf39a658c4 100644
Binary files a/indra/newview/skins/default/textures/build/Object_Sphere_Selected.png and b/indra/newview/skins/default/textures/build/Object_Sphere_Selected.png differ
diff --git a/indra/newview/skins/default/textures/build/Object_Tetrahedron_Selected.png b/indra/newview/skins/default/textures/build/Object_Tetrahedron_Selected.png
index b2ea680f23b..28175f107e6 100644
Binary files a/indra/newview/skins/default/textures/build/Object_Tetrahedron_Selected.png and b/indra/newview/skins/default/textures/build/Object_Tetrahedron_Selected.png differ
diff --git a/indra/newview/skins/default/textures/build/Object_Torus_Selected.png b/indra/newview/skins/default/textures/build/Object_Torus_Selected.png
index 1fc22686eb9..049ca64f058 100644
Binary files a/indra/newview/skins/default/textures/build/Object_Torus_Selected.png and b/indra/newview/skins/default/textures/build/Object_Torus_Selected.png differ
diff --git a/indra/newview/skins/default/textures/build/Object_Tree_Selected.png b/indra/newview/skins/default/textures/build/Object_Tree_Selected.png
index 5bd87f8a2fb..8b45d668aaf 100644
Binary files a/indra/newview/skins/default/textures/build/Object_Tree_Selected.png and b/indra/newview/skins/default/textures/build/Object_Tree_Selected.png differ
diff --git a/indra/newview/skins/default/textures/build/Object_Tube_Selected.png b/indra/newview/skins/default/textures/build/Object_Tube_Selected.png
index a4c3f39e148..c94a984c41d 100644
Binary files a/indra/newview/skins/default/textures/build/Object_Tube_Selected.png and b/indra/newview/skins/default/textures/build/Object_Tube_Selected.png differ
diff --git a/indra/newview/skins/default/textures/containers/Accordion_Selected.png b/indra/newview/skins/default/textures/containers/Accordion_Selected.png
index 0616dea6a34..ab852007ab5 100644
Binary files a/indra/newview/skins/default/textures/containers/Accordion_Selected.png and b/indra/newview/skins/default/textures/containers/Accordion_Selected.png differ
diff --git a/indra/newview/skins/default/textures/containers/TabLeft_Flat_Off.png b/indra/newview/skins/default/textures/containers/TabLeft_Flat_Off.png
new file mode 100644
index 00000000000..d6c6bc41ec6
Binary files /dev/null and b/indra/newview/skins/default/textures/containers/TabLeft_Flat_Off.png differ
diff --git a/indra/newview/skins/default/textures/containers/TabLeft_Flat_Selected.png b/indra/newview/skins/default/textures/containers/TabLeft_Flat_Selected.png
new file mode 100644
index 00000000000..cc310bbc262
Binary files /dev/null and b/indra/newview/skins/default/textures/containers/TabLeft_Flat_Selected.png differ
diff --git a/indra/newview/skins/default/textures/containers/TabTop_First_Flat_Off.png b/indra/newview/skins/default/textures/containers/TabTop_First_Flat_Off.png
new file mode 100644
index 00000000000..177d341ba36
Binary files /dev/null and b/indra/newview/skins/default/textures/containers/TabTop_First_Flat_Off.png differ
diff --git a/indra/newview/skins/default/textures/containers/TabTop_First_Flat_Selected.png b/indra/newview/skins/default/textures/containers/TabTop_First_Flat_Selected.png
new file mode 100644
index 00000000000..54bd4d923d1
Binary files /dev/null and b/indra/newview/skins/default/textures/containers/TabTop_First_Flat_Selected.png differ
diff --git a/indra/newview/skins/default/textures/containers/TabTop_Last_Flat_Off.png b/indra/newview/skins/default/textures/containers/TabTop_Last_Flat_Off.png
new file mode 100644
index 00000000000..28a315665bd
Binary files /dev/null and b/indra/newview/skins/default/textures/containers/TabTop_Last_Flat_Off.png differ
diff --git a/indra/newview/skins/default/textures/containers/TabTop_Last_Flat_Selected.png b/indra/newview/skins/default/textures/containers/TabTop_Last_Flat_Selected.png
new file mode 100644
index 00000000000..993e79b37f0
Binary files /dev/null and b/indra/newview/skins/default/textures/containers/TabTop_Last_Flat_Selected.png differ
diff --git a/indra/newview/skins/default/textures/containers/TabTop_Middle_Flat_Off.png b/indra/newview/skins/default/textures/containers/TabTop_Middle_Flat_Off.png
new file mode 100644
index 00000000000..1f5d926cc8a
Binary files /dev/null and b/indra/newview/skins/default/textures/containers/TabTop_Middle_Flat_Off.png differ
diff --git a/indra/newview/skins/default/textures/containers/TabTop_Middle_Flat_Selected.png b/indra/newview/skins/default/textures/containers/TabTop_Middle_Flat_Selected.png
new file mode 100644
index 00000000000..e4e4d27d426
Binary files /dev/null and b/indra/newview/skins/default/textures/containers/TabTop_Middle_Flat_Selected.png differ
diff --git a/indra/newview/skins/default/textures/containers/Toolbar_Middle_Selected.png b/indra/newview/skins/default/textures/containers/Toolbar_Middle_Selected.png
index 642113b1358..62f82879cf8 100644
Binary files a/indra/newview/skins/default/textures/containers/Toolbar_Middle_Selected.png and b/indra/newview/skins/default/textures/containers/Toolbar_Middle_Selected.png differ
diff --git a/indra/newview/skins/default/textures/icons/Info_Over.png b/indra/newview/skins/default/textures/icons/Info_Over.png
index 0efd596d3ec..1d00c2c175d 100644
Binary files a/indra/newview/skins/default/textures/icons/Info_Over.png and b/indra/newview/skins/default/textures/icons/Info_Over.png differ
diff --git a/indra/newview/skins/default/textures/icons/Inv_SysClosed.png b/indra/newview/skins/default/textures/icons/Inv_SysClosed.png
index 9af3b60cbda..19afa94cc4f 100644
Binary files a/indra/newview/skins/default/textures/icons/Inv_SysClosed.png and b/indra/newview/skins/default/textures/icons/Inv_SysClosed.png differ
diff --git a/indra/newview/skins/default/textures/icons/Inv_SysOpen.png b/indra/newview/skins/default/textures/icons/Inv_SysOpen.png
index 01e7dbff8fc..7ca0f5a8491 100644
Binary files a/indra/newview/skins/default/textures/icons/Inv_SysOpen.png and b/indra/newview/skins/default/textures/icons/Inv_SysOpen.png differ
diff --git a/indra/newview/skins/default/textures/icons/SL_Logo.png b/indra/newview/skins/default/textures/icons/SL_Logo.png
index 1eafc304f58..7b147df369d 100644
Binary files a/indra/newview/skins/default/textures/icons/SL_Logo.png and b/indra/newview/skins/default/textures/icons/SL_Logo.png differ
diff --git a/indra/newview/skins/default/textures/icons/back_arrow_off.png b/indra/newview/skins/default/textures/icons/back_arrow_off.png
index ab82dfc0a79..0c962574707 100644
Binary files a/indra/newview/skins/default/textures/icons/back_arrow_off.png and b/indra/newview/skins/default/textures/icons/back_arrow_off.png differ
diff --git a/indra/newview/skins/default/textures/icons/back_arrow_over.png b/indra/newview/skins/default/textures/icons/back_arrow_over.png
index ad8c1f8d2c2..a7fac5ef996 100644
Binary files a/indra/newview/skins/default/textures/icons/back_arrow_over.png and b/indra/newview/skins/default/textures/icons/back_arrow_over.png differ
diff --git a/indra/newview/skins/default/textures/icons/back_arrow_press.png b/indra/newview/skins/default/textures/icons/back_arrow_press.png
index 8aecc3d876c..0c962574707 100644
Binary files a/indra/newview/skins/default/textures/icons/back_arrow_press.png and b/indra/newview/skins/default/textures/icons/back_arrow_press.png differ
diff --git a/indra/newview/skins/default/textures/icons/check_mark.png b/indra/newview/skins/default/textures/icons/check_mark.png
index 5431dd31c80..00ec32964df 100644
Binary files a/indra/newview/skins/default/textures/icons/check_mark.png and b/indra/newview/skins/default/textures/icons/check_mark.png differ
diff --git a/indra/newview/skins/default/textures/icons/hand.png b/indra/newview/skins/default/textures/icons/hand.png
index d8ef2e22fa3..6effb7c77d3 100644
Binary files a/indra/newview/skins/default/textures/icons/hand.png and b/indra/newview/skins/default/textures/icons/hand.png differ
diff --git a/indra/newview/skins/default/textures/icons/see_me_online.png b/indra/newview/skins/default/textures/icons/see_me_online.png
index 4059035b20c..51d369003c1 100644
Binary files a/indra/newview/skins/default/textures/icons/see_me_online.png and b/indra/newview/skins/default/textures/icons/see_me_online.png differ
diff --git a/indra/newview/skins/default/textures/locked_image_dark.png b/indra/newview/skins/default/textures/locked_image_dark.png
new file mode 100644
index 00000000000..b952f2cfb07
Binary files /dev/null and b/indra/newview/skins/default/textures/locked_image_dark.png differ
diff --git a/indra/newview/skins/default/textures/navbar/Favorite_Star_Active.png b/indra/newview/skins/default/textures/navbar/Favorite_Star_Active.png
index e27dbe2cadc..cbb78cd5149 100644
Binary files a/indra/newview/skins/default/textures/navbar/Favorite_Star_Active.png and b/indra/newview/skins/default/textures/navbar/Favorite_Star_Active.png differ
diff --git a/indra/newview/skins/default/textures/navbar/Favorite_Star_Over.png b/indra/newview/skins/default/textures/navbar/Favorite_Star_Over.png
index 7909d54f2b5..6b4092bf49e 100644
Binary files a/indra/newview/skins/default/textures/navbar/Favorite_Star_Over.png and b/indra/newview/skins/default/textures/navbar/Favorite_Star_Over.png differ
diff --git a/indra/newview/skins/default/textures/navbar/Row_Selection.png b/indra/newview/skins/default/textures/navbar/Row_Selection.png
index fc4f0c07eff..0eeb4f494cb 100644
Binary files a/indra/newview/skins/default/textures/navbar/Row_Selection.png and b/indra/newview/skins/default/textures/navbar/Row_Selection.png differ
diff --git a/indra/newview/skins/default/textures/square_selection.png b/indra/newview/skins/default/textures/square_selection.png
new file mode 100644
index 00000000000..9f344c4842e
Binary files /dev/null and b/indra/newview/skins/default/textures/square_selection.png differ
diff --git a/indra/newview/skins/default/textures/textures.xml b/indra/newview/skins/default/textures/textures.xml
index ff5737ab49a..1f4b12fc914 100644
--- a/indra/newview/skins/default/textures/textures.xml
+++ b/indra/newview/skins/default/textures/textures.xml
@@ -124,7 +124,9 @@ with the same filename but different name
+
+
@@ -172,6 +174,8 @@ with the same filename but different name
+
+
@@ -559,15 +563,16 @@ with the same filename but different name
-
-
+
-
+
+
+
@@ -648,6 +653,8 @@ with the same filename but different name
+
+
@@ -656,6 +663,7 @@ with the same filename but different name
+
@@ -685,6 +693,15 @@ with the same filename but different name
+
+
+
+
+
+
+
+
+
@@ -702,7 +719,9 @@ with the same filename but different name
+
+
@@ -870,6 +889,7 @@ with the same filename but different name
+
diff --git a/indra/newview/skins/default/textures/widgets/Checkbox_Disabled.png b/indra/newview/skins/default/textures/widgets/Checkbox_Disabled.png
index 8439f82e293..383ff8f6e39 100644
Binary files a/indra/newview/skins/default/textures/widgets/Checkbox_Disabled.png and b/indra/newview/skins/default/textures/widgets/Checkbox_Disabled.png differ
diff --git a/indra/newview/skins/default/textures/widgets/Checkbox_Off.png b/indra/newview/skins/default/textures/widgets/Checkbox_Off.png
index cb9a04d84fb..66f12496cbf 100644
Binary files a/indra/newview/skins/default/textures/widgets/Checkbox_Off.png and b/indra/newview/skins/default/textures/widgets/Checkbox_Off.png differ
diff --git a/indra/newview/skins/default/textures/widgets/Checkbox_On.png b/indra/newview/skins/default/textures/widgets/Checkbox_On.png
index 0ec090504a1..549bbde5cd7 100644
Binary files a/indra/newview/skins/default/textures/widgets/Checkbox_On.png and b/indra/newview/skins/default/textures/widgets/Checkbox_On.png differ
diff --git a/indra/newview/skins/default/textures/widgets/Checkbox_On_Disabled.png b/indra/newview/skins/default/textures/widgets/Checkbox_On_Disabled.png
index 5759f7de695..9c80670837b 100644
Binary files a/indra/newview/skins/default/textures/widgets/Checkbox_On_Disabled.png and b/indra/newview/skins/default/textures/widgets/Checkbox_On_Disabled.png differ
diff --git a/indra/newview/skins/default/textures/widgets/Checkbox_On_Press.png b/indra/newview/skins/default/textures/widgets/Checkbox_On_Press.png
index ba46e91c55f..903c61f01bb 100644
Binary files a/indra/newview/skins/default/textures/widgets/Checkbox_On_Press.png and b/indra/newview/skins/default/textures/widgets/Checkbox_On_Press.png differ
diff --git a/indra/newview/skins/default/textures/widgets/Checkbox_Press.png b/indra/newview/skins/default/textures/widgets/Checkbox_Press.png
index 5f5a33d878a..96dfd7267c4 100644
Binary files a/indra/newview/skins/default/textures/widgets/Checkbox_Press.png and b/indra/newview/skins/default/textures/widgets/Checkbox_Press.png differ
diff --git a/indra/newview/skins/default/textures/widgets/Checkbox_Slim_Off.png b/indra/newview/skins/default/textures/widgets/Checkbox_Slim_Off.png
new file mode 100644
index 00000000000..99af0397d58
Binary files /dev/null and b/indra/newview/skins/default/textures/widgets/Checkbox_Slim_Off.png differ
diff --git a/indra/newview/skins/default/textures/widgets/Checkbox_Slim_On.png b/indra/newview/skins/default/textures/widgets/Checkbox_Slim_On.png
new file mode 100644
index 00000000000..cabecf14678
Binary files /dev/null and b/indra/newview/skins/default/textures/widgets/Checkbox_Slim_On.png differ
diff --git a/indra/newview/skins/default/textures/widgets/ComboButton_Arrow.png b/indra/newview/skins/default/textures/widgets/ComboButton_Arrow.png
new file mode 100644
index 00000000000..7961967458d
Binary files /dev/null and b/indra/newview/skins/default/textures/widgets/ComboButton_Arrow.png differ
diff --git a/indra/newview/skins/default/textures/widgets/ComboButton_Disabled.png b/indra/newview/skins/default/textures/widgets/ComboButton_Disabled.png
index ebeb8133494..5b2bc7b1632 100644
Binary files a/indra/newview/skins/default/textures/widgets/ComboButton_Disabled.png and b/indra/newview/skins/default/textures/widgets/ComboButton_Disabled.png differ
diff --git a/indra/newview/skins/default/textures/widgets/ComboButton_Off.png b/indra/newview/skins/default/textures/widgets/ComboButton_Off.png
index 4f573cf6fa6..7199470307a 100644
Binary files a/indra/newview/skins/default/textures/widgets/ComboButton_Off.png and b/indra/newview/skins/default/textures/widgets/ComboButton_Off.png differ
diff --git a/indra/newview/skins/default/textures/widgets/ComboButton_Selected.png b/indra/newview/skins/default/textures/widgets/ComboButton_Selected.png
index 1a834bfbbc7..715b401ce5c 100644
Binary files a/indra/newview/skins/default/textures/widgets/ComboButton_Selected.png and b/indra/newview/skins/default/textures/widgets/ComboButton_Selected.png differ
diff --git a/indra/newview/skins/default/textures/widgets/ComboButton_Transparent.png b/indra/newview/skins/default/textures/widgets/ComboButton_Transparent.png
new file mode 100644
index 00000000000..4b978877e13
Binary files /dev/null and b/indra/newview/skins/default/textures/widgets/ComboButton_Transparent.png differ
diff --git a/indra/newview/skins/default/textures/widgets/ComboButton_UpOff.png b/indra/newview/skins/default/textures/widgets/ComboButton_UpOff.png
index 5a067aca7cf..9e74524be47 100644
Binary files a/indra/newview/skins/default/textures/widgets/ComboButton_UpOff.png and b/indra/newview/skins/default/textures/widgets/ComboButton_UpOff.png differ
diff --git a/indra/newview/skins/default/textures/widgets/ComboButton_UpSelected.png b/indra/newview/skins/default/textures/widgets/ComboButton_UpSelected.png
index ff563671479..aa8865c33d8 100644
Binary files a/indra/newview/skins/default/textures/widgets/ComboButton_UpSelected.png and b/indra/newview/skins/default/textures/widgets/ComboButton_UpSelected.png differ
diff --git a/indra/newview/skins/default/textures/widgets/DropDown_Disabled.png b/indra/newview/skins/default/textures/widgets/DropDown_Disabled.png
index 9a69f7e0d9a..fff0cfaff25 100644
Binary files a/indra/newview/skins/default/textures/widgets/DropDown_Disabled.png and b/indra/newview/skins/default/textures/widgets/DropDown_Disabled.png differ
diff --git a/indra/newview/skins/default/textures/widgets/DropDown_Off.png b/indra/newview/skins/default/textures/widgets/DropDown_Off.png
index b118e7a7d40..9f6a2313b91 100644
Binary files a/indra/newview/skins/default/textures/widgets/DropDown_Off.png and b/indra/newview/skins/default/textures/widgets/DropDown_Off.png differ
diff --git a/indra/newview/skins/default/textures/widgets/DropDown_On.png b/indra/newview/skins/default/textures/widgets/DropDown_On.png
index 613a8c2ff6e..a4984659403 100644
Binary files a/indra/newview/skins/default/textures/widgets/DropDown_On.png and b/indra/newview/skins/default/textures/widgets/DropDown_On.png differ
diff --git a/indra/newview/skins/default/textures/widgets/DropDown_Press.png b/indra/newview/skins/default/textures/widgets/DropDown_Press.png
index fa3a152df1c..b6bf4d1c220 100644
Binary files a/indra/newview/skins/default/textures/widgets/DropDown_Press.png and b/indra/newview/skins/default/textures/widgets/DropDown_Press.png differ
diff --git a/indra/newview/skins/default/textures/widgets/ListItem_Over.png b/indra/newview/skins/default/textures/widgets/ListItem_Over.png
index e72c1c40207..9316567e7b7 100644
Binary files a/indra/newview/skins/default/textures/widgets/ListItem_Over.png and b/indra/newview/skins/default/textures/widgets/ListItem_Over.png differ
diff --git a/indra/newview/skins/default/textures/widgets/ListItem_Select.png b/indra/newview/skins/default/textures/widgets/ListItem_Select.png
index 0e16a8b454b..cd65d347d62 100644
Binary files a/indra/newview/skins/default/textures/widgets/ListItem_Select.png and b/indra/newview/skins/default/textures/widgets/ListItem_Select.png differ
diff --git a/indra/newview/skins/default/textures/widgets/MarketplaceBtn_Off.png b/indra/newview/skins/default/textures/widgets/MarketplaceBtn_Off.png
index de71f763d3e..b2767c61747 100644
Binary files a/indra/newview/skins/default/textures/widgets/MarketplaceBtn_Off.png and b/indra/newview/skins/default/textures/widgets/MarketplaceBtn_Off.png differ
diff --git a/indra/newview/skins/default/textures/widgets/MarketplaceBtn_Selected.png b/indra/newview/skins/default/textures/widgets/MarketplaceBtn_Selected.png
index 8bfa3acb42b..de50b29f798 100644
Binary files a/indra/newview/skins/default/textures/widgets/MarketplaceBtn_Selected.png and b/indra/newview/skins/default/textures/widgets/MarketplaceBtn_Selected.png differ
diff --git a/indra/newview/skins/default/textures/widgets/PushButton_Disabled.png b/indra/newview/skins/default/textures/widgets/PushButton_Disabled.png
index e99ec4b14bf..64a9a2d8853 100644
Binary files a/indra/newview/skins/default/textures/widgets/PushButton_Disabled.png and b/indra/newview/skins/default/textures/widgets/PushButton_Disabled.png differ
diff --git a/indra/newview/skins/default/textures/widgets/PushButton_Login.png b/indra/newview/skins/default/textures/widgets/PushButton_Login.png
index 8e7d932ab1f..7e892d2b0a9 100644
Binary files a/indra/newview/skins/default/textures/widgets/PushButton_Login.png and b/indra/newview/skins/default/textures/widgets/PushButton_Login.png differ
diff --git a/indra/newview/skins/default/textures/widgets/PushButton_Login_Over.png b/indra/newview/skins/default/textures/widgets/PushButton_Login_Over.png
index 038ba23be25..9110889d6cb 100644
Binary files a/indra/newview/skins/default/textures/widgets/PushButton_Login_Over.png and b/indra/newview/skins/default/textures/widgets/PushButton_Login_Over.png differ
diff --git a/indra/newview/skins/default/textures/widgets/PushButton_Login_Pressed.png b/indra/newview/skins/default/textures/widgets/PushButton_Login_Pressed.png
index 828aa1a1394..bf38c2cd75a 100644
Binary files a/indra/newview/skins/default/textures/widgets/PushButton_Login_Pressed.png and b/indra/newview/skins/default/textures/widgets/PushButton_Login_Pressed.png differ
diff --git a/indra/newview/skins/default/textures/widgets/PushButton_Off.png b/indra/newview/skins/default/textures/widgets/PushButton_Off.png
index 29eeed7c78a..113c371a4d5 100644
Binary files a/indra/newview/skins/default/textures/widgets/PushButton_Off.png and b/indra/newview/skins/default/textures/widgets/PushButton_Off.png differ
diff --git a/indra/newview/skins/default/textures/widgets/PushButton_On.png b/indra/newview/skins/default/textures/widgets/PushButton_On.png
index 65d92a9d82f..db70f75dd6f 100644
Binary files a/indra/newview/skins/default/textures/widgets/PushButton_On.png and b/indra/newview/skins/default/textures/widgets/PushButton_On.png differ
diff --git a/indra/newview/skins/default/textures/widgets/PushButton_Over.png b/indra/newview/skins/default/textures/widgets/PushButton_Over.png
index 819f27c0ba1..67dfa0ca75b 100644
Binary files a/indra/newview/skins/default/textures/widgets/PushButton_Over.png and b/indra/newview/skins/default/textures/widgets/PushButton_Over.png differ
diff --git a/indra/newview/skins/default/textures/widgets/PushButton_Press.png b/indra/newview/skins/default/textures/widgets/PushButton_Press.png
index b0a92d8ffe2..8dfa9030b10 100644
Binary files a/indra/newview/skins/default/textures/widgets/PushButton_Press.png and b/indra/newview/skins/default/textures/widgets/PushButton_Press.png differ
diff --git a/indra/newview/skins/default/textures/widgets/PushButton_Selected_Press.png b/indra/newview/skins/default/textures/widgets/PushButton_Selected_Press.png
index 8588576fb0b..062fcf92469 100644
Binary files a/indra/newview/skins/default/textures/widgets/PushButton_Selected_Press.png and b/indra/newview/skins/default/textures/widgets/PushButton_Selected_Press.png differ
diff --git a/indra/newview/skins/default/textures/widgets/PushButton_Sign.png b/indra/newview/skins/default/textures/widgets/PushButton_Sign.png
new file mode 100644
index 00000000000..f1c27f8c9b1
Binary files /dev/null and b/indra/newview/skins/default/textures/widgets/PushButton_Sign.png differ
diff --git a/indra/newview/skins/default/textures/widgets/PushButton_Sign_Over.png b/indra/newview/skins/default/textures/widgets/PushButton_Sign_Over.png
new file mode 100644
index 00000000000..efef8bebadc
Binary files /dev/null and b/indra/newview/skins/default/textures/widgets/PushButton_Sign_Over.png differ
diff --git a/indra/newview/skins/default/textures/widgets/PushButton_Sign_Pressed.png b/indra/newview/skins/default/textures/widgets/PushButton_Sign_Pressed.png
new file mode 100644
index 00000000000..ec3409e8b85
Binary files /dev/null and b/indra/newview/skins/default/textures/widgets/PushButton_Sign_Pressed.png differ
diff --git a/indra/newview/skins/default/textures/widgets/RadioButton_Disabled.png b/indra/newview/skins/default/textures/widgets/RadioButton_Disabled.png
index 32ec25fe0e2..fb98907be29 100644
Binary files a/indra/newview/skins/default/textures/widgets/RadioButton_Disabled.png and b/indra/newview/skins/default/textures/widgets/RadioButton_Disabled.png differ
diff --git a/indra/newview/skins/default/textures/widgets/RadioButton_Off.png b/indra/newview/skins/default/textures/widgets/RadioButton_Off.png
index 5d267af5dcf..231aead6519 100644
Binary files a/indra/newview/skins/default/textures/widgets/RadioButton_Off.png and b/indra/newview/skins/default/textures/widgets/RadioButton_Off.png differ
diff --git a/indra/newview/skins/default/textures/widgets/RadioButton_On.png b/indra/newview/skins/default/textures/widgets/RadioButton_On.png
index e6bf0db1575..066872ff82e 100644
Binary files a/indra/newview/skins/default/textures/widgets/RadioButton_On.png and b/indra/newview/skins/default/textures/widgets/RadioButton_On.png differ
diff --git a/indra/newview/skins/default/textures/widgets/RadioButton_On_Disabled.png b/indra/newview/skins/default/textures/widgets/RadioButton_On_Disabled.png
index 72aae43618b..43af5bec2fc 100644
Binary files a/indra/newview/skins/default/textures/widgets/RadioButton_On_Disabled.png and b/indra/newview/skins/default/textures/widgets/RadioButton_On_Disabled.png differ
diff --git a/indra/newview/skins/default/textures/widgets/RadioButton_On_Press.png b/indra/newview/skins/default/textures/widgets/RadioButton_On_Press.png
index f3883b82b3c..6870a48129b 100644
Binary files a/indra/newview/skins/default/textures/widgets/RadioButton_On_Press.png and b/indra/newview/skins/default/textures/widgets/RadioButton_On_Press.png differ
diff --git a/indra/newview/skins/default/textures/widgets/RadioButton_Press.png b/indra/newview/skins/default/textures/widgets/RadioButton_Press.png
index 0025256045c..0fb0054bfbc 100644
Binary files a/indra/newview/skins/default/textures/widgets/RadioButton_Press.png and b/indra/newview/skins/default/textures/widgets/RadioButton_Press.png differ
diff --git a/indra/newview/skins/default/textures/widgets/ScrollThumb_Horiz.png b/indra/newview/skins/default/textures/widgets/ScrollThumb_Horiz.png
index 9afc907c1c1..eb9563e0ee7 100644
Binary files a/indra/newview/skins/default/textures/widgets/ScrollThumb_Horiz.png and b/indra/newview/skins/default/textures/widgets/ScrollThumb_Horiz.png differ
diff --git a/indra/newview/skins/default/textures/widgets/ScrollThumb_Vert.png b/indra/newview/skins/default/textures/widgets/ScrollThumb_Vert.png
index ede643e528e..144a7cba25e 100644
Binary files a/indra/newview/skins/default/textures/widgets/ScrollThumb_Vert.png and b/indra/newview/skins/default/textures/widgets/ScrollThumb_Vert.png differ
diff --git a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_Disabled.png b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_Disabled.png
index d9f05d33ec1..8ad008ba51f 100644
Binary files a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_Disabled.png and b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_Disabled.png differ
diff --git a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_Selected.png b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_Selected.png
index d2342f6538c..ca5f84a0886 100644
Binary files a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_Selected.png and b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_Selected.png differ
diff --git a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_Selected_Disabled.png b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_Selected_Disabled.png
index 6223ad8dfec..9b1531a11e7 100644
Binary files a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_Selected_Disabled.png and b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_Selected_Disabled.png differ
diff --git a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_Selected_Press.png b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_Selected_Press.png
index 101d5a0930b..28f5bf37f76 100644
Binary files a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_Selected_Press.png and b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_Selected_Press.png differ
diff --git a/indra/newview/skins/default/textures/widgets/SliderThumb_Disabled.png b/indra/newview/skins/default/textures/widgets/SliderThumb_Disabled.png
index 5cfa3ae4e11..fb98907be29 100644
Binary files a/indra/newview/skins/default/textures/widgets/SliderThumb_Disabled.png and b/indra/newview/skins/default/textures/widgets/SliderThumb_Disabled.png differ
diff --git a/indra/newview/skins/default/textures/widgets/SliderThumb_Off.png b/indra/newview/skins/default/textures/widgets/SliderThumb_Off.png
index 66cdcbeb94e..231aead6519 100644
Binary files a/indra/newview/skins/default/textures/widgets/SliderThumb_Off.png and b/indra/newview/skins/default/textures/widgets/SliderThumb_Off.png differ
diff --git a/indra/newview/skins/default/textures/widgets/SliderThumb_Press.png b/indra/newview/skins/default/textures/widgets/SliderThumb_Press.png
index 0bf8e43e818..0fb0054bfbc 100644
Binary files a/indra/newview/skins/default/textures/widgets/SliderThumb_Press.png and b/indra/newview/skins/default/textures/widgets/SliderThumb_Press.png differ
diff --git a/indra/newview/skins/default/textures/widgets/SliderTrack_Horiz.png b/indra/newview/skins/default/textures/widgets/SliderTrack_Horiz.png
index 720830f83f1..65cfaf4c623 100644
Binary files a/indra/newview/skins/default/textures/widgets/SliderTrack_Horiz.png and b/indra/newview/skins/default/textures/widgets/SliderTrack_Horiz.png differ
diff --git a/indra/newview/skins/default/textures/widgets/Stepper_Down_Off.png b/indra/newview/skins/default/textures/widgets/Stepper_Down_Off.png
index 51d269bd45f..720946aba68 100644
Binary files a/indra/newview/skins/default/textures/widgets/Stepper_Down_Off.png and b/indra/newview/skins/default/textures/widgets/Stepper_Down_Off.png differ
diff --git a/indra/newview/skins/default/textures/widgets/Stepper_Down_Press.png b/indra/newview/skins/default/textures/widgets/Stepper_Down_Press.png
index b4f19b7dbb3..505fa6c82c5 100644
Binary files a/indra/newview/skins/default/textures/widgets/Stepper_Down_Press.png and b/indra/newview/skins/default/textures/widgets/Stepper_Down_Press.png differ
diff --git a/indra/newview/skins/default/textures/widgets/Stepper_Up_Off.png b/indra/newview/skins/default/textures/widgets/Stepper_Up_Off.png
index a01d928aef2..9482e4773e0 100644
Binary files a/indra/newview/skins/default/textures/widgets/Stepper_Up_Off.png and b/indra/newview/skins/default/textures/widgets/Stepper_Up_Off.png differ
diff --git a/indra/newview/skins/default/textures/widgets/Stepper_Up_Press.png b/indra/newview/skins/default/textures/widgets/Stepper_Up_Press.png
index d5b672d9437..ca311768c42 100644
Binary files a/indra/newview/skins/default/textures/widgets/Stepper_Up_Press.png and b/indra/newview/skins/default/textures/widgets/Stepper_Up_Press.png differ
diff --git a/indra/newview/skins/default/textures/widgets/TextField_Highlight.png b/indra/newview/skins/default/textures/widgets/TextField_Highlight.png
new file mode 100644
index 00000000000..71c2a5dbc35
Binary files /dev/null and b/indra/newview/skins/default/textures/widgets/TextField_Highlight.png differ
diff --git a/indra/newview/skins/default/textures/widgets/TextField_Transparent.png b/indra/newview/skins/default/textures/widgets/TextField_Transparent.png
new file mode 100644
index 00000000000..17351843879
Binary files /dev/null and b/indra/newview/skins/default/textures/widgets/TextField_Transparent.png differ
diff --git a/indra/newview/skins/default/textures/widgets/track_control_moon_back.png b/indra/newview/skins/default/textures/widgets/track_control_moon_back.png
index 03d1e805e13..1e2ce7bc834 100644
Binary files a/indra/newview/skins/default/textures/widgets/track_control_moon_back.png and b/indra/newview/skins/default/textures/widgets/track_control_moon_back.png differ
diff --git a/indra/newview/skins/default/textures/widgets/track_control_moon_front.png b/indra/newview/skins/default/textures/widgets/track_control_moon_front.png
index cdc52fe08ae..25f2914eccb 100644
Binary files a/indra/newview/skins/default/textures/widgets/track_control_moon_front.png and b/indra/newview/skins/default/textures/widgets/track_control_moon_front.png differ
diff --git a/indra/newview/skins/default/textures/widgets/track_control_sphere.png b/indra/newview/skins/default/textures/widgets/track_control_sphere.png
index 60a81d1fea7..adfb51edd2c 100644
Binary files a/indra/newview/skins/default/textures/widgets/track_control_sphere.png and b/indra/newview/skins/default/textures/widgets/track_control_sphere.png differ
diff --git a/indra/newview/skins/default/textures/widgets/track_control_sun_back.png b/indra/newview/skins/default/textures/widgets/track_control_sun_back.png
index b3191ccc5da..98bae903321 100644
Binary files a/indra/newview/skins/default/textures/widgets/track_control_sun_back.png and b/indra/newview/skins/default/textures/widgets/track_control_sun_back.png differ
diff --git a/indra/newview/skins/default/textures/windows/Inspector_I.png b/indra/newview/skins/default/textures/windows/Inspector_I.png
index 843f6e9fbe8..d51cf430514 100644
Binary files a/indra/newview/skins/default/textures/windows/Inspector_I.png and b/indra/newview/skins/default/textures/windows/Inspector_I.png differ
diff --git a/indra/newview/skins/default/textures/windows/Window_Background.png b/indra/newview/skins/default/textures/windows/Window_Background.png
index 9864ec0db85..83a09584c1f 100644
Binary files a/indra/newview/skins/default/textures/windows/Window_Background.png and b/indra/newview/skins/default/textures/windows/Window_Background.png differ
diff --git a/indra/newview/skins/default/textures/windows/Window_Foreground.png b/indra/newview/skins/default/textures/windows/Window_Foreground.png
index a86b236504f..1f4f9040bc3 100644
Binary files a/indra/newview/skins/default/textures/windows/Window_Foreground.png and b/indra/newview/skins/default/textures/windows/Window_Foreground.png differ
diff --git a/indra/newview/skins/default/textures/windows/login_sl_logo_horizontal.png b/indra/newview/skins/default/textures/windows/login_sl_logo_horizontal.png
new file mode 100644
index 00000000000..f56d0bd5425
Binary files /dev/null and b/indra/newview/skins/default/textures/windows/login_sl_logo_horizontal.png differ
diff --git a/indra/newview/skins/default/xui/de/panel_login_first.xml b/indra/newview/skins/default/xui/de/panel_login_first.xml
deleted file mode 100644
index 038001157e8..00000000000
--- a/indra/newview/skins/default/xui/de/panel_login_first.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
-
- http://secondlife.com/account/request.php?lang=de
-
-
- https://join.secondlife.com/
-
-
-
-
-
-
-
-
-
-
- Kennwort vergessen
-
-
- Registrieren
-
-
-
-
-
-
-
-
- Ihr erster Schritt ist Learning Island. Suchen Sie die Pforte!
-
-
- Erkunden Sie dann Social Island und lernen Sie andere Einwohner kennen!
-
-
-
-
-
-
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 c5b42b6daea..347b523a6b5 100644
--- a/indra/newview/skins/default/xui/en/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/en/floater_about_land.xml
@@ -974,7 +974,7 @@
layout="topleft"
left="28"
name="Set to group:"
- top_pad="5"
+ top_pad="9"
width="176">
Set to group:
@@ -1022,7 +1022,7 @@
layout="topleft"
left="28"
name="Owned by others:"
- top_pad="5"
+ top_pad="9"
width="176">
Owned by others:
diff --git a/indra/newview/skins/default/xui/en/floater_avatar_picker.xml b/indra/newview/skins/default/xui/en/floater_avatar_picker.xml
index adbce0d9826..0c82cbb00c4 100644
--- a/indra/newview/skins/default/xui/en/floater_avatar_picker.xml
+++ b/indra/newview/skins/default/xui/en/floater_avatar_picker.xml
@@ -63,7 +63,7 @@
layout="topleft"
left="10"
name="InstructSearchResidentName"
- top="8"
+ top="7"
width="220">
Type part of a person's name:
@@ -76,7 +76,7 @@
height="23"
left_delta="0"
name="Edit"
- top_pad="0"
+ top_pad="3"
width="65" />
+ top="30" />
@@ -161,7 +161,7 @@
height="16"
name="check_settings"
left="245"
- top="25"
+ top="30"
width="16" />
@@ -302,7 +302,7 @@
control_name="BulkChangeNextOwnerTransfer"
enabled_control="BulkChangeNextOwnerCopy"
height="16"
- top_pad="0"
+ top_pad="3"
initial_value="true"
label="Transfer"
layout="topleft"
diff --git a/indra/newview/skins/default/xui/en/floater_edit_hover_height.xml b/indra/newview/skins/default/xui/en/floater_edit_hover_height.xml
index c8316845947..41e8d3dc8a6 100644
--- a/indra/newview/skins/default/xui/en/floater_edit_hover_height.xml
+++ b/indra/newview/skins/default/xui/en/floater_edit_hover_height.xml
@@ -5,7 +5,7 @@
can_minimize="true"
can_close="true"
can_resize="false"
- height="80"
+ height="84"
width="515"
layout="topleft"
name="HoverHeight"
@@ -39,6 +39,6 @@
label="Bind Camera view"
layout="topleft"
name="BindCameraCheck"
- top_pad="7"
+ top_pad="14"
width="237"/>
diff --git a/indra/newview/skins/default/xui/en/floater_font_test.xml b/indra/newview/skins/default/xui/en/floater_font_test.xml
index 61cb91e2f3f..8070ed55e68 100644
--- a/indra/newview/skins/default/xui/en/floater_font_test.xml
+++ b/indra/newview/skins/default/xui/en/floater_font_test.xml
@@ -5,7 +5,7 @@
height="800"
layout="topleft"
min_height="175"
- min_width="154"
+ min_width="390"
name="contents"
help_topic="contents"
title="FONT TEST"
diff --git a/indra/newview/skins/default/xui/en/floater_god_tools.xml b/indra/newview/skins/default/xui/en/floater_god_tools.xml
index f8ec696af9f..70976891186 100644
--- a/indra/newview/skins/default/xui/en/floater_god_tools.xml
+++ b/indra/newview/skins/default/xui/en/floater_god_tools.xml
@@ -6,7 +6,7 @@
name="godtools floater"
help_topic="godtools_floater"
title="GOD TOOLS"
- width="400">
+ width="410">
+ width="410">
+ width="294">
@@ -233,13 +233,13 @@
border_style="line"
border_thickness="1"
follows="top|right"
- height="16"
+ height="18"
layout="topleft"
- left_delta="108"
+ left_delta="90"
max_length_bytes="10"
name="estate"
top_delta="0"
- width="50" />
+ width="100" />
Parent ID:
@@ -257,14 +257,14 @@
border_style="line"
border_thickness="1"
follows="top|right"
- height="16"
+ height="18"
layout="topleft"
- left_delta="108"
+ left_delta="90"
max_length_bytes="10"
name="parentestate"
tool_tip="This is the parent estate for this region"
top_delta="0"
- width="50">
+ width="100">
@@ -276,22 +276,22 @@
layout="topleft"
left="200"
name="Grid Pos: "
- top_pad="4"
- width="190">
+ top_pad="7"
+ width="90">
Grid Pos:
+ width="46">
@@ -299,14 +299,14 @@
border_style="line"
border_thickness="1"
follows="top|right"
- height="16"
+ height="18"
layout="topleft"
- left_pad="10"
+ left_pad="8"
max_length_bytes="10"
name="gridposy"
tool_tip="This is the grid y position for this region"
top_delta="0"
- width="40">
+ width="46">
@@ -318,20 +318,20 @@
layout="topleft"
left="200"
name="Redirect to Grid: "
- top_pad="4"
- width="88">
+ top_pad="7"
+ width="90">
Redirect to Grid:
+ width="46">
@@ -339,13 +339,13 @@
border_style="line"
border_thickness="1"
follows="top|right"
- height="16"
+ height="18"
layout="topleft"
- left_pad="10"
+ left_pad="8"
max_length_bytes="10"
name="redirecty"
top_delta="0"
- width="40">
+ width="46">
@@ -407,10 +407,10 @@
label="Refresh"
label_selected="Refresh"
layout="topleft"
- left="278"
+ left="280"
name="Refresh"
tool_tip="Click here to refresh the above information"
- top_pad="10"
+ top_pad="14"
width="110">
diff --git a/indra/newview/skins/default/xui/en/floater_inventory_settings.xml b/indra/newview/skins/default/xui/en/floater_inventory_settings.xml
index a51e7a844aa..9d2ed43756f 100644
--- a/indra/newview/skins/default/xui/en/floater_inventory_settings.xml
+++ b/indra/newview/skins/default/xui/en/floater_inventory_settings.xml
@@ -145,7 +145,7 @@
font="SansSerifMedium"
text_color="White"
top_delta="1"
- width="300">
+ width="310">
Clicking on "Show in inventory" or "Find original"
+ width="53">
Display...
+ top_pad="10">
+ top_pad="10">
+ top_pad="10">
+ top_pad="10">
+ top_pad="10">
+ top_pad="21">
+ width="424" >
-
-
+ width="35"
+ font="DejaVu"
+ font.size="LSmall"
+ pad_bottom="1">
+
+
@@ -287,7 +317,10 @@
layout="topleft"
left_pad="2"
name="unlink_btn"
- width="90">
+ width="90"
+ font="DejaVu"
+ font.size="LSmall"
+ pad_bottom="1">
@@ -298,10 +331,12 @@
layout="topleft"
left="143"
name="checkbox uniform"
- top="48"
+ top="47"
label_text.wrap="true"
label_text.width="100"
- width="134" />
+ width="134"
+ font="DejaVu"
+ font.size="LSmall" />
+ width="134"
+ font="DejaVu"
+ font.size="LSmall" />
+ width="134"
+ font="DejaVu"
+ font.size="LSmall"/>
+ width="60"
+ drop_down_button.font="DejaVu"
+ drop_down_button.font.size="LSmall">
+ width="114"
+ font="DejaVu"
+ font.size="LSmall" >
+ width="295"
+ font="DejaVu"
+ font.size="LSmall">
+ width="90"
+ font="DejaVu"
+ font.size="LSmall">
Name:
+ width="90"
+ font="DejaVu"
+ font.size="LSmall">
Description:
+ width="90"
+ font="DejaVu"
+ font.size="LSmall">
Creator:
+ width="90"
+ font="DejaVu"
+ font.size="LSmall">
Owner:
+ width="75"
+ font="DejaVu"
+ font.size="LSmall">
Group:
+ width="23"
+ font="DejaVu"
+ font.size="LSmall"
+ pad_bottom="1" />
+ width="87"
+ font="DejaVu"
+ font.size="LSmall" />
+ width="80"
+ font="DejaVu"
+ font.size="LSmall"
+ pad_bottom="1" />
+ width="82"
+ font="DejaVu"
+ font.size="LSmall" >
Click to:
+ tool_tip="A click action enables you to interact with an object with a single left click. Each click action has a special cursor indicating what it does. Some click actions have requirements to function. For example Touch and Pay require scripts"
+ drop_down_button.font="DejaVu"
+ drop_down_button.font.size="LSmall" >
+ tool_tip="Lets people buy this object, its content or it copy inworld for specified price."
+ font="DejaVu"
+ font.size="LSmall" />
+ tool_tip="Select whether purchaser will receive a copy, copy of the content or item itself."
+ drop_down_button.font="DejaVu"
+ drop_down_button.font.size="LSmall" >
+ tool_tip="Let people see this object in search results"
+ font="DejaVu"
+ font.size="LSmall" />
+ width="264"
+ font="DejaVu"
+ font.size="LSmall" >
You can modify this object
+ left="10"
+ font="DejaVu"
+ font.size="LSmall" >
Anyone:
+ width="85"
+ font="DejaVu"
+ font.size="LSmall" />
+ width="90"
+ font="DejaVu"
+ font.size="LSmall" />
+ left="10"
+ font="DejaVu"
+ font.size="LSmall" >
Next owner:
+ width="85"
+ font="DejaVu"
+ font.size="LSmall" />
+ width="80"
+ font="DejaVu"
+ font.size="LSmall" />
+ width="100"
+ font="DejaVu"
+ font.size="LSmall" />
+ width="80"
+ font="DejaVu"
+ font.size="LSmall" >
B:
+ width="80"
+ font="DejaVu"
+ font.size="LSmall" >
O:
+ width="80"
+ font="DejaVu"
+ font.size="LSmall" >
G:
+ width="80"
+ font="DejaVu"
+ font.size="LSmall" >
E:
+ width="80"
+ font="DejaVu"
+ font.size="LSmall" >
N:
+ width="80"
+ font="DejaVu"
+ font.size="LSmall" >
F:
@@ -1373,7 +1479,9 @@ even though the user gets a free copy.
name="pathfinding_attributes_label"
top_pad="4"
width="150"
- left="10">
+ left="10"
+ font="DejaVu"
+ font.size="LSmall" >
Pathfinding attributes:
+ left_pad="0"
+ font="DejaVu"
+ font.size="LSmall" >
@@ -1408,7 +1518,9 @@ even though the user gets a free copy.
tool_tip="Prevents object from being moved or deleted. Frequently useful during building to avoid unintended edits."
top_pad="5"
left="10"
- width="123" />
+ width="123"
+ font="DejaVu"
+ font.size="LSmall" />
+ width="123"
+ font="DejaVu"
+ font.size="LSmall" />
+ width="123"
+ font="DejaVu"
+ font.size="LSmall" />
+ width="123"
+ font="DejaVu"
+ font.size="LSmall" />
+ width="95"
+ font="DejaVu"
+ font.size="LSmall" />
+ width="121"
+ font="DejaVu"
+ font.size="LSmall" >
Position (m)
+ width="87"
+ font="DejaVu"
+ font.size="LSmall" />
+ width="87"
+ font="DejaVu"
+ font.size="LSmall" />
+ width="87"
+ font="DejaVu"
+ font.size="LSmall" />
+ width="19" />
+ width="121"
+ font="DejaVu"
+ font.size="LSmall" >
Size (m)
+ width="87"
+ font="DejaVu"
+ font.size="LSmall" />
+ width="87"
+ font="DejaVu"
+ font.size="LSmall" />
+ width="87"
+ font="DejaVu"
+ font.size="LSmall" />
+ width="121"
+ font="DejaVu"
+ font.size="LSmall" >
Rotation (°)
+ width="87"
+ font="DejaVu"
+ font.size="LSmall" />
+ width="87"
+ font="DejaVu"
+ font.size="LSmall" />
+ width="87"
+ font="DejaVu"
+ font.size="LSmall" />
diff --git a/indra/newview/skins/default/xui/en/floater_voice_chat_volume.xml b/indra/newview/skins/default/xui/en/floater_voice_chat_volume.xml
index c0d260ef596..279a05748d9 100644
--- a/indra/newview/skins/default/xui/en/floater_voice_chat_volume.xml
+++ b/indra/newview/skins/default/xui/en/floater_voice_chat_volume.xml
@@ -22,7 +22,7 @@
increment="0.025"
initial_value="0.5"
label="Voice Chat"
- label_width="60"
+ label_width="62"
layout="topleft"
left="15"
top="50"
diff --git a/indra/newview/skins/default/xui/en/floater_world_map.xml b/indra/newview/skins/default/xui/en/floater_world_map.xml
index b0635a22295..4e64b09c1ed 100644
--- a/indra/newview/skins/default/xui/en/floater_world_map.xml
+++ b/indra/newview/skins/default/xui/en/floater_world_map.xml
@@ -167,7 +167,7 @@
follows="top|right"
halign="left"
height="16"
- top_delta="-2"
+ top_delta="-5"
left_pad="7"
layout="topleft"
name="person_label"
@@ -181,9 +181,9 @@
layout="topleft"
left="3"
name="infohub_chk"
- top_pad="3"
+ top_pad="7"
width="22" />
-
-
land auction
@@ -270,7 +270,7 @@
mouse_opaque="true"
name="square2_owner"
left="20"
- top_pad="-5"
+ top_pad="-2"
width="16" />
by owner
@@ -290,7 +290,7 @@
control_name="MapShowGridCoords"
layout="topleft"
follows="top|right"
- top_pad="2"
+ top_pad="5"
left="3"
height="16"
width="22"
@@ -300,8 +300,8 @@
type="string"
layout="topleft"
follows="top|right"
- top_delta="2"
- left_pad="3"
+ top_delta="-2"
+ left_pad="2"
height="16"
width="220"
halign="left"
@@ -357,7 +357,7 @@
height="16"
layout="topleft"
left="135"
- top_pad="1"
+ top_pad="5"
name="event_chk"
width="22" />
-
-
-
- DejaVuSans.ttf
+
+ Inter_18pt-Regular.ttf
+ DejaVuSans.ttf
TwemojiSVG.ttf
meiryo.TTC
@@ -31,9 +34,11 @@
-
- DejaVuSans-Bold.ttf
+
+ Inter_18pt-ExtraBold.ttf
+ DejaVuSans-Bold.ttf
arialbd.ttf
@@ -42,8 +47,11 @@
-
- DejaVuSans.ttf
+
+ Inter_18pt-Regular.ttf
+ DejaVuSans.ttf
arial.ttf
@@ -52,31 +60,38 @@
-
- DejaVuSans-Bold.ttf
+
+ Inter_18pt-Bold.ttf
+ DejaVuSans-Bold.ttf
-
- DejaVuSans-Oblique.ttf
+
+ Inter_18pt-Italic.ttf
+ DejaVuSans-Oblique.ttf
-
- DejaVuSans-BoldOblique.ttf
+
+ Inter_18pt-BoldItalic.ttf
+ DejaVuSans-BoldOblique.ttf
TwemojiSVG.ttf
-
-
+
+
DejaVuSansMono.ttf
@@ -103,9 +118,11 @@
DejaVuSans-BoldOblique.ttf
-
- DejaVuSans.ttf
+
+ Inter_18pt-Regular.ttf
+ DejaVuSans.ttf
arial.ttf
@@ -114,10 +131,12 @@
-
- DejaVuSans-Bold.ttf
+
+ Inter_18pt-ExtraBold.ttf
+ DejaVuSans-Bold.ttf
arialbd.ttf
@@ -126,10 +145,12 @@
-
- DejaVuSans-Oblique.ttf
+
+ Inter_18pt-Italic.ttf
+ DejaVuSans-Oblique.ttf
ariali.ttf
@@ -138,10 +159,12 @@
-
- DejaVuSans-BoldOblique.ttf
+
+ Inter_18pt-BoldItalic.ttf
+ DejaVuSans-BoldOblique.ttf
arialbi.ttf
@@ -150,33 +173,38 @@
-
+
times.ttf
- DejaVuSans.ttf
+ Inter_18pt-Regular.ttf
+ comment="Size for monospaced font (points, or 1/72 of an inch)"
+ size="8.0"
+ />
+ comment="Size of huge font (points, or 1/72 of an inch)"
+ size="16.0"
+ />
+ comment="Size of large font (points, or 1/72 of an inch)"
+ size="11.0"
+ />
+ comment="Size of medium font (points, or 1/72 of an inch)"
+ size="10"
+ />
-
+
+
diff --git a/indra/newview/skins/default/xui/en/inspect_group.xml b/indra/newview/skins/default/xui/en/inspect_group.xml
index c190d9610fb..226454df7cd 100644
--- a/indra/newview/skins/default/xui/en/inspect_group.xml
+++ b/indra/newview/skins/default/xui/en/inspect_group.xml
@@ -9,7 +9,7 @@
bg_opaque_image="Inspector_Background"
can_close="false"
can_minimize="false"
- height="158"
+ height="188"
layout="topleft"
name="inspect_group"
single_instance="true"
@@ -47,7 +47,7 @@
@@ -89,7 +89,7 @@ L$123 to join
height="23"
label="Leave"
left="8"
- top="125"
+ top="156"
name="leave_btn"
width="103"
commit_callback.function="InspectGroup.Leave"/>
@@ -98,7 +98,7 @@ L$123 to join
height="23"
label="View Profile"
name="view_profile_btn"
- top="125"
+ top="156"
left="117"
width="103"
commit_callback.function="InspectGroup.ViewProfile" />
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 ca6e94397db..f9b65e3f134 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
@@ -61,7 +61,7 @@
left_pad="5"
name="avatar_name"
parse_urls="false"
- top="6"
+ top="5"
use_ellipses="true"
value="(loading)"
width="180" />
diff --git a/indra/newview/skins/default/xui/en/panel_blocked_list_item.xml b/indra/newview/skins/default/xui/en/panel_blocked_list_item.xml
index 5ac0bf54de9..6b4312a22af 100644
--- a/indra/newview/skins/default/xui/en/panel_blocked_list_item.xml
+++ b/indra/newview/skins/default/xui/en/panel_blocked_list_item.xml
@@ -65,7 +65,7 @@
left_pad="5"
name="item_name"
parse_urls="false"
- top="6"
+ top="4"
use_ellipses="true"
width="180" />
diff --git a/indra/newview/skins/default/xui/en/panel_chat_header.xml b/indra/newview/skins/default/xui/en/panel_chat_header.xml
index 4f489113768..dde2df71289 100644
--- a/indra/newview/skins/default/xui/en/panel_chat_header.xml
+++ b/indra/newview/skins/default/xui/en/panel_chat_header.xml
@@ -23,7 +23,7 @@
diff --git a/indra/newview/skins/default/xui/en/panel_chiclet_bar.xml b/indra/newview/skins/default/xui/en/panel_chiclet_bar.xml
index 54064979308..c43f82c0f13 100644
--- a/indra/newview/skins/default/xui/en/panel_chiclet_bar.xml
+++ b/indra/newview/skins/default/xui/en/panel_chiclet_bar.xml
@@ -109,7 +109,7 @@
image_overlay_alignment="center"
image_pressed="WellButton_Lit"
image_pressed_selected="WellButton_Lit_Selected"
- image_selected="PushButton_Press"
+ image_selected="PushButton_Selected"
label_color="Black"
left="0"
name="Unread"
diff --git a/indra/newview/skins/default/xui/en/panel_conversation_list_item.xml b/indra/newview/skins/default/xui/en/panel_conversation_list_item.xml
index 79025885984..90e367543e2 100644
--- a/indra/newview/skins/default/xui/en/panel_conversation_list_item.xml
+++ b/indra/newview/skins/default/xui/en/panel_conversation_list_item.xml
@@ -78,7 +78,7 @@
left="5"
name="conversation_title"
parse_urls="false"
- top="6"
+ top="4"
use_ellipses="true"
value="(loading)"
width="35" />
@@ -86,6 +86,7 @@
auto_update="true"
follows="top|right"
draw_border="false"
+ top="6"
height="16"
layout="topleft"
left_pad="5"
diff --git a/indra/newview/skins/default/xui/en/panel_edit_shape.xml b/indra/newview/skins/default/xui/en/panel_edit_shape.xml
index c1d743c3daa..2bd25b43bd0 100644
--- a/indra/newview/skins/default/xui/en/panel_edit_shape.xml
+++ b/indra/newview/skins/default/xui/en/panel_edit_shape.xml
@@ -15,7 +15,7 @@
White
Enter part of the name:
+ width="257">
Roughness Factor
@@ -273,7 +273,7 @@
diff --git a/indra/newview/skins/default/xui/en/panel_group_notices.xml b/indra/newview/skins/default/xui/en/panel_group_notices.xml
index 1162dcf20da..b1d5086a298 100644
--- a/indra/newview/skins/default/xui/en/panel_group_notices.xml
+++ b/indra/newview/skins/default/xui/en/panel_group_notices.xml
@@ -28,7 +28,7 @@ You can turn off Notices on the General tab.
left="5"
name="lbl2"
right="-1"
- top="5"
+ top="3"
width="300">
Notices are kept for 14 days.
Maximum 200 per group daily
@@ -42,7 +42,7 @@ Maximum 200 per group daily
left="0"
right="-1"
name="notice_list"
- top_pad="0"
+ top_pad="6"
width="304">
+ follows="all"
+ layout="topleft"
+ orientation="horizontal"
+ name="main_stack"
+ border_size="0"
+ animate="false"
+ top="0"
+ left="0"
+ height="768"
+ width="1024">
+
+
+ auto_resize="false"
+ user_resize="false"
+ layout="topleft"
+ name="center_stage"
+ background_visible="true"
+ bg_opaque_color="DkGrayLogin"
+ background_opaque="true"
+ width="1008"
+ height="768">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Start here
+
+
+
+
+
+
+
+
+
+
+
+ Grid
+
+
+
+
+
+
+
+
+ Need help logging in?
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
- Sign up
-
-
-
-
-
- Password help
-
-
-
+ auto_resize="true"
+ user_resize="false"
+ layout="topleft"
+ name="right_spacer"
+ background_visible="false"
+ min_width="0"
+ expanded_min_dim="0"
+ width="1">
+
-
diff --git a/indra/newview/skins/default/xui/en/panel_login_first.xml b/indra/newview/skins/default/xui/en/panel_login_first.xml
deleted file mode 100644
index d6ac71db945..00000000000
--- a/indra/newview/skins/default/xui/en/panel_login_first.xml
+++ /dev/null
@@ -1,262 +0,0 @@
-
-
-
- http://secondlife.com/account/request.php
-
-
- https://join.secondlife.com/
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Sign up
-
-
-
-
- Forgotten password
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/indra/newview/skins/default/xui/en/panel_navigation_bar.xml b/indra/newview/skins/default/xui/en/panel_navigation_bar.xml
index 85cf4419a39..4d924a6c244 100644
--- a/indra/newview/skins/default/xui/en/panel_navigation_bar.xml
+++ b/indra/newview/skins/default/xui/en/panel_navigation_bar.xml
@@ -89,7 +89,7 @@
image_hover_unselected="PushButton_Over"
image_bottom_pad="1"
layout="topleft"
- left="10"
+ left="9"
name="back_btn"
tool_tip="Go back to previous location"
top="2"
@@ -102,7 +102,7 @@
image_hover_unselected="PushButton_Over"
image_bottom_pad="1"
layout="topleft"
- left_pad="0"
+ left_pad="1"
name="forward_btn"
tool_tip="Go forward one location"
top_delta="0"
diff --git a/indra/newview/skins/default/xui/en/panel_notification_list_item.xml b/indra/newview/skins/default/xui/en/panel_notification_list_item.xml
index 80db209b598..c6e2c124d15 100644
--- a/indra/newview/skins/default/xui/en/panel_notification_list_item.xml
+++ b/indra/newview/skins/default/xui/en/panel_notification_list_item.xml
@@ -63,7 +63,8 @@
use_ellipses="true" word_wrap="false" mouse_opaque="false" name="sender_or_fee_box" visible="false">
Sender: "Resident R e s i d e n t R e s i d e n t"
-
+
@@ -105,7 +106,8 @@
use_ellipses="true" word_wrap="false" mouse_opaque="false" name="sender_or_fee_box_exp" visible="false">
Sender: "Resident R e s i d e n t R e s i d e n t"
-
+
diff --git a/indra/newview/skins/default/xui/en/panel_outfit_edit.xml b/indra/newview/skins/default/xui/en/panel_outfit_edit.xml
index a0e33443047..4cd9d278414 100644
--- a/indra/newview/skins/default/xui/en/panel_outfit_edit.xml
+++ b/indra/newview/skins/default/xui/en/panel_outfit_edit.xml
@@ -216,7 +216,7 @@ It is calculated as border_size + 2*UIResizeBarOverlap
+ width="45">
Farther
+ width="375">
Shadows significantly improve visual quality but can reduce speed.
+ width="153">
+
+ width="192">
(Enter value between 0.0 and 4.0)
0
@@ -446,7 +447,7 @@
font="SansSerifSmall"
height="18"
layout="topleft"
- left_pad="30"
+ left_pad="29"
name="2_lbl"
width="7">
2
@@ -468,7 +469,7 @@
layout="topleft"
left_pad="30"
name="4_lbl"
- width="7">
+ width="8">
4
5
diff --git a/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml
index 86999b1afbc..08595ed7e67 100644
--- a/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml
@@ -13,18 +13,6 @@
name="aspect_ratio_text">
[NUM]:[DEN]
-
- Cache:
-
@@ -86,7 +74,7 @@
font="SansSerif"
height="23"
layout="topleft"
- left="80"
+ left="33"
max_length_bytes="4096"
name="cache_location"
top_pad="5"
@@ -113,7 +101,7 @@
left_pad="3"
name="default_cache_location"
top_delta="0"
- width="100">
+ width="104">
diff --git a/indra/newview/skins/default/xui/en/panel_preferences_general.xml b/indra/newview/skins/default/xui/en/panel_preferences_general.xml
index 08b3ef69b6e..6d1b9526394 100644
--- a/indra/newview/skins/default/xui/en/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_general.xml
@@ -110,7 +110,8 @@
left="255"
max_chars="135"
name="time_format_combobox"
- width="70">
+ width="71">
+
+ top_pad="5"/>
@@ -344,7 +345,7 @@
layout="topleft"
left="30"
name="inworld_typing_rg_label"
- top_pad="4"
+ top_pad="5"
width="400">
Pressing letter keys:
@@ -353,7 +354,7 @@
height="34"
layout="topleft"
left="35"
- top_pad="0"
+ top_pad="5"
name="inworld_typing_preference">
Faster
@@ -121,7 +121,7 @@
Better
+
Software updates:
@@ -180,7 +180,7 @@
height="23"
layout="topleft"
left_delta="50"
- top_pad="5"
+ top_pad="10"
name="updater_service_combobox"
width="300">
+ width="400"/>
+ width="400"/>
Proxy Settings:
@@ -242,8 +242,7 @@
layout="topleft"
left_delta="50"
name="set_proxy"
- top_pad="5"
- >
+ top_pad="10" >
diff --git a/indra/newview/skins/default/xui/en/panel_preferences_sound.xml b/indra/newview/skins/default/xui/en/panel_preferences_sound.xml
index 52413abe74a..af3b2d6cb58 100644
--- a/indra/newview/skins/default/xui/en/panel_preferences_sound.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_sound.xml
@@ -319,7 +319,7 @@
top_delta="25"
name="Listen media from"
height="15"
- width="165"
+ width="175"
halign="right">
Hear media and sounds from
@@ -346,7 +346,7 @@
layout="topleft"
height="15"
left="23"
- width="165"
+ width="175"
name="media_autoplay_label"
halign="right">
Auto-play media
@@ -357,7 +357,7 @@
follows="left|top"
layout="topleft"
height="23"
- left_delta="170"
+ left_delta="180"
top_delta="-4"
name="media_auto_play_combo"
width="130">
@@ -379,7 +379,7 @@
layout="topleft"
height="15"
left="23"
- width="165"
+ width="175"
name="media_firstinteract_label"
halign="right">
Media first-interact
@@ -390,11 +390,12 @@
follows="left|top"
layout="topleft"
height="23"
- left_delta="170"
+ left_delta="180"
top_delta="-4"
width="130"
name="media_first_interact_combo"
tool_tip="This setting controls which media (once loaded) does not require a first click to focus before interaction can begin. This allows clicks to be passed directly to media bypassing the focus click requirement. Each option also inherits the previous ones.">
+
-
Hear voice from
@@ -513,7 +514,7 @@
control_name="VoiceEarLocation"
follows="left|top"
layout="topleft"
- left_delta="170"
+ left_delta="180"
top_delta="-6"
width="130"
height="23"
@@ -603,7 +604,7 @@
label="Voice Input/Output devices"
layout="topleft"
left="20"
- top_pad="0"
+ top_pad="1"
name="device_settings_btn"
width="200">
diff --git a/indra/newview/skins/default/xui/en/panel_region_experiences.xml b/indra/newview/skins/default/xui/en/panel_region_experiences.xml
index 199dca4853d..5e9ebabba76 100644
--- a/indra/newview/skins/default/xui/en/panel_region_experiences.xml
+++ b/indra/newview/skins/default/xui/en/panel_region_experiences.xml
@@ -13,7 +13,6 @@
Any Experience may be Key.
-
Key Experiences have permission to run on this estate.
Additionally, if the estate does not allow public access, Residents participating in any Key Experience may enter the estate and can remain as long as they are in a Key Experience.
diff --git a/indra/newview/skins/default/xui/en/panel_region_general.xml b/indra/newview/skins/default/xui/en/panel_region_general.xml
index 47e1e669d10..4e624276ccf 100644
--- a/indra/newview/skins/default/xui/en/panel_region_general.xml
+++ b/indra/newview/skins/default/xui/en/panel_region_general.xml
@@ -67,12 +67,12 @@
unknown
@@ -81,7 +81,7 @@
font="SansSerif"
height="20"
layout="topleft"
- top_delta="0"
+ top_delta="-1"
right="-100"
name="grid_position_lbl"
width="80">
diff --git a/indra/newview/skins/default/xui/en/panel_region_terrain.xml b/indra/newview/skins/default/xui/en/panel_region_terrain.xml
index 73e0a1000f0..dd9907dc1f7 100644
--- a/indra/newview/skins/default/xui/en/panel_region_terrain.xml
+++ b/indra/newview/skins/default/xui/en/panel_region_terrain.xml
@@ -42,7 +42,7 @@
max_val="100"
name="water_height_spin"
top="40"
- width="180" />
+ width="190" />
+ width="190" />
+ width="190" />
@@ -349,7 +349,7 @@
min_val="-500"
name="height_start_spin_1"
top_delta="15"
- width="100" />
+ width="105" />
+ width="105" />
+ width="105" />
+ width="105" />
@@ -425,7 +425,7 @@
min_val="-500"
name="height_start_spin_0"
top_delta="15"
- width="100" />
+ width="105" />
+ width="105" />
+ width="105" />
+ width="105" />
+ width="90">
Droplet Radius:
+ width="64"
+ font="DejaVu"
+ font.size="LSmall" >
Color
@@ -77,7 +79,9 @@
name="color trans"
text_readonly_color="LabelDisabledColor"
top="6"
- width="110">
+ width="110"
+ font="DejaVu"
+ font.size="LSmall" >
Transparency %
+ width="80"
+ font="DejaVu"
+ font.size="LSmall" />
+ width="80"
+ font="DejaVu"
+ font.size="LSmall" >
Glow
+ width="77"
+ font="DejaVu"
+ font.size="LSmall" />
+ width="81"
+ font="DejaVu"
+ font.size="LSmall" />
+ width="81"
+ font="DejaVu"
+ font.size="LSmall" />
+ width="278"
+ font="DejaVu"
+ font.size="LSmall" />
+ width="90"
+ font="DejaVu"
+ font.size="LSmall" >
Material
+ width="90"
+ drop_down_button.font="DejaVu"
+ drop_down_button.font.size="LSmall" >
+ name="radio_material_type"
+ font="DejaVu"
+ font.size="LSmall" >
+ name="radio_pbr_type"
+ font="DejaVu"
+ font.size="LSmall" >
+ width="160"
+ font="DejaVu"
+ font.size="LSmall" />
+ width="64"
+ caption_text.font="DejaVu"
+ caption_text.font.size="LSmall" />
+ width="140"
+ font="DejaVu"
+ font.size="LSmall" />
+ width="160"
+ font="DejaVu"
+ font.size="LSmall" >
Loading contents...
+ width="140"
+ font="DejaVu"
+ font.size="LSmall" />
+ width="140"
+ font="DejaVu"
+ font.size="LSmall" />
+ width="64"
+ caption_text.font="DejaVu"
+ caption_text.font.size="LSmall" />
+ width="90"
+ font="DejaVu"
+ font.size="LSmall" >
Alpha mode
+ width="120"
+ drop_down_button.font="DejaVu"
+ drop_down_button.font.size="LSmall">
+ width="90"
+ font="DejaVu"
+ font.size="LSmall" >
Mask cutoff
+ width="80"
+ font="DejaVu"
+ font.size="LSmall" />
+ width="64"
+ caption_text.font="DejaVu"
+ caption_text.font.size="LSmall" />
+ width="90"
+ font="DejaVu"
+ font.size="LSmall" >
Bumpiness
+ width="90"
+ drop_down_button.font="DejaVu"
+ drop_down_button.font.size="LSmall" >
+ width="64"
+ caption_text.font="DejaVu"
+ caption_text.font.size="LSmall" />
+ width="90"
+ font="DejaVu"
+ font.size="LSmall" >
Shininess
+ width="90"
+ drop_down_button.font="DejaVu"
+ drop_down_button.font.size="LSmall" >
+ width="116"
+ font="DejaVu"
+ font.size="LSmall" >
Glossiness
+ width="64"
+ font="DejaVu"
+ font.size="LSmall" />
+ width="116"
+ font="DejaVu"
+ font.size="LSmall" >
Environment
+ width="64"
+ font="DejaVu"
+ font.size="LSmall" />
+ width="116"
+ font="DejaVu"
+ font.size="LSmall" >
Color
@@ -658,7 +726,9 @@
use_ellipses="true"
read_only="true"
name="media_info"
- width="280">
+ width="280"
+ font="DejaVu"
+ font.size="LSmall" >
URL of chosen media, if any, goes here
+ width="85"
+ font="DejaVu"
+ font.size="LSmall" />
+ width="85"
+ font="DejaVu"
+ font.size="LSmall" />
+ width="85"
+ font="DejaVu"
+ font.size="LSmall" />
+ width="140"
+ font="DejaVu"
+ font.size="LSmall" >
Mapping
+ width="125"
+ drop_down_button.font="DejaVu"
+ drop_down_button.font.size="LSmall" >
+ width="265"
+ font="DejaVu"
+ font.size="LSmall" />
+ width="265"
+ font="DejaVu"
+ font.size="LSmall" />
+ width="265"
+ font="DejaVu"
+ font.size="LSmall" />
+ width="265"
+ font="DejaVu"
+ font.size="LSmall" />
+ width="265"
+ font="DejaVu"
+ font.size="LSmall" />
+ width="265"
+ font="DejaVu"
+ font.size="LSmall" />
+ width="265"
+ font="DejaVu"
+ font.size="LSmall" />
+ width="265"
+ font="DejaVu"
+ font.size="LSmall" />
+ width="265"
+ font="DejaVu"
+ font.size="LSmall" />
+ width="265"
+ font="DejaVu"
+ font.size="LSmall" />
+ width="265"
+ font="DejaVu"
+ font.size="LSmall" />
+ width="265"
+ font="DejaVu"
+ font.size="LSmall" />
+ width="265"
+ font="DejaVu"
+ font.size="LSmall" />
+ width="265"
+ font="DejaVu"
+ font.size="LSmall" />
+ width="265"
+ font="DejaVu"
+ font.size="LSmall" />
+ width="265"
+ font="DejaVu"
+ font.size="LSmall" />
+ width="260"
+ font="DejaVu"
+ font.size="LSmall" />
+ width="66"
+ font="DejaVu"
+ font.size="LSmall" />
+ width="265"
+ font="DejaVu"
+ font.size="LSmall" />
+ width="265"
+ font="DejaVu"
+ font.size="LSmall" />
+ width="265"
+ font="DejaVu"
+ font.size="LSmall" />
+ width="265"
+ font="DejaVu"
+ font.size="LSmall" />
+ width="265"
+ font="DejaVu"
+ font.size="LSmall" />
+ width="265"
+ font="DejaVu"
+ font.size="LSmall" />
diff --git a/indra/newview/skins/default/xui/en/sidepanel_appearance.xml b/indra/newview/skins/default/xui/en/sidepanel_appearance.xml
index a16b0b58dae..bc0350c4463 100644
--- a/indra/newview/skins/default/xui/en/sidepanel_appearance.xml
+++ b/indra/newview/skins/default/xui/en/sidepanel_appearance.xml
@@ -29,7 +29,7 @@ width="333">
background_visible="true"
bg_opaque_color="DkGray2"
left="10"
- top="5"
+ top="0"
follows="left|top|right"
layout="topleft"
width="307"
@@ -50,25 +50,15 @@ width="333">
layout="topleft"
name="openoutfit_btn"
visible="false" />
-
(Status)
@@ -76,7 +66,7 @@ width="333">
Second Life Main Grid (Agni)
Second Life Beta Test Grid (Aditi)
+ Agni (production)
+ Aditi (beta)
http://secondlife.com/download
diff --git a/indra/newview/skins/default/xui/en/widgets/button.xml b/indra/newview/skins/default/xui/en/widgets/button.xml
index 090447a6a2f..c7669e81aff 100644
--- a/indra/newview/skins/default/xui/en/widgets/button.xml
+++ b/indra/newview/skins/default/xui/en/widgets/button.xml
@@ -11,7 +11,7 @@
image_top_pad="0"
image_bottom_pad="0"
imgoverlay_label_space="1"
- label_color="ButtonLabelColor"
+ label_color="White"
label_color_selected="ButtonLabelSelectedColor"
label_color_disabled="ButtonLabelDisabledColor"
label_color_disabled_selected="ButtonLabelSelectedDisabledColor"
@@ -21,9 +21,10 @@
font="SansSerifSmall"
hover_glow_amount="0.15"
halign="center"
- pad_bottom="1"
+ pad_bottom="2"
height="23"
scale_image="true"
+ label_shadow="false"
handle_right_mouse="true"
use_draw_context_alpha="true"
held_down_delay.seconds="0.5"
diff --git a/indra/newview/skins/default/xui/en/widgets/conversation_view_participant.xml b/indra/newview/skins/default/xui/en/widgets/conversation_view_participant.xml
index cf995e58337..ebe2fa07e2f 100644
--- a/indra/newview/skins/default/xui/en/widgets/conversation_view_participant.xml
+++ b/indra/newview/skins/default/xui/en/widgets/conversation_view_participant.xml
@@ -9,7 +9,7 @@
left_pad="0"
icon_pad="10"
icon_width="20"
- text_pad="7"
+ text_pad="5"
text_pad_right="4"
arrow_size="12"
max_folder_item_overlap="2"
diff --git a/indra/newview/skins/default/xui/en/widgets/filter_editor.xml b/indra/newview/skins/default/xui/en/widgets/filter_editor.xml
index 604f62b099e..3a0f43de3d8 100644
--- a/indra/newview/skins/default/xui/en/widgets/filter_editor.xml
+++ b/indra/newview/skins/default/xui/en/widgets/filter_editor.xml
@@ -7,10 +7,10 @@
select_on_focus="true"
text_tentative_color="TextFgTentativeColor"
highlight_text_field="true"
- background_image="TextField_Search_Off"
- background_image_disabled="TextField_Search_Disabled"
- background_image_focused="TextField_Search_Active"
- background_image_highlight="TextField_Search_Highlight">
+ background_image="TextField_Off"
+ background_image_disabled="TextField_Disabled"
+ background_image_focused="TextField_Active"
+ background_image_highlight="TextField_Highlight">
+
+
diff --git a/indra/newview/skins/default/xui/en/widgets/gesture_combo_list.xml b/indra/newview/skins/default/xui/en/widgets/gesture_combo_list.xml
index 14cd3e159c2..499152f0605 100644
--- a/indra/newview/skins/default/xui/en/widgets/gesture_combo_list.xml
+++ b/indra/newview/skins/default/xui/en/widgets/gesture_combo_list.xml
@@ -10,7 +10,7 @@
mouse_opaque="false"
scale_image="true"
image_selected="PushButton_Selected_Press"
- image_pressed="PushButton_Press"
+ image_pressed="PushButton_Selected"
image_pressed_selected="PushButton_Selected_Press"
image_unselected="PushButton_Off"
image_disabled="PushButton_Disabled"
diff --git a/indra/newview/skins/default/xui/en/widgets/inbox_folder_view_folder.xml b/indra/newview/skins/default/xui/en/widgets/inbox_folder_view_folder.xml
index 865c145022c..41ef9d2b8ac 100644
--- a/indra/newview/skins/default/xui/en/widgets/inbox_folder_view_folder.xml
+++ b/indra/newview/skins/default/xui/en/widgets/inbox_folder_view_folder.xml
@@ -6,7 +6,7 @@
folder_indentation="8"
item_height="20"
item_top_pad="4"
- selection_image="Rounded_Square"
+ selection_image="Square_Selection"
left_pad="5"
icon_pad="2"
icon_width="16"
diff --git a/indra/newview/skins/default/xui/en/widgets/inbox_folder_view_item.xml b/indra/newview/skins/default/xui/en/widgets/inbox_folder_view_item.xml
index 09cbb1d3abc..ad4249da4ed 100644
--- a/indra/newview/skins/default/xui/en/widgets/inbox_folder_view_item.xml
+++ b/indra/newview/skins/default/xui/en/widgets/inbox_folder_view_item.xml
@@ -2,7 +2,7 @@
+ color="WornOutfitTextColor" />
+ background_image="TextField_Off"
+ background_image_disabled="TextField_Disabled"
+ background_image_focused="TextField_Active"
+ background_image_highlight="TextField_Highlight">
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 22955fe73d5..63613d34cb1 100644
--- a/indra/newview/skins/default/xui/en/widgets/tab_container.xml
+++ b/indra/newview/skins/default/xui/en/widgets/tab_container.xml
@@ -6,10 +6,11 @@ label_pad_left - padding to the left of tab button labels
@@ -19,22 +20,22 @@ label_pad_left - padding to the left of tab button labels
tab_left_image_flash
tab_top_image_flash
-->
-
-
+
-
+
+ tab_left_image_unselected="TabLeft_Flat_Off"
+ tab_left_image_selected="TabLeft_Flat_Selected"/>
diff --git a/indra/newview/skins/default/xui/en/widgets/toolbar.xml b/indra/newview/skins/default/xui/en/widgets/toolbar.xml
index 83459115251..aa2b60dc77f 100644
--- a/indra/newview/skins/default/xui/en/widgets/toolbar.xml
+++ b/indra/newview/skins/default/xui/en/widgets/toolbar.xml
@@ -15,7 +15,7 @@
+ color="WornOutfitTextColor" />
-
-
- http://secondlife.com/account/request.php?lang=es
-
-
- https://join.secondlife.com/
-
-
-
-
-
-
-
-
-
-
- Contraseña olvidada
-
-
- Regístrate
-
-
-
-
-
-
-
-
- Tu primer destino es la Isla de aprendizaje. ¡Encuentra el portal de salida!
-
-
- A continuación, puedes explorar la Isla social y hablar con otros residentes nuevos.
-
-
-
-
-
-
diff --git a/indra/newview/skins/default/xui/fr/panel_login_first.xml b/indra/newview/skins/default/xui/fr/panel_login_first.xml
deleted file mode 100644
index 8f40d0230ce..00000000000
--- a/indra/newview/skins/default/xui/fr/panel_login_first.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
-
- http://secondlife.com/account/request.php?lang=fr
-
-
- https://join.secondlife.com/
-
-
-
-
-
-
-
-
-
-
- Mot de passe oublié
-
-
- S'inscrire
-
-
-
-
-
-
-
-
- Votre première étape est Learning Island. Trouvez le portail de sortie.
-
-
- Puis explorez Social Island et faites la connaissance d'autres résidents.
-
-
-
-
-
-
diff --git a/indra/newview/skins/default/xui/it/panel_login_first.xml b/indra/newview/skins/default/xui/it/panel_login_first.xml
deleted file mode 100644
index 5b04fd411a8..00000000000
--- a/indra/newview/skins/default/xui/it/panel_login_first.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
-
- http://secondlife.com/account/request.php?lang=it
-
-
- http://join.secondlife.com/
-
-
-
-
-
-
-
-
-
-
- Password dimenticata
-
-
- Registrati
-
-
-
-
-
-
-
-
- Il primo passo è a Learning Island. Trova il portale di uscita!
-
-
- Quindi esplora Social Island e incontra altri nuovi residenti.
-
-
-
-
-
-
diff --git a/indra/newview/skins/default/xui/ja/fonts.xml b/indra/newview/skins/default/xui/ja/fonts.xml
index 2085e916c8e..874f530f17c 100644
--- a/indra/newview/skins/default/xui/ja/fonts.xml
+++ b/indra/newview/skins/default/xui/ja/fonts.xml
@@ -2,11 +2,11 @@
- NotoSansCJKjp-Medium.otf
-
-
- DejaVuSans.ttf
+ NotoSansCJKjp-SemiBold.otf
+
+ Inter_18pt-Regular.ttf
+
YuGothM.ttc
@@ -41,7 +41,7 @@
- YuGothic-Medium.otf
+ YuGothic-SemiBold.otf
ヒラギノ角ゴシック W3.ttc
@@ -82,9 +82,9 @@
NotoSansCJKjp-Bold.otf
-
- DejaVuSans-Bold.ttf
-
+
+ Inter_18pt-SemiBold.ttf
+
YuGothB.ttc
@@ -106,9 +106,9 @@
NotoSansCJKjp-Bold.otf
-
- DejaVuSans.ttf
-
+
+ Inter_18pt-Regular.ttf
+
arial.ttf
@@ -121,19 +121,19 @@
-
- DejaVuSans-Bold.ttf
-
+
+ Inter_18pt-SemiBold.ttf
+
-
- DejaVuSans-Oblique.ttf
-
+
+ Inter_18pt-Italic.ttf
+
-
- DejaVuSans-BoldOblique.ttf
-
+
+ Inter_18pt-SemiBoldItalic.ttf
+
@@ -144,29 +144,29 @@
-
- DejaVuSans.ttf
-
+
+ Inter_18pt-Regular.ttf
+
-
- DejaVuSans-Bold.ttf
-
+
+ Inter_18pt-SemiBold.ttf
+
-
- DejaVuSans-Oblique.ttf
-
+
+ Inter_18pt-Italic.ttf
+
-
- DejaVuSans-BoldOblique.ttf
-
+
+ Inter_18pt-SemiBoldItalic.ttf
+
-
- DejaVuSans.ttf
-
+
+ Inter_18pt-Regular.ttf
+
arial.ttf
@@ -179,9 +179,9 @@
-
- DejaVuSans-Bold.ttf
-
+
+ Inter_18pt-SemiBold.ttf
+
arialbd.ttf
@@ -194,9 +194,9 @@
-
- DejaVuSans-Oblique.ttf
-
+
+ Inter_18pt-Italic.ttf
+
ariali.ttf
@@ -209,9 +209,9 @@
-
- DejaVuSans-BoldOblique.ttf
-
+
+ Inter_18pt-SemiBoldItalic.ttf
+
arialbi.ttf
@@ -227,13 +227,13 @@
times.ttf
-
- DejaVuSans.ttf
-
+
+ Inter_18pt-Regular.ttf
+
-
-
-
+
+
+
diff --git a/indra/newview/skins/default/xui/ja/panel_login_first.xml b/indra/newview/skins/default/xui/ja/panel_login_first.xml
deleted file mode 100644
index 0f987fc8165..00000000000
--- a/indra/newview/skins/default/xui/ja/panel_login_first.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-
-
-
- https://secondlife.com/my/account/request.php?lang=ja-JP
-
-
- https://join.secondlife.com/?lang=ja
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- サインアップ
-
-
-
-
- パスワードを忘れましたか?
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/indra/newview/skins/default/xui/pl/panel_login_first.xml b/indra/newview/skins/default/xui/pl/panel_login_first.xml
deleted file mode 100644
index 0604ecbcff5..00000000000
--- a/indra/newview/skins/default/xui/pl/panel_login_first.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
- Zapomniałem/am hasła
-
-
-
-
-
-
-
-
- Wyspa Nauki to Twój pierwszy krok. Znajdź portal z wyjściem!
-
-
- Potem zwiedź Wyspę Towarzyską i poznaj innych nowych rezydentów!
-
-
-
-
-
-
diff --git a/indra/newview/skins/default/xui/pt/panel_login_first.xml b/indra/newview/skins/default/xui/pt/panel_login_first.xml
deleted file mode 100644
index 86c61163bc9..00000000000
--- a/indra/newview/skins/default/xui/pt/panel_login_first.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
-
- http://secondlife.com/account/request.php?lang=pt
-
-
- https://join.secondlife.com/
-
-
-
-
-
-
-
-
-
-
- Senha esquecida
-
-
- Cadastre-se
-
-
-
-
-
-
-
-
- Sua primeira parada é a Ilha da Educação. Encontre o portal de saída!
-
-
- Em seguida, explore a Ilha Social e encontre novos residentes!
-
-
-
-
-
-
diff --git a/indra/newview/skins/default/xui/ru/panel_login_first.xml b/indra/newview/skins/default/xui/ru/panel_login_first.xml
deleted file mode 100644
index 5db81ea7ca5..00000000000
--- a/indra/newview/skins/default/xui/ru/panel_login_first.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
-
- http://secondlife.com/account/request.php
-
-
- https://join.secondlife.com/
-
-
-
-
-
-
-
-
-
-
- Забытый пароль
-
-
- Регистрация
-
-
-
-
-
-
-
-
- Ваш первый шаг – Учебный остров. Найдите портал выхода!
-
-
- Затем исследуйте Социальный остров и познакомьтесь с другими новичками!
-
-
-
-
-
-
diff --git a/indra/newview/skins/default/xui/tr/panel_login_first.xml b/indra/newview/skins/default/xui/tr/panel_login_first.xml
deleted file mode 100644
index 1fc80c2b977..00000000000
--- a/indra/newview/skins/default/xui/tr/panel_login_first.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
-
- http://secondlife.com/account/request.php
-
-
- https://join.secondlife.com/
-
-
-
-
-
-
-
-
-
-
- Parolamı unuttum
-
-
- Kaydol
-
-
-
-
-
-
-
-
- Başlangıç yeriniz Eğitim Adası. Haydi çıkış portalını bulun!
-
-
- Sonra da Sosyal Ada'yı keşfe çıkın ve diğer LS sakinleriyle tanışın!
-
-
-
-
-
-
diff --git a/indra/newview/skins/default/xui/zh/panel_login_first.xml b/indra/newview/skins/default/xui/zh/panel_login_first.xml
deleted file mode 100644
index 4d72fcdd035..00000000000
--- a/indra/newview/skins/default/xui/zh/panel_login_first.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
-
- http://secondlife.com/account/request.php
-
-
- http://join.secondlife.com/
-
-
-
-
-
-
-
-
-
-
- 忘記密碼
-
-
- 註冊
-
-
-
-
-
-
-
-
- 你在「學習島」的第一步。 找到離開的傳送門!
-
-
- 接著,到「社交島」探索,認識新的居民朋友!
-
-
-
-
-
-
diff --git a/indra/newview/tests/llviewernetwork_test.cpp b/indra/newview/tests/llviewernetwork_test.cpp
index 94cf0fcf105..1cbb8b50eb3 100644
--- a/indra/newview/tests/llviewernetwork_test.cpp
+++ b/indra/newview/tests/llviewernetwork_test.cpp
@@ -236,7 +236,7 @@ namespace tut
std::string("https://secondlife.com/helpers/"));
ensure_equals("Agni login page",
LLGridManager::getInstance()->getLoginPage("util.agni.lindenlab.com"),
- std::string("https://viewer-splash.secondlife.com/"));
+ std::string("https://viewer-splash-v2.secondlife.com/"));
ensure("Agni is a system grid",
LLGridManager::getInstance()->isSystemGrid("util.agni.lindenlab.com"));
@@ -261,7 +261,7 @@ namespace tut
std::string("https://secondlife.aditi.lindenlab.com/helpers/"));
ensure_equals("Aditi login page",
LLGridManager::getInstance()->getLoginPage("util.aditi.lindenlab.com"),
- std::string("https://viewer-splash.secondlife.com/"));
+ std::string("https://viewer-splash-v2.secondlife.com/"));
ensure("Aditi is a system grid",
LLGridManager::getInstance()->isSystemGrid("util.aditi.lindenlab.com"));
}
@@ -309,7 +309,7 @@ namespace tut
std::string("https://secondlife.com/helpers/"));
ensure_equals("Agni login page",
LLGridManager::getInstance()->getLoginPage("util.agni.lindenlab.com"),
- std::string("https://viewer-splash.secondlife.com/"));
+ std::string("https://viewer-splash-v2.secondlife.com/"));
ensure("Agni is a system grid",
LLGridManager::getInstance()->isSystemGrid("util.agni.lindenlab.com"));
@@ -333,7 +333,7 @@ namespace tut
std::string("https://secondlife.aditi.lindenlab.com/helpers/"));
ensure_equals("Aditi login page",
LLGridManager::getInstance()->getLoginPage("util.aditi.lindenlab.com"),
- std::string("https://viewer-splash.secondlife.com/"));
+ std::string("https://viewer-splash-v2.secondlife.com/"));
ensure("Aditi is a system grid",
LLGridManager::getInstance()->isSystemGrid("util.aditi.lindenlab.com"));
@@ -422,7 +422,7 @@ namespace tut
std::string("https://secondlife.com/helpers/"));
ensure_equals("getLoginPage",
LLGridManager::getInstance()->getLoginPage(),
- std::string("https://viewer-splash.secondlife.com/"));
+ std::string("https://viewer-splash-v2.secondlife.com/"));
ensure_equals("update url base for Agni", // relies on agni being the default
std::string("https://update.secondlife.com/update"),
LLGridManager::getInstance()->getUpdateServiceURL());