summaryrefslogtreecommitdiff
path: root/vcl/inc/vcl/outdev.h
diff options
context:
space:
mode:
Diffstat (limited to 'vcl/inc/vcl/outdev.h')
-rw-r--r--vcl/inc/vcl/outdev.h264
1 files changed, 0 insertions, 264 deletions
diff --git a/vcl/inc/vcl/outdev.h b/vcl/inc/vcl/outdev.h
deleted file mode 100644
index 6ca85bff768a..000000000000
--- a/vcl/inc/vcl/outdev.h
+++ /dev/null
@@ -1,264 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _SV_OUTDEV_H
-#define _SV_OUTDEV_H
-
-#include <tools/solar.h>
-#include <vcl/outfont.hxx>
-
-#include <vector>
-#include <list>
-#include <set>
-
-class Size;
-class Font;
-class VirtualDevice;
-class ImplServerGraphics;
-class ImplGetDevFontList;
-class GetDevSizeList;
-
-// -----------------------
-// - ImplDevFontListData -
-// -----------------------
-
-// flags for mnMatchType member
-#define IMPL_DEVFONT_SCALABLE ((sal_uIntPtr)0x00000001)
-#define IMPL_DEVFONT_SYMBOL ((sal_uIntPtr)0x00000002)
-#define IMPL_DEVFONT_NONESYMBOL ((sal_uIntPtr)0x00000004)
-#define IMPL_DEVFONT_LIGHT ((sal_uIntPtr)0x00000010)
-#define IMPL_DEVFONT_BOLD ((sal_uIntPtr)0x00000020)
-#define IMPL_DEVFONT_NORMAL ((sal_uIntPtr)0x00000040)
-#define IMPL_DEVFONT_NONEITALIC ((sal_uIntPtr)0x00000100)
-#define IMPL_DEVFONT_ITALIC ((sal_uIntPtr)0x00000200)
-
-// TODO: rename ImplDevFontListData to PhysicalFontFamily
-class ImplDevFontListData
-{
-public:
- ImplDevFontListData( const String& rSearchName );
- ~ImplDevFontListData();
-
- const String& GetFamilyName() const { return maName; }
- const String& GetSearchName() const { return maSearchName; }
- const String& GetAliasNames() const { return maMapNames; }
- bool IsScalable() const { return mpFirst->IsScalable(); }
- int GetMinQuality() const { return mnMinQuality; }
-
- bool AddFontFace( ImplFontData* );
- void InitMatchData( const utl::FontSubstConfiguration&,
- const String& rSearchName );
- ImplFontData* FindBestFontFace( const ImplFontSelectData& rFSD ) const;
-
- void GetFontHeights( std::set<int>& rHeights ) const;
- void UpdateDevFontList( ImplGetDevFontList& ) const;
- void UpdateCloneFontList( ImplDevFontList&,
- bool bScalable, bool bEmbeddable ) const;
-
-private:
-friend class ImplDevFontList; // TODO: remove soon
- ImplFontData* mpFirst; // linked list of physical font faces
- String maName; // Fontname (original font family name)
- String maSearchName; // normalized font family name
- String maMapNames; // fontname aliases
- sal_uIntPtr mnTypeFaces; // Typeface Flags
- sal_uIntPtr mnMatchType; // MATCH - Type
- String maMatchFamilyName; // MATCH - FamilyName
- FontWeight meMatchWeight; // MATCH - Weight
- FontWidth meMatchWidth; // MATCH - Width
- FontFamily meFamily;
- FontPitch mePitch;
- int mnMinQuality; // quality of the worst font face
-};
-
-
-// ----------------------
-// - ImplGetDevFontList -
-// ----------------------
-
-// an ImplGetDevFontList is created by an ImplDevFontList
-// it becomes invalid when original ImplDevFontList is modified
-class ImplGetDevFontList
-{
-private:
- std::vector<ImplFontData*> maDevFontVector;
-
-public:
- ImplGetDevFontList() { maDevFontVector.reserve(1024); }
- void Add( ImplFontData* pFace ) { maDevFontVector.push_back( pFace ); }
- ImplFontData* Get( int nIndex ) const { return maDevFontVector[ nIndex ]; }
- int Count() const { return maDevFontVector.size(); }
-};
-
-// ----------------------
-// - ImplGetDevSizeList -
-// ----------------------
-
-class ImplGetDevSizeList
-{
-private:
- String maFontName;
- std::vector<int> maSizeList;
-
-public:
- ImplGetDevSizeList( const String& rFontName )
- : maFontName( rFontName ) { maSizeList.reserve( 32 ); }
- void Add( int nHeight ) { maSizeList.push_back( nHeight ); }
- int Count() const { return maSizeList.size(); }
- int Get( int nIndex ) const { return maSizeList[ nIndex ]; }
- const String& GetFontName() const { return maFontName; }
-};
-
-// ------------------------
-// - ImplFontSubstitution -
-// ------------------------
-// nowadays these substitutions are needed for backward compatibility and tight platform integration:
-// - substitutions from configuration entries (Tools->Options->FontReplacement and/or fontconfig)
-// - device specific substitutions (e.g. for PS printer builtin fonts)
-// - substitutions for missing fonts defined by configuration entries (generic and/or platform dependent fallbacks)
-// - substitutions for missing fonts defined by multi-token fontnames (e.g. fontname="SpecialFont;FallbackA;FallbackB")
-// - substitutions for incomplete fonts (implicit, generic, EUDC and/or platform dependent fallbacks)
-// - substitutions for missing symbol fonts by translating code points into other symbol fonts
-
-class ImplFontSubstitution
-{
- // TODO: there is more commonality between the different substitutions
-protected:
- virtual ~ImplFontSubstitution() {}
-};
-
-// ImplDirectFontSubstitution is for Tools->Options->FontReplacement and PsPrinter substitutions
-// The clss is just a simple port of the unmaintainable manual-linked-list based mechanism
-// TODO: get rid of this class when the Tools->Options->FontReplacement tabpage is gone for good
-
-struct ImplFontSubstEntry
-{
- String maName;
- String maReplaceName;
- String maSearchName;
- String maSearchReplaceName;
- sal_uInt16 mnFlags;
-
- ImplFontSubstEntry( const String& rFontName, const String& rSubstFontName, sal_uInt16 nSubstFlags );
-};
-
-class ImplDirectFontSubstitution
-: public ImplFontSubstitution
-{
-private:
- typedef std::list<ImplFontSubstEntry> FontSubstList;
- FontSubstList maFontSubstList;
-public:
- void AddFontSubstitute( const String& rFontName, const String& rSubstName, sal_uInt16 nFlags );
- void RemoveFontSubstitute( int nIndex );
- bool GetFontSubstitute( int nIndex, String& rFontName, String& rSubstName, sal_uInt16& rFlags ) const;
- int GetFontSubstituteCount() const { return maFontSubstList.size(); };
- bool Empty() const { return maFontSubstList.empty(); }
- void Clear() { maFontSubstList.clear(); }
-
- bool FindFontSubstitute( String& rSubstName, const String& rFontName, sal_uInt16 nFlags ) const;
-};
-
-// PreMatchFontSubstitution
-// abstracts the concept of a configured font substitution
-// before the availability of the originally selected font has been checked
-class ImplPreMatchFontSubstitution
-: public ImplFontSubstitution
-{
-public:
- virtual bool FindFontSubstitute( ImplFontSelectData& ) const = 0;
-};
-
-// ImplGlyphFallbackFontSubstitution
-// abstracts the concept of finding the best font to support an incomplete font
-class ImplGlyphFallbackFontSubstitution
-: public ImplFontSubstitution
-{
-public:
- virtual bool FindFontSubstitute( ImplFontSelectData&, rtl::OUString& rMissingCodes ) const = 0;
-};
-
-// -----------------
-// - ImplFontCache -
-// -----------------
-// TODO: closely couple with ImplDevFontList
-
-class ImplFontCache
-{
-private:
- ImplFontEntry* mpFirstEntry;
- int mnRef0Count; // number of unreferenced ImplFontEntries
- bool mbPrinter;
-
- // cache of recently used font instances
- struct IFSD_Equal { bool operator()( const ImplFontSelectData&, const ImplFontSelectData& ) const; };
- struct IFSD_Hash { size_t operator()( const ImplFontSelectData& ) const; };
- typedef ::std::hash_map<ImplFontSelectData,ImplFontEntry*,IFSD_Hash,IFSD_Equal > FontInstanceList;
- FontInstanceList maFontInstanceList;
-
- // cache of recently requested font names vs. selected font names
- typedef ::std::hash_map<String,String,FontNameHash> FontNameList;
- FontNameList maFontNameList;
-
-public:
- ImplFontCache( bool bPrinter );
- ~ImplFontCache();
-
- ImplFontEntry* GetFontEntry( ImplDevFontList*,
- const Font&, const Size& rPixelSize, float fExactHeight,
- ImplDirectFontSubstitution* pDevSpecific );
- ImplFontEntry* GetFontEntry( ImplDevFontList*,
- ImplFontSelectData&, ImplDirectFontSubstitution* pDevSpecific );
- ImplFontEntry* GetGlyphFallbackFont( ImplDevFontList*, ImplFontSelectData&,
- int nFallbackLevel, rtl::OUString& rMissingCodes );
- void Release( ImplFontEntry* );
- void Invalidate();
-};
-
-// ------------------
-// - ImplOutDevData -
-// ------------------
-
-namespace vcl { struct ControlLayoutData; }
-// #i75163#
-namespace basegfx { class B2DHomMatrix; }
-
-struct ImplOutDevData
-{
- VirtualDevice* mpRotateDev;
- vcl::ControlLayoutData* mpRecordLayout;
- Rectangle maRecordRect;
- ImplDirectFontSubstitution maDevFontSubst;
-
- // #i75163#
- basegfx::B2DHomMatrix* mpViewTransform;
- basegfx::B2DHomMatrix* mpInverseViewTransform;
-};
-
-void ImplFreeOutDevFontData();
-
-#endif // _SV_OUTDEV_H