本文整理汇总了C++中KstPainter::restore方法的典型用法代码示例。如果您正苦于以下问题:C++ KstPainter::restore方法的具体用法?C++ KstPainter::restore怎么用?C++ KstPainter::restore使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类KstPainter
的用法示例。
在下文中一共展示了KstPainter::restore方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: paintSelf
void KstViewLabel::paintSelf(KstPainter& p, const QRegion& bounds) {
p.save();
if (p.type() == KstPainter::P_PRINT || p.type() == KstPainter::P_EXPORT) {
int absFontSizeOld = _absFontSize;
QRect cr(contentsRectForPainter(p));
cr.setSize(sizeForText(_parent->geometry()));
setContentsRectForPainter(p, cr);
KstBorderedViewObject::paintSelf(p, bounds);
p.translate(cr.left(), cr.top());
if (!_transparent) {
p.fillRect(0, 0, cr.width(), cr.height(), backgroundColor());
}
drawToPainter(_parsed, p);
_absFontSize = absFontSizeOld;
} else {
if (p.makingMask()) {
KstBorderedViewObject::paintSelf(p, bounds);
p.setRasterOp(Qt::SetROP);
const QRect cr(contentsRect());
// slow but preserves antialiasing...
QBitmap bm = _backBuffer.buffer().createHeuristicMask(false);
bm.setMask(bm);
p.drawPixmap(cr.left(), cr.top(), bm, 0, 0, cr.width(), cr.height());
} else {
const QRegion clip(clipRegion());
KstBorderedViewObject::paintSelf(p, bounds);
p.setClipRegion(bounds & clip);
_backBuffer.paintInto(p, contentsRect());
}
}
p.restore();
}
示例2: paintSelf
void KstViewLegend::paintSelf(KstPainter& p, const QRegion& bounds) {
if (p.type() == KstPainter::P_PRINT || p.type() == KstPainter::P_EXPORT) {
p.save();
QRect cr(contentsRectForPainter(p));
cr.setSize(sizeForText(_parent->geometry()));
setContentsRectForPainter(p, cr);
KstBorderedViewObject::paintSelf(p, bounds);
p.translate(cr.left(), cr.top());
if (!_transparent) {
p.fillRect(0, 0, cr.width(), cr.height(), _backgroundColor);
}
drawToPainter(p);
p.restore();
} else {
const QRect cr(contentsRect());
if (p.makingMask()) {
p.setCompositionMode(QPainter::CompositionMode_Source);
} else {
const QRegion clip(clipRegion());
KstBorderedViewObject::paintSelf(p, bounds - _myClipMask);
p.setClipRegion(bounds & clip);
}
_backBuffer.paintInto(p, cr);
}
}
示例3: paintSelf
void KstPlotGroup::paintSelf(KstPainter& p, const QRegion& bounds) {
if (!transparent()) {
p.save();
// fill non-children areas with color
QRegion clipRegion(contentsRect());
QBrush brush(_backgroundColor);
for (KstViewObjectList::Iterator i = _children.begin(); i != _children.end(); ++i) {
clipRegion -= (*i)->clipRegion();
}
p.setClipRegion(clipRegion);
p.fillRect(contentsRect(), brush);
p.restore();
}
KstMetaPlot::paintSelf(p, bounds);
}
示例4: drawToPainter
void KstViewLegend::drawToPainter(KstPainter& p) {
RenderContext rc(_fontName, _absFontSize, &p);
if (_vertical) {
unsigned i = 0;
if (!_title.isEmpty()) {
p.save();
p.translate(_legendMargin*_ascent/10, _legendMargin*_ascent/10);
rc.x = 0;
rc.y = _ascent;
rc.xStart = rc.x;
renderLabel(rc, _parsedTitle->chunk);
i = 1;
p.restore();
}
for (KstBaseCurveList::Iterator it = _curves.begin(); it != _curves.end(); ++it) {
p.save();
if ((*it)->parsedLegendTag()) {
p.translate(_legendMargin*_ascent/10, _legendMargin*_ascent/10 + i * (rc.fontHeight() + _ascent / 4));
QRect symbolBound(QPoint(0,0), QSize(16*_ascent/4, rc.fontHeight()));
(*it)->paintLegendSymbol(&p, symbolBound);
p.translate(9*_ascent/2, 0);
rc.x = 0;
rc.y = _ascent;
rc.xStart = rc.x;
renderLabel(rc, (*it)->parsedLegendTag()->chunk);
}
p.restore();
++i;
}
} else {
p.save();
p.translate(_legendMargin*_ascent/10, _legendMargin*_ascent/10);
if (!_title.isEmpty()) {
rc.x = 0;
rc.y = _ascent;
rc.xStart = rc.x;
renderLabel(rc, _parsedTitle->chunk);
p.translate(_titleWidth + _ascent,0);
}
for (KstBaseCurveList::Iterator it = _curves.begin(); it != _curves.end(); ++it) {
if ((*it)->parsedLegendTag()) {
QRect symbolBound(QPoint(0,0),
QSize(16*_ascent/4, rc.fontHeight()));
(*it)->paintLegendSymbol(&p, symbolBound);
p.translate(9*_ascent/2, 0);
rc.x = 0;
rc.y = _ascent;
rc.xStart = rc.x;
renderLabel(rc, (*it)->parsedLegendTag()->chunk);
p.translate((*it)->legendLabelSize().width() + _ascent,0);
}
}
p.restore();
}
QApplication::syncX();
}