Automated merge up from viewer-development
commit
6a59861bde
3
.hgtags
3
.hgtags
|
|
@ -39,3 +39,6 @@ db0fe9bb65187f365e58a717dd23d0f4754a9c1d 2.3.0-beta2
|
|||
6ad3d6fa35a4e320e9ce442fce2bf9c7fc852556 2.3.0-beta3
|
||||
6ad3d6fa35a4e320e9ce442fce2bf9c7fc852556 2.3.0-release
|
||||
dbc206fc61d89ff4cfe15aade0bf0c7bc7fee1c9 2.4.0-start
|
||||
dc6483491b4af559060bccaef8e9045a303212dd 2.4.0-beta1
|
||||
dc6483491b4af559060bccaef8e9045a303212dd 2.4.0-beta1
|
||||
3bc1f50a72e117f4d4ad8d555f0c785ea8cc201e 2.4.0-beta1
|
||||
|
|
|
|||
|
|
@ -359,6 +359,7 @@ Jonathan Yap
|
|||
STORM-616
|
||||
STORM-679
|
||||
STORM-596
|
||||
STORM-726
|
||||
Kage Pixel
|
||||
VWR-11
|
||||
Ken March
|
||||
|
|
|
|||
|
|
@ -203,7 +203,8 @@ void LLAccordionCtrlTab::LLAccordionCtrlTabHeader::draw()
|
|||
S32 width = getRect().getWidth();
|
||||
S32 height = getRect().getHeight();
|
||||
|
||||
gl_rect_2d(0,0,width - 1 ,height - 1,mHeaderBGColor.get(),true);
|
||||
F32 alpha = getCurrentTransparency();
|
||||
gl_rect_2d(0,0,width - 1 ,height - 1,mHeaderBGColor.get() % alpha,true);
|
||||
|
||||
LLAccordionCtrlTab* parent = dynamic_cast<LLAccordionCtrlTab*>(getParent());
|
||||
bool collapsible = (parent && parent->getCollapsible());
|
||||
|
|
|
|||
|
|
@ -98,7 +98,8 @@ LLButton::Params::Params()
|
|||
is_toggle("is_toggle", false),
|
||||
scale_image("scale_image", true),
|
||||
hover_glow_amount("hover_glow_amount"),
|
||||
commit_on_return("commit_on_return", true)
|
||||
commit_on_return("commit_on_return", true),
|
||||
use_draw_context_alpha("use_draw_context_alpha", true)
|
||||
{
|
||||
addSynonym(is_toggle, "toggle");
|
||||
held_down_delay.seconds = 0.5f;
|
||||
|
|
@ -158,7 +159,8 @@ LLButton::LLButton(const LLButton::Params& p)
|
|||
mLastDrawCharsCount(0),
|
||||
mMouseDownSignal(NULL),
|
||||
mMouseUpSignal(NULL),
|
||||
mHeldDownSignal(NULL)
|
||||
mHeldDownSignal(NULL),
|
||||
mUseDrawContextAlpha(p.use_draw_context_alpha)
|
||||
|
||||
{
|
||||
static LLUICachedControl<S32> llbutton_orig_h_pad ("UIButtonOrigHPad", 0);
|
||||
|
|
@ -539,7 +541,7 @@ BOOL LLButton::handleHover(S32 x, S32 y, MASK mask)
|
|||
// virtual
|
||||
void LLButton::draw()
|
||||
{
|
||||
F32 alpha = getDrawContext().mAlpha;
|
||||
F32 alpha = mUseDrawContextAlpha ? getDrawContext().mAlpha : getCurrentTransparency();
|
||||
bool flash = FALSE;
|
||||
static LLUICachedControl<F32> button_flash_rate("ButtonFlashRate", 0);
|
||||
static LLUICachedControl<S32> button_flash_count("ButtonFlashCount", 0);
|
||||
|
|
|
|||
|
|
@ -124,6 +124,8 @@ public:
|
|||
Optional<F32> hover_glow_amount;
|
||||
Optional<TimeIntervalParam> held_down_delay;
|
||||
|
||||
Optional<bool> use_draw_context_alpha;
|
||||
|
||||
Params();
|
||||
};
|
||||
|
||||
|
|
@ -338,6 +340,8 @@ private:
|
|||
S32 mImageOverlayTopPad;
|
||||
S32 mImageOverlayBottomPad;
|
||||
|
||||
bool mUseDrawContextAlpha;
|
||||
|
||||
/*
|
||||
* Space between image_overlay and label
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -61,10 +61,6 @@
|
|||
// use this to control "jumping" behavior when Ctrl-Tabbing
|
||||
const S32 TABBED_FLOATER_OFFSET = 0;
|
||||
|
||||
// static
|
||||
F32 LLFloater::sActiveFloaterTransparency = 0.0f;
|
||||
F32 LLFloater::sInactiveFloaterTransparency = 0.0f;
|
||||
|
||||
std::string LLFloater::sButtonNames[BUTTON_COUNT] =
|
||||
{
|
||||
"llfloater_close_btn", //BUTTON_CLOSE
|
||||
|
|
@ -208,14 +204,14 @@ void LLFloater::initClass()
|
|||
if (ctrl)
|
||||
{
|
||||
ctrl->getSignal()->connect(boost::bind(&LLFloater::updateActiveFloaterTransparency));
|
||||
sActiveFloaterTransparency = LLUI::sSettingGroups["config"]->getF32("ActiveFloaterTransparency");
|
||||
updateActiveFloaterTransparency();
|
||||
}
|
||||
|
||||
ctrl = LLUI::sSettingGroups["config"]->getControl("InactiveFloaterTransparency").get();
|
||||
if (ctrl)
|
||||
{
|
||||
ctrl->getSignal()->connect(boost::bind(&LLFloater::updateInactiveFloaterTransparency));
|
||||
sInactiveFloaterTransparency = LLUI::sSettingGroups["config"]->getF32("InactiveFloaterTransparency");
|
||||
updateInactiveFloaterTransparency();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -225,7 +221,7 @@ static LLWidgetNameRegistry::StaticRegistrar sRegisterFloaterParams(&typeid(LLFl
|
|||
|
||||
LLFloater::LLFloater(const LLSD& key, const LLFloater::Params& p)
|
||||
: LLPanel(), // intentionally do not pass params here, see initFromParams
|
||||
mDragHandle(NULL),
|
||||
mDragHandle(NULL),
|
||||
mTitle(p.title),
|
||||
mShortTitle(p.short_title),
|
||||
mSingleInstance(p.single_instance),
|
||||
|
|
@ -368,13 +364,13 @@ void LLFloater::layoutDragHandle()
|
|||
// static
|
||||
void LLFloater::updateActiveFloaterTransparency()
|
||||
{
|
||||
sActiveFloaterTransparency = LLUI::sSettingGroups["config"]->getF32("ActiveFloaterTransparency");
|
||||
sActiveControlTransparency = LLUI::sSettingGroups["config"]->getF32("ActiveFloaterTransparency");
|
||||
}
|
||||
|
||||
// static
|
||||
void LLFloater::updateInactiveFloaterTransparency()
|
||||
{
|
||||
sInactiveFloaterTransparency = LLUI::sSettingGroups["config"]->getF32("InactiveFloaterTransparency");
|
||||
sInactiveControlTransparency = LLUI::sSettingGroups["config"]->getF32("InactiveFloaterTransparency");
|
||||
}
|
||||
|
||||
void LLFloater::addResizeCtrls()
|
||||
|
|
@ -1193,6 +1189,7 @@ void LLFloater::setFocus( BOOL b )
|
|||
last_focus->setFocus(TRUE);
|
||||
}
|
||||
}
|
||||
updateTransparency(this, b ? TT_ACTIVE : TT_INACTIVE);
|
||||
}
|
||||
|
||||
// virtual
|
||||
|
|
@ -1652,7 +1649,7 @@ void LLFloater::onClickCloseBtn()
|
|||
// virtual
|
||||
void LLFloater::draw()
|
||||
{
|
||||
mCurrentTransparency = hasFocus() ? sActiveFloaterTransparency : sInactiveFloaterTransparency;
|
||||
const F32 alpha = getCurrentTransparency();
|
||||
|
||||
// draw background
|
||||
if( isBackgroundVisible() )
|
||||
|
|
@ -1684,12 +1681,12 @@ void LLFloater::draw()
|
|||
if (image)
|
||||
{
|
||||
// We're using images for this floater's backgrounds
|
||||
image->draw(getLocalRect(), overlay_color % mCurrentTransparency);
|
||||
image->draw(getLocalRect(), overlay_color % alpha);
|
||||
}
|
||||
else
|
||||
{
|
||||
// We're not using images, use old-school flat colors
|
||||
gl_rect_2d( left, top, right, bottom, color % mCurrentTransparency );
|
||||
gl_rect_2d( left, top, right, bottom, color % alpha );
|
||||
|
||||
// draw highlight on title bar to indicate focus. RDW
|
||||
if(hasFocus()
|
||||
|
|
@ -1701,7 +1698,7 @@ void LLFloater::draw()
|
|||
const LLFontGL* font = LLFontGL::getFontSansSerif();
|
||||
LLRect r = getRect();
|
||||
gl_rect_2d_offset_local(0, r.getHeight(), r.getWidth(), r.getHeight() - (S32)font->getLineHeight() - 1,
|
||||
titlebar_focus_color % mCurrentTransparency, 0, TRUE);
|
||||
titlebar_focus_color % alpha, 0, TRUE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1767,10 +1764,32 @@ void LLFloater::drawShadow(LLPanel* panel)
|
|||
shadow_color.mV[VALPHA] *= 0.5f;
|
||||
}
|
||||
gl_drop_shadow(left, top, right, bottom,
|
||||
shadow_color % mCurrentTransparency,
|
||||
shadow_color % getCurrentTransparency(),
|
||||
llround(shadow_offset));
|
||||
}
|
||||
|
||||
void LLFloater::updateTransparency(LLView* view, ETypeTransparency transparency_type)
|
||||
{
|
||||
child_list_t children = *view->getChildList();
|
||||
child_list_t::iterator it = children.begin();
|
||||
|
||||
LLUICtrl* ctrl = dynamic_cast<LLUICtrl*>(view);
|
||||
if (ctrl)
|
||||
{
|
||||
ctrl->setTransparencyType(transparency_type);
|
||||
}
|
||||
|
||||
for(; it != children.end(); ++it)
|
||||
{
|
||||
updateTransparency(*it, transparency_type);
|
||||
}
|
||||
}
|
||||
|
||||
void LLFloater::updateTransparency(ETypeTransparency transparency_type)
|
||||
{
|
||||
updateTransparency(this, transparency_type);
|
||||
}
|
||||
|
||||
void LLFloater::setCanMinimize(BOOL can_minimize)
|
||||
{
|
||||
// if removing minimize/restore button programmatically,
|
||||
|
|
|
|||
|
|
@ -284,6 +284,8 @@ public:
|
|||
|
||||
static void setFloaterHost(LLMultiFloater* hostp) {sHostp = hostp; }
|
||||
static LLMultiFloater* getFloaterHost() {return sHostp; }
|
||||
|
||||
void updateTransparency(ETypeTransparency transparency_type);
|
||||
|
||||
protected:
|
||||
|
||||
|
|
@ -343,6 +345,7 @@ private:
|
|||
|
||||
static void updateActiveFloaterTransparency();
|
||||
static void updateInactiveFloaterTransparency();
|
||||
void updateTransparency(LLView* view, ETypeTransparency transparency_type);
|
||||
|
||||
public:
|
||||
// Called when floater is opened, passes mKey
|
||||
|
|
@ -411,11 +414,6 @@ private:
|
|||
bool mDocked;
|
||||
bool mTornOff;
|
||||
|
||||
F32 mCurrentTransparency;
|
||||
|
||||
static F32 sActiveFloaterTransparency;
|
||||
static F32 sInactiveFloaterTransparency;
|
||||
|
||||
static LLMultiFloater* sHostp;
|
||||
static BOOL sQuitting;
|
||||
static std::string sButtonNames[BUTTON_COUNT];
|
||||
|
|
|
|||
|
|
@ -41,6 +41,7 @@ static LLDefaultChildRegistry::Register<LLIconCtrl> r("icon");
|
|||
LLIconCtrl::Params::Params()
|
||||
: image("image_name"),
|
||||
color("color"),
|
||||
use_draw_context_alpha("use_draw_context_alpha", true),
|
||||
scale_image("scale_image")
|
||||
{
|
||||
tab_stop = false;
|
||||
|
|
@ -51,6 +52,7 @@ LLIconCtrl::LLIconCtrl(const LLIconCtrl::Params& p)
|
|||
: LLUICtrl(p),
|
||||
mColor(p.color()),
|
||||
mImagep(p.image),
|
||||
mUseDrawContextAlpha(p.use_draw_context_alpha),
|
||||
mPriority(0),
|
||||
mDrawWidth(0),
|
||||
mDrawHeight(0)
|
||||
|
|
@ -71,7 +73,8 @@ void LLIconCtrl::draw()
|
|||
{
|
||||
if( mImagep.notNull() )
|
||||
{
|
||||
mImagep->draw(getLocalRect(), mColor.get() % getDrawContext().mAlpha );
|
||||
const F32 alpha = mUseDrawContextAlpha ? getDrawContext().mAlpha : getCurrentTransparency();
|
||||
mImagep->draw(getLocalRect(), mColor.get() % alpha );
|
||||
}
|
||||
|
||||
LLUICtrl::draw();
|
||||
|
|
|
|||
|
|
@ -48,6 +48,7 @@ public:
|
|||
{
|
||||
Optional<LLUIImage*> image;
|
||||
Optional<LLUIColor> color;
|
||||
Optional<bool> use_draw_context_alpha;
|
||||
Ignored scale_image;
|
||||
Params();
|
||||
};
|
||||
|
|
@ -79,6 +80,10 @@ protected:
|
|||
S32 mDrawWidth ;
|
||||
S32 mDrawHeight ;
|
||||
|
||||
// If set to true (default), use the draw context transparency.
|
||||
// If false, will use transparency returned by getCurrentTransparency(). See STORM-698.
|
||||
bool mUseDrawContextAlpha;
|
||||
|
||||
private:
|
||||
LLUIColor mColor;
|
||||
LLPointer<LLUIImage> mImagep;
|
||||
|
|
|
|||
|
|
@ -1534,7 +1534,8 @@ void LLLineEditor::drawBackground()
|
|||
image = mBgImage;
|
||||
}
|
||||
|
||||
F32 alpha = getDrawContext().mAlpha;
|
||||
F32 alpha = getCurrentTransparency();
|
||||
|
||||
// optionally draw programmatic border
|
||||
if (has_focus)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -194,6 +194,8 @@ void LLPanel::draw()
|
|||
// draw background
|
||||
if( mBgVisible )
|
||||
{
|
||||
alpha = getCurrentTransparency();
|
||||
|
||||
LLRect local_rect = getLocalRect();
|
||||
if (mBgOpaque )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -422,9 +422,10 @@ void LLScrollContainer::draw()
|
|||
// Draw background
|
||||
if( mIsOpaque )
|
||||
{
|
||||
F32 alpha = getCurrentTransparency();
|
||||
|
||||
gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
|
||||
gGL.color4fv( mBackgroundColor.get().mV );
|
||||
gl_rect_2d( mInnerRect );
|
||||
gl_rect_2d(mInnerRect, mBackgroundColor.get() % alpha);
|
||||
}
|
||||
|
||||
// Draw mScrolledViews and update scroll bars.
|
||||
|
|
|
|||
|
|
@ -1482,8 +1482,9 @@ void LLScrollListCtrl::draw()
|
|||
// Draw background
|
||||
if (mBackgroundVisible)
|
||||
{
|
||||
F32 alpha = getCurrentTransparency();
|
||||
gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
|
||||
gl_rect_2d(background, getEnabled() ? mBgWriteableColor.get() : mBgReadOnlyColor.get() );
|
||||
gl_rect_2d(background, getEnabled() ? mBgWriteableColor.get() % alpha : mBgReadOnlyColor.get() % alpha );
|
||||
}
|
||||
|
||||
if (mColumnsDirty)
|
||||
|
|
|
|||
|
|
@ -1005,6 +1005,7 @@ void LLTextBase::draw()
|
|||
|
||||
if (mBGVisible)
|
||||
{
|
||||
F32 alpha = getCurrentTransparency();
|
||||
// clip background rect against extents, if we support scrolling
|
||||
LLRect bg_rect = mVisibleTextRect;
|
||||
if (mScroller)
|
||||
|
|
@ -1016,7 +1017,7 @@ void LLTextBase::draw()
|
|||
: hasFocus()
|
||||
? mFocusBgColor.get()
|
||||
: mWriteableBgColor.get();
|
||||
gl_rect_2d(doc_rect, bg_color, TRUE);
|
||||
gl_rect_2d(doc_rect, bg_color % alpha, TRUE);
|
||||
}
|
||||
|
||||
// draw document view
|
||||
|
|
|
|||
|
|
@ -950,7 +950,7 @@ void gl_ring( F32 radius, F32 width, const LLColor4& center_color, const LLColor
|
|||
}
|
||||
|
||||
// Draw gray and white checkerboard with black border
|
||||
void gl_rect_2d_checkerboard(const LLRect& rect)
|
||||
void gl_rect_2d_checkerboard(const LLRect& rect, GLfloat alpha)
|
||||
{
|
||||
// Initialize the first time this is called.
|
||||
const S32 PIXELS = 32;
|
||||
|
|
@ -971,11 +971,11 @@ void gl_rect_2d_checkerboard(const LLRect& rect)
|
|||
gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
|
||||
|
||||
// ...white squares
|
||||
gGL.color3f( 1.f, 1.f, 1.f );
|
||||
gGL.color4f( 1.f, 1.f, 1.f, alpha );
|
||||
gl_rect_2d(rect);
|
||||
|
||||
// ...gray squares
|
||||
gGL.color3f( .7f, .7f, .7f );
|
||||
gGL.color4f( .7f, .7f, .7f, alpha );
|
||||
gGL.flush();
|
||||
glPolygonStipple( checkerboard );
|
||||
|
||||
|
|
|
|||
|
|
@ -79,7 +79,7 @@ void gl_rect_2d_offset_local( S32 left, S32 top, S32 right, S32 bottom, const LL
|
|||
void gl_rect_2d_offset_local( S32 left, S32 top, S32 right, S32 bottom, S32 pixel_offset = 0, BOOL filled = TRUE );
|
||||
void gl_rect_2d(const LLRect& rect, BOOL filled = TRUE );
|
||||
void gl_rect_2d(const LLRect& rect, const LLColor4& color, BOOL filled = TRUE );
|
||||
void gl_rect_2d_checkerboard(const LLRect& rect);
|
||||
void gl_rect_2d_checkerboard(const LLRect& rect, GLfloat alpha = 1.0f);
|
||||
|
||||
void gl_drop_shadow(S32 left, S32 top, S32 right, S32 bottom, const LLColor4 &start_color, S32 lines);
|
||||
|
||||
|
|
|
|||
|
|
@ -36,6 +36,9 @@
|
|||
|
||||
static LLDefaultChildRegistry::Register<LLUICtrl> r("ui_ctrl");
|
||||
|
||||
F32 LLUICtrl::sActiveControlTransparency = 1.0f;
|
||||
F32 LLUICtrl::sInactiveControlTransparency = 1.0f;
|
||||
|
||||
// Compiler optimization, generate extern template
|
||||
template class LLUICtrl* LLView::getChild<class LLUICtrl>(
|
||||
const std::string& name, BOOL recurse) const;
|
||||
|
|
@ -110,7 +113,8 @@ LLUICtrl::LLUICtrl(const LLUICtrl::Params& p, const LLViewModelPtr& viewmodel)
|
|||
mMouseUpSignal(NULL),
|
||||
mRightMouseDownSignal(NULL),
|
||||
mRightMouseUpSignal(NULL),
|
||||
mDoubleClickSignal(NULL)
|
||||
mDoubleClickSignal(NULL),
|
||||
mTransparencyType(TT_DEFAULT)
|
||||
{
|
||||
mUICtrlHandle.bind(this);
|
||||
}
|
||||
|
|
@ -923,6 +927,37 @@ BOOL LLUICtrl::getTentative() const
|
|||
void LLUICtrl::setColor(const LLColor4& color)
|
||||
{ }
|
||||
|
||||
F32 LLUICtrl::getCurrentTransparency()
|
||||
{
|
||||
F32 alpha = 0;
|
||||
|
||||
switch(mTransparencyType)
|
||||
{
|
||||
case TT_DEFAULT:
|
||||
alpha = getDrawContext().mAlpha;
|
||||
break;
|
||||
|
||||
case TT_ACTIVE:
|
||||
alpha = sActiveControlTransparency;
|
||||
break;
|
||||
|
||||
case TT_INACTIVE:
|
||||
alpha = sInactiveControlTransparency;
|
||||
break;
|
||||
|
||||
case TT_FADING:
|
||||
alpha = sInactiveControlTransparency / 2;
|
||||
break;
|
||||
}
|
||||
|
||||
return alpha;
|
||||
}
|
||||
|
||||
void LLUICtrl::setTransparencyType(ETypeTransparency type)
|
||||
{
|
||||
mTransparencyType = type;
|
||||
}
|
||||
|
||||
boost::signals2::connection LLUICtrl::setCommitCallback( const commit_signal_t::slot_type& cb )
|
||||
{
|
||||
if (!mCommitSignal) mCommitSignal = new commit_signal_t();
|
||||
|
|
|
|||
|
|
@ -120,6 +120,13 @@ public:
|
|||
Params();
|
||||
};
|
||||
|
||||
enum ETypeTransparency
|
||||
{
|
||||
TT_DEFAULT,
|
||||
TT_ACTIVE, // focused floater
|
||||
TT_INACTIVE, // other floaters
|
||||
TT_FADING, // fading toast
|
||||
};
|
||||
/*virtual*/ ~LLUICtrl();
|
||||
|
||||
void initFromParams(const Params& p);
|
||||
|
|
@ -202,6 +209,11 @@ public:
|
|||
|
||||
virtual void setColor(const LLColor4& color);
|
||||
|
||||
F32 getCurrentTransparency();
|
||||
|
||||
void setTransparencyType(ETypeTransparency type);
|
||||
ETypeTransparency getTransparencyType() const {return mTransparencyType;}
|
||||
|
||||
BOOL focusNextItem(BOOL text_entry_only);
|
||||
BOOL focusPrevItem(BOOL text_entry_only);
|
||||
BOOL focusFirstItem(BOOL prefer_text_fields = FALSE, BOOL focus_flash = TRUE );
|
||||
|
|
@ -283,6 +295,10 @@ protected:
|
|||
boost::signals2::connection mMakeVisibleControlConnection;
|
||||
LLControlVariable* mMakeInvisibleControlVariable;
|
||||
boost::signals2::connection mMakeInvisibleControlConnection;
|
||||
|
||||
static F32 sActiveControlTransparency;
|
||||
static F32 sInactiveControlTransparency;
|
||||
|
||||
private:
|
||||
|
||||
BOOL mTabStop;
|
||||
|
|
@ -290,6 +306,8 @@ private:
|
|||
BOOL mTentative;
|
||||
LLRootHandle<LLUICtrl> mUICtrlHandle;
|
||||
|
||||
ETypeTransparency mTransparencyType;
|
||||
|
||||
class DefaultTabGroupFirstSorter;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -456,8 +456,8 @@ std::string LLUrlEntryAgent::getLabel(const std::string &url, const LLUrlLabelCa
|
|||
LLStyle::Params LLUrlEntryAgent::getStyle() const
|
||||
{
|
||||
LLStyle::Params style_params = LLUrlEntryBase::getStyle();
|
||||
style_params.color = LLUIColorTable::instance().getColor("AgentLinkColor");
|
||||
style_params.readonly_color = LLUIColorTable::instance().getColor("AgentLinkColor");
|
||||
style_params.color = LLUIColorTable::instance().getColor("HTMLLinkColor");
|
||||
style_params.readonly_color = LLUIColorTable::instance().getColor("HTMLLinkColor");
|
||||
return style_params;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -4066,7 +4066,7 @@
|
|||
<key>Type</key>
|
||||
<string>F32</string>
|
||||
<key>Value</key>
|
||||
<real>0.5</real>
|
||||
<real>0.65</real>
|
||||
</map>
|
||||
<key>InBandwidth</key>
|
||||
<map>
|
||||
|
|
|
|||
|
|
@ -167,6 +167,7 @@ BOOL LLCallFloater::postBuild()
|
|||
//chrome="true" hides floater caption
|
||||
if (mDragHandle)
|
||||
mDragHandle->setTitleVisible(TRUE);
|
||||
updateTransparency(TT_ACTIVE); // force using active floater transparency (STORM-730)
|
||||
|
||||
updateSession();
|
||||
|
||||
|
|
@ -205,6 +206,17 @@ void LLCallFloater::draw()
|
|||
LLTransientDockableFloater::draw();
|
||||
}
|
||||
|
||||
// virtual
|
||||
void LLCallFloater::setFocus( BOOL b )
|
||||
{
|
||||
LLTransientDockableFloater::setFocus(b);
|
||||
|
||||
// Force using active floater transparency (STORM-730).
|
||||
// We have to override setFocus() for LLCallFloater because selecting an item
|
||||
// of the voice morphing combobox causes the floater to lose focus and thus become transparent.
|
||||
updateTransparency(TT_ACTIVE);
|
||||
}
|
||||
|
||||
// virtual
|
||||
void LLCallFloater::onParticipantsChanged()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -64,6 +64,7 @@ public:
|
|||
/*virtual*/ BOOL postBuild();
|
||||
/*virtual*/ void onOpen(const LLSD& key);
|
||||
/*virtual*/ void draw();
|
||||
/*virtual*/ void setFocus( BOOL b );
|
||||
|
||||
/**
|
||||
* Is called by LLVoiceClient::notifyParticipantObservers when voice participant list is changed.
|
||||
|
|
|
|||
|
|
@ -789,24 +789,22 @@ void LLChatHistory::appendMessage(const LLChat& chat, const LLSD &args, const LL
|
|||
// set the link for the object name to be the objectim SLapp
|
||||
// (don't let object names with hyperlinks override our objectim Url)
|
||||
LLStyle::Params link_params(style_params);
|
||||
link_params.color.control = "HTMLLinkColor";
|
||||
LLColor4 link_color = LLUIColorTable::instance().getColor("HTMLLinkColor");
|
||||
link_params.color = link_color;
|
||||
link_params.readonly_color = link_color;
|
||||
link_params.is_link = true;
|
||||
link_params.link_href = url;
|
||||
|
||||
mEditor->appendText(chat.mFromName + delimiter,
|
||||
false, link_params);
|
||||
}
|
||||
else if ( chat.mFromName != SYSTEM_FROM && chat.mFromID.notNull() && !message_from_log)
|
||||
{
|
||||
LLStyle::Params link_params(style_params);
|
||||
|
||||
// Setting is_link = true for agent SLURL to avoid applying default style to it.
|
||||
// See LLTextBase::appendTextImpl().
|
||||
link_params.is_link = true;
|
||||
link_params.link_href = LLSLURL("agent", chat.mFromID, "inspect").getSLURLString();
|
||||
link_params.overwriteFrom(LLStyleMap::instance().lookupAgent(chat.mFromID));
|
||||
|
||||
// Add link to avatar's inspector and delimiter to message.
|
||||
mEditor->appendText(chat.mFromName, false, link_params);
|
||||
mEditor->appendText(delimiter, false, style_params);
|
||||
mEditor->appendText(std::string(link_params.link_href) + delimiter, false, link_params);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
|||
|
|
@ -195,7 +195,9 @@ BOOL LLColorSwatchCtrl::handleMouseUp(S32 x, S32 y, MASK mask)
|
|||
// assumes GL state is set for 2D
|
||||
void LLColorSwatchCtrl::draw()
|
||||
{
|
||||
F32 alpha = getDrawContext().mAlpha;
|
||||
// If we're in a focused floater, don't apply the floater's alpha to the color swatch (STORM-676).
|
||||
F32 alpha = getTransparencyType() == TT_ACTIVE ? 1.0f : getCurrentTransparency();
|
||||
|
||||
mBorder->setKeyboardFocusHighlight(hasFocus());
|
||||
// Draw border
|
||||
LLRect border( 0, getRect().getHeight(), getRect().getWidth(), mLabelHeight );
|
||||
|
|
@ -207,19 +209,29 @@ void LLColorSwatchCtrl::draw()
|
|||
// Check state
|
||||
if ( mValid )
|
||||
{
|
||||
// Draw the color swatch
|
||||
gl_rect_2d_checkerboard( interior );
|
||||
gl_rect_2d(interior, mColor, TRUE);
|
||||
LLColor4 opaque_color = mColor;
|
||||
opaque_color.mV[VALPHA] = 1.f;
|
||||
gGL.color4fv(opaque_color.mV);
|
||||
if (mAlphaGradientImage.notNull())
|
||||
if (!mColor.isOpaque())
|
||||
{
|
||||
gGL.pushMatrix();
|
||||
// Draw checker board.
|
||||
gl_rect_2d_checkerboard(interior, alpha);
|
||||
}
|
||||
|
||||
// Draw the color swatch
|
||||
gl_rect_2d(interior, mColor % alpha, TRUE);
|
||||
|
||||
if (!mColor.isOpaque())
|
||||
{
|
||||
// Draw semi-transparent center area in filled with mColor.
|
||||
LLColor4 opaque_color = mColor;
|
||||
opaque_color.mV[VALPHA] = alpha;
|
||||
gGL.color4fv(opaque_color.mV);
|
||||
if (mAlphaGradientImage.notNull())
|
||||
{
|
||||
mAlphaGradientImage->draw(interior, mColor);
|
||||
gGL.pushMatrix();
|
||||
{
|
||||
mAlphaGradientImage->draw(interior, mColor % alpha);
|
||||
}
|
||||
gGL.popMatrix();
|
||||
}
|
||||
gGL.popMatrix();
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
|
|||
|
|
@ -343,6 +343,7 @@ BOOL LLFloaterCamera::postBuild()
|
|||
{
|
||||
setIsChrome(TRUE);
|
||||
setTitleVisible(TRUE); // restore title visibility after chrome applying
|
||||
updateTransparency(TT_ACTIVE); // force using active floater transparency (STORM-730)
|
||||
|
||||
mRotate = getChild<LLJoystickCameraRotate>(ORBIT);
|
||||
mZoom = findChild<LLPanelCameraZoom>(ZOOM);
|
||||
|
|
|
|||
|
|
@ -472,6 +472,12 @@ void LLFloaterColorPicker::onMouseCaptureLost()
|
|||
setMouseDownInLumRegion(FALSE);
|
||||
}
|
||||
|
||||
F32 LLFloaterColorPicker::getSwatchTransparency()
|
||||
{
|
||||
// If the floater is focused, don't apply its alpha to the color swatch (STORM-676).
|
||||
return getTransparencyType() == TT_ACTIVE ? 1.f : LLFloater::getCurrentTransparency();
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
void LLFloaterColorPicker::draw()
|
||||
|
|
@ -533,8 +539,10 @@ void LLFloaterColorPicker::draw()
|
|||
// base floater stuff
|
||||
LLFloater::draw ();
|
||||
|
||||
const F32 alpha = getSwatchTransparency();
|
||||
|
||||
// draw image for RGB area (not really RGB but you'll see what I mean...
|
||||
gl_draw_image ( mRGBViewerImageLeft, mRGBViewerImageTop - mRGBViewerImageHeight, mRGBImage, LLColor4::white );
|
||||
gl_draw_image ( mRGBViewerImageLeft, mRGBViewerImageTop - mRGBViewerImageHeight, mRGBImage, LLColor4::white % alpha);
|
||||
|
||||
// update 'cursor' into RGB Section
|
||||
S32 xPos = ( S32 ) ( ( F32 )mRGBViewerImageWidth * getCurH () ) - 8;
|
||||
|
|
@ -556,7 +564,7 @@ void LLFloaterColorPicker::draw()
|
|||
mRGBViewerImageTop - mRGBViewerImageHeight,
|
||||
mRGBViewerImageLeft + mRGBViewerImageWidth + 1,
|
||||
mRGBViewerImageTop,
|
||||
LLColor4 ( 0.0f, 0.0f, 0.0f, 1.0f ),
|
||||
LLColor4 ( 0.0f, 0.0f, 0.0f, alpha ),
|
||||
FALSE );
|
||||
|
||||
// draw luminance slider
|
||||
|
|
@ -569,7 +577,7 @@ void LLFloaterColorPicker::draw()
|
|||
mLumRegionTop - mLumRegionHeight + y,
|
||||
mLumRegionLeft + mLumRegionWidth,
|
||||
mLumRegionTop - mLumRegionHeight + y - 1,
|
||||
LLColor4 ( rValSlider, gValSlider, bValSlider, 1.0f ) );
|
||||
LLColor4 ( rValSlider, gValSlider, bValSlider, alpha ) );
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -594,7 +602,7 @@ void LLFloaterColorPicker::draw()
|
|||
mSwatchRegionTop - mSwatchRegionHeight,
|
||||
mSwatchRegionLeft + mSwatchRegionWidth,
|
||||
mSwatchRegionTop,
|
||||
LLColor4 ( getCurR (), getCurG (), getCurB (), 1.0f ),
|
||||
LLColor4 ( getCurR (), getCurG (), getCurB (), alpha ),
|
||||
TRUE );
|
||||
|
||||
// draw selected color swatch outline
|
||||
|
|
@ -634,6 +642,7 @@ const LLColor4& LLFloaterColorPicker::getComplimentaryColor ( const LLColor4& ba
|
|||
void LLFloaterColorPicker::drawPalette ()
|
||||
{
|
||||
S32 curEntry = 0;
|
||||
const F32 alpha = getSwatchTransparency();
|
||||
|
||||
for ( S32 y = 0; y < numPaletteRows; ++y )
|
||||
{
|
||||
|
|
@ -648,7 +657,7 @@ void LLFloaterColorPicker::drawPalette ()
|
|||
// draw palette entry color
|
||||
if ( mPalette [ curEntry ] )
|
||||
{
|
||||
gl_rect_2d ( x1 + 2, y1 - 2, x2 - 2, y2 + 2, *mPalette [ curEntry++ ], TRUE );
|
||||
gl_rect_2d ( x1 + 2, y1 - 2, x2 - 2, y2 + 2, *mPalette [ curEntry++ ] % alpha, TRUE );
|
||||
gl_rect_2d ( x1 + 1, y1 - 1, x2 - 1, y2 + 1, LLColor4 ( 0.0f, 0.0f, 0.0f, 1.0f ), FALSE );
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -55,6 +55,7 @@ class LLFloaterColorPicker
|
|||
virtual BOOL handleMouseUp ( S32 x, S32 y, MASK mask );
|
||||
virtual BOOL handleHover ( S32 x, S32 y, MASK mask );
|
||||
virtual void onMouseCaptureLost();
|
||||
virtual F32 getSwatchTransparency();
|
||||
|
||||
// implicit methods
|
||||
void createUI ();
|
||||
|
|
|
|||
|
|
@ -117,8 +117,3 @@ void LLFloaterEvent::setEventID(const U32 event_id)
|
|||
|
||||
}
|
||||
}
|
||||
|
||||
void LLFloaterEvent::draw()
|
||||
{
|
||||
LLPanel::draw();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -43,7 +43,6 @@ public:
|
|||
/*virtual*/ ~LLFloaterEvent();
|
||||
|
||||
/*virtual*/ BOOL postBuild();
|
||||
/*virtual*/ void draw();
|
||||
|
||||
void setEventID(const U32 event_id);
|
||||
|
||||
|
|
|
|||
|
|
@ -128,6 +128,8 @@ void LLFloaterPostcard::draw()
|
|||
|
||||
if(!isMinimized() && mViewerImage.notNull() && mJPEGImage.notNull())
|
||||
{
|
||||
// Force the texture to be 100% opaque when the floater is focused.
|
||||
F32 alpha = getTransparencyType() == TT_ACTIVE ? 1.0f : getCurrentTransparency();
|
||||
LLRect rect(getRect());
|
||||
|
||||
// first set the max extents of our preview
|
||||
|
|
@ -149,7 +151,7 @@ void LLFloaterPostcard::draw()
|
|||
}
|
||||
{
|
||||
gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
|
||||
gl_rect_2d(rect, LLColor4(0.f, 0.f, 0.f, 1.f));
|
||||
gl_rect_2d(rect, LLColor4(0.f, 0.f, 0.f, 1.f) % alpha);
|
||||
rect.stretch(-1);
|
||||
}
|
||||
{
|
||||
|
|
@ -164,7 +166,7 @@ void LLFloaterPostcard::draw()
|
|||
rect.getWidth(),
|
||||
rect.getHeight(),
|
||||
mViewerImage.get(),
|
||||
LLColor4::white);
|
||||
LLColor4::white % alpha);
|
||||
}
|
||||
glMatrixMode(GL_TEXTURE);
|
||||
glPopMatrix();
|
||||
|
|
|
|||
|
|
@ -908,6 +908,8 @@ BOOL LLSnapshotLivePreview::onIdle( void* snapshot_preview )
|
|||
previewp->mPosTakenGlobal = gAgentCamera.getCameraPositionGlobal();
|
||||
previewp->mShineCountdown = 4; // wait a few frames to avoid animation glitch due to readback this frame
|
||||
}
|
||||
|
||||
gViewerWindow->playSnapshotAnimAndSound();
|
||||
}
|
||||
previewp->getWindow()->decBusyCount();
|
||||
// only show fullscreen preview when in freeze frame mode
|
||||
|
|
@ -1533,8 +1535,6 @@ void LLFloaterSnapshot::Impl::onClickNewSnapshot(void* data)
|
|||
if (previewp && view)
|
||||
{
|
||||
previewp->updateSnapshot(TRUE);
|
||||
|
||||
gViewerWindow->playSnapshotAnimAndSound();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -2184,9 +2184,11 @@ void LLFloaterSnapshot::draw()
|
|||
S32 offset_y = thumbnail_rect.mBottom + (thumbnail_rect.getHeight() - previewp->getThumbnailHeight()) / 2 ;
|
||||
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
// Apply floater transparency to the texture unless the floater is focused.
|
||||
F32 alpha = getTransparencyType() == TT_ACTIVE ? 1.0f : getCurrentTransparency();
|
||||
gl_draw_scaled_image(offset_x, offset_y,
|
||||
previewp->getThumbnailWidth(), previewp->getThumbnailHeight(),
|
||||
previewp->getThumbnailImage(), LLColor4::white);
|
||||
previewp->getThumbnailImage(), LLColor4::white % alpha);
|
||||
|
||||
previewp->drawPreviewRect(offset_x, offset_y) ;
|
||||
}
|
||||
|
|
@ -2204,8 +2206,6 @@ void LLFloaterSnapshot::onOpen(const LLSD& key)
|
|||
gSnapshotFloaterView->setEnabled(TRUE);
|
||||
gSnapshotFloaterView->setVisible(TRUE);
|
||||
gSnapshotFloaterView->adjustToFitScreen(this, FALSE);
|
||||
|
||||
gViewerWindow->playSnapshotAnimAndSound();
|
||||
}
|
||||
|
||||
void LLFloaterSnapshot::onClose(bool app_quitting)
|
||||
|
|
|
|||
|
|
@ -97,7 +97,8 @@ void LLPanelInventoryListItemBase::draw()
|
|||
LLRect separator_rect = getLocalRect();
|
||||
separator_rect.mTop = separator_rect.mBottom;
|
||||
separator_rect.mBottom -= mSeparatorImage->getHeight();
|
||||
mSeparatorImage->draw(separator_rect);
|
||||
F32 alpha = getCurrentTransparency();
|
||||
mSeparatorImage->draw(separator_rect, UI_VERTEX_COLOR % alpha);
|
||||
}
|
||||
|
||||
LLPanel::draw();
|
||||
|
|
|
|||
|
|
@ -94,6 +94,7 @@ BOOL LLFloaterMove::postBuild()
|
|||
{
|
||||
setIsChrome(TRUE);
|
||||
setTitleVisible(TRUE); // restore title visibility after chrome applying
|
||||
updateTransparency(TT_ACTIVE); // force using active floater transparency (STORM-730)
|
||||
|
||||
LLDockableFloater::postBuild();
|
||||
|
||||
|
|
|
|||
|
|
@ -365,3 +365,16 @@ BOOL LLNearbyChat::handleMouseDown(S32 x, S32 y, MASK mask)
|
|||
mChatHistory->setFocus(TRUE);
|
||||
return LLDockableFloater::handleMouseDown(x, y, mask);
|
||||
}
|
||||
|
||||
void LLNearbyChat::draw()
|
||||
{
|
||||
// *HACK: Update transparency type depending on whether our children have focus.
|
||||
// This is needed because this floater is chrome and thus cannot accept focus, so
|
||||
// the transparency type setting code from LLFloater::setFocus() isn't reached.
|
||||
if (getTransparencyType() != TT_DEFAULT)
|
||||
{
|
||||
setTransparencyType(hasFocus() ? TT_ACTIVE : TT_INACTIVE);
|
||||
}
|
||||
|
||||
LLDockableFloater::draw();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -48,6 +48,7 @@ public:
|
|||
bool onNearbyChatCheckContextMenuItem(const LLSD& userdata);
|
||||
|
||||
virtual BOOL handleMouseDown(S32 x, S32 y, MASK mask);
|
||||
virtual void draw();
|
||||
|
||||
// focus overrides
|
||||
/*virtual*/ void onFocusLost();
|
||||
|
|
|
|||
|
|
@ -165,11 +165,20 @@ public:
|
|||
: LLToast(p),
|
||||
mNearbyChatScreenChannelp(nc_channelp)
|
||||
{
|
||||
updateTransparency();
|
||||
setMouseEnterCallback(boost::bind(&LLNearbyChatToast::updateTransparency, this));
|
||||
setMouseLeaveCallback(boost::bind(&LLNearbyChatToast::updateTransparency, this));
|
||||
}
|
||||
|
||||
/*virtual*/ void onClose(bool app_quitting);
|
||||
/*virtual*/ void setBackgroundOpaque(BOOL b);
|
||||
|
||||
protected:
|
||||
/*virtual*/ void setTransparentState(bool transparent);
|
||||
|
||||
private:
|
||||
void updateTransparency();
|
||||
|
||||
LLNearbyChatScreenChannel* mNearbyChatScreenChannelp;
|
||||
};
|
||||
|
||||
|
|
@ -597,4 +606,34 @@ void LLNearbyChatToast::onClose(bool app_quitting)
|
|||
mNearbyChatScreenChannelp->onToastDestroyed(this, app_quitting);
|
||||
}
|
||||
|
||||
// virtual
|
||||
void LLNearbyChatToast::setBackgroundOpaque(BOOL b)
|
||||
{
|
||||
// We don't want background changes: transparency is handled differently.
|
||||
LLToast::setBackgroundOpaque(TRUE);
|
||||
}
|
||||
|
||||
// virtual
|
||||
void LLNearbyChatToast::setTransparentState(bool transparent)
|
||||
{
|
||||
LLToast::setTransparentState(transparent);
|
||||
updateTransparency();
|
||||
}
|
||||
|
||||
void LLNearbyChatToast::updateTransparency()
|
||||
{
|
||||
ETypeTransparency transparency_type;
|
||||
|
||||
if (isHovered())
|
||||
{
|
||||
transparency_type = TT_ACTIVE;
|
||||
}
|
||||
else
|
||||
{
|
||||
transparency_type = getTransparentState() ? TT_FADING : TT_INACTIVE;
|
||||
}
|
||||
|
||||
LLFloater::updateTransparency(transparency_type);
|
||||
}
|
||||
|
||||
// EOF
|
||||
|
|
|
|||
|
|
@ -180,6 +180,9 @@ void LLPanelLandmarkInfo::setInfoType(EInfoType type)
|
|||
|
||||
populateFoldersList();
|
||||
|
||||
// Prevent the floater from losing focus (if the sidepanel is undocked).
|
||||
setFocus(TRUE);
|
||||
|
||||
LLPanelPlaceInfo::setInfoType(type);
|
||||
}
|
||||
|
||||
|
|
@ -330,6 +333,9 @@ void LLPanelLandmarkInfo::toggleLandmarkEditMode(BOOL enabled)
|
|||
// when it was enabled/disabled we set the text once again.
|
||||
mNotesEditor->setText(mNotesEditor->getText());
|
||||
}
|
||||
|
||||
// Prevent the floater from losing focus (if the sidepanel is undocked).
|
||||
setFocus(TRUE);
|
||||
}
|
||||
|
||||
const std::string& LLPanelLandmarkInfo::getLandmarkTitle() const
|
||||
|
|
|
|||
|
|
@ -212,7 +212,8 @@ void LLPanelPicks::updateData()
|
|||
mNoPicks = false;
|
||||
mNoClassifieds = false;
|
||||
|
||||
getChild<LLUICtrl>("picks_panel_text")->setValue(LLTrans::getString("PicksClassifiedsLoadingText"));
|
||||
mNoItemsLabel->setValue(LLTrans::getString("PicksClassifiedsLoadingText"));
|
||||
mNoItemsLabel->setVisible(TRUE);
|
||||
|
||||
mPicksList->clear();
|
||||
LLAvatarPropertiesProcessor::getInstance()->sendAvatarPicksRequest(getAvatarId());
|
||||
|
|
@ -314,15 +315,17 @@ void LLPanelPicks::processProperties(void* data, EAvatarProcessorType type)
|
|||
mNoClassifieds = !mClassifiedsList->size();
|
||||
}
|
||||
|
||||
if (mNoPicks && mNoClassifieds)
|
||||
bool no_data = mNoPicks && mNoClassifieds;
|
||||
mNoItemsLabel->setVisible(no_data);
|
||||
if (no_data)
|
||||
{
|
||||
if(getAvatarId() == gAgentID)
|
||||
{
|
||||
getChild<LLUICtrl>("picks_panel_text")->setValue(LLTrans::getString("NoPicksClassifiedsText"));
|
||||
mNoItemsLabel->setValue(LLTrans::getString("NoPicksClassifiedsText"));
|
||||
}
|
||||
else
|
||||
{
|
||||
getChild<LLUICtrl>("picks_panel_text")->setValue(LLTrans::getString("NoAvatarPicksClassifiedsText"));
|
||||
mNoItemsLabel->setValue(LLTrans::getString("NoAvatarPicksClassifiedsText"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -359,6 +362,8 @@ BOOL LLPanelPicks::postBuild()
|
|||
mPicksList->setNoItemsCommentText(getString("no_picks"));
|
||||
mClassifiedsList->setNoItemsCommentText(getString("no_classifieds"));
|
||||
|
||||
mNoItemsLabel = getChild<LLUICtrl>("picks_panel_text");
|
||||
|
||||
childSetAction(XML_BTN_NEW, boost::bind(&LLPanelPicks::onClickPlusBtn, this));
|
||||
childSetAction(XML_BTN_DELETE, boost::bind(&LLPanelPicks::onClickDelete, this));
|
||||
childSetAction(XML_BTN_TELEPORT, boost::bind(&LLPanelPicks::onClickTeleport, this));
|
||||
|
|
@ -781,7 +786,7 @@ void LLPanelPicks::showAccordion(const std::string& name, bool show)
|
|||
|
||||
void LLPanelPicks::onPanelPickClose(LLPanel* panel)
|
||||
{
|
||||
panel->setVisible(FALSE);
|
||||
getProfilePanel()->closePanel(panel);
|
||||
}
|
||||
|
||||
void LLPanelPicks::onPanelPickSave(LLPanel* panel)
|
||||
|
|
|
|||
|
|
@ -149,6 +149,7 @@ private:
|
|||
LLPanelClassifiedInfo* mPanelClassifiedInfo;
|
||||
LLPanelPickEdit* mPanelPickEdit;
|
||||
LLToggleableMenu* mPlusMenu;
|
||||
LLUICtrl* mNoItemsLabel;
|
||||
|
||||
// <classified_id, edit_panel>
|
||||
typedef std::map<LLUUID, LLPanelClassifiedEdit*> panel_classified_edit_map_t;
|
||||
|
|
|
|||
|
|
@ -217,6 +217,10 @@ void LLPanelProfile::setAllChildrenVisible(BOOL visible)
|
|||
|
||||
void LLPanelProfile::openPanel(LLPanel* panel, const LLSD& params)
|
||||
{
|
||||
// Hide currently visible panel (STORM-690).
|
||||
setAllChildrenVisible(FALSE);
|
||||
|
||||
// Add the panel or bring it to front.
|
||||
if (panel->getParent() != this)
|
||||
{
|
||||
addChild(panel);
|
||||
|
|
@ -243,6 +247,18 @@ void LLPanelProfile::closePanel(LLPanel* panel)
|
|||
if (panel->getParent() == this)
|
||||
{
|
||||
removeChild(panel);
|
||||
|
||||
// Make the underlying panel visible.
|
||||
const child_list_t* child_list = getChildList();
|
||||
if (child_list->size() > 0)
|
||||
{
|
||||
child_list->front()->setVisible(TRUE);
|
||||
child_list->front()->setFocus(TRUE); // prevent losing focus by the floater
|
||||
}
|
||||
else
|
||||
{
|
||||
llwarns << "No underlying panel to make visible." << llendl;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -118,7 +118,7 @@ public:
|
|||
protected:
|
||||
LLSideTrayTab(const Params& params);
|
||||
|
||||
void dock();
|
||||
void dock(LLFloater* floater_tab);
|
||||
void undock(LLFloater* floater_tab);
|
||||
|
||||
LLSideTray* getSideTray();
|
||||
|
|
@ -259,7 +259,7 @@ void LLSideTrayTab::toggleTabDocked()
|
|||
|
||||
if (docking)
|
||||
{
|
||||
dock();
|
||||
dock(floater_tab);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -271,11 +271,14 @@ void LLSideTrayTab::toggleTabDocked()
|
|||
LLFloaterReg::toggleInstance("side_bar_tab", tab_name);
|
||||
}
|
||||
|
||||
void LLSideTrayTab::dock()
|
||||
void LLSideTrayTab::dock(LLFloater* floater_tab)
|
||||
{
|
||||
LLSideTray* side_tray = getSideTray();
|
||||
if (!side_tray) return;
|
||||
|
||||
// Before docking the tab, reset its (and its children's) transparency to default (STORM-688).
|
||||
floater_tab->updateTransparency(TT_DEFAULT);
|
||||
|
||||
if (!side_tray->addTab(this))
|
||||
{
|
||||
llwarns << "Failed to add tab " << getName() << " to side tray" << llendl;
|
||||
|
|
|
|||
|
|
@ -566,25 +566,27 @@ void LLFloaterTexturePicker::draw()
|
|||
LLRect interior = border;
|
||||
interior.stretch( -1 );
|
||||
|
||||
// If the floater is focused, don't apply its alpha to the texture (STORM-677).
|
||||
const F32 alpha = getTransparencyType() == TT_ACTIVE ? 1.0f : getCurrentTransparency();
|
||||
if( mTexturep )
|
||||
{
|
||||
if( mTexturep->getComponents() == 4 )
|
||||
{
|
||||
gl_rect_2d_checkerboard( interior );
|
||||
gl_rect_2d_checkerboard( interior, alpha );
|
||||
}
|
||||
|
||||
gl_draw_scaled_image( interior.mLeft, interior.mBottom, interior.getWidth(), interior.getHeight(), mTexturep );
|
||||
gl_draw_scaled_image( interior.mLeft, interior.mBottom, interior.getWidth(), interior.getHeight(), mTexturep, UI_VERTEX_COLOR % alpha );
|
||||
|
||||
// Pump the priority
|
||||
mTexturep->addTextureStats( (F32)(interior.getWidth() * interior.getHeight()) );
|
||||
}
|
||||
else if (!mFallbackImage.isNull())
|
||||
{
|
||||
mFallbackImage->draw(interior);
|
||||
mFallbackImage->draw(interior, UI_VERTEX_COLOR % alpha);
|
||||
}
|
||||
else
|
||||
{
|
||||
gl_rect_2d( interior, LLColor4::grey, TRUE );
|
||||
gl_rect_2d( interior, LLColor4::grey % alpha, TRUE );
|
||||
|
||||
// Draw X
|
||||
gl_draw_x(interior, LLColor4::black );
|
||||
|
|
@ -1269,23 +1271,25 @@ void LLTextureCtrl::draw()
|
|||
LLRect interior = border;
|
||||
interior.stretch( -1 );
|
||||
|
||||
// If we're in a focused floater, don't apply the floater's alpha to the texture (STORM-677).
|
||||
const F32 alpha = getTransparencyType() == TT_ACTIVE ? 1.0f : getCurrentTransparency();
|
||||
if( mTexturep )
|
||||
{
|
||||
if( mTexturep->getComponents() == 4 )
|
||||
{
|
||||
gl_rect_2d_checkerboard( interior );
|
||||
gl_rect_2d_checkerboard( interior, alpha );
|
||||
}
|
||||
|
||||
gl_draw_scaled_image( interior.mLeft, interior.mBottom, interior.getWidth(), interior.getHeight(), mTexturep);
|
||||
gl_draw_scaled_image( interior.mLeft, interior.mBottom, interior.getWidth(), interior.getHeight(), mTexturep, UI_VERTEX_COLOR % alpha);
|
||||
mTexturep->addTextureStats( (F32)(interior.getWidth() * interior.getHeight()) );
|
||||
}
|
||||
else if (!mFallbackImage.isNull())
|
||||
{
|
||||
mFallbackImage->draw(interior);
|
||||
mFallbackImage->draw(interior, UI_VERTEX_COLOR % alpha);
|
||||
}
|
||||
else
|
||||
{
|
||||
gl_rect_2d( interior, LLColor4::grey, TRUE );
|
||||
gl_rect_2d( interior, LLColor4::grey % alpha, TRUE );
|
||||
|
||||
// Draw X
|
||||
gl_draw_x( interior, LLColor4::black );
|
||||
|
|
|
|||
|
|
@ -141,10 +141,6 @@ LLToast::LLToast(const LLToast::Params& p)
|
|||
// init callbacks if present
|
||||
if(!p.on_delete_toast().empty())
|
||||
mOnDeleteToastSignal.connect(p.on_delete_toast());
|
||||
|
||||
// *TODO: This signal doesn't seem to be used at all.
|
||||
if(!p.on_mouse_enter().empty())
|
||||
mOnMouseEnterSignal.connect(p.on_mouse_enter());
|
||||
}
|
||||
|
||||
void LLToast::reshape(S32 width, S32 height, BOOL called_from_parent)
|
||||
|
|
@ -402,7 +398,6 @@ void LLToast::onToastMouseEnter()
|
|||
{
|
||||
mHideBtn->setVisible(TRUE);
|
||||
}
|
||||
mOnMouseEnterSignal(this);
|
||||
mToastMouseEnterSignal(this, getValue());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -90,8 +90,7 @@ public:
|
|||
fading_time_secs; // Number of seconds while a toast is transparent
|
||||
|
||||
|
||||
Optional<toast_callback_t> on_delete_toast,
|
||||
on_mouse_enter;
|
||||
Optional<toast_callback_t> on_delete_toast;
|
||||
Optional<bool> can_fade,
|
||||
can_be_stored,
|
||||
enable_hide_btn,
|
||||
|
|
@ -142,7 +141,7 @@ public:
|
|||
//
|
||||
virtual void setVisible(BOOL show);
|
||||
|
||||
/*virtual*/ void setBackgroundOpaque(BOOL b);
|
||||
virtual void setBackgroundOpaque(BOOL b);
|
||||
//
|
||||
virtual void hide();
|
||||
|
||||
|
|
@ -182,7 +181,6 @@ public:
|
|||
|
||||
// Registers signals/callbacks for events
|
||||
toast_signal_t mOnFadeSignal;
|
||||
toast_signal_t mOnMouseEnterSignal;
|
||||
toast_signal_t mOnDeleteToastSignal;
|
||||
toast_signal_t mOnToastDestroyedSignal;
|
||||
boost::signals2::connection setOnFadeCallback(toast_callback_t cb) { return mOnFadeSignal.connect(cb); }
|
||||
|
|
@ -200,6 +198,10 @@ public:
|
|||
|
||||
LLHandle<LLToast> getHandle() { mHandle.bind(this); return mHandle; }
|
||||
|
||||
bool getTransparentState() const { return mIsTransparent; }
|
||||
virtual void setTransparentState(bool transparent);
|
||||
|
||||
|
||||
private:
|
||||
|
||||
void onToastMouseEnter();
|
||||
|
|
@ -208,8 +210,6 @@ private:
|
|||
|
||||
void expire();
|
||||
|
||||
void setTransparentState(bool transparent);
|
||||
|
||||
LLUUID mNotificationID;
|
||||
LLUUID mSessionID;
|
||||
LLNotificationPtr mNotification;
|
||||
|
|
|
|||
|
|
@ -3056,7 +3056,7 @@ void LLVOAvatar::idleUpdateNameTagText(BOOL new_name)
|
|||
std::deque<LLChat>::iterator chat_iter = mChats.begin();
|
||||
mNameText->clearString();
|
||||
|
||||
LLColor4 new_chat = LLUIColorTable::instance().getColor( "NameTagChat" );
|
||||
LLColor4 new_chat = LLUIColorTable::instance().getColor( isSelf() ? "UserChatColor" : "AgentChatColor" );
|
||||
LLColor4 normal_chat = lerp(new_chat, LLColor4(0.8f, 0.8f, 0.8f, 1.f), 0.7f);
|
||||
LLColor4 old_chat = lerp(normal_chat, LLColor4(0.6f, 0.6f, 0.6f, 1.f), 0.7f);
|
||||
if (mTyping && mChats.size() >= MAX_BUBBLE_CHAT_UTTERANCES)
|
||||
|
|
|
|||
|
|
@ -138,9 +138,6 @@
|
|||
<color
|
||||
name="AvatarListItemIconVoiceLeftColor"
|
||||
reference="AvatarListItemIconOfflineColor" />
|
||||
<color
|
||||
name="BackgroundChatColor"
|
||||
reference="White" />
|
||||
<color
|
||||
name="ButtonBorderColor"
|
||||
reference="Unused?" />
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@
|
|||
left="0"
|
||||
name="normal_background"
|
||||
top="17"
|
||||
use_draw_context_alpha="false"
|
||||
width="350" />
|
||||
<text
|
||||
type="string"
|
||||
|
|
@ -292,6 +293,7 @@ Re-enter amount to see the latest exchange rate.
|
|||
left="0"
|
||||
name="error_background"
|
||||
top="15"
|
||||
use_draw_context_alpha="false"
|
||||
width="350"/>
|
||||
<text
|
||||
type="string"
|
||||
|
|
|
|||
|
|
@ -2,9 +2,6 @@
|
|||
<floater
|
||||
border_visible="false"
|
||||
border="false"
|
||||
bg_opaque_image="Window_Foreground"
|
||||
bg_alpha_image="Window_Background"
|
||||
bg_alpha_image_overlay="DkGray_66"
|
||||
legacy_header_height="18"
|
||||
can_minimize="true"
|
||||
can_tear_off="false"
|
||||
|
|
|
|||
|
|
@ -49,7 +49,8 @@
|
|||
left="10"
|
||||
tab_stop="false"
|
||||
top="2"
|
||||
width="30" />
|
||||
width="30"
|
||||
use_draw_context_alpha="false" />
|
||||
<text
|
||||
follows="top|left|right"
|
||||
font="SansSerifHugeBold"
|
||||
|
|
|
|||
|
|
@ -33,7 +33,8 @@
|
|||
left="10"
|
||||
tab_stop="false"
|
||||
top="2"
|
||||
width="30" />
|
||||
width="30"
|
||||
use_draw_context_alpha="false" />
|
||||
<text
|
||||
type="string"
|
||||
length="1"
|
||||
|
|
|
|||
|
|
@ -27,7 +27,8 @@
|
|||
left="10"
|
||||
tab_stop="false"
|
||||
top="2"
|
||||
width="30" />
|
||||
width="30"
|
||||
use_draw_context_alpha="false" />
|
||||
<text
|
||||
type="string"
|
||||
length="1"
|
||||
|
|
|
|||
|
|
@ -147,7 +147,8 @@
|
|||
pad_left="24"
|
||||
tool_tip="Return to Edit Outfit"
|
||||
top="3"
|
||||
width="30" />
|
||||
width="30"
|
||||
use_draw_context_alpha="false" />
|
||||
<text
|
||||
follows="top|left|right"
|
||||
font="SansSerifHugeBold"
|
||||
|
|
|
|||
|
|
@ -45,7 +45,8 @@ background_visible="true"
|
|||
left="7"
|
||||
tab_stop="false"
|
||||
top="2"
|
||||
width="30" />
|
||||
width="30"
|
||||
use_draw_context_alpha="false" />
|
||||
<text_editor
|
||||
allow_scroll="false"
|
||||
bg_visible="false"
|
||||
|
|
|
|||
|
|
@ -68,7 +68,8 @@
|
|||
tool_tip="Back"
|
||||
tab_stop="false"
|
||||
top="4"
|
||||
width="30" />
|
||||
width="30"
|
||||
use_draw_context_alpha="false" />
|
||||
<text
|
||||
follows="top|left|right"
|
||||
font="SansSerifHugeBold"
|
||||
|
|
|
|||
|
|
@ -127,7 +127,7 @@ top="20"
|
|||
</text>
|
||||
<combo_box
|
||||
allow_text_entry="true"
|
||||
control_name="LoginLocation"
|
||||
control_name="NextLoginLocation"
|
||||
follows="left|bottom"
|
||||
height="23"
|
||||
max_chars="128"
|
||||
|
|
|
|||
|
|
@ -70,7 +70,8 @@
|
|||
left="5"
|
||||
tab_stop="false"
|
||||
top="1"
|
||||
width="30" />
|
||||
width="30"
|
||||
use_draw_context_alpha="false" />
|
||||
<text
|
||||
follows="top|left|right"
|
||||
font="SansSerifHugeBold"
|
||||
|
|
|
|||
|
|
@ -21,7 +21,8 @@
|
|||
left="10"
|
||||
tab_stop="false"
|
||||
top="2"
|
||||
width="30" />
|
||||
width="30"
|
||||
use_draw_context_alpha="false" />
|
||||
<text
|
||||
follows="top|left|right"
|
||||
font="SansSerifHugeBold"
|
||||
|
|
|
|||
|
|
@ -165,7 +165,8 @@
|
|||
tool_tip="Back"
|
||||
tab_stop="false"
|
||||
top="4"
|
||||
width="30" />
|
||||
width="30"
|
||||
use_draw_context_alpha="false" />
|
||||
<text
|
||||
follows="top|left|right"
|
||||
font="SansSerifHugeBold"
|
||||
|
|
|
|||
|
|
@ -275,14 +275,14 @@
|
|||
height="12"
|
||||
name="bubble_chat"
|
||||
top_pad="20"
|
||||
width="120"
|
||||
width="140"
|
||||
>
|
||||
Bubble chat:
|
||||
Bubble chat background:
|
||||
</text>
|
||||
<color_swatch
|
||||
can_apply_immediately="true"
|
||||
color="0 0 0 1"
|
||||
control_name="BackgroundChatColor"
|
||||
control_name="NameTagBackground"
|
||||
follows="left|top"
|
||||
height="24"
|
||||
label_height="0"
|
||||
|
|
@ -294,10 +294,10 @@
|
|||
width="44">
|
||||
<color_swatch.init_callback
|
||||
function="Pref.getUIColor"
|
||||
parameter="BackgroundChatColor" />
|
||||
parameter="NameTagBackground" />
|
||||
<color_swatch.commit_callback
|
||||
function="Pref.applyUIColor"
|
||||
parameter="BackgroundChatColor" />
|
||||
parameter="NameTagBackground" />
|
||||
</color_swatch>
|
||||
<slider
|
||||
control_name="ChatBubbleOpacity"
|
||||
|
|
@ -333,7 +333,7 @@
|
|||
initial_value="0.8"
|
||||
layout="topleft"
|
||||
label_width="115"
|
||||
label="Active :"
|
||||
label="Active:"
|
||||
left="50"
|
||||
max_val="1.00"
|
||||
min_val="0.00"
|
||||
|
|
@ -351,7 +351,7 @@
|
|||
initial_value="0.5"
|
||||
layout="topleft"
|
||||
label_width="115"
|
||||
label="Inctive :"
|
||||
label="Inactive:"
|
||||
left="50"
|
||||
max_val="1.00"
|
||||
min_val="0.00"
|
||||
|
|
|
|||
|
|
@ -185,7 +185,7 @@
|
|||
layout="topleft"
|
||||
left_pad="10"
|
||||
mouse_opaque="false"
|
||||
name="cache_size_label_l"
|
||||
name="block_list_label"
|
||||
top_delta="3"
|
||||
text_color="LtGray_50"
|
||||
width="300">
|
||||
|
|
|
|||
|
|
@ -27,7 +27,8 @@
|
|||
left="10"
|
||||
tab_stop="false"
|
||||
top="2"
|
||||
width="30" />
|
||||
width="30"
|
||||
use_draw_context_alpha="false" />
|
||||
<text
|
||||
top="10"
|
||||
follows="top|left"
|
||||
|
|
|
|||
|
|
@ -56,7 +56,8 @@
|
|||
name="back_btn"
|
||||
tab_stop="false"
|
||||
top="2"
|
||||
width="30" />
|
||||
width="30"
|
||||
use_draw_context_alpha="false" />
|
||||
<text
|
||||
follows="top|left|right"
|
||||
font="SansSerifHugeBold"
|
||||
|
|
|
|||
|
|
@ -65,7 +65,8 @@
|
|||
name="back_btn"
|
||||
tab_stop="false"
|
||||
top="0"
|
||||
width="30" />
|
||||
width="30"
|
||||
use_draw_context_alpha="false" />
|
||||
<text
|
||||
follows="top|left|right"
|
||||
font="SansSerifHuge"
|
||||
|
|
|
|||
|
|
@ -1,4 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
|
||||
<avatar_icon default_icon_name="Generic_Person_Large">
|
||||
<avatar_icon
|
||||
default_icon_name="Generic_Person_Large"
|
||||
use_draw_context_alpha="false">
|
||||
</avatar_icon>
|
||||
|
|
|
|||
|
|
@ -24,5 +24,6 @@
|
|||
halign="center"
|
||||
pad_bottom="3"
|
||||
height="23"
|
||||
scale_image="true">
|
||||
scale_image="true"
|
||||
use_draw_context_alpha="true">
|
||||
</button>
|
||||
|
|
|
|||
|
|
@ -3,5 +3,6 @@
|
|||
tab_stop="false"
|
||||
mouse_opaque="false"
|
||||
name="icon"
|
||||
use_draw_context_alpha="true"
|
||||
follows="left|top">
|
||||
</icon>
|
||||
|
|
|
|||
Loading…
Reference in New Issue