diff options
| author | Felix Domke <tmbinc@elitedvb.net> | 2005-01-09 16:29:34 +0000 |
|---|---|---|
| committer | Felix Domke <tmbinc@elitedvb.net> | 2005-01-09 16:29:34 +0000 |
| commit | ba02fb4aced5868d047a5bffbd2ed87583daee4d (patch) | |
| tree | bcfea66b1f7fd2212539a99abc074de1424ac9a0 /lib/gdi/grc.cpp | |
| parent | 2494509cd031727d92c6556089c99711d16d8af9 (diff) | |
| download | enigma2-ba02fb4aced5868d047a5bffbd2ed87583daee4d.tar.gz enigma2-ba02fb4aced5868d047a5bffbd2ed87583daee4d.zip | |
- add more python stuff
- fix some gui/gdi
- add eslider
- improve windowstyle
Diffstat (limited to 'lib/gdi/grc.cpp')
| -rw-r--r-- | lib/gdi/grc.cpp | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/lib/gdi/grc.cpp b/lib/gdi/grc.cpp index 4597034f..cb2a6de9 100644 --- a/lib/gdi/grc.cpp +++ b/lib/gdi/grc.cpp @@ -164,6 +164,17 @@ void gPainter::fill(const eRect &area) m_rc->submit(o); } +void gPainter::fill(const gRegion ®ion) +{ + gOpcode o; + o.opcode=gOpcode::fillRegion; + + o.dc = m_dc.grabRef(); + o.parm.fillRegion = new gOpcode::para::pfillRegion; + o.parm.fillRegion->region = region; + m_rc->submit(o); +} + void gPainter::clear() { gOpcode o; @@ -332,13 +343,13 @@ void gDC::exec(gOpcode *o) assert(m_current_font); para->setFont(m_current_font); para->renderString(o->parm.renderText->text, o->parm.renderText->flags); - para->blit(*this, m_current_offset, getRGB(m_foreground_color), getRGB(m_background_color)); + para->blit(*this, m_current_offset, getRGB(m_background_color), getRGB(m_foreground_color)); delete o->parm.renderText; break; } case gOpcode::renderPara: { - o->parm.renderPara->textpara->blit(*this, o->parm.renderPara->offset + m_current_offset, getRGB(m_foreground_color), getRGB(m_background_color)); + o->parm.renderPara->textpara->blit(*this, o->parm.renderPara->offset + m_current_offset, getRGB(m_background_color), getRGB(m_foreground_color)); o->parm.renderPara->textpara->Release(); delete o->parm.renderPara; break; @@ -352,6 +363,14 @@ void gDC::exec(gOpcode *o) delete o->parm.fill; break; } + case gOpcode::fillRegion: + { + o->parm.fillRegion->region.moveBy(m_current_offset); + gRegion clip = m_current_clip & o->parm.fillRegion->region; + m_pixmap->fill(clip, m_foreground_color); + delete o->parm.fillRegion; + break; + } case gOpcode::clear: m_pixmap->fill(m_current_clip, m_background_color); delete o->parm.fill; |
