Merge to XFA: Tidy public/ directory.
[pdfium.git] / public / fpdf_sysfontinfo.h
index 275ca84..dbadb89 100644 (file)
 // 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 _FPDF_SYSFONTINFO_H
-#define _FPDF_SYSFONTINFO_H
+#ifndef PUBLIC_FPDF_SYSFONTINFO_H_
+#define PUBLIC_FPDF_SYSFONTINFO_H_
 
 #include "fpdfview.h"
 
 /* Character sets for the font */
-#define FXFONT_ANSI_CHARSET            0
-#define FXFONT_DEFAULT_CHARSET 1
-#define FXFONT_SYMBOL_CHARSET  2
-#define FXFONT_SHIFTJIS_CHARSET        128
-#define FXFONT_HANGEUL_CHARSET 129
-#define FXFONT_GB2312_CHARSET  134
-#define FXFONT_CHINESEBIG5_CHARSET     136
+#define FXFONT_ANSI_CHARSET     0
+#define FXFONT_DEFAULT_CHARSET  1
+#define FXFONT_SYMBOL_CHARSET   2
+#define FXFONT_SHIFTJIS_CHARSET 128
+#define FXFONT_HANGEUL_CHARSET  129
+#define FXFONT_GB2312_CHARSET   134
+#define FXFONT_CHINESEBIG5_CHARSET  136
 
 /* Font pitch and family flags */
-#define FXFONT_FF_FIXEDPITCH   1
-#define FXFONT_FF_ROMAN                        (1<<4)
-#define FXFONT_FF_SCRIPT               (4<<4)
+#define FXFONT_FF_FIXEDPITCH    1
+#define FXFONT_FF_ROMAN         (1<<4)
+#define FXFONT_FF_SCRIPT        (4<<4)
 
 /* Typical weight values */
-#define FXFONT_FW_NORMAL               400
-#define FXFONT_FW_BOLD                 700
+#define FXFONT_FW_NORMAL        400
+#define FXFONT_FW_BOLD          700
 
 // Exported Functions
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-/** 
+/**
  * Interface: FPDF_SYSFONTINFO
- *                     Interface for getting system font information and font mapping
+ *          Interface for getting system font information and font mapping
  */
 typedef struct _FPDF_SYSFONTINFO {
-       /**
-        * Version number of the interface. Currently must be 1.
-        **/
-       int     version;
+    /**
+     * Version number of the interface. Currently must be 1.
+     **/
+    int version;
+
+    /**
+     * Method: Release
+     *          Give implementation a chance to release any data after the interface is no longer used
+     * Interface Version:
+     *          1
+     * Implementation Required:
+     *          No
+     * Comments:
+     *          Called by Foxit SDK during the final cleanup process.
+     * Parameters:
+     *          pThis       -   Pointer to the interface structure itself
+     * Return Value:
+     *          None
+     */
+    void (*Release)(struct _FPDF_SYSFONTINFO* pThis);
+
+    /**
+     * Method: EnumFonts
+     *          Enumerate all fonts installed on the system
+     * Interface Version:
+     *          1
+     * Implementation Required:
+     *          No
+     * Comments:
+     *          Implementation should call FPDF_AddIntalledFont() function for each font found.
+     *          Only TrueType/OpenType and Type1 fonts are accepted by Foxit SDK.
+     * Parameters:
+     *          pThis       -   Pointer to the interface structure itself
+     *          pMapper     -   An opaque pointer to internal font mapper, used when calling FPDF_AddInstalledFont
+     * Return Value:
+     *          None
+     */
+    void (*EnumFonts)(struct _FPDF_SYSFONTINFO* pThis, void* pMapper);
 
-       /** 
-        * Method: Release
-        *                      Give implementation a chance to release any data after the interface is no longer used
-        * Interface Version:
-        *                      1
-        * Implementation Required:
-        *                      No
-        * Comments:
-        *                      Called by Foxit SDK during the final cleanup process.
-        * Parameters:
-        *                      pThis           -       Pointer to the interface structure itself
-        * Return Value:
-        *                      None
-        */
-       void (*Release)(struct _FPDF_SYSFONTINFO* pThis);
-       
-       /**
-        * Method: EnumFonts
-        *                      Enumerate all fonts installed on the system
-        * Interface Version:
-        *                      1
-        * Implementation Required:
-        *                      No
-        * Comments:
-        *                      Implementation should call FPDF_AddIntalledFont() function for each font found.
-        *                      Only TrueType/OpenType and Type1 fonts are accepted by Foxit SDK.
-        * Parameters:
-        *                      pThis           -       Pointer to the interface structure itself
-        *                      pMapper         -       An opaque pointer to internal font mapper, used when calling FPDF_AddInstalledFont
-        * Return Value:
-        *                      None
-        */
-       void (*EnumFonts)(struct _FPDF_SYSFONTINFO* pThis, void* pMapper);
+    /**
+     * Method: MapFont
+     *          Use the system font mapper to get a font handle from requested parameters
+     * Interface Version:
+     *          1
+     * Implementation Required:
+     *          Yes only if GetFont method is not implemented.
+     * Comments:
+     *          If the system supports native font mapper (like Windows), implementation can implement this method to get a font handle.
+     *          Otherwise, Foxit SDK will do the mapping and then call GetFont method.
+     *          Only TrueType/OpenType and Type1 fonts are accepted by Foxit SDK.
+     * Parameters:
+     *          pThis       -   Pointer to the interface structure itself
+     *          weight      -   Weight of the requested font. 400 is normal and 700 is bold.
+     *          bItalic     -   Italic option of the requested font, TRUE or FALSE.
+     *          charset     -   Character set identifier for the requested font. See above defined constants.
+     *          pitch_family -  A combination of flags. See above defined constants.
+     *          face        -   Typeface name. Currently use system local encoding only.
+     *          bExact      -   Pointer to an boolean value receiving the indicator whether mapper found the exact match.
+     *                          If mapper is not sure whether it's exact match, ignore this paramter.
+     * Return Value:
+     *          An opaque pointer for font handle, or NULL if system mapping is not supported.
+     **/
+    void* (*MapFont)(struct _FPDF_SYSFONTINFO* pThis, int weight, int bItalic, int charset, int pitch_family,
+                        const char* face, int* bExact);
 
-       /**
-        * Method: MapFont
-        *                      Use the system font mapper to get a font handle from requested parameters
-        * Interface Version:
-        *                      1
-        * Implementation Required:
-        *                      Yes only if GetFont method is not implemented.
-        * Comments:
-        *                      If the system supports native font mapper (like Windows), implementation can implement this method to get a font handle. 
-        *                      Otherwise, Foxit SDK will do the mapping and then call GetFont method.
-        *                      Only TrueType/OpenType and Type1 fonts are accepted by Foxit SDK.
-        * Parameters:
-        *                      pThis           -       Pointer to the interface structure itself
-        *                      weight          -       Weight of the requested font. 400 is normal and 700 is bold.
-        *                      bItalic         -       Italic option of the requested font, TRUE or FALSE.
-        *                      charset         -       Character set identifier for the requested font. See above defined constants.
-        *                      pitch_family -  A combination of flags. See above defined constants.
-        *                      face            -       Typeface name. Currently use system local encoding only.
-        *                      bExact          -       Pointer to an boolean value receiving the indicator whether mapper found the exact match.
-        *                                                      If mapper is not sure whether it's exact match, ignore this paramter.
-        * Return Value:
-        *                      An opaque pointer for font handle, or NULL if system mapping is not supported.
-        **/
-       void* (*MapFont)(struct _FPDF_SYSFONTINFO* pThis, int weight, int bItalic, int charset, int pitch_family, 
-                                               const char* face, int* bExact);
+    /**
+     * Method: GetFont
+     *          Get a handle to a particular font by its internal ID
+     * Interface Version:
+     *          1
+     * Implementation Required:
+     *          Yes only if MapFont method is not implemented.
+     * Comments:
+     *          If the system mapping not supported, Foxit SDK will do the font mapping and use this method to get a font handle.
+     * Parameters:
+     *          pThis       -   Pointer to the interface structure itself
+     *          face        -   Typeface name. Currently use system local encoding only.
+     * Return Value:
+     *          An opaque pointer for font handle.
+     **/
+    void* (*GetFont)(struct _FPDF_SYSFONTINFO* pThis, const char* face);
 
-       /**
-        * Method: GetFont
-        *                      Get a handle to a particular font by its internal ID
-        * Interface Version:
-        *                      1
-        * Implementation Required:
-        *                      Yes only if MapFont method is not implemented.
-        * Comments:
-        *                      If the system mapping not supported, Foxit SDK will do the font mapping and use this method to get a font handle.
-        * Parameters:
-        *                      pThis           -       Pointer to the interface structure itself
-        *                      face            -       Typeface name. Currently use system local encoding only.
-        * Return Value:
-        *                      An opaque pointer for font handle.
-        **/
-       void* (*GetFont)(struct _FPDF_SYSFONTINFO* pThis, const char* face);
+    /**
+     * Method: GetFontData
+     *          Get font data from a font
+     * Interface Version:
+     *          1
+     * Implementation Required:
+     *          Yes
+     * Comments:
+     *          Can read either full font file, or a particular TrueType/OpenType table
+     * Parameters:
+     *          pThis       -   Pointer to the interface structure itself
+     *          hFont       -   Font handle returned by MapFont or GetFont method
+     *          table       -   TrueType/OpenType table identifier (refer to TrueType specification).
+     *                          0 for the whole font file.
+     *          buffer      -   The buffer receiving the font data. Can be NULL if not provided
+     *          buf_size    -   Buffer size, can be zero if not provided
+     * Return Value:
+     *          Number of bytes needed, if buffer not provided or not large enough,
+     *          or number of bytes written into buffer otherwise.
+     **/
+    unsigned long (*GetFontData)(struct _FPDF_SYSFONTINFO* pThis, void* hFont,
+            unsigned int table, unsigned char* buffer, unsigned long buf_size);
 
-       /**
-        * Method: GetFontData
-        *                      Get font data from a font
-        * Interface Version:
-        *                      1
-        * Implementation Required:
-        *                      Yes
-        * Comments:
-        *                      Can read either full font file, or a particular TrueType/OpenType table
-        * Parameters:
-        *                      pThis           -       Pointer to the interface structure itself
-        *                      hFont           -       Font handle returned by MapFont or GetFont method
-        *                      table           -       TrueType/OpenType table identifier (refer to TrueType specification).
-        *                                                      0 for the whole font file.
-        *                      buffer          -       The buffer receiving the font data. Can be NULL if not provided
-        *                      buf_size        -       Buffer size, can be zero if not provided
-        * Return Value:
-        *                      Number of bytes needed, if buffer not provided or not large enough,
-        *                      or number of bytes written into buffer otherwise.
-        **/
-       unsigned long (*GetFontData)(struct _FPDF_SYSFONTINFO* pThis, void* hFont,
-                       unsigned int table, unsigned char* buffer, unsigned long buf_size);
+    /**
+     * Method: GetFaceName
+     *          Get face name from a font handle
+     * Interface Version:
+     *          1
+     * Implementation Required:
+     *          No
+     * Parameters:
+     *          pThis       -   Pointer to the interface structure itself
+     *          hFont       -   Font handle returned by MapFont or GetFont method
+     *          buffer      -   The buffer receiving the face name. Can be NULL if not provided
+     *          buf_size    -   Buffer size, can be zero if not provided
+     * Return Value:
+     *          Number of bytes needed, if buffer not provided or not large enough,
+     *          or number of bytes written into buffer otherwise.
+     **/
+    unsigned long (*GetFaceName)(struct _FPDF_SYSFONTINFO* pThis, void* hFont, char* buffer, unsigned long buf_size);
 
-       /**
-        * Method: GetFaceName
-        *                      Get face name from a font handle
-        * Interface Version:
-        *                      1
-        * Implementation Required:
-        *                      No
-        * Parameters:
-        *                      pThis           -       Pointer to the interface structure itself
-        *                      hFont           -       Font handle returned by MapFont or GetFont method
-        *                      buffer          -       The buffer receiving the face name. Can be NULL if not provided
-        *                      buf_size        -       Buffer size, can be zero if not provided
-        * Return Value:
-        *                      Number of bytes needed, if buffer not provided or not large enough,
-        *                      or number of bytes written into buffer otherwise.
-        **/
-       unsigned long (*GetFaceName)(struct _FPDF_SYSFONTINFO* pThis, void* hFont, char* buffer, unsigned long buf_size);
-                       
-       /**
-        * Method: GetFontCharset
-        *                      Get character set information for a font handle
-        * Interface Version:
-        *                      1
-        * Implementation Required:
-        *                      No
-        * Parameters:
-        *                      pThis           -       Pointer to the interface structure itself
-        *                      hFont           -       Font handle returned by MapFont or GetFont method
-        * Return Value:
-        *                      Character set identifier. See defined constants above.
-        **/
-       int (*GetFontCharset)(struct _FPDF_SYSFONTINFO* pThis, void* hFont);
+    /**
+     * Method: GetFontCharset
+     *          Get character set information for a font handle
+     * Interface Version:
+     *          1
+     * Implementation Required:
+     *          No
+     * Parameters:
+     *          pThis       -   Pointer to the interface structure itself
+     *          hFont       -   Font handle returned by MapFont or GetFont method
+     * Return Value:
+     *          Character set identifier. See defined constants above.
+     **/
+    int (*GetFontCharset)(struct _FPDF_SYSFONTINFO* pThis, void* hFont);
 
-       /**
-        * Method: DeleteFont
-        *                      Delete a font handle
-        * Interface Version:
-        *                      1
-        * Implementation Required:
-        *                      Yes
-        * Parameters:
-        *                      pThis           -       Pointer to the interface structure itself
-        *                      hFont           -       Font handle returned by MapFont or GetFont method
-        * Return Value:
-        *                      None
-        **/
-       void (*DeleteFont)(struct _FPDF_SYSFONTINFO* pThis, void* hFont);
+    /**
+     * Method: DeleteFont
+     *          Delete a font handle
+     * Interface Version:
+     *          1
+     * Implementation Required:
+     *          Yes
+     * Parameters:
+     *          pThis       -   Pointer to the interface structure itself
+     *          hFont       -   Font handle returned by MapFont or GetFont method
+     * Return Value:
+     *          None
+     **/
+    void (*DeleteFont)(struct _FPDF_SYSFONTINFO* pThis, void* hFont);
 } FPDF_SYSFONTINFO;
 
 /**
@@ -215,48 +215,48 @@ DLLEXPORT const FPDF_CharsetFontMap* STDCALL FPDF_GetDefaultTTFMap();
 
 /**
  * Function: FPDF_AddInstalledFont
- *                     Add a system font to the list in Foxit SDK.
+ *          Add a system font to the list in Foxit SDK.
  * Comments:
- *                     This function is only called during the system font list building process.
+ *          This function is only called during the system font list building process.
  * Parameters:
- *                     mapper                  -       Opaque pointer to Foxit font mapper
- *                     face                    -       The font face name
- *                     charset                 -       Font character set. See above defined constants.
+ *          mapper          -   Opaque pointer to Foxit font mapper
+ *          face            -   The font face name
+ *          charset         -   Font character set. See above defined constants.
  * Return Value:
- *                     None.
+ *          None.
  **/
 DLLEXPORT void STDCALL FPDF_AddInstalledFont(void* mapper, const char* face, int charset);
 
 /**
  * Function: FPDF_SetSystemFontInfo
- *                     Set the system font info interface into Foxit SDK
+ *          Set the system font info interface into Foxit SDK
  * Comments:
- *                     Platform support implementation should implement required methods of FFDF_SYSFONTINFO interface,
- *                     then call this function during SDK initialization process.
+ *          Platform support implementation should implement required methods of FFDF_SYSFONTINFO interface,
+ *          then call this function during SDK initialization process.
  * Parameters:
- *                     pFontInfo               -       Pointer to a FPDF_SYSFONTINFO structure
+ *          pFontInfo       -   Pointer to a FPDF_SYSFONTINFO structure
  * Return Value:
- *                     None
+ *          None
  **/
 DLLEXPORT void STDCALL FPDF_SetSystemFontInfo(FPDF_SYSFONTINFO* pFontInfo);
 
 /**
  * Function: FPDF_GetDefaultSystemFontInfo
- *                     Get default system font info interface for current platform
+ *          Get default system font info interface for current platform
  * Comments:
- *                     For some platforms Foxit SDK implement a default version of system font info interface.
- *                     The default implementation can be used in FPDF_SetSystemFontInfo function.
+ *          For some platforms Foxit SDK implement a default version of system font info interface.
+ *          The default implementation can be used in FPDF_SetSystemFontInfo function.
  * Parameters:
- *                     None
+ *          None
  * Return Value:
- *                     Pointer to a FPDF_SYSFONTINFO structure describing the default interface.
- *                     Or NULL if the platform doesn't have a default interface.
- *                     Application should call FPDF_FreeMemory to free the returned pointer.
+ *          Pointer to a FPDF_SYSFONTINFO structure describing the default interface.
+ *          Or NULL if the platform doesn't have a default interface.
+ *          Application should call FPDF_FreeMemory to free the returned pointer.
  **/
 DLLEXPORT FPDF_SYSFONTINFO* STDCALL FPDF_GetDefaultSystemFontInfo();
 
 #ifdef __cplusplus
-};
+}
 #endif
 
-#endif // _FPDF_SYSFONTINFO_H
+#endif  // PUBLIC_FPDF_SYSFONTINFO_H_