LibreOffice Module lotuswordpro (master)
1
lotuswordpro
source
filter
xfilter
xfdrawobj.cxx
Go to the documentation of this file.
1
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2
/*************************************************************************
3
*
4
* The Contents of this file are made available subject to the terms of
5
* either of the following licenses
6
*
7
* - GNU Lesser General Public License Version 2.1
8
* - Sun Industry Standards Source License Version 1.1
9
*
10
* Sun Microsystems Inc., October, 2000
11
*
12
* GNU Lesser General Public License Version 2.1
13
* =============================================
14
* Copyright 2000 by Sun Microsystems, Inc.
15
* 901 San Antonio Road, Palo Alto, CA 94303, USA
16
*
17
* This library is free software; you can redistribute it and/or
18
* modify it under the terms of the GNU Lesser General Public
19
* License version 2.1, as published by the Free Software Foundation.
20
*
21
* This library is distributed in the hope that it will be useful,
22
* but WITHOUT ANY WARRANTY; without even the implied warranty of
23
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
24
* Lesser General Public License for more details.
25
*
26
* You should have received a copy of the GNU Lesser General Public
27
* License along with this library; if not, write to the Free Software
28
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
29
* MA 02111-1307 USA
30
*
31
*
32
* Sun Industry Standards Source License Version 1.1
33
* =================================================
34
* The contents of this file are subject to the Sun Industry Standards
35
* Source License Version 1.1 (the "License"); You may not use this file
36
* except in compliance with the License. You may obtain a copy of the
37
* License at http://www.openoffice.org/license.html.
38
*
39
* Software provided under this License is provided on an "AS IS" basis,
40
* WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
41
* WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
42
* MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
43
* See the License for the specific provisions governing your rights and
44
* obligations concerning the Software.
45
*
46
* The Initial Developer of the Original Code is: IBM Corporation
47
*
48
* Copyright: 2008 by IBM Corporation
49
*
50
* All Rights Reserved.
51
*
52
* Contributor(s): _______________________________________
53
*
54
*
55
************************************************************************/
56
/*************************************************************************
57
* @file
58
* Interface for all Drawing object.
59
************************************************************************/
60
#include <
xfilter/xfdrawobj.hxx
>
61
#include <
xfilter/ixfattrlist.hxx
>
62
63
XFDrawObject::XFDrawObject
()
64
{
65
m_fRotate
= 0;
66
m_nDrawFlag
= 0;
67
m_eType
=
enumXFFrameDrawing
;
68
}
69
70
void
XFDrawObject::ContentToXml
(
IXFStream
*pStrm)
71
{
72
XFContentContainer::ToXml
(pStrm);
73
}
74
75
void
XFDrawObject::ToXml
(
IXFStream
*pStrm)
76
{
77
IXFAttrList
*pAttrList = pStrm->
GetAttrList
();
78
79
if
( !
GetStyleName
().isEmpty() )
80
pAttrList->
AddAttribute
(
"draw:style-name"
,
GetStyleName
() );
81
82
assert(!
m_strName
.isEmpty() &&
"name should not be null."
);
83
if
( !
m_strName
.isEmpty() )
84
pAttrList->
AddAttribute
(
"draw:name"
,
m_strName
);
85
//anchor type:
86
switch
(
m_eAnchor
)
87
{
88
case
enumXFAnchorPara
:
89
pAttrList->
AddAttribute
(
"text:anchor-type"
,
"paragraph"
);
90
break
;
91
case
enumXFAnchorPage
:
92
pAttrList->
AddAttribute
(
"text:anchor-type"
,
"page"
);
93
break
;
94
case
enumXFAnchorChar
:
95
pAttrList->
AddAttribute
(
"text:anchor-type"
,
"char"
);
96
break
;
97
case
enumXFAnchorAsChar
:
98
pAttrList->
AddAttribute
(
"text:anchor-type"
,
"as-char"
);
99
break
;
100
case
enumXFAnchorFrame
:
101
pAttrList->
AddAttribute
(
"text:anchor-type"
,
"frame"
);
102
break
;
103
default
:
104
break
;
105
}
106
pAttrList->
AddAttribute
(
"draw:z-index"
, OUString::number(
m_nZIndex
) );
107
108
pAttrList->
AddAttribute
(
"svg:x"
, OUString::number(
m_aRect
.
GetX
()) +
"cm"
);
109
pAttrList->
AddAttribute
(
"svg:y"
, OUString::number(
m_aRect
.
GetY
()) +
"cm"
);
110
pAttrList->
AddAttribute
(
"svg:width"
, OUString::number(
m_aRect
.
GetWidth
()) +
"cm"
);
111
pAttrList->
AddAttribute
(
"svg:height"
, OUString::number(
m_aRect
.
GetHeight
()) +
"cm"
);
112
113
//transform
114
OUString strTransform;
115
if
(
m_nDrawFlag
&
XFDRAWOBJECT_FLAG_ROTATE
)
116
strTransform =
"rotate ("
+ OUString::number(
m_fRotate
) +
") "
;
117
if
(
m_nDrawFlag
&
XFDRAWOBJECT_FLAG_TRANSLATE
)
118
strTransform +=
"translate ("
+ OUString::number(
m_aRotatePoint
.
GetX
()) +
"cm "
+ OUString::number(
m_aRotatePoint
.
GetY
()) +
"cm) "
;
119
if
(
m_nDrawFlag
&
XFDRAWOBJECT_FLAG_SCALE
)
120
strTransform +=
"scale ("
+ OUString::number(0) +
"cm "
+ OUString::number(0) +
"cm) "
;
121
if
(
m_nDrawFlag
&
XFDRAWOBJECT_FLAG_SKEWX
)
122
strTransform +=
"skewX ("
+ OUString::number(0) +
" "
;
123
if
(
m_nDrawFlag
&
XFDRAWOBJECT_FLAG_SKEWY
)
124
strTransform +=
"skewY ("
+ OUString::number(0) +
" "
;
125
strTransform = strTransform.trim();
126
127
if
( !strTransform.isEmpty() )
128
pAttrList->
AddAttribute
(
"draw:transform"
, strTransform );
129
}
130
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
IXFAttrList
Attribute list interface for sax writer.
Definition:
ixfattrlist.hxx:72
IXFAttrList::AddAttribute
virtual void AddAttribute(const OUString &name, const OUString &value)=0
@descr: Add an attribute to the attribute list.
IXFStream
Stream wrapper for sax writer.
Definition:
ixfstream.hxx:72
IXFStream::GetAttrList
virtual IXFAttrList * GetAttrList()=0
@descr return the Attribute list interface.
XFContentContainer::ToXml
virtual void ToXml(IXFStream *pStrm) override
@descr Output to OOo model or local file.
Definition:
xfcontentcontainer.cxx:144
XFContent::GetStyleName
const OUString & GetStyleName() const
: return the style name.
Definition:
xfcontent.hxx:95
XFDrawObject::m_fRotate
double m_fRotate
Definition:
xfdrawobj.hxx:101
XFDrawObject::ToXml
virtual void ToXml(IXFStream *pStrm) override
@descr serialize.
Definition:
xfdrawobj.cxx:75
XFDrawObject::m_nDrawFlag
unsigned int m_nDrawFlag
Definition:
xfdrawobj.hxx:103
XFDrawObject::m_aRotatePoint
XFPoint m_aRotatePoint
Definition:
xfdrawobj.hxx:102
XFDrawObject::XFDrawObject
XFDrawObject()
Definition:
xfdrawobj.cxx:63
XFDrawObject::ContentToXml
void ContentToXml(IXFStream *pStrm)
Definition:
xfdrawobj.cxx:70
XFFrame::m_eAnchor
enumXFAnchor m_eAnchor
Definition:
xfframe.hxx:176
XFFrame::m_eType
enumXFFrameType m_eType
Definition:
xfframe.hxx:183
XFFrame::m_aRect
XFRect m_aRect
Definition:
xfframe.hxx:180
XFFrame::m_strName
OUString m_strName
Definition:
xfframe.hxx:178
XFFrame::m_nZIndex
sal_uInt32 m_nZIndex
Definition:
xfframe.hxx:179
XFPoint::GetY
double GetY() const
Definition:
xfpoint.hxx:93
XFPoint::GetX
double GetX() const
Definition:
xfpoint.hxx:88
XFRect::GetHeight
double GetHeight() const
Definition:
xfrect.hxx:115
XFRect::GetX
double GetX() const
Definition:
xfrect.hxx:85
XFRect::GetWidth
double GetWidth() const
Definition:
xfrect.hxx:105
XFRect::GetY
double GetY() const
Definition:
xfrect.hxx:95
ixfattrlist.hxx
enumXFFrameDrawing
@ enumXFFrameDrawing
Definition:
xfdefs.hxx:109
enumXFAnchorAsChar
@ enumXFAnchorAsChar
Definition:
xfdefs.hxx:261
enumXFAnchorChar
@ enumXFAnchorChar
Definition:
xfdefs.hxx:260
enumXFAnchorPara
@ enumXFAnchorPara
Definition:
xfdefs.hxx:258
enumXFAnchorPage
@ enumXFAnchorPage
Definition:
xfdefs.hxx:259
enumXFAnchorFrame
@ enumXFAnchorFrame
Definition:
xfdefs.hxx:262
xfdrawobj.hxx
XFDRAWOBJECT_FLAG_SCALE
#define XFDRAWOBJECT_FLAG_SCALE
Definition:
xfdrawobj.hxx:70
XFDRAWOBJECT_FLAG_SKEWX
#define XFDRAWOBJECT_FLAG_SKEWX
Definition:
xfdrawobj.hxx:68
XFDRAWOBJECT_FLAG_ROTATE
#define XFDRAWOBJECT_FLAG_ROTATE
Definition:
xfdrawobj.hxx:66
XFDRAWOBJECT_FLAG_TRANSLATE
#define XFDRAWOBJECT_FLAG_TRANSLATE
Definition:
xfdrawobj.hxx:67
XFDRAWOBJECT_FLAG_SKEWY
#define XFDRAWOBJECT_FLAG_SKEWY
Definition:
xfdrawobj.hxx:69
Generated on Sun Jul 30 2023 04:29:27 for LibreOffice Module lotuswordpro (master) by
1.9.3