summaryrefslogtreecommitdiff
path: root/drawinglayer
diff options
context:
space:
mode:
authorArmin Weiss <aw@openoffice.org>2007-07-10 10:28:08 +0000
committerArmin Weiss <aw@openoffice.org>2007-07-10 10:28:08 +0000
commit18ef32facdcce5198133be07299a768c70d5ecad (patch)
treec800959006887b9bd8964e3baa6deaf1c9be8635 /drawinglayer
parent73c44ff8ba10893524c8e3a6498c70ca62ffd78a (diff)
#i39532# corrected descriptor, added MapMode pixel change support at process() instead of constructor/destructor
Diffstat (limited to 'drawinglayer')
-rw-r--r--drawinglayer/inc/drawinglayer/processor2d/vclprocessor2d.hxx14
-rw-r--r--drawinglayer/source/processor2d/vclprocessor2d.cxx29
2 files changed, 26 insertions, 17 deletions
diff --git a/drawinglayer/inc/drawinglayer/processor2d/vclprocessor2d.hxx b/drawinglayer/inc/drawinglayer/processor2d/vclprocessor2d.hxx
index 8c88774e34..c502c970fc 100644
--- a/drawinglayer/inc/drawinglayer/processor2d/vclprocessor2d.hxx
+++ b/drawinglayer/inc/drawinglayer/processor2d/vclprocessor2d.hxx
@@ -4,9 +4,9 @@
*
* $RCSfile: vclprocessor2d.hxx,v $
*
- * $Revision: 1.4 $
+ * $Revision: 1.5 $
*
- * last change: $Author: aw $ $Date: 2007-07-09 13:19:09 $
+ * last change: $Author: aw $ $Date: 2007-07-10 11:28:08 $
*
* The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1.
@@ -110,7 +110,7 @@ namespace drawinglayer
// as tooling, the process() implementation takes over API handling and calls this
// virtual render method when the primitive implementation is BasePrimitive2D-based.
- virtual void processBasePrinitive2D(const primitive2d::BasePrimitive2D& rCandidate) = 0;
+ virtual void processBasePrimitive2D(const primitive2d::BasePrimitive2D& rCandidate) = 0;
public:
// constructor/destructor
@@ -120,7 +120,7 @@ namespace drawinglayer
virtual ~VclProcessor2D();
// the central processing method
- // This VCL base implementation takes over the API handling and calls processBasePrinitive2D
+ // This VCL base implementation takes over the API handling and calls processBasePrimitive2D
// directly when it's a BasePrinitive2D implementation. This is used as tooling from derived
// implementations
virtual void process(const primitive2d::Primitive2DSequence& rSource);
@@ -139,7 +139,7 @@ namespace drawinglayer
protected:
// the local processor for BasePrinitive2D-Implementation based primitives,
// called from the common process()-implementation
- virtual void processBasePrinitive2D(const primitive2d::BasePrimitive2D& rCandidate);
+ virtual void processBasePrimitive2D(const primitive2d::BasePrimitive2D& rCandidate);
public:
// constructor/destructor
@@ -162,7 +162,7 @@ namespace drawinglayer
protected:
// the local processor for BasePrinitive2D-Implementation based primitives,
// called from the common process()-implementation
- virtual void processBasePrinitive2D(const primitive2d::BasePrimitive2D& rCandidate);
+ virtual void processBasePrimitive2D(const primitive2d::BasePrimitive2D& rCandidate);
public:
// constructor/destructor
@@ -171,6 +171,8 @@ namespace drawinglayer
OutputDevice& rOutDev);
virtual ~VclPixelProcessor2D();
+ // overloaded here to reset the MapMode at the target OutDev
+ virtual void process(const primitive2d::Primitive2DSequence& rSource);
};
} // end of namespace processor2d
} // end of namespace drawinglayer
diff --git a/drawinglayer/source/processor2d/vclprocessor2d.cxx b/drawinglayer/source/processor2d/vclprocessor2d.cxx
index 267afe788b..5d4105202b 100644
--- a/drawinglayer/source/processor2d/vclprocessor2d.cxx
+++ b/drawinglayer/source/processor2d/vclprocessor2d.cxx
@@ -4,9 +4,9 @@
*
* $RCSfile: vclprocessor2d.cxx,v $
*
- * $Revision: 1.9 $
+ * $Revision: 1.10 $
*
- * last change: $Author: aw $ $Date: 2007-07-09 13:19:09 $
+ * last change: $Author: aw $ $Date: 2007-07-10 11:28:08 $
*
* The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1.
@@ -800,7 +800,7 @@ namespace drawinglayer
if(pBasePrimitive)
{
// it is a BasePrimitive2D implementation, use local processor
- processBasePrinitive2D(*pBasePrimitive);
+ processBasePrimitive2D(*pBasePrimitive);
}
else
{
@@ -852,7 +852,7 @@ namespace drawinglayer
// MapMode was not changed, no restore necessary
}
- void VclMetafileProcessor2D::processBasePrinitive2D(const primitive2d::BasePrimitive2D& rCandidate)
+ void VclMetafileProcessor2D::processBasePrimitive2D(const primitive2d::BasePrimitive2D& rCandidate)
{
switch(rCandidate.getPrimitiveID())
{
@@ -951,19 +951,13 @@ namespace drawinglayer
{
// prepare maCurrentTransformation matrix with viewTransformation to target directly to pixels
maCurrentTransformation = rViewInformation.getViewTransformation();
-
- // prepare output to pixels
- mpOutputDevice->Push(PUSH_MAPMODE);
- mpOutputDevice->SetMapMode();
}
VclPixelProcessor2D::~VclPixelProcessor2D()
{
- // restore MapMode
- mpOutputDevice->Pop();
}
- void VclPixelProcessor2D::processBasePrinitive2D(const primitive2d::BasePrimitive2D& rCandidate)
+ void VclPixelProcessor2D::processBasePrimitive2D(const primitive2d::BasePrimitive2D& rCandidate)
{
switch(rCandidate.getPrimitiveID())
{
@@ -1048,6 +1042,19 @@ namespace drawinglayer
}
}
}
+
+ void VclPixelProcessor2D::process(const primitive2d::Primitive2DSequence& rSource)
+ {
+ // prepare output directly to pixels
+ mpOutputDevice->Push(PUSH_MAPMODE);
+ mpOutputDevice->SetMapMode();
+
+ // call parent
+ VclProcessor2D::process(rSource);
+
+ // restore MapMode
+ mpOutputDevice->Pop();
+ }
} // end of namespace processor2d
} // end of namespace drawinglayer