diff options
| author | Felix Domke <tmbinc@elitedvb.net> | 2005-07-08 16:30:32 +0000 |
|---|---|---|
| committer | Felix Domke <tmbinc@elitedvb.net> | 2005-07-08 16:30:32 +0000 |
| commit | 241e6d3da33580a6051a0ef4fa2590f2ae4fa9d0 (patch) | |
| tree | 274d07c09e9caf58014daa5247fc5df05a253964 /lib/gui/elabel.cpp | |
| parent | 20f69c200ec5703e958a6b95abfcfd5a108e5939 (diff) | |
| download | enigma2-241e6d3da33580a6051a0ef4fa2590f2ae4fa9d0.tar.gz enigma2-241e6d3da33580a6051a0ef4fa2590f2ae4fa9d0.zip | |
- add colors for labels
- add calc size for labels
Diffstat (limited to 'lib/gui/elabel.cpp')
| -rw-r--r-- | lib/gui/elabel.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/lib/gui/elabel.cpp b/lib/gui/elabel.cpp index 3519a7ac..5b1c5b0b 100644 --- a/lib/gui/elabel.cpp +++ b/lib/gui/elabel.cpp @@ -1,4 +1,5 @@ #include <lib/gui/elabel.h> +#include <lib/gdi/font.h> eLabel::eLabel(eWidget *parent): eWidget(parent) { @@ -10,6 +11,8 @@ eLabel::eLabel(eWidget *parent): eWidget(parent) /* default to topleft alignment */ m_valign = alignTop; m_halign = alignLeft; + + m_have_foreground_color = 0; } int eLabel::event(int event, void *data, void *data2) @@ -28,6 +31,9 @@ int eLabel::event(int event, void *data, void *data2) painter.setFont(m_font); style->setStyle(painter, eWindowStyle::styleLabel); + if (m_have_foreground_color) + painter.setForegroundColor(m_foreground_color); + int flags = 0; if (m_valign == alignTop) flags |= gPainter::RT_VALIGN_TOP; @@ -85,3 +91,25 @@ void eLabel::setHAlign(int align) m_halign = align; event(evtChangedAlignment); } + +void eLabel::setForegroundColor(const gRGB &col) +{ + m_foreground_color = col; + m_have_foreground_color = 1; +} + +void eLabel::clearForegroundColor() +{ + m_have_foreground_color = 0; +} + +eSize eLabel::calculateSize() +{ + ePtr<eTextPara> p = new eTextPara(eRect(0, 0, size().width(), size().height())); + + p->setFont(m_font); + p->renderString(m_text, RS_WRAP); + + eRect bbox = p->getBoundBox(); + return bbox.size(); +} |
