From 7f7ac0e998506fb2b19b03ae4f2ef6ef04b87b13 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Mon, 16 Dec 2013 19:51:22 +0300 Subject: fix speechbubble size. --- src/gui/popups/speechbubble.cpp | 29 +++++++++++------------------ 1 file changed, 11 insertions(+), 18 deletions(-) (limited to 'src/gui/popups/speechbubble.cpp') diff --git a/src/gui/popups/speechbubble.cpp b/src/gui/popups/speechbubble.cpp index 3033b7923..7febfdf4c 100644 --- a/src/gui/popups/speechbubble.cpp +++ b/src/gui/popups/speechbubble.cpp @@ -36,16 +36,16 @@ SpeechBubble::SpeechBubble() : Popup("Speech", "speechbubble.xml"), mText(), + mSpacing(mSkin ? mSkin->getOption("spacing") : 2), mCaption(new Label(this)), mSpeechBox(new BrowserBox(this, BrowserBox::AUTO_SIZE, true, - "browserbox.xml")) + "speechbrowserbox.xml")) { setContentSize(140, 46); - setMinWidth(29); - setMinHeight(29); + setMinWidth(8); + setMinHeight(8); mCaption->setFont(boldFont); -// mSpeechBox->setEditable(false); mSpeechBox->setOpaque(false); mSpeechBox->setForegroundColorAll(getThemeColor(Theme::BUBBLE_TEXT), getThemeColor(Theme::BUBBLE_TEXT_OUTLINE)); @@ -75,28 +75,21 @@ void SpeechBubble::setText(const std::string &text, const bool showName) getThemeColor(Theme::BUBBLE_TEXT_OUTLINE)); const int pad = mPadding; - const int pad2 = 2 * pad; - int width = mCaption->getWidth() + pad2; + int width = mCaption->getWidth(); mSpeechBox->clearRows(); mSpeechBox->addRow(text); - const int speechWidth = mSpeechBox->getWidth() + pad2; + mSpeechBox->setWidth(mSpeechBox->getDataWidth()); + const int speechWidth = mSpeechBox->getWidth(); const int fontHeight = getFont()->getHeight(); - const int nameHeight = showName ? mCaption->getHeight() + pad / 2 : 0; - const int numRows = 1; - const int height = fontHeight + nameHeight + pad; + const int nameHeight = showName ? mCaption->getHeight() + mSpacing : 0; + int height = fontHeight + nameHeight; if (width < speechWidth) width = speechWidth; - width += pad2; - setContentSize(width, height); - const gcn::Rectangle &rect = mDimension; - const int xPos = ((rect.width - width) / 2); - const int yPos = ((rect.height - height) / 2) + nameHeight; - - mCaption->setPosition(xPos, pad); - mSpeechBox->setPosition(xPos, yPos); + mCaption->setPosition(0, 0); + mSpeechBox->setPosition(0, nameHeight); } -- cgit v1.2.3-70-g09d2