LibreOffice Module lotuswordpro (master) 1
lwpfont.hxx
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 * Font manager related classes header file
59 * LwpFontTableEntry, LwpFontTable, LwpFontNameEntry,
60 * LwpFontAttrEntry, LwpFontNameManager,LwpFontAttrManager,
61 * LwpFontManager
62 ************************************************************************/
63
64#ifndef INCLUDED_LOTUSWORDPRO_INC_LWPFONT_HXX
65#define INCLUDED_LOTUSWORDPRO_INC_LWPFONT_HXX
66
67#include <config_lgpl.h>
68#include <rtl/ref.hxx>
69#include "lwpobjstrm.hxx"
70#include "lwpatomholder.hxx"
71#include "lwpcolor.hxx"
72#include "xfilter/xffont.hxx"
73#include <memory>
74
76{
77public:
79public:
80 void Read(LwpObjectStream *pStrm);
81 OUString const & GetFaceName() const;
82private:
83 LwpAtomHolder m_WindowsFaceName; //font face name under windows
84 LwpAtomHolder m_FaceName; //font face name
85 void RegisterFontDecl();
86 //Not useful now, so skip
87 //LwpPanoseNumber m_PanoseNumber;
88};
89
91{
92public:
95public:
96 void Read(LwpObjectStream *pStrm);
97 OUString GetFaceName(sal_uInt16 index); //index: start from 1
98// void RegisterFontDecls();
99private:
100 sal_uInt16 m_nCount;
101 std::unique_ptr<LwpFontTableEntry[]> m_pFontEntries;
102};
103
105{
106public:
108 : m_nOverrideBits(0)
109 , m_nApplyBits(0)
110 , m_nPointSize(0)
111 , m_nOverstrike(0)
112 , m_nTightness(0)
113 , m_nFaceName(0)
114 , m_nAltFaceName(0)
115 {}
116public:
117 void Read(LwpObjectStream *pStrm);
118 sal_uInt16 GetFaceID() const {return m_nFaceName;}
119 sal_uInt16 GetAltFaceID() const {return m_nAltFaceName;}
120 void Override(rtl::Reference<XFFont> const & pFont);
121 inline bool IsFaceNameOverridden() const;
122 inline bool IsAltFaceNameOverridden() const;
123private:
124 //Data of CFontDescriptionOverrideBase
127 sal_uInt32 m_nPointSize;
128 sal_uInt16 m_nOverstrike;
129 sal_uInt16 m_nTightness;
132 //Data of LwpFontNameEntry
133 sal_uInt16 m_nFaceName; //CFontTableID
134 sal_uInt16 m_nAltFaceName; //CFontTableID
135 enum
136 {
137 POINTSIZE = 0x01,
138 COLOR = 0x02,
140 TIGHTNESS = 0x08,
141 FACENAME = 0x10,
142 BKCOLOR = 0x20,
147 };
148
149 inline bool IsPointSizeOverridden() const;
150 inline bool IsColorOverridden() const;
151 inline bool IsBackgroundColorOverridden() const;
152//TODO
153// inline sal_Bool IsTightnessOverridden();
154// inline sal_Bool IsAnythingOverridden();
155};
156
158{
159public:
162 OUString GetNameByIndex(sal_uInt16 index);
163private:
164 sal_uInt16 m_nCount;
165 std::unique_ptr<LwpFontNameEntry[]> m_pFontNames;
167
168public:
169 void Read(LwpObjectStream *pStrm);
170 void Override(sal_uInt16 index, rtl::Reference<XFFont> const & pFont);
171};
172
174{
175public:
177 : m_nAttrBits(0)
182 , m_nCase(0)
183 , m_nUnder(0)
184 {}
185public:
186 void Read(LwpObjectStream *pStrm);
187 void Override(rtl::Reference<XFFont> const & pFont);
188private:
189 sal_uInt16 m_nAttrBits;
196 enum
197 {
198 BOLD = 0x0001,
199 ITALIC = 0x0002,
200 STRIKETHRU = 0x0004,
201
202 SUPERSCRIPT = 0x0100,
203 SUBSCRIPT = 0x0200,
204
205 SMALLCAPS = 0x0400,
206
210
217
225
226 CASE = 0x01,
227 UNDER = 0x02,
229 };
230 bool Is(sal_uInt16 Attr);
231 bool IsBoldOverridden() const;
232 bool IsItalicOverridden() const;
233 bool IsStrikeThruOverridden() const;
234 bool IsSmallCapsOverridden() const;
235 bool IsSuperOverridden() const;
236 bool IsSubOverridden() const;
237 bool IsUnderlineOverridden() const;
238 bool IsCaseOverridden() const;
239
240};
241
243{
244public:
246 : m_nCount(0)
247 {}
249public:
250 void Read(LwpObjectStream *pStrm);
251 void Override(sal_uInt16 index, rtl::Reference<XFFont> const & pFont);
252private:
253 sal_uInt16 m_nCount;
254 std::unique_ptr<LwpFontAttrEntry[]> m_pFontAttrs;
255};
256
258{
259public:
261private:
264
265public:
266 void Read(LwpObjectStream *pStrm);
267 rtl::Reference<XFFont> CreateOverrideFont(sal_uInt32 fontID, sal_uInt32 overID);
269 OUString GetNameByID(sal_uInt32 fontID);
270
271private:
272 void Override(sal_uInt32 fontID, rtl::Reference<XFFont> const & pFont);
273 static inline sal_uInt16 GetFontNameIndex(sal_uInt32 fontID);
274 static inline sal_uInt16 GetFontAttrIndex(sal_uInt32 fontID);
275};
276
278{
279 return static_cast<sal_uInt16>((fontID>>16)&0xFFFF);
280}
281
283{
284 return static_cast<sal_uInt16>(fontID);
285}
286
287#endif
288
289/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
AtomHolder class of Word Pro to hold a string.
lwpcolor class (red, green, blue, extra)
Definition: lwpcolor.hxx:71
sal_uInt8 m_nAttrOverrideBits2
Definition: lwpfont.hxx:192
void Override(rtl::Reference< XFFont > const &pFont)
Definition: lwpfont.cxx:76
bool IsSubOverridden() const
Definition: lwpfont.cxx:200
sal_uInt16 m_nAttrBits
Definition: lwpfont.hxx:189
bool IsBoldOverridden() const
Definition: lwpfont.cxx:178
bool IsSmallCapsOverridden() const
Definition: lwpfont.cxx:191
sal_uInt16 m_nAttrOverrideBits
Definition: lwpfont.hxx:190
bool IsCaseOverridden() const
Definition: lwpfont.cxx:210
void Read(LwpObjectStream *pStrm)
Definition: lwpfont.cxx:64
bool IsStrikeThruOverridden() const
Definition: lwpfont.cxx:187
bool IsSuperOverridden() const
Definition: lwpfont.cxx:195
sal_uInt8 m_nAttrApplyBits2
Definition: lwpfont.hxx:193
bool IsItalicOverridden() const
Definition: lwpfont.cxx:183
sal_uInt16 m_nAttrApplyBits
Definition: lwpfont.hxx:191
sal_uInt8 m_nCase
Definition: lwpfont.hxx:194
sal_uInt8 m_nUnder
Definition: lwpfont.hxx:195
bool IsUnderlineOverridden() const
Definition: lwpfont.cxx:206
bool Is(sal_uInt16 Attr)
Definition: lwpfont.cxx:173
sal_uInt16 m_nCount
Definition: lwpfont.hxx:253
std::unique_ptr< LwpFontAttrEntry[]> m_pFontAttrs
Definition: lwpfont.hxx:254
void Read(LwpObjectStream *pStrm)
Definition: lwpfont.cxx:403
void Override(sal_uInt16 index, rtl::Reference< XFFont > const &pFont)
Definition: lwpfont.cxx:415
rtl::Reference< XFFont > CreateOverrideFont(sal_uInt32 fontID, sal_uInt32 overID)
Definition: lwpfont.cxx:484
void Read(LwpObjectStream *pStrm)
Definition: lwpfont.cxx:428
LwpFontAttrManager m_AttrMgr
Definition: lwpfont.hxx:263
static sal_uInt16 GetFontAttrIndex(sal_uInt32 fontID)
Definition: lwpfont.hxx:282
LwpFontNameManager m_FNMgr
Definition: lwpfont.hxx:262
rtl::Reference< XFFont > CreateFont(sal_uInt32 fontID)
Definition: lwpfont.cxx:471
void Override(sal_uInt32 fontID, rtl::Reference< XFFont > const &pFont)
Definition: lwpfont.cxx:498
static sal_uInt16 GetFontNameIndex(sal_uInt32 fontID)
Definition: lwpfont.hxx:277
OUString GetNameByID(sal_uInt32 fontID)
Definition: lwpfont.cxx:504
sal_uInt16 m_nAltFaceName
Definition: lwpfont.hxx:134
void Override(rtl::Reference< XFFont > const &pFont)
Definition: lwpfont.cxx:292
sal_uInt8 m_nApplyBits
Definition: lwpfont.hxx:126
void Read(LwpObjectStream *pStrm)
Definition: lwpfont.cxx:274
bool IsColorOverridden() const
Definition: lwpfont.cxx:336
LwpColor m_Color
Definition: lwpfont.hxx:130
sal_uInt16 GetFaceID() const
Definition: lwpfont.hxx:118
sal_uInt8 m_nOverrideBits
Definition: lwpfont.hxx:125
sal_uInt16 GetAltFaceID() const
Definition: lwpfont.hxx:119
LwpColor m_BackColor
Definition: lwpfont.hxx:131
bool IsPointSizeOverridden() const
Definition: lwpfont.cxx:331
sal_uInt32 m_nPointSize
Definition: lwpfont.hxx:127
sal_uInt16 m_nTightness
Definition: lwpfont.hxx:129
sal_uInt16 m_nFaceName
Definition: lwpfont.hxx:133
sal_uInt16 m_nOverstrike
Definition: lwpfont.hxx:128
bool IsAltFaceNameOverridden() const
Definition: lwpfont.cxx:326
bool IsFaceNameOverridden() const
Definition: lwpfont.cxx:321
bool IsBackgroundColorOverridden() const
Definition: lwpfont.cxx:341
LwpFontTable m_FontTbl
Definition: lwpfont.hxx:166
sal_uInt16 m_nCount
Definition: lwpfont.hxx:164
void Read(LwpObjectStream *pStrm)
Definition: lwpfont.cxx:365
void Override(sal_uInt16 index, rtl::Reference< XFFont > const &pFont)
Definition: lwpfont.cxx:380
OUString GetNameByIndex(sal_uInt16 index)
Definition: lwpfont.cxx:393
std::unique_ptr< LwpFontNameEntry[]> m_pFontNames
Definition: lwpfont.hxx:165
OUString const & GetFaceName() const
Definition: lwpfont.cxx:232
void Read(LwpObjectStream *pStrm)
Definition: lwpfont.cxx:215
void RegisterFontDecl()
Definition: lwpfont.cxx:237
LwpAtomHolder m_WindowsFaceName
Definition: lwpfont.hxx:83
LwpAtomHolder m_FaceName
Definition: lwpfont.hxx:84
sal_uInt16 m_nCount
Definition: lwpfont.hxx:100
std::unique_ptr< LwpFontTableEntry[]> m_pFontEntries
Definition: lwpfont.hxx:101
OUString GetFaceName(sal_uInt16 index)
Definition: lwpfont.cxx:264
void Read(LwpObjectStream *pStrm)
Definition: lwpfont.cxx:249
stream class for LwpObject body data provide stream like interface to read object data
Definition: lwpobjstrm.hxx:77
index
int fontID
unsigned char sal_uInt8