diff options
| author | Felix Domke <tmbinc@elitedvb.net> | 2005-03-30 07:28:17 +0000 |
|---|---|---|
| committer | Felix Domke <tmbinc@elitedvb.net> | 2005-03-30 07:28:17 +0000 |
| commit | ab5aa90e1e05a89845c6e802ef1b2366d203aa45 (patch) | |
| tree | 24b8f67a1cc123481b3f21fdc026795969a073cf /lib/gui/elabel.cpp | |
| parent | cfe43ee16030fd37f6bce9ba99e367c15ecbf44f (diff) | |
| download | enigma2-ab5aa90e1e05a89845c6e802ef1b2366d203aa45.tar.gz enigma2-ab5aa90e1e05a89845c6e802ef1b2366d203aa45.zip | |
- default fonts handled in windowstyle
- fixed 32bit ARGB support (drawLine)
- add sdl (but currently disabled)
- fixed /dev/vc/0 -> /dev/stdin for console input
- added alignment to label
- fixed skin parsing (getElementsByTagName didn't do what i expected)
Diffstat (limited to 'lib/gui/elabel.cpp')
| -rw-r--r-- | lib/gui/elabel.cpp | 51 |
1 files changed, 48 insertions, 3 deletions
diff --git a/lib/gui/elabel.cpp b/lib/gui/elabel.cpp index 281a9d27..3519a7ac 100644 --- a/lib/gui/elabel.cpp +++ b/lib/gui/elabel.cpp @@ -2,7 +2,14 @@ eLabel::eLabel(eWidget *parent): eWidget(parent) { + ePtr<eWindowStyle> style; + getStyle(style); + style->getFont(eWindowStyle::fontStatic, m_font); + + /* default to topleft alignment */ + m_valign = alignTop; + m_halign = alignLeft; } int eLabel::event(int event, void *data, void *data2) @@ -18,14 +25,34 @@ int eLabel::event(int event, void *data, void *data2) eWidget::event(event, data, data2); gPainter &painter = *(gPainter*)data2; - ePtr<gFont> fnt = new gFont("Arial", 14); - painter.setFont(fnt); + painter.setFont(m_font); style->setStyle(painter, eWindowStyle::styleLabel); - painter.renderText(eRect(0, 0, size().width(), size().height()), m_text, gPainter::RT_HALIGN_CENTER|gPainter::RT_VALIGN_CENTER); + + int flags = 0; + if (m_valign == alignTop) + flags |= gPainter::RT_VALIGN_TOP; + else if (m_valign == alignCenter) + flags |= gPainter::RT_VALIGN_CENTER; + else if (m_valign == alignBottom) + flags |= gPainter::RT_VALIGN_BOTTOM; + + if (m_halign == alignLeft) + flags |= gPainter::RT_HALIGN_LEFT; + else if (m_halign == alignCenter) + flags |= gPainter::RT_HALIGN_CENTER; + else if (m_halign == alignRight) + flags |= gPainter::RT_HALIGN_RIGHT; + else if (m_halign == alignBlock) + flags |= gPainter::RT_HALIGN_BLOCK; + + flags |= gPainter::RT_WRAP; + painter.renderText(eRect(0, 0, size().width(), size().height()), m_text, flags); return 0; } + case evtChangedFont: case evtChangedText: + case evtChangedAlignment: invalidate(); return 0; default: @@ -40,3 +67,21 @@ void eLabel::setText(const std::string &string) m_text = string; event(evtChangedText); } + +void eLabel::setFont(gFont *font) +{ + m_font = font; + event(evtChangedFont); +} + +void eLabel::setVAlign(int align) +{ + m_valign = align; + event(evtChangedAlignment); +} + +void eLabel::setHAlign(int align) +{ + m_halign = align; + event(evtChangedAlignment); +} |
