/* Paint backdrop ---------------------------------------------------------------------------------*/ void TableSkin::PaintBackdrop( const Painter& painter, const Pos &p ) { if ( Exists(SOURCE) ) { _point_cache.clear(); _rect_cache.clear(); ThinkFrame( _point_cache, _rect_cache, p); ThinkBackdrop( _point_cache, _rect_cache, p ); painter.ProjectImages( GetImage(SOURCE), _point_cache, _rect_cache ); } }
void AlphaFont::Paint( const Painter &painter, const Text &text, const Pos &pos ) { PreformatedText preformated = text; PreformatedText::ConstIterator subtext_i = preformated.ConstBegin(); Pos carret = pos; MaskedColor &mask = (MaskedColor &)( (*_faces).GetImage( ImageDicer::SOURCE ) ); for (; !!subtext_i; ++subtext_i ) { const UniCode *p = &*preformated.begin() + (*subtext_i).start; const UniCode *q = &*preformated.begin() + (*subtext_i).end; ApplyMarkup( *subtext_i ); if ( p==q ) { continue; } PointList points; RectList rects; ThinkQuick( p, q, points, rects, carret ); if ( _back_opacity > 0.0 ) { mask.InvertMask(true); mask.SetAlphaFactors( 0, 255.0*_back_opacity ); mask.SetColor( _back_color ); painter.ProjectImages( mask, points, rects ); } if ( _opacity > 0.0 ) { mask.InvertMask(false); mask.SetAlphaFactors( 0, 255.0*_opacity ); mask.SetColor( _color ); painter.ProjectImages( mask, points, rects ); } } }
/* Paint frame & grid ---------------------------------------------------------------------------------*/ void TableSkin::PaintGrid ( const Painter& painter, const Pos &p ) { if ( Exists(SOURCE) ) { if ( _point_cache.empty() || _rect_cache.empty() ) { _point_cache.clear(); _rect_cache.clear(); ThinkFrame( _point_cache, _rect_cache, p); } PointList points; RectList rects; ThinkGrid( points, rects, p); painter.ProjectImages( GetImage(SOURCE), points, rects ); _point_cache.clear(); _rect_cache.clear(); } }