1 /*************************************************************************
2  *
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * Copyright 2000, 2010 Oracle and/or its affiliates.
6  *
7  * OpenOffice.org - a multi-platform office productivity suite
8  *
9  * This file is part of OpenOffice.org.
10  *
11  * OpenOffice.org is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU Lesser General Public License version 3
13  * only, as published by the Free Software Foundation.
14  *
15  * OpenOffice.org is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU Lesser General Public License version 3 for more details
19  * (a copy is included in the LICENSE file that accompanied this code).
20  *
21  * You should have received a copy of the GNU Lesser General Public License
22  * version 3 along with OpenOffice.org.  If not, see
23  * <http://www.openoffice.org/license.html>
24  * for a copy of the LGPLv3 License.
25  *
26  ************************************************************************/
27 
28 // MARKER(update_precomp.py): autogen include statement, do not remove
29 #include "precompiled_svx.hxx"
30 #include <svx/sdr/overlay/overlaypolypolygon.hxx>
31 #include <vcl/salbtype.hxx>
32 #include <vcl/outdev.hxx>
33 #include <basegfx/matrix/b2dhommatrix.hxx>
34 #include <basegfx/polygon/b2dpolypolygontools.hxx>
35 #include <svx/sdr/overlay/overlaymanager.hxx>
36 #include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx>
37 
38 //////////////////////////////////////////////////////////////////////////////
39 
40 namespace sdr
41 {
42 	namespace overlay
43 	{
44 		drawinglayer::primitive2d::Primitive2DSequence OverlayPolyPolygonStriped::createOverlayObjectPrimitive2DSequence()
45 		{
46 			drawinglayer::primitive2d::Primitive2DSequence aRetval;
47 
48             if(getOverlayManager())
49             {
50                 const basegfx::BColor aRGBColorA(getOverlayManager()->getStripeColorA().getBColor());
51                 const basegfx::BColor aRGBColorB(getOverlayManager()->getStripeColorB().getBColor());
52                 const double fStripeLengthPixel(getOverlayManager()->getStripeLengthPixel());
53 
54                 const drawinglayer::primitive2d::Primitive2DReference aReference(
55                     new drawinglayer::primitive2d::PolyPolygonMarkerPrimitive2D(
56                         getPolyPolygon(),
57                         aRGBColorA,
58                         aRGBColorB,
59                         fStripeLengthPixel));
60 
61                 aRetval = drawinglayer::primitive2d::Primitive2DSequence(&aReference, 1);
62             }
63 
64             return aRetval;
65 		}
66 
67 		void OverlayPolyPolygonStriped::stripeDefinitionHasChanged()
68 		{
69 			// react on OverlayManager's stripe definition change
70 			objectChange();
71 		}
72 
73 		OverlayPolyPolygonStriped::OverlayPolyPolygonStriped(
74 			const basegfx::B2DPolyPolygon& rPolyPolygon)
75 		:	OverlayObject(Color(COL_BLACK)),
76 			maPolyPolygon(rPolyPolygon)
77 		{
78 		}
79 
80 		OverlayPolyPolygonStriped::~OverlayPolyPolygonStriped()
81 		{
82 		}
83 
84 		void OverlayPolyPolygonStriped::setPolyPolygon(const basegfx::B2DPolyPolygon& rNew)
85 		{
86 			if(rNew != maPolyPolygon)
87 			{
88 				// remember new value
89 				maPolyPolygon = rNew;
90 
91 				// register change (after change)
92 				objectChange();
93 			}
94 		}
95 	} // end of namespace overlay
96 } // end of namespace sdr
97 
98 //////////////////////////////////////////////////////////////////////////////
99 // eof
100