CTextbox: add text align option RIGHT

This supports paint of text on the right side of frame and
also considers scroll bar width.


Origin commit data
------------------
Commit: c25edc0b74
Author: Thilo Graf <dbt@novatux.de>
Date: 2012-09-22 (Sat, 22 Sep 2012)

Origin message was:
------------------
*CTextbox: add text align option RIGHT

This supports paint of text on the right side of frame and
also considers scroll bar width.
This commit is contained in:
2012-09-22 22:29:49 +02:00
parent 466164e876
commit 9dfacfc01b
2 changed files with 9 additions and 1 deletions

View File

@@ -501,6 +501,7 @@ void CTextBox::refreshText(void)
if( m_nNrOfLines <= 0) if( m_nNrOfLines <= 0)
return; return;
int y = m_cFrameTextRel.iY + text_border_width; int y = m_cFrameTextRel.iY + text_border_width;
int i; int i;
@@ -518,8 +519,14 @@ void CTextBox::refreshText(void)
{ {
//calculate centered xpos //calculate centered xpos
if( m_nMode & CENTER ) if( m_nMode & CENTER ){
x_center = (m_cFrameTextRel.iWidth - m_pcFontText->getRenderWidth(m_cLineArray[i], true))>>1; x_center = (m_cFrameTextRel.iWidth - m_pcFontText->getRenderWidth(m_cLineArray[i], true))>>1;
}
else if ( m_nMode & RIGHT ){
x_center = (m_cFrameTextRel.iWidth - m_pcFontText->getRenderWidth(m_cLineArray[i], true));
if ( m_nMode & SCROLL )
x_center -= SCROLL_FRAME_WIDTH;
}
m_pcFontText->RenderString(m_cFrameTextRel.iX + text_border_width + x_center+m_cFrame.iX, m_pcFontText->RenderString(m_cFrameTextRel.iX + text_border_width + x_center+m_cFrame.iX,
y+m_cFrame.iY, m_cFrameTextRel.iWidth, m_cLineArray[i].c_str(), y+m_cFrame.iY, m_cFrameTextRel.iWidth, m_cLineArray[i].c_str(),

View File

@@ -93,6 +93,7 @@ class CTextBox
AUTO_HIGH = 0x02, //auto adapt frame height to max height, text is painted with auto linebreak AUTO_HIGH = 0x02, //auto adapt frame height to max height, text is painted with auto linebreak
SCROLL = 0x04, //frame box contains scrollbars on long text SCROLL = 0x04, //frame box contains scrollbars on long text
CENTER = 0x40, //paint text centered CENTER = 0x40, //paint text centered
RIGHT = 0x100, //paint text right
NO_AUTO_LINEBREAK = 0x80 //paint text without auto linebreak, cutting text NO_AUTO_LINEBREAK = 0x80 //paint text without auto linebreak, cutting text
}; };