X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_dvbapp;a=blobdiff_plain;f=lib%2Fgui%2Fecanvas.cpp;h=c9a1ec828101c243cb6f86466e0f478bca6814e6;hp=c6469912d2ba7f1906a880f1d8b8b275cbc1d0ee;hb=36cca1d3f31265929ef3443999ab7fd242b4dae5;hpb=c479beea7cc338380a38e29ae041c03b2c299ac1 diff --git a/lib/gui/ecanvas.cpp b/lib/gui/ecanvas.cpp index c646991..c9a1ec8 100644 --- a/lib/gui/ecanvas.cpp +++ b/lib/gui/ecanvas.cpp @@ -11,28 +11,43 @@ void eCanvas::setSize(eSize size) void eCanvas::clear(gRGB color) { -#if 0 if (!m_pixmap) return; ePtr d = new gDC(m_pixmap); gPainter p(d, eRect()); + p.resetClip(eRect(ePoint(0,0), m_pixmap->size())); p.setBackgroundColor(color); p.clear(); invalidate(); -#endif } void eCanvas::fillRect(eRect rect, gRGB color) { - eDebug("draw into canvas... %d %d, %d %d", rect.left(), rect.top(), rect.width(), rect.height()); -#if 0 - ePtr d = new gDC(m_pixmap); - gPainter p(d, eRect()); + if (!m_pixmap) + return; + + ePtr dc = new gDC(m_pixmap); + + gPainter p(dc); + p.resetClip(eRect(ePoint(0,0), m_pixmap->size())); p.setForegroundColor(color); p.fill(rect); invalidate(rect); -#endif +} + +void eCanvas::writeText(eRect rect, gRGB fg, gRGB bg, gFont *font, const char *string, int flags) +{ + ePtr dc = new gDC(m_pixmap); + + gPainter p(dc); + p.setFont(font); + p.resetClip(eRect(ePoint(0,0), m_pixmap->size())); + p.setForegroundColor(fg); + p.setBackgroundColor(bg); + p.renderText(rect, string, flags); + + invalidate(rect); }