summaryrefslogtreecommitdiff
path: root/indra/llui/llbutton.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/llui/llbutton.cpp')
-rw-r--r--indra/llui/llbutton.cpp571
1 files changed, 266 insertions, 305 deletions
diff --git a/indra/llui/llbutton.cpp b/indra/llui/llbutton.cpp
index 8ae6dd2ea5..e0ac3cebd7 100644
--- a/indra/llui/llbutton.cpp
+++ b/indra/llui/llbutton.cpp
@@ -50,6 +50,8 @@
#include "llwindow.h"
#include "llglimmediate.h"
+static LLRegisterWidget<LLButton> r("button");
+
// globals loaded from settings.xml
S32 LLBUTTON_ORIG_H_PAD = 6; // Pre-zoomable UI
S32 LLBUTTON_H_PAD = 0;
@@ -222,18 +224,6 @@ LLButton::~LLButton()
}
}
-// virtual
-EWidgetType LLButton::getWidgetType() const
-{
- return WIDGET_TYPE_BUTTON;
-}
-
-// virtual
-LLString LLButton::getWidgetTag() const
-{
- return LL_BUTTON_TAG;
-}
-
// HACK: Committing a button is the same as instantly clicking it.
// virtual
void LLButton::onCommit()
@@ -277,10 +267,11 @@ void LLButton::onCommit()
-BOOL LLButton::handleUnicodeCharHere(llwchar uni_char, BOOL called_from_parent)
+BOOL LLButton::handleUnicodeCharHere(llwchar uni_char)
{
BOOL handled = FALSE;
- if( getVisible() && getEnabled() && !called_from_parent && ' ' == uni_char && !gKeyboard->getKeyRepeated(' '))
+ if(' ' == uni_char
+ && !gKeyboard->getKeyRepeated(' '))
{
if (mIsToggle)
{
@@ -296,24 +287,21 @@ BOOL LLButton::handleUnicodeCharHere(llwchar uni_char, BOOL called_from_parent)
return handled;
}
-BOOL LLButton::handleKeyHere(KEY key, MASK mask, BOOL called_from_parent )
+BOOL LLButton::handleKeyHere(KEY key, MASK mask )
{
BOOL handled = FALSE;
- if( getVisible() && getEnabled() && !called_from_parent )
+ if( mCommitOnReturn && KEY_RETURN == key && mask == MASK_NONE && !gKeyboard->getKeyRepeated(key))
{
- if( mCommitOnReturn && KEY_RETURN == key && mask == MASK_NONE && !gKeyboard->getKeyRepeated(key))
+ if (mIsToggle)
{
- if (mIsToggle)
- {
- toggleState();
- }
+ toggleState();
+ }
- handled = TRUE;
+ handled = TRUE;
- if (mClickedCallback)
- {
- (*mClickedCallback)( mCallbackUserData );
- }
+ if (mClickedCallback)
+ {
+ (*mClickedCallback)( mCallbackUserData );
}
}
return handled;
@@ -391,8 +379,6 @@ BOOL LLButton::handleMouseUp(S32 x, S32 y, MASK mask)
BOOL LLButton::handleHover(S32 x, S32 y, MASK mask)
{
- BOOL handled = FALSE;
-
LLMouseHandler* other_captor = gFocusMgr.getMouseCapture();
mNeedsHighlight = other_captor == NULL ||
other_captor == this ||
@@ -409,358 +395,333 @@ BOOL LLButton::handleHover(S32 x, S32 y, MASK mask)
}
// We only handle the click if the click both started and ended within us
- if( hasMouseCapture() )
- {
- handled = TRUE;
- }
- else if( getVisible() )
- {
- // Opaque
- handled = TRUE;
- }
+ getWindow()->setCursor(UI_CURSOR_ARROW);
+ lldebugst(LLERR_USER_INPUT) << "hover handled by " << getName() << llendl;
- if( handled )
- {
- getWindow()->setCursor(UI_CURSOR_ARROW);
- lldebugst(LLERR_USER_INPUT) << "hover handled by " << getName() << llendl;
- }
-
- return handled;
+ return TRUE;
}
// virtual
void LLButton::draw()
{
- if( getVisible() )
+ BOOL flash = FALSE;
+ if( mFlashing )
{
- BOOL flash = FALSE;
- if( mFlashing )
- {
- F32 elapsed = mFlashingTimer.getElapsedTimeF32();
- S32 flash_count = S32(elapsed * LLUI::sConfigGroup->getF32("ButtonFlashRate") * 2.f);
- // flash on or off?
- flash = (flash_count % 2 == 0) || flash_count > (F32)LLUI::sConfigGroup->getS32("ButtonFlashCount");
- }
+ F32 elapsed = mFlashingTimer.getElapsedTimeF32();
+ S32 flash_count = S32(elapsed * LLUI::sConfigGroup->getF32("ButtonFlashRate") * 2.f);
+ // flash on or off?
+ flash = (flash_count % 2 == 0) || flash_count > S32((F32)LLUI::sConfigGroup->getS32("ButtonFlashCount") * 2.f);
+ }
- BOOL pressed_by_keyboard = FALSE;
- if (hasFocus())
- {
- pressed_by_keyboard = gKeyboard->getKeyDown(' ') || (mCommitOnReturn && gKeyboard->getKeyDown(KEY_RETURN));
- }
+ BOOL pressed_by_keyboard = FALSE;
+ if (hasFocus())
+ {
+ pressed_by_keyboard = gKeyboard->getKeyDown(' ') || (mCommitOnReturn && gKeyboard->getKeyDown(KEY_RETURN));
+ }
- // Unselected image assignments
- S32 local_mouse_x;
- S32 local_mouse_y;
- LLCoordWindow cursor_pos_window;
- getWindow()->getCursorPosition(&cursor_pos_window);
- LLCoordGL cursor_pos_gl;
- getWindow()->convertCoords(cursor_pos_window, &cursor_pos_gl);
- cursor_pos_gl.mX = llround((F32)cursor_pos_gl.mX / LLUI::sGLScaleFactor.mV[VX]);
- cursor_pos_gl.mY = llround((F32)cursor_pos_gl.mY / LLUI::sGLScaleFactor.mV[VY]);
- screenPointToLocal(cursor_pos_gl.mX, cursor_pos_gl.mY, &local_mouse_x, &local_mouse_y);
-
- BOOL pressed = pressed_by_keyboard
- || (hasMouseCapture() && pointInView(local_mouse_x, local_mouse_y))
- || mToggleState;
-
- BOOL use_glow_effect = FALSE;
- if ( mNeedsHighlight || flash )
+ // Unselected image assignments
+ S32 local_mouse_x;
+ S32 local_mouse_y;
+ LLCoordWindow cursor_pos_window;
+ getWindow()->getCursorPosition(&cursor_pos_window);
+ LLCoordGL cursor_pos_gl;
+ getWindow()->convertCoords(cursor_pos_window, &cursor_pos_gl);
+ cursor_pos_gl.mX = llround((F32)cursor_pos_gl.mX / LLUI::sGLScaleFactor.mV[VX]);
+ cursor_pos_gl.mY = llround((F32)cursor_pos_gl.mY / LLUI::sGLScaleFactor.mV[VY]);
+ screenPointToLocal(cursor_pos_gl.mX, cursor_pos_gl.mY, &local_mouse_x, &local_mouse_y);
+
+ BOOL pressed = pressed_by_keyboard
+ || (hasMouseCapture() && pointInView(local_mouse_x, local_mouse_y))
+ || mToggleState;
+
+ BOOL use_glow_effect = FALSE;
+ if ( mNeedsHighlight || flash )
+ {
+ if (pressed)
{
- if (pressed)
+ if (mImageHoverSelected)
{
- if (mImageHoverSelected)
- {
- mImagep = mImageHoverSelected;
- }
- else
- {
- mImagep = mImageSelected;
- use_glow_effect = TRUE;
- }
+ mImagep = mImageHoverSelected;
}
else
{
- if (mImageHoverUnselected)
- {
- mImagep = mImageHoverUnselected;
- }
- else
- {
- mImagep = mImageUnselected;
- use_glow_effect = TRUE;
- }
+ mImagep = mImageSelected;
+ use_glow_effect = TRUE;
}
}
- else if ( pressed )
- {
- mImagep = mImageSelected;
- }
else
{
- mImagep = mImageUnselected;
+ if (mImageHoverUnselected)
+ {
+ mImagep = mImageHoverUnselected;
+ }
+ else
+ {
+ mImagep = mImageUnselected;
+ use_glow_effect = TRUE;
+ }
}
+ }
+ else if ( pressed )
+ {
+ mImagep = mImageSelected;
+ }
+ else
+ {
+ mImagep = mImageUnselected;
+ }
- // Override if more data is available
- // HACK: Use gray checked state to mean either:
- // enabled and tentative
- // or
- // disabled but checked
- if (!mImageDisabledSelected.isNull() && ( (getEnabled() && getTentative()) || (!getEnabled() && pressed ) ) )
- {
- mImagep = mImageDisabledSelected;
- }
- else if (!mImageDisabled.isNull() && !getEnabled() && !pressed)
- {
- mImagep = mImageDisabled;
- }
+ // Override if more data is available
+ // HACK: Use gray checked state to mean either:
+ // enabled and tentative
+ // or
+ // disabled but checked
+ if (!mImageDisabledSelected.isNull()
+ &&
+ ( (getEnabled() && getTentative())
+ || (!getEnabled() && pressed ) ) )
+ {
+ mImagep = mImageDisabledSelected;
+ }
+ else if (!mImageDisabled.isNull()
+ && !getEnabled()
+ && !pressed)
+ {
+ mImagep = mImageDisabled;
+ }
- if (mNeedsHighlight && !mImagep)
- {
- use_glow_effect = TRUE;
- }
+ if (mNeedsHighlight && !mImagep)
+ {
+ use_glow_effect = TRUE;
+ }
- // Figure out appropriate color for the text
- LLColor4 label_color;
+ // Figure out appropriate color for the text
+ LLColor4 label_color;
- // label changes when button state changes, not when pressed
- if ( getEnabled() )
+ // label changes when button state changes, not when pressed
+ if ( getEnabled() )
+ {
+ if ( mToggleState )
{
- if ( mToggleState )
- {
- label_color = mSelectedLabelColor;
- }
- else
- {
- label_color = mUnselectedLabelColor;
- }
+ label_color = mSelectedLabelColor;
}
else
{
- if ( mToggleState )
- {
- label_color = mDisabledSelectedLabelColor;
- }
- else
- {
- label_color = mDisabledLabelColor;
- }
+ label_color = mUnselectedLabelColor;
}
-
- // Unselected label assignments
- LLWString label;
-
- if( mToggleState )
+ }
+ else
+ {
+ if ( mToggleState )
{
- if( getEnabled() || mDisabledSelectedLabel.empty() )
- {
- label = mSelectedLabel;
- }
- else
- {
- label = mDisabledSelectedLabel;
- }
+ label_color = mDisabledSelectedLabelColor;
}
else
{
- if( getEnabled() || mDisabledLabel.empty() )
- {
- label = mUnselectedLabel;
- }
- else
- {
- label = mDisabledLabel;
- }
+ label_color = mDisabledLabelColor;
}
-
- // draw default button border
- if (getEnabled() && mBorderEnabled && gFocusMgr.getAppHasFocus()) // because we're the default button in a panel
+ }
+
+ // Unselected label assignments
+ LLWString label;
+
+ if( mToggleState )
+ {
+ if( getEnabled() || mDisabledSelectedLabel.empty() )
{
- drawBorder(LLUI::sColorsGroup->getColor( "ButtonBorderColor" ), BORDER_SIZE);
+ label = mSelectedLabel;
}
-
- // overlay with keyboard focus border
- if (hasFocus())
+ else
{
- F32 lerp_amt = gFocusMgr.getFocusFlashAmt();
- drawBorder(gFocusMgr.getFocusColor(), llround(lerp(1.f, 3.f, lerp_amt)));
+ label = mDisabledSelectedLabel;
}
-
- if (use_glow_effect)
+ }
+ else
+ {
+ if( getEnabled() || mDisabledLabel.empty() )
{
- mCurGlowStrength = lerp(mCurGlowStrength, mHoverGlowStrength, LLCriticalDamp::getInterpolant(0.05f));
+ label = mUnselectedLabel;
}
else
{
- mCurGlowStrength = lerp(mCurGlowStrength, 0.f, LLCriticalDamp::getInterpolant(0.05f));
+ label = mDisabledLabel;
}
+ }
- // Draw button image, if available.
- // Otherwise draw basic rectangular button.
- if( mImagep.notNull() && !mScaleImage)
+ // overlay with keyboard focus border
+ if (hasFocus())
+ {
+ F32 lerp_amt = gFocusMgr.getFocusFlashAmt();
+ drawBorder(gFocusMgr.getFocusColor(), llround(lerp(1.f, 3.f, lerp_amt)));
+ }
+
+ if (use_glow_effect)
+ {
+ mCurGlowStrength = lerp(mCurGlowStrength, mHoverGlowStrength, LLCriticalDamp::getInterpolant(0.05f));
+ }
+ else
+ {
+ mCurGlowStrength = lerp(mCurGlowStrength, 0.f, LLCriticalDamp::getInterpolant(0.05f));
+ }
+
+ // Draw button image, if available.
+ // Otherwise draw basic rectangular button.
+ if (mImagep.notNull())
+ {
+ if ( mScaleImage)
{
- mImagep->draw(0, 0, getEnabled() ? mImageColor : mDisabledImageColor );
+ mImagep->draw(getLocalRect(), getEnabled() ? mImageColor : mDisabledImageColor );
if (mCurGlowStrength > 0.01f)
{
- gGL.blendFunc(GL_SRC_ALPHA, GL_ONE);
- mImagep->drawSolid(0, 0, LLColor4(1.f, 1.f, 1.f, mCurGlowStrength));
- gGL.blendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE);
+ mImagep->drawSolid(0, 0, getRect().getWidth(), getRect().getHeight(), LLColor4(1.f, 1.f, 1.f, mCurGlowStrength));
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
}
}
else
- if ( mImagep.notNull() && mScaleImage)
{
- mImagep->draw(0, 0, getRect().getWidth(), getRect().getHeight(), getEnabled() ? mImageColor : mDisabledImageColor );
+ mImagep->draw(0, 0, getEnabled() ? mImageColor : mDisabledImageColor );
if (mCurGlowStrength > 0.01f)
{
- gGL.blendFunc(GL_SRC_ALPHA, GL_ONE);
- mImagep->drawSolid(0, 0, getRect().getWidth(), getRect().getHeight(), LLColor4(1.f, 1.f, 1.f, mCurGlowStrength));
- gGL.blendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE);
+ mImagep->drawSolid(0, 0, LLColor4(1.f, 1.f, 1.f, mCurGlowStrength));
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
}
}
- else
- {
- // no image
- llwarns << "No image for button " << getName() << llendl;
- // draw it in pink so we can find it
- gl_rect_2d(0, getRect().getHeight(), getRect().getWidth(), 0, LLColor4::pink1, FALSE);
- }
-
- // let overlay image and text play well together
- S32 text_left = mLeftHPad;
- S32 text_right = getRect().getWidth() - mRightHPad;
- S32 text_width = getRect().getWidth() - mLeftHPad - mRightHPad;
-
- // draw overlay image
- if (mImageOverlay.notNull())
- {
- // get max width and height (discard level 0)
- S32 overlay_width = mImageOverlay->getWidth();
- S32 overlay_height = mImageOverlay->getHeight();
+ }
+ else
+ {
+ // no image
+ llwarns << "No image for button " << getName() << llendl;
+ // draw it in pink so we can find it
+ gl_rect_2d(0, getRect().getHeight(), getRect().getWidth(), 0, LLColor4::pink1, FALSE);
+ }
- F32 scale_factor = llmin((F32)getRect().getWidth() / (F32)overlay_width, (F32)getRect().getHeight() / (F32)overlay_height, 1.f);
- overlay_width = llround((F32)overlay_width * scale_factor);
- overlay_height = llround((F32)overlay_height * scale_factor);
+ // let overlay image and text play well together
+ S32 text_left = mLeftHPad;
+ S32 text_right = getRect().getWidth() - mRightHPad;
+ S32 text_width = getRect().getWidth() - mLeftHPad - mRightHPad;
- S32 center_x = getLocalRect().getCenterX();
- S32 center_y = getLocalRect().getCenterY();
+ // draw overlay image
+ if (mImageOverlay.notNull())
+ {
+ // get max width and height (discard level 0)
+ S32 overlay_width = mImageOverlay->getWidth();
+ S32 overlay_height = mImageOverlay->getHeight();
- //FUGLY HACK FOR "DEPRESSED" BUTTONS
- if (pressed)
- {
- center_y--;
- center_x++;
- }
+ F32 scale_factor = llmin((F32)getRect().getWidth() / (F32)overlay_width, (F32)getRect().getHeight() / (F32)overlay_height, 1.f);
+ overlay_width = llround((F32)overlay_width * scale_factor);
+ overlay_height = llround((F32)overlay_height * scale_factor);
- // fade out overlay images on disabled buttons
- LLColor4 overlay_color = mImageOverlayColor;
- if (!getEnabled())
- {
- overlay_color.mV[VALPHA] = 0.5f;
- }
+ S32 center_x = getLocalRect().getCenterX();
+ S32 center_y = getLocalRect().getCenterY();
- switch(mImageOverlayAlignment)
- {
- case LLFontGL::LEFT:
- text_left += overlay_width + 1;
- text_width -= overlay_width + 1;
- mImageOverlay->draw(
- mLeftHPad,
- center_y - (overlay_height / 2),
- overlay_width,
- overlay_height,
- overlay_color);
- break;
- case LLFontGL::HCENTER:
- mImageOverlay->draw(
- center_x - (overlay_width / 2),
- center_y - (overlay_height / 2),
- overlay_width,
- overlay_height,
- overlay_color);
- break;
- case LLFontGL::RIGHT:
- text_right -= overlay_width + 1;
- text_width -= overlay_width + 1;
- mImageOverlay->draw(
- getRect().getWidth() - mRightHPad - overlay_width,
- center_y - (overlay_height / 2),
- overlay_width,
- overlay_height,
- overlay_color);
- break;
- default:
- // draw nothing
- break;
- }
+ //FUGLY HACK FOR "DEPRESSED" BUTTONS
+ if (pressed)
+ {
+ center_y--;
+ center_x++;
}
- // Draw label
- if( !label.empty() )
+ // fade out overlay images on disabled buttons
+ LLColor4 overlay_color = mImageOverlayColor;
+ if (!getEnabled())
{
- LLWString::trim(label);
+ overlay_color.mV[VALPHA] = 0.5f;
+ }
- S32 x;
- switch( mHAlign )
- {
- case LLFontGL::RIGHT:
- x = text_right;
- break;
- case LLFontGL::HCENTER:
- x = getRect().getWidth() / 2;
- break;
- case LLFontGL::LEFT:
- default:
- x = text_left;
- break;
- }
+ switch(mImageOverlayAlignment)
+ {
+ case LLFontGL::LEFT:
+ text_left += overlay_width + 1;
+ text_width -= overlay_width + 1;
+ mImageOverlay->draw(
+ mLeftHPad,
+ center_y - (overlay_height / 2),
+ overlay_width,
+ overlay_height,
+ overlay_color);
+ break;
+ case LLFontGL::HCENTER:
+ mImageOverlay->draw(
+ center_x - (overlay_width / 2),
+ center_y - (overlay_height / 2),
+ overlay_width,
+ overlay_height,
+ overlay_color);
+ break;
+ case LLFontGL::RIGHT:
+ text_right -= overlay_width + 1;
+ text_width -= overlay_width + 1;
+ mImageOverlay->draw(
+ getRect().getWidth() - mRightHPad - overlay_width,
+ center_y - (overlay_height / 2),
+ overlay_width,
+ overlay_height,
+ overlay_color);
+ break;
+ default:
+ // draw nothing
+ break;
+ }
+ }
- S32 y_offset = 2 + (getRect().getHeight() - 20)/2;
-
- if (pressed)
- {
- y_offset--;
- x++;
- }
+ // Draw label
+ if( !label.empty() )
+ {
+ LLWString::trim(label);
- mGLFont->render(label, 0, (F32)x, (F32)(LLBUTTON_V_PAD + y_offset),
- label_color,
- mHAlign, LLFontGL::BOTTOM,
- mDropShadowedText ? LLFontGL::DROP_SHADOW_SOFT : LLFontGL::NORMAL,
- U32_MAX, text_width,
- NULL, FALSE, FALSE);
+ S32 x;
+ switch( mHAlign )
+ {
+ case LLFontGL::RIGHT:
+ x = text_right;
+ break;
+ case LLFontGL::HCENTER:
+ x = getRect().getWidth() / 2;
+ break;
+ case LLFontGL::LEFT:
+ default:
+ x = text_left;
+ break;
}
- if (sDebugRects
- || (LLView::sEditingUI && this == LLView::sEditingUIView))
+ S32 y_offset = 2 + (getRect().getHeight() - 20)/2;
+
+ if (pressed)
{
- drawDebugRect();
+ y_offset--;
+ x++;
}
+
+ mGLFont->render(label, 0, (F32)x, (F32)(LLBUTTON_V_PAD + y_offset),
+ label_color,
+ mHAlign, LLFontGL::BOTTOM,
+ mDropShadowedText ? LLFontGL::DROP_SHADOW_SOFT : LLFontGL::NORMAL,
+ U32_MAX, text_width,
+ NULL, FALSE, FALSE);
}
+
+ if (sDebugRects
+ || (LLView::sEditingUI && this == LLView::sEditingUIView))
+ {
+ drawDebugRect();
+ }
+
// reset hover status for next frame
mNeedsHighlight = FALSE;
}
void LLButton::drawBorder(const LLColor4& color, S32 size)
{
- S32 left = -size;
- S32 top = getRect().getHeight() + size;
- S32 right = getRect().getWidth() + size;
- S32 bottom = -size;
-
- if (mImagep.isNull())
- {
- gl_rect_2d(left, top, right, bottom, color, FALSE);
- return;
- }
-
if (mScaleImage)
{
- mImagep->drawSolid(left, bottom, right-left, top-bottom, color);
+ mImagep->drawBorder(getLocalRect(), color, size);
}
else
{
- mImagep->drawSolid(left, bottom, mImagep->getWidth() + size * 2, mImagep->getHeight() + size * 2, color);
+ mImagep->drawBorder(0, 0, color, size);
}
}
@@ -923,7 +884,7 @@ void LLButton::setImageOverlay(const LLString &image_name, LLFontGL::HAlign alig
}
else
{
- mImageOverlay = LLUI::getUIImageByName(image_name);
+ mImageOverlay = LLUI::getUIImage(image_name);
mImageOverlayAlignment = alignment;
mImageOverlayColor = color;
}
@@ -956,37 +917,37 @@ S32 round_up(S32 grid, S32 value)
void LLButton::setImageUnselected(const LLString &image_name)
{
- setImageUnselected(image_name.empty() ? NULL : LLUI::getUIImageByName(image_name));
+ setImageUnselected(LLUI::getUIImage(image_name));
mImageUnselectedName = image_name;
}
void LLButton::setImageSelected(const LLString &image_name)
{
- setImageSelected(image_name.empty() ? NULL : LLUI::getUIImageByName(image_name));
+ setImageSelected(LLUI::getUIImage(image_name));
mImageSelectedName = image_name;
}
void LLButton::setImageHoverSelected(const LLString &image_name)
{
- setImageHoverSelected(image_name.empty() ? NULL : LLUI::getUIImageByName(image_name));
+ setImageHoverSelected(LLUI::getUIImage(image_name));
mImageHoverSelectedName = image_name;
}
void LLButton::setImageHoverUnselected(const LLString &image_name)
{
- setImageHoverUnselected(image_name.empty() ? NULL : LLUI::getUIImageByName(image_name));
+ setImageHoverUnselected(LLUI::getUIImage(image_name));
mImageHoverUnselectedName = image_name;
}
void LLButton::setImageDisabled(const LLString &image_name)
{
- setImageDisabled(image_name.empty() ? NULL : LLUI::getUIImageByName(image_name));
+ setImageDisabled(LLUI::getUIImage(image_name));
mImageDisabledName = image_name;
}
void LLButton::setImageDisabledSelected(const LLString &image_name)
{
- setImageDisabledSelected(image_name.empty() ? NULL : LLUI::getUIImageByName(image_name));
+ setImageDisabledSelected(LLUI::getUIImage(image_name));
mImageDisabledSelectedName = image_name;
}