1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*************************************************************************
4 * The Contents of this file are made available subject to the terms of
5 * either of the following licenses
7 * - GNU Lesser General Public License Version 2.1
8 * - Sun Industry Standards Source License Version 1.1
10 * Sun Microsystems Inc., October, 2000
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
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.
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.
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,
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.
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.
46 * The Initial Developer of the Original Code is: IBM Corporation
48 * Copyright: 2008 by IBM Corporation
50 * All Rights Reserved.
52 * Contributor(s): _______________________________________
55 ************************************************************************/
56 /*************************************************************************
58 * Frame object style for OOo.
59 * You can reference to the XFFrame object.
60 ************************************************************************/
61 #ifndef INCLUDED_LOTUSWORDPRO_INC_XFILTER_XFFRAMESTYLE_HXX
62 #define INCLUDED_LOTUSWORDPRO_INC_XFILTER_XFFRAMESTYLE_HXX
64 #include <xfilter/xfstyle.hxx>
65 #include <xfilter/xfmargins.hxx>
66 #include <xfilter/xfcolor.hxx>
67 #include <xfilter/xfpadding.hxx>
77 * Style for all frame objects.
79 class XFFrameStyle
: public XFStyle
84 virtual ~XFFrameStyle() override
;
87 void SetWrapType(enumXFWrap wrap
);
90 * @descr: space between frame and paragraph text.
92 void SetMargins(double left
, double right
, double top
, double bottom
);
95 * @descr: space between frame and text inside frame.
97 void SetPadding(double left
, double right
, double top
, double bottom
);
100 * @descr: set the border property of the frame.
102 void SetBorders(std::unique_ptr
<XFBorders
> pBorders
);
105 * @descr: set the column property of the frame.
107 void SetColumns(XFColumns
*pColumns
);
110 * @descr: set the shadow object the frame.
112 void SetShadow(XFShadow
*pShadow
);
115 * @descr: set the background image of the frame.
117 void SetBackImage(std::unique_ptr
<XFBGImage
>& rImage
);
120 * @descr: set the background color of the frame.
122 void SetBackColor(XFColor
const & color
);
125 * @descr Set whether frame is protected. There are three properties that can be protected, content,size and position.
127 void SetProtect(bool content
, bool size
, bool pos
);
130 * @descr Set text dir.
132 void SetTextDir(enumXFTextDir dir
);
135 * @descr Set horizontal position type.
137 void SetXPosType(enumXFFrameXPos pos
, enumXFFrameXRel rel
);
140 * @descr Set vertical position type.
142 void SetYPosType(enumXFFrameYPos pos
, enumXFFrameYRel rel
);
144 void SetTransparency(sal_Int16 nTransparency
);
146 virtual enumXFStyle
GetStyleFamily() override
;
148 virtual void ToXml(IXFStream
*pStrm
) override
;
153 XFMargins m_aMargins
;
154 std::unique_ptr
<XFBorders
> m_pBorders
;
155 std::unique_ptr
<XFColumns
> m_pColumns
;
156 std::unique_ptr
<XFShadow
> m_pShadow
;
157 std::unique_ptr
<XFBGImage
> m_pBGImage
;
158 XFColor m_aBackColor
;
159 bool m_bProtectContent
;
162 sal_Int16 m_nTransparency
;
164 enumXFTextDir m_eTextDir
;
165 enumXFFrameXPos m_eXPos
;
166 enumXFFrameXRel m_eXRel
;
167 enumXFFrameYPos m_eYPos
;
168 enumXFFrameYRel m_eYRel
;
171 inline void XFFrameStyle::SetWrapType(enumXFWrap wrap
)
176 inline void XFFrameStyle::SetMargins(double left
, double right
,double top
, double bottom
)
179 m_aMargins
.SetLeft(left
);
181 m_aMargins
.SetRight(right
);
183 m_aMargins
.SetTop(top
);
185 m_aMargins
.SetBottom( bottom
);
188 inline void XFFrameStyle::SetPadding(double left
, double right
,double top
, double bottom
)
191 m_aPad
.SetLeft(left
);
193 m_aPad
.SetRight(right
);
197 m_aPad
.SetBottom( bottom
);
200 inline void XFFrameStyle::SetBackColor(XFColor
const & color
)
202 m_aBackColor
= color
;
205 inline void XFFrameStyle::SetTextDir(enumXFTextDir dir
)
210 inline void XFFrameStyle::SetProtect(bool content
, bool size
, bool pos
)
212 m_bProtectContent
= content
;
213 m_bProtectSize
= size
;
217 inline void XFFrameStyle::SetXPosType(enumXFFrameXPos pos
, enumXFFrameXRel rel
)
223 inline void XFFrameStyle::SetYPosType(enumXFFrameYPos pos
, enumXFFrameYRel rel
)
229 inline void XFFrameStyle::SetTransparency(sal_Int16 nTransparency
)
231 m_nTransparency
= nTransparency
;
236 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */