LCOV - code coverage report
Current view: top level - libreoffice/lotuswordpro/source/filter - lwpfont.hxx (source / functions) Hit Total Coverage
Test: libreoffice_filtered.info Lines: 15 15 100.0 %
Date: 2012-12-27 Functions: 13 13 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       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             :  * Change History
      65             :  Jan 2005           Created
      66             :  ************************************************************************/
      67             : 
      68             : #ifndef _LWPFONT_HXX
      69             : #define _LWPFONT_HXX
      70             : 
      71             : #include "lwpheader.hxx"
      72             : #include "lwpobjstrm.hxx"
      73             : #include "lwpatomholder.hxx"
      74             : #include "lwpcolor.hxx"
      75             : #include "lwpbasetype.hxx"
      76             : #include "lwpobj.hxx"
      77             : #include "xfilter/xffont.hxx"
      78             : #include "xfilter/xftextstyle.hxx"
      79             : 
      80             : class LwpFontTableEntry
      81             : {
      82             : public:
      83          26 :     LwpFontTableEntry(){}
      84          26 :     ~LwpFontTableEntry(){}
      85             : public:
      86             :     void Read(LwpObjectStream *pStrm);
      87             :     OUString GetFaceName();
      88             : private:
      89             :     LwpAtomHolder m_WindowsFaceName;    //font face name under windows
      90             :     LwpAtomHolder m_FaceName;           //font face name
      91             :     void RegisterFontDecl();
      92             :      //Not useful now, so skip
      93             :     //LwpPanoseNumber m_PanoseNumber;
      94             : };
      95             : 
      96             : class LwpFontTable
      97             : {
      98             : public:
      99             :     LwpFontTable();
     100             :     ~LwpFontTable();
     101             : public:
     102             :     void Read(LwpObjectStream *pStrm);
     103             :     OUString GetFaceName(sal_uInt16 index); //index: start from 1
     104             : //  void RegisterFontDecls();
     105             : private:
     106             :     sal_uInt16 m_nCount;
     107             :     LwpFontTableEntry* m_pFontEntries;
     108             : };
     109             : 
     110             : 
     111             : class LwpFontNameEntry
     112             : {
     113             : public:
     114          81 :     LwpFontNameEntry(){}
     115          81 :     ~LwpFontNameEntry(){}
     116             : public:
     117             :     void Read(LwpObjectStream *pStrm);
     118         228 :     inline sal_uInt16 GetFaceID(){return m_nFaceName;}
     119          60 :     inline sal_uInt16 GetAltFaceID(){return m_nAltFaceName;}
     120             :     void Override(XFFont* pFont);
     121             :     inline sal_Bool IsFaceNameOverridden();
     122             :     inline sal_Bool IsAltFaceNameOverridden();
     123             : private:
     124             :     //Data of CFontDescriptionOverrideBase
     125             :     sal_uInt8 m_nOverrideBits;
     126             :     sal_uInt8 m_nApplyBits;
     127             :     sal_uInt32 m_nPointSize;
     128             :     sal_uInt16 m_nOverstrike;
     129             :     sal_uInt16 m_nTightness;
     130             :     LwpColor m_Color;
     131             :     LwpColor m_BackColor;
     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,
     139             :         OVERSTRIKE      = 0x04,
     140             :         TIGHTNESS       = 0x08,
     141             :         FACENAME        = 0x10,
     142             :         BKCOLOR         = 0x20,
     143             :         ALTFACENAME     = 0x40,
     144             :         ALL_BITS        = (POINTSIZE | COLOR | OVERSTRIKE
     145             :                             | ALTFACENAME
     146             :                             | TIGHTNESS | FACENAME | BKCOLOR)
     147             :     };
     148             : 
     149             :     inline sal_Bool IsPointSizeOverridden();
     150             :     inline sal_Bool IsColorOverridden();
     151             :     inline sal_Bool IsBackgroundColorOverridden();
     152             : //TODO
     153             : //    inline sal_Bool IsTightnessOverridden();
     154             : //    inline sal_Bool IsAnythingOverridden();
     155             : };
     156             : 
     157             : class LwpFontNameManager
     158             : {
     159             : public:
     160             :     LwpFontNameManager();
     161             :     ~LwpFontNameManager();
     162             :     OUString GetNameByIndex(sal_uInt16 index);
     163             : private:
     164             :     sal_uInt16 m_nCount;
     165             :     LwpFontNameEntry* m_pFontNames;
     166             :     LwpFontTable m_FontTbl;
     167             : 
     168             : public:
     169             :     void Read(LwpObjectStream *pStrm);
     170             :     void    Override(sal_uInt16 index, XFFont* pFont);
     171             : };
     172             : 
     173             : class LwpFontAttrEntry
     174             : {
     175             : public:
     176          25 :     LwpFontAttrEntry(){}
     177          25 :     ~LwpFontAttrEntry(){}
     178             : public:
     179             :     void Read(LwpObjectStream *pStrm);
     180             :     void Override(XFFont*pFont);
     181             : private:
     182             :     sal_uInt16 m_nAttrBits;
     183             :     sal_uInt16 m_nAttrOverrideBits;
     184             :     sal_uInt16 m_nAttrApplyBits;
     185             :     sal_uInt8 m_nAttrOverrideBits2;
     186             :     sal_uInt8 m_nAttrApplyBits2;
     187             :     sal_uInt8 m_nCase;
     188             :     sal_uInt8 m_nUnder;
     189             :     enum
     190             :     {
     191             :         BOLD            = 0x0001,
     192             :         ITALIC          = 0x0002,
     193             :         STRIKETHRU      = 0x0004,
     194             : 
     195             :         SUPERSCRIPT = 0x0100,
     196             :         SUBSCRIPT       = 0x0200,
     197             : 
     198             :         SMALLCAPS       = 0x0400,
     199             : 
     200             :         ALL_ATTRS       = BOLD | ITALIC | STRIKETHRU
     201             :                         | SUPERSCRIPT | SUBSCRIPT
     202             :                         | SMALLCAPS,
     203             : 
     204             :         CASE_DONTCARE   = 0,
     205             :         CASE_NORMAL = 1,
     206             :         CASE_UPPER      = 2,
     207             :         CASE_LOWER  = 3,
     208             :         CASE_INITCAPS   = 4,
     209             :         CASE_STYLE      = 7,
     210             : 
     211             :         UNDER_DONTCARE  = 0,
     212             :         UNDER_OFF           = 1,
     213             :         UNDER_SINGLE        = 2,
     214             :         UNDER_DOUBLE        = 3,
     215             :         UNDER_WORD_SINGLE   = 4,
     216             :         UNDER_WORD_DOUBLE   = 5,
     217             :         UNDER_STYLE         = 7,
     218             : 
     219             :         CASE    = 0x01,
     220             :         UNDER   = 0x02,
     221             :         ALL_ATTRS2          = CASE | UNDER
     222             :     };
     223             :     sal_Bool Is(sal_uInt16 Attr);
     224             :     sal_Bool IsBoldOverridden();
     225             :     sal_Bool IsItalicOverridden();
     226             :     sal_Bool IsStrikeThruOverridden();
     227             :     sal_Bool IsSmallCapsOverridden();
     228             :     sal_Bool IsSuperOverridden();
     229             :     sal_Bool IsSubOverridden();
     230             :     sal_Bool IsUnderlineOverridden();
     231             :     sal_Bool IsCaseOverridden();
     232             : 
     233             : };
     234             : 
     235             : class LwpFontAttrManager
     236             : {
     237             : public:
     238           9 :     LwpFontAttrManager():m_pFontAttrs(NULL){}
     239             :     ~LwpFontAttrManager();
     240             : public:
     241             :     void Read(LwpObjectStream *pStrm);
     242             :     void Override(sal_uInt16 index, XFFont*pFont);
     243             : private:
     244             :     sal_uInt16 m_nCount;
     245             :     LwpFontAttrEntry* m_pFontAttrs;
     246             : };
     247             : 
     248             : class LwpFontManager
     249             : {
     250             : public:
     251           9 :     LwpFontManager(){}
     252           8 :     ~LwpFontManager(){}
     253             : private:
     254             :     LwpFontNameManager m_FNMgr;
     255             :     LwpFontAttrManager m_AttrMgr;
     256             : 
     257             : public:
     258             :     void Read(LwpObjectStream *pStrm);
     259             :     XFFont* CreateOverrideFont(sal_uInt32 fontID, sal_uInt32 overID);
     260             :     XFFont*  CreateFont(sal_uInt32 fontID);
     261             :     OUString GetNameByID(sal_uInt32 fontID);
     262             : 
     263             : private:
     264             :     void Override(sal_uInt32 fontID, XFFont* pFont);
     265             :     inline sal_uInt16 GetFontNameIndex(sal_uInt32 fontID);
     266             :     inline sal_uInt16 GetFontAttrIndex(sal_uInt32 fontID);
     267             : };
     268             : 
     269         258 : sal_uInt16 LwpFontManager::GetFontNameIndex(sal_uInt32 fontID)
     270             : {
     271         258 :     return static_cast<sal_uInt16>((fontID>>16)&0xFFFF);
     272             : }
     273             : 
     274         258 : sal_uInt16 LwpFontManager::GetFontAttrIndex(sal_uInt32 fontID)
     275             : {
     276         258 :     return static_cast<sal_uInt16>(fontID);
     277             : }
     278             : 
     279             : #endif
     280             : 
     281             : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.10