summaryrefslogtreecommitdiff
path: root/indra/newview/lltoastpanel.cpp
diff options
context:
space:
mode:
authorSteven Bennetts <steve@lindenlab.com>2009-09-07 22:55:07 +0000
committerSteven Bennetts <steve@lindenlab.com>2009-09-07 22:55:07 +0000
commit79653dfed48105019b8ecca9cf4bfaa2a390e100 (patch)
tree455943795bf3371bbff0689604cf5eedd903fae4 /indra/newview/lltoastpanel.cpp
parenta9b2296b2b5664cfc8d86c7f99c00c10268e250a (diff)
merge https://svn.aws.productengine.com/secondlife/export-from-ll/viewer-2-0@1566 https://svn.aws.productengine.com/secondlife/pe/stable-2@1580 -> viewer-2.0.0-3
* Bugs: EXT-807 EXT-810 EXT-811 EXT-784 EXT-820 EXT-393 EXT-826 EXT-811 EXT-801 EXT-808 EXT-393 EXT-743 EXT-699 EXT-397 EXT-812 EXT-736 EXT-744 EXT-809 EXT-306 EXT-854 EXT-857 EXT-790 * New Dev: EXT-694 EXT-393 EXT-367 EXT-819 EXT-795 EXT-827 EXT-788 * EXT-272 - Draggable Landmarks * EXT-715 - Block List Panel * EXT-782 - Implement advanced place information accordions
Diffstat (limited to 'indra/newview/lltoastpanel.cpp')
-rw-r--r--indra/newview/lltoastpanel.cpp31
1 files changed, 31 insertions, 0 deletions
diff --git a/indra/newview/lltoastpanel.cpp b/indra/newview/lltoastpanel.cpp
index 28052a33be..e884d89ce4 100644
--- a/indra/newview/lltoastpanel.cpp
+++ b/indra/newview/lltoastpanel.cpp
@@ -49,5 +49,36 @@ std::string LLToastPanel::getTitle()
return mNotification->getMessage();
}
+//snap to the message height if it is visible
+void LLToastPanel::snapToMessageHeight(LLTextBox* message, S32 maxLineCount)
+{
+ //Add message height if it is visible
+ if (message->getVisible())
+ {
+ S32 heightDelta = 0;
+ S32 maxTextHeight = (S32)(message->getFont()->getLineHeight() * maxLineCount);
+
+ LLRect messageRect = message->getRect();
+ S32 oldTextHeight = messageRect.getHeight();
+
+ //Reshape the toast to give the message max height.
+ //This needed to calculate lines count according to specified text
+ heightDelta = maxTextHeight - oldTextHeight;
+ reshape( getRect().getWidth(), getRect().getHeight() + heightDelta);
+ message->setValue(message->getText());
+
+ //Knowing the height is set to max allowed, getTextPixelHeight returns needed text height
+ //Perhaps we need to pass maxLineCount as parameter to getTextPixelHeight to avoid previous reshape.
+ S32 requiredTextHeight = message->getTextPixelHeight();
+ S32 newTextHeight = llmin(requiredTextHeight, maxTextHeight);
+ //Calculate last delta height deducting previous heightDelta
+ heightDelta = newTextHeight - oldTextHeight - heightDelta;
+
+ //reshape the panel with new height
+ reshape( getRect().getWidth(), getRect().getHeight() + heightDelta);
+ message->setValue(message->getText());
+ }
+
+}