summaryrefslogtreecommitdiff
path: root/drawinglayer/inc/drawinglayer/primitive2d/texthierarchyprimitive2d.hxx
diff options
context:
space:
mode:
authorArmin Weiss <aw@openoffice.org>2007-08-03 09:43:05 +0000
committerArmin Weiss <aw@openoffice.org>2007-08-03 09:43:05 +0000
commit7d8fd9baecc240f0543efea679cb9727957e3231 (patch)
treed7a7f5d95accb4dd900587885262adce74bc5e84 /drawinglayer/inc/drawinglayer/primitive2d/texthierarchyprimitive2d.hxx
parent4e70f32a0201f57a87a89f956ced8e4645c9b7ff (diff)
#i39532# restructured MetaFile comment reation to use TextHierarchy primitives
Diffstat (limited to 'drawinglayer/inc/drawinglayer/primitive2d/texthierarchyprimitive2d.hxx')
-rw-r--r--drawinglayer/inc/drawinglayer/primitive2d/texthierarchyprimitive2d.hxx156
1 files changed, 156 insertions, 0 deletions
diff --git a/drawinglayer/inc/drawinglayer/primitive2d/texthierarchyprimitive2d.hxx b/drawinglayer/inc/drawinglayer/primitive2d/texthierarchyprimitive2d.hxx
new file mode 100644
index 000000000000..39bd7f1a1615
--- /dev/null
+++ b/drawinglayer/inc/drawinglayer/primitive2d/texthierarchyprimitive2d.hxx
@@ -0,0 +1,156 @@
+/*************************************************************************
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: texthierarchyprimitive2d.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: aw $ $Date: 2007-08-03 10:43:04 $
+ *
+ * The Contents of this file are made available subject to
+ * the terms of GNU Lesser General Public License Version 2.1.
+ *
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2005 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ ************************************************************************/
+
+#ifndef INCLUDED_DRAWINGLAYER_PRIMITIVE2D_TEXTHIERARCHYPRIMITIVE2D_HXX
+#define INCLUDED_DRAWINGLAYER_PRIMITIVE2D_TEXTHIERARCHYPRIMITIVE2D_HXX
+
+#ifndef INCLUDED_DRAWINGLAYER_PRIMITIVE2D_GROUPPRIMITIVE2D_HXX
+#include <drawinglayer/primitive2d/groupprimitive2d.hxx>
+#endif
+
+#ifndef _STRING_HXX
+#include <tools/string.hxx>
+#endif
+
+//////////////////////////////////////////////////////////////////////////////
+
+namespace drawinglayer
+{
+ namespace primitive2d
+ {
+ // text format hierarchy helper class. It decomposes to it's
+ // content, so all direct renderers may ignore it. If You need
+ // to know more about line hierarchies You may react on it and
+ // also need to take care that the source of data uses it.
+ class TextHierarchyLinePrimitive2D : public GroupPrimitive2D
+ {
+ private:
+ public:
+ TextHierarchyLinePrimitive2D(const Primitive2DSequence& rChildren);
+
+ // provide unique ID
+ DeclPrimitrive2DIDBlock()
+ };
+ } // end of namespace primitive2d
+} // end of namespace drawinglayer
+
+//////////////////////////////////////////////////////////////////////////////
+
+namespace drawinglayer
+{
+ namespace primitive2d
+ {
+ // see TextHierarchyLinePrimitive2D comment
+ class TextHierarchyParagraphPrimitive2D : public GroupPrimitive2D
+ {
+ private:
+ public:
+ TextHierarchyParagraphPrimitive2D(const Primitive2DSequence& rChildren);
+
+ // provide unique ID
+ DeclPrimitrive2DIDBlock()
+ };
+ } // end of namespace primitive2d
+} // end of namespace drawinglayer
+
+//////////////////////////////////////////////////////////////////////////////
+
+namespace drawinglayer
+{
+ namespace primitive2d
+ {
+ // see TextHierarchyLinePrimitive2D comment
+ class TextHierarchyBlockPrimitive2D : public GroupPrimitive2D
+ {
+ private:
+ public:
+ TextHierarchyBlockPrimitive2D(const Primitive2DSequence& rChildren);
+
+ // provide unique ID
+ DeclPrimitrive2DIDBlock()
+ };
+ } // end of namespace primitive2d
+} // end of namespace drawinglayer
+
+//////////////////////////////////////////////////////////////////////////////
+
+namespace drawinglayer
+{
+ namespace primitive2d
+ {
+ // type enum
+ enum FieldType
+ {
+ FIELD_TYPE_COMMON, // unspecified. If more info is needed for a FieldType,
+ // create a new type and it's handling
+ FIELD_TYPE_PAGE, // uses "FIELD_SEQ_BEGIN;PageField" -> special handling
+ FIELD_TYPE_URL // uses URL as string -> special handling
+ };
+
+ // see TextHierarchyLinePrimitive2D comment.
+ // Also: This type uses a type enum to transport the encapsulated field
+ // type. Also added is a String which is type-dependent. E.g. for URL
+ // fields, it contains the URL.
+ class TextHierarchyFieldPrimitive2D : public GroupPrimitive2D
+ {
+ private:
+ FieldType meType;
+ String maString;
+
+ public:
+ TextHierarchyFieldPrimitive2D(
+ const Primitive2DSequence& rChildren,
+ const FieldType& rFieldType,
+ const String& rString);
+
+ // get data
+ FieldType getType() const { return meType; }
+ const String& getString() const { return maString; }
+
+ // compare operator
+ virtual bool operator==(const BasePrimitive2D& rPrimitive) const;
+
+ // provide unique ID
+ DeclPrimitrive2DIDBlock()
+ };
+ } // end of namespace primitive2d
+} // end of namespace drawinglayer
+
+//////////////////////////////////////////////////////////////////////////////
+
+#endif //INCLUDED_DRAWINGLAYER_PRIMITIVE2D_TEXTHIERARCHYPRIMITIVE2D_HXX
+
+//////////////////////////////////////////////////////////////////////////////
+// eof