1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 
24 // MARKER(update_precomp.py): autogen include statement, do not remove
25 #include "precompiled_svx.hxx"
26 #include <svx/sdr/properties/graphicproperties.hxx>
27 #include <svl/itemset.hxx>
28 #include <svl/style.hxx>
29 #include <svx/svddef.hxx>
30 #include <editeng/eeitem.hxx>
31 #include <svx/svdograf.hxx>
32 #include <svx/sdgcpitm.hxx>
33 
34 //////////////////////////////////////////////////////////////////////////////
35 
36 namespace sdr
37 {
38 	namespace properties
39 	{
40 		// create a new itemset
41 		SfxItemSet& GraphicProperties::CreateObjectSpecificItemSet(SfxItemPool& rPool)
42 		{
43 			return *(new SfxItemSet(rPool,
44 
45 				// range from SdrAttrObj
46 				SDRATTR_START, SDRATTR_SHADOW_LAST,
47 				SDRATTR_MISC_FIRST, SDRATTR_MISC_LAST,
48 				SDRATTR_TEXTDIRECTION, SDRATTR_TEXTDIRECTION,
49 
50 				// range from SdrGrafObj
51 				SDRATTR_GRAF_FIRST, SDRATTR_GRAF_LAST,
52 
53 				// range from SdrTextObj
54 				EE_ITEMS_START, EE_ITEMS_END,
55 
56 				// end
57 				0, 0));
58 		}
59 
60 		GraphicProperties::GraphicProperties(SdrObject& rObj)
61 		:	RectangleProperties(rObj)
62 		{
63 		}
64 
65 		GraphicProperties::GraphicProperties(const GraphicProperties& rProps, SdrObject& rObj)
66 		:	RectangleProperties(rProps, rObj)
67 		{
68 		}
69 
70 		GraphicProperties::~GraphicProperties()
71 		{
72 		}
73 
74 		BaseProperties& GraphicProperties::Clone(SdrObject& rObj) const
75 		{
76 			return *(new GraphicProperties(*this, rObj));
77 		}
78 
79 		void GraphicProperties::ItemSetChanged(const SfxItemSet& rSet)
80 		{
81 			SdrGrafObj& rObj = (SdrGrafObj&)GetSdrObject();
82 
83 			// local changes
84 			rObj.SetXPolyDirty();
85 
86             // #i29367# Update GraphicAttr, too. This was formerly
87             // triggered by SdrGrafObj::Notify, which is no longer
88             // called nowadays. BTW: strictly speaking, the whole
89             // ImpSetAttrToGrafInfo/ImpSetGrafInfoToAttr stuff could
90             // be dumped, when SdrGrafObj::aGrafInfo is removed and
91             // always created on the fly for repaint.
92             rObj.ImpSetAttrToGrafInfo();
93 
94 			// call parent
95 			RectangleProperties::ItemSetChanged(rSet);
96 		}
97 
98 		void GraphicProperties::SetStyleSheet(SfxStyleSheet* pNewStyleSheet, sal_Bool bDontRemoveHardAttr)
99 		{
100 			SdrGrafObj& rObj = (SdrGrafObj&)GetSdrObject();
101 
102 			// local changes
103 			rObj.SetXPolyDirty();
104 
105 			// call parent
106 			RectangleProperties::SetStyleSheet(pNewStyleSheet, bDontRemoveHardAttr);
107 
108 			// local changes
109 			rObj.ImpSetAttrToGrafInfo();
110 		}
111 
112 		void GraphicProperties::ForceDefaultAttributes()
113 		{
114 			// call parent
115 			RectangleProperties::ForceDefaultAttributes();
116 
117 			// force ItemSet
118 			GetObjectItemSet();
119 
120 			mpItemSet->Put( SdrGrafLuminanceItem( 0 ) );
121 			mpItemSet->Put( SdrGrafContrastItem( 0 ) );
122 			mpItemSet->Put( SdrGrafRedItem( 0 ) );
123 			mpItemSet->Put( SdrGrafGreenItem( 0 ) );
124 			mpItemSet->Put( SdrGrafBlueItem( 0 ) );
125 			mpItemSet->Put( SdrGrafGamma100Item( 100 ) );
126 			mpItemSet->Put( SdrGrafTransparenceItem( 0 ) );
127 			mpItemSet->Put( SdrGrafInvertItem( sal_False ) );
128 			mpItemSet->Put( SdrGrafModeItem( GRAPHICDRAWMODE_STANDARD ) );
129 			mpItemSet->Put( SdrGrafCropItem( 0, 0, 0, 0 ) );
130 
131 			// #i25616#
132 			mpItemSet->Put( XFillStyleItem(XFILL_NONE) );
133 			mpItemSet->Put( XLineStyleItem(XLINE_NONE) );
134 		}
135 	} // end of namespace properties
136 } // end of namespace sdr
137 
138 //////////////////////////////////////////////////////////////////////////////
139 // eof
140