nss: upgrade to release 3.73
[LibreOffice.git] / lotuswordpro / inc / xfilter / xfframestyle.hxx
blob1ef4233180a37669866bdd60d4383a36b9f30016
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,
29 * MA 02111-1307 USA
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 /*************************************************************************
57 * @file
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>
68 #include <memory>
70 class XFBorders;
71 class XFColumns;
72 class XFShadow;
73 class XFBGImage;
75 /**
76 * @brief
77 * Style for all frame objects.
79 class XFFrameStyle : public XFStyle
81 public:
82 XFFrameStyle();
84 virtual ~XFFrameStyle() override;
86 public:
87 void SetWrapType(enumXFWrap wrap);
89 /**
90 * @descr: space between frame and paragraph text.
92 void SetMargins(double left, double right, double top, double bottom);
94 /**
95 * @descr: space between frame and text inside frame.
97 void SetPadding(double left, double right, double top, double bottom);
99 /**
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;
150 protected:
151 enumXFWrap m_eWrap;
152 XFPadding m_aPad;
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;
160 bool m_bProtectSize;
161 bool m_bProtectPos;
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)
173 m_eWrap = wrap;
176 inline void XFFrameStyle::SetMargins(double left, double right,double top, double bottom)
178 if( left != -1 )
179 m_aMargins.SetLeft(left);
180 if( right != -1 )
181 m_aMargins.SetRight(right);
182 if( top != -1 )
183 m_aMargins.SetTop(top);
184 if( bottom != -1 )
185 m_aMargins.SetBottom( bottom );
188 inline void XFFrameStyle::SetPadding(double left, double right,double top, double bottom)
190 if( left != -1 )
191 m_aPad.SetLeft(left);
192 if( right != -1 )
193 m_aPad.SetRight(right);
194 if( top != -1 )
195 m_aPad.SetTop(top);
196 if( bottom != -1 )
197 m_aPad.SetBottom( bottom );
200 inline void XFFrameStyle::SetBackColor(XFColor const & color)
202 m_aBackColor = color;
205 inline void XFFrameStyle::SetTextDir(enumXFTextDir dir)
207 m_eTextDir = dir;
210 inline void XFFrameStyle::SetProtect(bool content, bool size, bool pos)
212 m_bProtectContent = content;
213 m_bProtectSize = size;
214 m_bProtectPos = pos;
217 inline void XFFrameStyle::SetXPosType(enumXFFrameXPos pos, enumXFFrameXRel rel)
219 m_eXPos = pos;
220 m_eXRel = rel;
223 inline void XFFrameStyle::SetYPosType(enumXFFrameYPos pos, enumXFFrameYRel rel)
225 m_eYPos = pos;
226 m_eYRel = rel;
229 inline void XFFrameStyle::SetTransparency(sal_Int16 nTransparency)
231 m_nTransparency = nTransparency;
234 #endif
236 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */