1*f580d42cSArmin Le Grand /**************************************************************
2*f580d42cSArmin Le Grand  *
3*f580d42cSArmin Le Grand  * Licensed to the Apache Software Foundation (ASF) under one
4*f580d42cSArmin Le Grand  * or more contributor license agreements.  See the NOTICE file
5*f580d42cSArmin Le Grand  * distributed with this work for additional information
6*f580d42cSArmin Le Grand  * regarding copyright ownership.  The ASF licenses this file
7*f580d42cSArmin Le Grand  * to you under the Apache License, Version 2.0 (the
8*f580d42cSArmin Le Grand  * "License"); you may not use this file except in compliance
9*f580d42cSArmin Le Grand  * with the License.  You may obtain a copy of the License at
10*f580d42cSArmin Le Grand  *
11*f580d42cSArmin Le Grand  *   http://www.apache.org/licenses/LICENSE-2.0
12*f580d42cSArmin Le Grand  *
13*f580d42cSArmin Le Grand  * Unless required by applicable law or agreed to in writing,
14*f580d42cSArmin Le Grand  * software distributed under the License is distributed on an
15*f580d42cSArmin Le Grand  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*f580d42cSArmin Le Grand  * KIND, either express or implied.  See the License for the
17*f580d42cSArmin Le Grand  * specific language governing permissions and limitations
18*f580d42cSArmin Le Grand  * under the License.
19*f580d42cSArmin Le Grand  *
20*f580d42cSArmin Le Grand  *************************************************************/
21*f580d42cSArmin Le Grand 
22*f580d42cSArmin Le Grand 
23*f580d42cSArmin Le Grand 
24*f580d42cSArmin Le Grand #ifndef INCLUDED_DRAWINGLAYER_PRIMITIVE2D_INFOHIERARCHYPRIMITIVE2D_HXX
25*f580d42cSArmin Le Grand #define INCLUDED_DRAWINGLAYER_PRIMITIVE2D_INFOHIERARCHYPRIMITIVE2D_HXX
26*f580d42cSArmin Le Grand 
27*f580d42cSArmin Le Grand #include <drawinglayer/drawinglayerdllapi.h>
28*f580d42cSArmin Le Grand #include <drawinglayer/primitive2d/groupprimitive2d.hxx>
29*f580d42cSArmin Le Grand #include <tools/string.hxx>
30*f580d42cSArmin Le Grand 
31*f580d42cSArmin Le Grand //////////////////////////////////////////////////////////////////////////////
32*f580d42cSArmin Le Grand 
33*f580d42cSArmin Le Grand namespace drawinglayer
34*f580d42cSArmin Le Grand {
35*f580d42cSArmin Le Grand 	namespace primitive2d
36*f580d42cSArmin Le Grand 	{
37*f580d42cSArmin Le Grand         /** ObjectInfoPrimitive2D class
38*f580d42cSArmin Le Grand 
39*f580d42cSArmin Le Grand             Info hierarchy helper class to hold contents like Name, Title and
40*f580d42cSArmin Le Grand             Description which are valid for the child content, e.g. created for
41*f580d42cSArmin Le Grand             primitives based on DrawingLayer objects or SVG parts. It decomposes
42*f580d42cSArmin Le Grand             to it's content, so all direct renderers may ignore it. May e.g.
43*f580d42cSArmin Le Grand             be used when re-creating graphical content from a sequence of primitives
44*f580d42cSArmin Le Grand          */
45*f580d42cSArmin Le Grand 		class DRAWINGLAYER_DLLPUBLIC ObjectInfoPrimitive2D : public GroupPrimitive2D
46*f580d42cSArmin Le Grand 		{
47*f580d42cSArmin Le Grand 		private:
48*f580d42cSArmin Le Grand             rtl::OUString                           maName;
49*f580d42cSArmin Le Grand             rtl::OUString                           maTitle;
50*f580d42cSArmin Le Grand             rtl::OUString                           maDesc;
51*f580d42cSArmin Le Grand 
52*f580d42cSArmin Le Grand         public:
53*f580d42cSArmin Le Grand             /// constructor
54*f580d42cSArmin Le Grand 			ObjectInfoPrimitive2D(
55*f580d42cSArmin Le Grand                 const Primitive2DSequence& rChildren,
56*f580d42cSArmin Le Grand                 const rtl::OUString& rName,
57*f580d42cSArmin Le Grand                 const rtl::OUString& rTitle,
58*f580d42cSArmin Le Grand                 const rtl::OUString& rDesc);
59*f580d42cSArmin Le Grand 
60*f580d42cSArmin Le Grand 			/// data read access
getName() const61*f580d42cSArmin Le Grand 			const rtl::OUString& getName() const { return maName; }
getTitle() const62*f580d42cSArmin Le Grand 			const rtl::OUString& getTitle() const { return maTitle; }
getDesc() const63*f580d42cSArmin Le Grand 			const rtl::OUString& getDesc() const { return maDesc; }
64*f580d42cSArmin Le Grand 
65*f580d42cSArmin Le Grand 			/// compare operator
66*f580d42cSArmin Le Grand 			virtual bool operator==(const BasePrimitive2D& rPrimitive) const;
67*f580d42cSArmin Le Grand 
68*f580d42cSArmin Le Grand             /// provide unique ID
69*f580d42cSArmin Le Grand 			DeclPrimitrive2DIDBlock()
70*f580d42cSArmin Le Grand 		};
71*f580d42cSArmin Le Grand 	} // end of namespace primitive2d
72*f580d42cSArmin Le Grand } // end of namespace drawinglayer
73*f580d42cSArmin Le Grand 
74*f580d42cSArmin Le Grand //////////////////////////////////////////////////////////////////////////////
75*f580d42cSArmin Le Grand 
76*f580d42cSArmin Le Grand #endif //INCLUDED_DRAWINGLAYER_PRIMITIVE2D_INFOHIERARCHYPRIMITIVE2D_HXX
77*f580d42cSArmin Le Grand 
78*f580d42cSArmin Le Grand //////////////////////////////////////////////////////////////////////////////
79*f580d42cSArmin Le Grand // eof
80