[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: kdenonbeta/kcanvas
From: Nikolas Zimmermann <wildfox () kde ! org>
Date: 2005-06-01 0:17:51
Message-ID: 1117585071.099976.14525.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 420407 by wildfox:
Bring back grabBuffer...
M +25 -0 KCanvasView.cc
M +2 -1 KCanvasView.h
--- trunk/kdenonbeta/kcanvas/KCanvasView.cc #420406:420407
@@ -386,6 +386,31 @@
invalidateCanvasRect(d->context->mapToVisual(rect));
}
+KCanvasImageBuffer *KCanvasView::grabBuffer()
+{
+ KCanvasImageBuffer *ret = new KCanvasImageBuffer(true);
+ ret->resize(d->targetWidget->width(), d->targetWidget->height());
+
+ QColor color = backgroundColor();
+ ret->fill(qRgba(color.red(), color.green(), color.blue(), 0));
+
+ KRenderingDeviceContext *imageContext = d->canvas->renderingDevice()->contextForImage(ret);
+ d->canvas->renderingDevice()->pushContext(imageContext);
+
+ imageContext->setCanvas(d->canvas);
+
+ // Invalidate the entire screen region
+ QRect full(0, 0, d->targetWidget->width(), d->targetWidget->height());
+ invalidateCanvasRect(full);
+
+ draw(full);
+
+ d->canvas->renderingDevice()->popContext();
+ delete imageContext;
+
+ return ret;
+}
+
void KCanvasView::clampAgainstTarget(const QRect &rect, int &x0, int &y0, int &x1, int &y1)
{
int curWidth = d->targetWidget->width();
--- trunk/kdenonbeta/kcanvas/KCanvasView.h #420406:420407
@@ -29,6 +29,7 @@
class KCanvas;
class KCanvasItem;
+class KCanvasImageBuffer;
class KCanvasView
{
public:
@@ -77,7 +78,7 @@
void invalidateCanvasItem(const KCanvasItem *item) const;
// Makes a pixel-wise 'screenshot' of the KCanvas.
-// KCanvasImageBuffer *grabBuffer();
+ KCanvasImageBuffer *grabBuffer();
private:
void clampAgainstTarget(const QRect &rect, int &x0, int &y0, int &x1, int &y1);
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic