summaryrefslogtreecommitdiff
path: root/xfa/src/fgas/font/fgas_gefont.h
diff options
context:
space:
mode:
authorDan Sinclair <dsinclair@chromium.org>2016-03-09 13:49:00 -0500
committerDan Sinclair <dsinclair@chromium.org>2016-03-09 13:49:00 -0500
commit9332e0c2fced598a632e3bbe905b6f63b1f5b06b (patch)
treea8957a09cb34ecd28afcd6ebbed309d9c60e4644 /xfa/src/fgas/font/fgas_gefont.h
parent8388037a5c58d60043b11c03a8efe78c54c65a4b (diff)
downloadpdfium-9332e0c2fced598a632e3bbe905b6f63b1f5b06b.tar.xz
Cleanup the xfa/src/fgas directory.
This CL moves the code from xfa/src/fgas/src up one level. It then takes the headers in xfa/src/fgas/include and moves them to their correct folder. The src/ and include/ directories are then removed. In some cases, when moving from include/ there was another header with the same name. Those headers were either folded together, or the content of the conflicting folder moved to an anonymous namespace in the cpp file as they were not used anywhere else. Files with duplicate names as core/src/crt were renamed to be fgas_ instead of fx_. (e.g. fgas_system.h, fgas_memory.h, fgas_stream.h) R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1776303002 .
Diffstat (limited to 'xfa/src/fgas/font/fgas_gefont.h')
-rw-r--r--xfa/src/fgas/font/fgas_gefont.h92
1 files changed, 92 insertions, 0 deletions
diff --git a/xfa/src/fgas/font/fgas_gefont.h b/xfa/src/fgas/font/fgas_gefont.h
new file mode 100644
index 0000000000..1bc8a6a902
--- /dev/null
+++ b/xfa/src/fgas/font/fgas_gefont.h
@@ -0,0 +1,92 @@
+// Copyright 2014 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_SRC_FGAS_FONT_FGAS_GEFONT_H_
+#define XFA_SRC_FGAS_FONT_FGAS_GEFONT_H_
+
+#include "xfa/src/fgas/crt/fgas_utils.h"
+#include "xfa/src/fgas/font/fgas_font.h"
+
+#define FXFONT_SUBST_ITALIC 0x02
+
+class CFX_GEFont : public IFX_Font {
+ public:
+ CFX_GEFont(const CFX_GEFont& src, FX_DWORD dwFontStyles);
+ CFX_GEFont(IFX_FontMgr* pFontMgr);
+ ~CFX_GEFont();
+ virtual void Release();
+ virtual IFX_Font* Retain();
+ FX_BOOL LoadFont(const FX_WCHAR* pszFontFamily,
+ FX_DWORD dwFontStyles,
+ FX_WORD wCodePage);
+ FX_BOOL LoadFont(const uint8_t* pBuffer, int32_t length);
+ FX_BOOL LoadFont(const FX_WCHAR* pszFileName);
+ FX_BOOL LoadFont(IFX_Stream* pFontStream, FX_BOOL bSaveStream);
+ FX_BOOL LoadFont(CFX_Font* pExtFont, FX_BOOL bTakeOver = FALSE);
+ virtual IFX_Font* Derive(FX_DWORD dwFontStyles, FX_WORD wCodePage = 0);
+ virtual void GetFamilyName(CFX_WideString& wsFamily) const;
+ virtual void GetPsName(CFX_WideString& wsName) const;
+ virtual FX_DWORD GetFontStyles() const;
+ virtual uint8_t GetCharSet() const;
+ virtual FX_BOOL GetCharWidth(FX_WCHAR wUnicode,
+ int32_t& iWidth,
+ FX_BOOL bCharCode = FALSE);
+ virtual int32_t GetGlyphIndex(FX_WCHAR wUnicode, FX_BOOL bCharCode = FALSE);
+ virtual int32_t GetAscent() const;
+ virtual int32_t GetDescent() const;
+ virtual FX_BOOL GetCharBBox(FX_WCHAR wUnicode,
+ CFX_Rect& bbox,
+ FX_BOOL bCharCode = FALSE);
+ virtual FX_BOOL GetBBox(CFX_Rect& bbox);
+ virtual int32_t GetItalicAngle() const;
+ virtual void Reset();
+ virtual IFX_Font* GetSubstFont(int32_t iGlyphIndex) const;
+ virtual void* GetDevFont() const { return (void*)m_pFont; }
+ virtual void SetFontProvider(IFX_FontProvider* pProvider) {
+ m_pProvider = pProvider;
+ }
+#if _FXM_PLATFORM_ != _FXM_PLATFORM_WINDOWS_
+ virtual void SetLogicalFontStyle(FX_DWORD dwLogFontStyle) {
+ m_bUseLogFontStyle = TRUE;
+ m_dwLogFontStyle = dwLogFontStyle;
+ }
+#endif
+
+ protected:
+#if _FXM_PLATFORM_ != _FXM_PLATFORM_WINDOWS_
+ FX_BOOL m_bUseLogFontStyle;
+ FX_DWORD m_dwLogFontStyle;
+#endif
+ CFX_Font* m_pFont;
+ IFX_FontMgr* m_pFontMgr;
+ int32_t m_iRefCount;
+ FX_BOOL m_bExtFont;
+ IFX_Stream* m_pStream;
+ IFX_FileRead* m_pFileRead;
+ CFX_UnicodeEncoding* m_pFontEncoding;
+ CFX_WordDiscreteArray* m_pCharWidthMap;
+ CFX_RectMassArray* m_pRectArray;
+ CFX_MapPtrToPtr* m_pBBoxMap;
+ IFX_FontProvider* m_pProvider;
+ FX_WORD m_wCharSet;
+ CFX_PtrArray m_SubstFonts;
+ CFX_MapPtrToPtr m_FontMapper;
+ FX_BOOL InitFont();
+ FX_BOOL GetCharBBox(FX_WCHAR wUnicode,
+ CFX_Rect& bbox,
+ FX_BOOL bRecursive,
+ FX_BOOL bCharCode = FALSE);
+ FX_BOOL GetCharWidth(FX_WCHAR wUnicode,
+ int32_t& iWidth,
+ FX_BOOL bRecursive,
+ FX_BOOL bCharCode = FALSE);
+ int32_t GetGlyphIndex(FX_WCHAR wUnicode,
+ FX_BOOL bRecursive,
+ IFX_Font** ppFont,
+ FX_BOOL bCharCode = FALSE);
+};
+
+#endif // XFA_SRC_FGAS_FONT_FGAS_GEFONT_H_