xref: /AOO41X/main/svx/source/sdr/properties/measureproperties.cxx (revision cdf0e10c4e3984b49a9502b011690b615761d4a3)
1*cdf0e10cSrcweir /*************************************************************************
2*cdf0e10cSrcweir  *
3*cdf0e10cSrcweir  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4*cdf0e10cSrcweir  *
5*cdf0e10cSrcweir  * Copyright 2000, 2010 Oracle and/or its affiliates.
6*cdf0e10cSrcweir  *
7*cdf0e10cSrcweir  * OpenOffice.org - a multi-platform office productivity suite
8*cdf0e10cSrcweir  *
9*cdf0e10cSrcweir  * This file is part of OpenOffice.org.
10*cdf0e10cSrcweir  *
11*cdf0e10cSrcweir  * OpenOffice.org is free software: you can redistribute it and/or modify
12*cdf0e10cSrcweir  * it under the terms of the GNU Lesser General Public License version 3
13*cdf0e10cSrcweir  * only, as published by the Free Software Foundation.
14*cdf0e10cSrcweir  *
15*cdf0e10cSrcweir  * OpenOffice.org is distributed in the hope that it will be useful,
16*cdf0e10cSrcweir  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17*cdf0e10cSrcweir  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18*cdf0e10cSrcweir  * GNU Lesser General Public License version 3 for more details
19*cdf0e10cSrcweir  * (a copy is included in the LICENSE file that accompanied this code).
20*cdf0e10cSrcweir  *
21*cdf0e10cSrcweir  * You should have received a copy of the GNU Lesser General Public License
22*cdf0e10cSrcweir  * version 3 along with OpenOffice.org.  If not, see
23*cdf0e10cSrcweir  * <http://www.openoffice.org/license.html>
24*cdf0e10cSrcweir  * for a copy of the LGPLv3 License.
25*cdf0e10cSrcweir  *
26*cdf0e10cSrcweir  ************************************************************************/
27*cdf0e10cSrcweir 
28*cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove
29*cdf0e10cSrcweir #include "precompiled_svx.hxx"
30*cdf0e10cSrcweir #include <svx/sdr/properties/measureproperties.hxx>
31*cdf0e10cSrcweir #include <svl/itemset.hxx>
32*cdf0e10cSrcweir #include <svl/style.hxx>
33*cdf0e10cSrcweir #include <svx/svddef.hxx>
34*cdf0e10cSrcweir #include <editeng/eeitem.hxx>
35*cdf0e10cSrcweir #include <svx/svdomeas.hxx>
36*cdf0e10cSrcweir #include <svx/sxmsuitm.hxx>
37*cdf0e10cSrcweir #include <svx/xlnstit.hxx>
38*cdf0e10cSrcweir #include <svx/xlnstwit.hxx>
39*cdf0e10cSrcweir #include <svx/xlnedit.hxx>
40*cdf0e10cSrcweir #include <svx/xlnedwit.hxx>
41*cdf0e10cSrcweir #include <basegfx/point/b2dpoint.hxx>
42*cdf0e10cSrcweir #include <basegfx/polygon/b2dpolygon.hxx>
43*cdf0e10cSrcweir 
44*cdf0e10cSrcweir //////////////////////////////////////////////////////////////////////////////
45*cdf0e10cSrcweir 
46*cdf0e10cSrcweir namespace sdr
47*cdf0e10cSrcweir {
48*cdf0e10cSrcweir 	namespace properties
49*cdf0e10cSrcweir 	{
50*cdf0e10cSrcweir 		// create a new itemset
51*cdf0e10cSrcweir 		SfxItemSet& MeasureProperties::CreateObjectSpecificItemSet(SfxItemPool& rPool)
52*cdf0e10cSrcweir 		{
53*cdf0e10cSrcweir 			return *(new SfxItemSet(rPool,
54*cdf0e10cSrcweir 
55*cdf0e10cSrcweir 				// range from SdrAttrObj
56*cdf0e10cSrcweir 				SDRATTR_START, SDRATTR_SHADOW_LAST,
57*cdf0e10cSrcweir 				SDRATTR_MISC_FIRST, SDRATTR_MISC_LAST,
58*cdf0e10cSrcweir 				SDRATTR_TEXTDIRECTION, SDRATTR_TEXTDIRECTION,
59*cdf0e10cSrcweir 
60*cdf0e10cSrcweir 				// range from SdrMeasureObj
61*cdf0e10cSrcweir 				SDRATTR_MEASURE_FIRST, SDRATTR_MEASURE_LAST,
62*cdf0e10cSrcweir 
63*cdf0e10cSrcweir 				// range from SdrTextObj
64*cdf0e10cSrcweir 				EE_ITEMS_START, EE_ITEMS_END,
65*cdf0e10cSrcweir 
66*cdf0e10cSrcweir 				// end
67*cdf0e10cSrcweir 				0, 0));
68*cdf0e10cSrcweir 		}
69*cdf0e10cSrcweir 
70*cdf0e10cSrcweir 		MeasureProperties::MeasureProperties(SdrObject& rObj)
71*cdf0e10cSrcweir 		:	TextProperties(rObj)
72*cdf0e10cSrcweir 		{
73*cdf0e10cSrcweir 		}
74*cdf0e10cSrcweir 
75*cdf0e10cSrcweir 		MeasureProperties::MeasureProperties(const MeasureProperties& rProps, SdrObject& rObj)
76*cdf0e10cSrcweir 		:	TextProperties(rProps, rObj)
77*cdf0e10cSrcweir 		{
78*cdf0e10cSrcweir 		}
79*cdf0e10cSrcweir 
80*cdf0e10cSrcweir 		MeasureProperties::~MeasureProperties()
81*cdf0e10cSrcweir 		{
82*cdf0e10cSrcweir 		}
83*cdf0e10cSrcweir 
84*cdf0e10cSrcweir 		BaseProperties& MeasureProperties::Clone(SdrObject& rObj) const
85*cdf0e10cSrcweir 		{
86*cdf0e10cSrcweir 			return *(new MeasureProperties(*this, rObj));
87*cdf0e10cSrcweir 		}
88*cdf0e10cSrcweir 
89*cdf0e10cSrcweir 		void MeasureProperties::ItemSetChanged(const SfxItemSet& rSet)
90*cdf0e10cSrcweir 		{
91*cdf0e10cSrcweir 			SdrMeasureObj& rObj = (SdrMeasureObj&)GetSdrObject();
92*cdf0e10cSrcweir 
93*cdf0e10cSrcweir 			// call parent
94*cdf0e10cSrcweir 			TextProperties::ItemSetChanged(rSet);
95*cdf0e10cSrcweir 
96*cdf0e10cSrcweir 			// local changes
97*cdf0e10cSrcweir 			rObj.SetTextDirty();
98*cdf0e10cSrcweir 		}
99*cdf0e10cSrcweir 
100*cdf0e10cSrcweir 		void MeasureProperties::SetStyleSheet(SfxStyleSheet* pNewStyleSheet, sal_Bool bDontRemoveHardAttr)
101*cdf0e10cSrcweir 		{
102*cdf0e10cSrcweir 			SdrMeasureObj& rObj = (SdrMeasureObj&)GetSdrObject();
103*cdf0e10cSrcweir 
104*cdf0e10cSrcweir 			// local changes
105*cdf0e10cSrcweir 			rObj.SetTextDirty();
106*cdf0e10cSrcweir 
107*cdf0e10cSrcweir 			// call parent
108*cdf0e10cSrcweir 			TextProperties::SetStyleSheet(pNewStyleSheet, bDontRemoveHardAttr);
109*cdf0e10cSrcweir 		}
110*cdf0e10cSrcweir 
111*cdf0e10cSrcweir 		void MeasureProperties::ForceDefaultAttributes()
112*cdf0e10cSrcweir 		{
113*cdf0e10cSrcweir 			// call parent
114*cdf0e10cSrcweir 			TextProperties::ForceDefaultAttributes();
115*cdf0e10cSrcweir 
116*cdf0e10cSrcweir 			// force ItemSet
117*cdf0e10cSrcweir 			GetObjectItemSet();
118*cdf0e10cSrcweir 
119*cdf0e10cSrcweir 			//#71958# by default, the show units Bool-Item is set as hard
120*cdf0e10cSrcweir 			// attribute to sal_True to aviod confusion when copying SdrMeasureObj's
121*cdf0e10cSrcweir 			// from one application to another
122*cdf0e10cSrcweir 			mpItemSet->Put(SdrMeasureShowUnitItem(sal_True));
123*cdf0e10cSrcweir 
124*cdf0e10cSrcweir 			basegfx::B2DPolygon aNewPolygon;
125*cdf0e10cSrcweir 			aNewPolygon.append(basegfx::B2DPoint(100.0, 0.0));
126*cdf0e10cSrcweir 			aNewPolygon.append(basegfx::B2DPoint(200.0, 400.0));
127*cdf0e10cSrcweir 			aNewPolygon.append(basegfx::B2DPoint(0.0, 400.0));
128*cdf0e10cSrcweir 			aNewPolygon.setClosed(true);
129*cdf0e10cSrcweir 
130*cdf0e10cSrcweir 			mpItemSet->Put(XLineStartItem(String(), basegfx::B2DPolyPolygon(aNewPolygon)));
131*cdf0e10cSrcweir 			mpItemSet->Put(XLineStartWidthItem(200));
132*cdf0e10cSrcweir 			mpItemSet->Put(XLineEndItem(String(), basegfx::B2DPolyPolygon(aNewPolygon)));
133*cdf0e10cSrcweir 			mpItemSet->Put(XLineEndWidthItem(200));
134*cdf0e10cSrcweir 			mpItemSet->Put(XLineStyleItem(XLINE_SOLID));
135*cdf0e10cSrcweir 		}
136*cdf0e10cSrcweir 	} // end of namespace properties
137*cdf0e10cSrcweir } // end of namespace sdr
138*cdf0e10cSrcweir 
139*cdf0e10cSrcweir //////////////////////////////////////////////////////////////////////////////
140*cdf0e10cSrcweir 
141*cdf0e10cSrcweir // eof
142