diff options
| author | Andrew Dyukov <adyukov@productengine.com> | 2010-05-31 22:30:35 +0300 |
|---|---|---|
| committer | Andrew Dyukov <adyukov@productengine.com> | 2010-05-31 22:30:35 +0300 |
| commit | 66ddb437f1eb8327ff74a26943400b9911289a15 (patch) | |
| tree | 25c558801eb234c250975cd6b7f163f07784ea54 /indra/llui/llbutton.cpp | |
| parent | b3c1e9cd75ed228b9457afca0939a033d56680c0 (diff) | |
EXT-7087 FIXED Added flashing icons for im tabs and hooked them up in code
Added new attribute image_flash to button.xml which sets an image used for button icon when button is flashing.
Pointer to this image is stored in member mImageFlash from LLButton and is used in LLButton::draw(). There are two
ways an image can flash now - by making changes in color according to flash_color attribute or by changing icon from
current to the one specified in image_flash. Second way is used only if the name of flash icon is different from
"FlashIconAbsent" which is there by default. First way is used otherwise. Used new selfmade orange icons for
flashing tabs.
--HG--
branch : product-engine
Diffstat (limited to 'indra/llui/llbutton.cpp')
| -rw-r--r-- | indra/llui/llbutton.cpp | 30 |
1 files changed, 23 insertions, 7 deletions
diff --git a/indra/llui/llbutton.cpp b/indra/llui/llbutton.cpp index 0255061b12..a8f72183fd 100644 --- a/indra/llui/llbutton.cpp +++ b/indra/llui/llbutton.cpp @@ -128,6 +128,7 @@ LLButton::LLButton(const LLButton::Params& p) mImageSelected(p.image_selected), mImageDisabled(p.image_disabled), mImageDisabledSelected(p.image_disabled_selected), + mImageFlash(p.image_flash), mImagePressed(p.image_pressed), mImagePressedSelected(p.image_pressed_selected), mImageHoverSelected(p.image_hover_selected), @@ -635,14 +636,24 @@ void LLButton::draw() if (mFlashing) { - LLColor4 flash_color = mFlashBgColor.get(); - use_glow_effect = TRUE; - glow_type = LLRender::BT_ALPHA; // blend the glow - - if (mNeedsHighlight) // highlighted AND flashing - glow_color = (glow_color*0.5f + flash_color*0.5f) % 2.0f; // average between flash and highlight colour, with sum of the opacity + // if we have icon for flashing, use it as image for button + if(flash && mImageFlash->getName() != "FlashIconAbsent") + { + // setting flash to false to avoid its further influence on glow + flash = false; + imagep = mImageFlash; + } + // else use usual flashing via flash_color else - glow_color = flash_color; + { + LLColor4 flash_color = mFlashBgColor.get(); + use_glow_effect = TRUE; + glow_type = LLRender::BT_ALPHA; // blend the glow + if (mNeedsHighlight) // highlighted AND flashing + glow_color = (glow_color*0.5f + flash_color*0.5f) % 2.0f; // average between flash and highlight colour, with sum of the opacity + else + glow_color = flash_color; + } } if (mNeedsHighlight && !imagep) @@ -1018,6 +1029,11 @@ void LLButton::setImageHoverUnselected(LLPointer<LLUIImage> image) mImageHoverUnselected = image; } +void LLButton::setImageFlash(LLPointer<LLUIImage> image) +{ + mImageFlash = image; +} + void LLButton::setImageOverlay(const std::string& image_name, LLFontGL::HAlign alignment, const LLColor4& color) { if (image_name.empty()) |
