enable text-auto-resize for width

This commit is contained in:
Eduardo Bart 2012-04-10 23:59:05 -03:00
parent 2c53d0b1dc
commit 1d2f6c7e9f
3 changed files with 10 additions and 15 deletions

View File

@ -18,5 +18,6 @@ Panel
text-align: center
text-auto-resize: true
width: 120
padding: 2
color: #ffffff
font: verdana-11px-monochrome

View File

@ -1318,8 +1318,6 @@ void UIWidget::onStyleApply(const std::string& styleName, const OTMLNodePtr& sty
void UIWidget::onGeometryChange(const Rect& oldRect, const Rect& newRect)
{
callLuaField("onGeometryChange", oldRect, newRect);
if(m_textWrap && oldRect.size() != newRect.size())
updateText();
@ -1328,6 +1326,8 @@ void UIWidget::onGeometryChange(const Rect& oldRect, const Rect& newRect)
if(!child->isAnchored())
child->bindRectToParent();
}
callLuaField("onGeometryChange", oldRect, newRect);
}
void UIWidget::onLayoutUpdate()

View File

@ -41,20 +41,14 @@ void UIWidget::updateText()
m_drawText = m_text;
// update rect size
if(!m_rect.isValid()) {
Size textSize = getTextSize();
Size newSize = getSize();
if(newSize.width() <= 0)
newSize.setWidth(textSize.width());
if(newSize.height() <= 0)
newSize.setHeight(textSize.height());
setSize(newSize);
} else if(m_textAutoResize) {
Size textSize = getTextSize();
if(!m_rect.isValid() || m_textAutoResize) {
Size textBoxSize = getTextSize();
textBoxSize += Size(m_padding.left + m_padding.right, m_padding.top + m_padding.left);
Size size = getSize();
if(textSize.width() > size.width())
size.setWidth(textSize.width());
size.setHeight(textSize.height());
if(size.width() <= 0 || (m_textAutoResize && !m_textWrap))
size.setWidth(textBoxSize.width());
if(size.height() <= 0 || m_textAutoResize)
size.setHeight(textBoxSize.height());
setSize(size);
}