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 + + platforms + + common + + archive + + creds + github + hash + 9bd007dd70635d85d716ca00484cefa700cdb6f0 + hash_algorithm + sha1 + url + https://api.github.com/repos/secondlife/3p-google-fonts/releases/assets/365756469 + + name + common + + + license + SIL Open Font License, Version 1.1 + license_file + LICENSES/google_inter.txt + copyright + Copyright 2020 The Inter Project Authors (https://github.com/rsms/inter) + version + 1.0.0.22606339007 + name + google-fonts + description + 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/ - - - - - - - - + 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" /> 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" />