/*
 * DO NOT EDIT.  THIS FILE IS GENERATED FROM nsIFreeType2.idl
 */

#ifndef __gen_nsIFreeType2_h__
#define __gen_nsIFreeType2_h__


#ifndef __gen_nsISupports_h__
#include "nsISupports.h"
#endif

/* For IDL files that don't want to include root IDL files. */
#ifndef NS_NO_VTABLE
#define NS_NO_VTABLE
#endif
#include <ft2build.h>
#include FT_FREETYPE_H
#include FT_CACHE_H
#include FT_CACHE_IMAGE_H
#include FT_OUTLINE_H
#include FT_TRUETYPE_TABLES_H
#define NS_FREETYPE2_CONTRACTID "@mozilla.org/freetype2;1"
#define NS_FREETYPE2_CID NS_IFREETYPE2_IID

/* starting interface:    nsIFreeType2 */
#define NS_IFREETYPE2_IID_STR "606eac78-16d4-486a-9f0e-f180aebd449b"

#define NS_IFREETYPE2_IID \
  {0x606eac78, 0x16d4, 0x486a, \
    { 0x9f, 0x0e, 0xf1, 0x80, 0xae, 0xbd, 0x44, 0x9b }}

class NS_NO_VTABLE nsIFreeType2 : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_IFREETYPE2_IID)

  /* readonly attribute FT_Library library; */
  NS_IMETHOD GetLibrary(FT_Library *aLibrary) = 0;

  /* readonly attribute FTC_Manager FTCacheManager; */
  NS_IMETHOD GetFTCacheManager(FTC_Manager *aFTCacheManager) = 0;

  /* readonly attribute FTC_Image_Cache ImageCache; */
  NS_IMETHOD GetImageCache(FTC_Image_Cache *aImageCache) = 0;

  /* void doneFace (in FT_Face face); */
  NS_IMETHOD DoneFace(FT_Face face) = 0;

  /* void doneFreeType (in FT_Library lib); */
  NS_IMETHOD DoneFreeType(FT_Library lib) = 0;

  /* void doneGlyph (in FT_Glyph glyph); */
  NS_IMETHOD DoneGlyph(FT_Glyph glyph) = 0;

  /* FT_UInt getCharIndex (in FT_Face face, in FT_ULong charcode); */
  NS_IMETHOD GetCharIndex(FT_Face face, FT_ULong charcode, FT_UInt *_retval) = 0;

  /* void getGlyph (in FT_GlyphSlot slot, out FT_Glyph glyph); */
  NS_IMETHOD GetGlyph(FT_GlyphSlot slot, FT_Glyph *glyph) = 0;

  /* voidPtr getSfntTable (in FT_Face face, in FT_Sfnt_Tag tag); */
  NS_IMETHOD GetSfntTable(FT_Face face, FT_Sfnt_Tag tag, void * *_retval) = 0;

  /* void glyphGetCBox (in FT_Glyph glyph, in FT_UInt mode, out FT_BBox box); */
  NS_IMETHOD GlyphGetCBox(FT_Glyph glyph, FT_UInt mode, FT_BBox *box) = 0;

  /* void initFreeType (out FT_Library lib); */
  NS_IMETHOD InitFreeType(FT_Library *lib) = 0;

  /* void loadGlyph (in FT_Face face, in FT_UInt gindex, in FT_Int flags); */
  NS_IMETHOD LoadGlyph(FT_Face face, FT_UInt gindex, FT_Int flags) = 0;

  /* void newFace (in FT_Library lib, in constCharPtr filename, in FT_Long face_num, out FT_Face face); */
  NS_IMETHOD NewFace(FT_Library lib, const char * filename, FT_Long face_num, FT_Face *face) = 0;

  /* void outlineDecompose (in FT_Outline_p outline, in const_FT_Outline_Funcs_p funcs, in voidPtr p); */
  NS_IMETHOD OutlineDecompose(FT_Outline * outline, const FT_Outline_Funcs * funcs, void * p) = 0;

  /* void setCharmap (in FT_Face face, in FT_CharMap charmap); */
  NS_IMETHOD SetCharmap(FT_Face face, FT_CharMap charmap) = 0;

  /* void imageCacheLookup (in FTC_Image_Cache cache, in FTC_Image_Desc_p desc, in FT_UInt gindex, out FT_Glyph glyph); */
  NS_IMETHOD ImageCacheLookup(FTC_Image_Cache cache, FTC_Image_Desc * desc, FT_UInt gindex, FT_Glyph *glyph) = 0;

  /* void managerLookupSize (in FTC_Manager manager, in FTC_Font font, out FT_Face face, out FT_Size size); */
  NS_IMETHOD ManagerLookupSize(FTC_Manager manager, FTC_Font font, FT_Face *face, FT_Size *size) = 0;

  /* void managerDone (in FTC_Manager manager); */
  NS_IMETHOD ManagerDone(FTC_Manager manager) = 0;

  /* void managerNew (in FT_Library lib, in FT_UInt max_faces, in FT_UInt max_sizes, in FT_ULong max_bytes, in FTC_Face_Requester requester, in FT_Pointer req_data, out FTC_Manager manager); */
  NS_IMETHOD ManagerNew(FT_Library lib, FT_UInt max_faces, FT_UInt max_sizes, FT_ULong max_bytes, FTC_Face_Requester requester, FT_Pointer req_data, FTC_Manager *manager) = 0;

  /* void imageCacheNew (in FTC_Manager manager, out FTC_Image_Cache cache); */
  NS_IMETHOD ImageCacheNew(FTC_Manager manager, FTC_Image_Cache *cache) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIFREETYPE2 \
  NS_IMETHOD GetLibrary(FT_Library *aLibrary); \
  NS_IMETHOD GetFTCacheManager(FTC_Manager *aFTCacheManager); \
  NS_IMETHOD GetImageCache(FTC_Image_Cache *aImageCache); \
  NS_IMETHOD DoneFace(FT_Face face); \
  NS_IMETHOD DoneFreeType(FT_Library lib); \
  NS_IMETHOD DoneGlyph(FT_Glyph glyph); \
  NS_IMETHOD GetCharIndex(FT_Face face, FT_ULong charcode, FT_UInt *_retval); \
  NS_IMETHOD GetGlyph(FT_GlyphSlot slot, FT_Glyph *glyph); \
  NS_IMETHOD GetSfntTable(FT_Face face, FT_Sfnt_Tag tag, void * *_retval); \
  NS_IMETHOD GlyphGetCBox(FT_Glyph glyph, FT_UInt mode, FT_BBox *box); \
  NS_IMETHOD InitFreeType(FT_Library *lib); \
  NS_IMETHOD LoadGlyph(FT_Face face, FT_UInt gindex, FT_Int flags); \
  NS_IMETHOD NewFace(FT_Library lib, const char * filename, FT_Long face_num, FT_Face *face); \
  NS_IMETHOD OutlineDecompose(FT_Outline * outline, const FT_Outline_Funcs * funcs, void * p); \
  NS_IMETHOD SetCharmap(FT_Face face, FT_CharMap charmap); \
  NS_IMETHOD ImageCacheLookup(FTC_Image_Cache cache, FTC_Image_Desc * desc, FT_UInt gindex, FT_Glyph *glyph); \
  NS_IMETHOD ManagerLookupSize(FTC_Manager manager, FTC_Font font, FT_Face *face, FT_Size *size); \
  NS_IMETHOD ManagerDone(FTC_Manager manager); \
  NS_IMETHOD ManagerNew(FT_Library lib, FT_UInt max_faces, FT_UInt max_sizes, FT_ULong max_bytes, FTC_Face_Requester requester, FT_Pointer req_data, FTC_Manager *manager); \
  NS_IMETHOD ImageCacheNew(FTC_Manager manager, FTC_Image_Cache *cache); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIFREETYPE2(_to) \
  NS_IMETHOD GetLibrary(FT_Library *aLibrary) { return _to GetLibrary(aLibrary); } \
  NS_IMETHOD GetFTCacheManager(FTC_Manager *aFTCacheManager) { return _to GetFTCacheManager(aFTCacheManager); } \
  NS_IMETHOD GetImageCache(FTC_Image_Cache *aImageCache) { return _to GetImageCache(aImageCache); } \
  NS_IMETHOD DoneFace(FT_Face face) { return _to DoneFace(face); } \
  NS_IMETHOD DoneFreeType(FT_Library lib) { return _to DoneFreeType(lib); } \
  NS_IMETHOD DoneGlyph(FT_Glyph glyph) { return _to DoneGlyph(glyph); } \
  NS_IMETHOD GetCharIndex(FT_Face face, FT_ULong charcode, FT_UInt *_retval) { return _to GetCharIndex(face, charcode, _retval); } \
  NS_IMETHOD GetGlyph(FT_GlyphSlot slot, FT_Glyph *glyph) { return _to GetGlyph(slot, glyph); } \
  NS_IMETHOD GetSfntTable(FT_Face face, FT_Sfnt_Tag tag, void * *_retval) { return _to GetSfntTable(face, tag, _retval); } \
  NS_IMETHOD GlyphGetCBox(FT_Glyph glyph, FT_UInt mode, FT_BBox *box) { return _to GlyphGetCBox(glyph, mode, box); } \
  NS_IMETHOD InitFreeType(FT_Library *lib) { return _to InitFreeType(lib); } \
  NS_IMETHOD LoadGlyph(FT_Face face, FT_UInt gindex, FT_Int flags) { return _to LoadGlyph(face, gindex, flags); } \
  NS_IMETHOD NewFace(FT_Library lib, const char * filename, FT_Long face_num, FT_Face *face) { return _to NewFace(lib, filename, face_num, face); } \
  NS_IMETHOD OutlineDecompose(FT_Outline * outline, const FT_Outline_Funcs * funcs, void * p) { return _to OutlineDecompose(outline, funcs, p); } \
  NS_IMETHOD SetCharmap(FT_Face face, FT_CharMap charmap) { return _to SetCharmap(face, charmap); } \
  NS_IMETHOD ImageCacheLookup(FTC_Image_Cache cache, FTC_Image_Desc * desc, FT_UInt gindex, FT_Glyph *glyph) { return _to ImageCacheLookup(cache, desc, gindex, glyph); } \
  NS_IMETHOD ManagerLookupSize(FTC_Manager manager, FTC_Font font, FT_Face *face, FT_Size *size) { return _to ManagerLookupSize(manager, font, face, size); } \
  NS_IMETHOD ManagerDone(FTC_Manager manager) { return _to ManagerDone(manager); } \
  NS_IMETHOD ManagerNew(FT_Library lib, FT_UInt max_faces, FT_UInt max_sizes, FT_ULong max_bytes, FTC_Face_Requester requester, FT_Pointer req_data, FTC_Manager *manager) { return _to ManagerNew(lib, max_faces, max_sizes, max_bytes, requester, req_data, manager); } \
  NS_IMETHOD ImageCacheNew(FTC_Manager manager, FTC_Image_Cache *cache) { return _to ImageCacheNew(manager, cache); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIFREETYPE2(_to) \
  NS_IMETHOD GetLibrary(FT_Library *aLibrary) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLibrary(aLibrary); } \
  NS_IMETHOD GetFTCacheManager(FTC_Manager *aFTCacheManager) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFTCacheManager(aFTCacheManager); } \
  NS_IMETHOD GetImageCache(FTC_Image_Cache *aImageCache) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetImageCache(aImageCache); } \
  NS_IMETHOD DoneFace(FT_Face face) { return !_to ? NS_ERROR_NULL_POINTER : _to->DoneFace(face); } \
  NS_IMETHOD DoneFreeType(FT_Library lib) { return !_to ? NS_ERROR_NULL_POINTER : _to->DoneFreeType(lib); } \
  NS_IMETHOD DoneGlyph(FT_Glyph glyph) { return !_to ? NS_ERROR_NULL_POINTER : _to->DoneGlyph(glyph); } \
  NS_IMETHOD GetCharIndex(FT_Face face, FT_ULong charcode, FT_UInt *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCharIndex(face, charcode, _retval); } \
  NS_IMETHOD GetGlyph(FT_GlyphSlot slot, FT_Glyph *glyph) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetGlyph(slot, glyph); } \
  NS_IMETHOD GetSfntTable(FT_Face face, FT_Sfnt_Tag tag, void * *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSfntTable(face, tag, _retval); } \
  NS_IMETHOD GlyphGetCBox(FT_Glyph glyph, FT_UInt mode, FT_BBox *box) { return !_to ? NS_ERROR_NULL_POINTER : _to->GlyphGetCBox(glyph, mode, box); } \
  NS_IMETHOD InitFreeType(FT_Library *lib) { return !_to ? NS_ERROR_NULL_POINTER : _to->InitFreeType(lib); } \
  NS_IMETHOD LoadGlyph(FT_Face face, FT_UInt gindex, FT_Int flags) { return !_to ? NS_ERROR_NULL_POINTER : _to->LoadGlyph(face, gindex, flags); } \
  NS_IMETHOD NewFace(FT_Library lib, const char * filename, FT_Long face_num, FT_Face *face) { return !_to ? NS_ERROR_NULL_POINTER : _to->NewFace(lib, filename, face_num, face); } \
  NS_IMETHOD OutlineDecompose(FT_Outline * outline, const FT_Outline_Funcs * funcs, void * p) { return !_to ? NS_ERROR_NULL_POINTER : _to->OutlineDecompose(outline, funcs, p); } \
  NS_IMETHOD SetCharmap(FT_Face face, FT_CharMap charmap) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCharmap(face, charmap); } \
  NS_IMETHOD ImageCacheLookup(FTC_Image_Cache cache, FTC_Image_Desc * desc, FT_UInt gindex, FT_Glyph *glyph) { return !_to ? NS_ERROR_NULL_POINTER : _to->ImageCacheLookup(cache, desc, gindex, glyph); } \
  NS_IMETHOD ManagerLookupSize(FTC_Manager manager, FTC_Font font, FT_Face *face, FT_Size *size) { return !_to ? NS_ERROR_NULL_POINTER : _to->ManagerLookupSize(manager, font, face, size); } \
  NS_IMETHOD ManagerDone(FTC_Manager manager) { return !_to ? NS_ERROR_NULL_POINTER : _to->ManagerDone(manager); } \
  NS_IMETHOD ManagerNew(FT_Library lib, FT_UInt max_faces, FT_UInt max_sizes, FT_ULong max_bytes, FTC_Face_Requester requester, FT_Pointer req_data, FTC_Manager *manager) { return !_to ? NS_ERROR_NULL_POINTER : _to->ManagerNew(lib, max_faces, max_sizes, max_bytes, requester, req_data, manager); } \
  NS_IMETHOD ImageCacheNew(FTC_Manager manager, FTC_Image_Cache *cache) { return !_to ? NS_ERROR_NULL_POINTER : _to->ImageCacheNew(manager, cache); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class nsFreeType2 : public nsIFreeType2
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIFREETYPE2

  nsFreeType2();
  virtual ~nsFreeType2();
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsFreeType2, nsIFreeType2)

nsFreeType2::nsFreeType2()
{
  NS_INIT_ISUPPORTS();
  /* member initializers and constructor code */
}

nsFreeType2::~nsFreeType2()
{
  /* destructor code */
}

/* readonly attribute FT_Library library; */
NS_IMETHODIMP nsFreeType2::GetLibrary(FT_Library *aLibrary)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute FTC_Manager FTCacheManager; */
NS_IMETHODIMP nsFreeType2::GetFTCacheManager(FTC_Manager *aFTCacheManager)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute FTC_Image_Cache ImageCache; */
NS_IMETHODIMP nsFreeType2::GetImageCache(FTC_Image_Cache *aImageCache)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void doneFace (in FT_Face face); */
NS_IMETHODIMP nsFreeType2::DoneFace(FT_Face face)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void doneFreeType (in FT_Library lib); */
NS_IMETHODIMP nsFreeType2::DoneFreeType(FT_Library lib)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void doneGlyph (in FT_Glyph glyph); */
NS_IMETHODIMP nsFreeType2::DoneGlyph(FT_Glyph glyph)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* FT_UInt getCharIndex (in FT_Face face, in FT_ULong charcode); */
NS_IMETHODIMP nsFreeType2::GetCharIndex(FT_Face face, FT_ULong charcode, FT_UInt *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getGlyph (in FT_GlyphSlot slot, out FT_Glyph glyph); */
NS_IMETHODIMP nsFreeType2::GetGlyph(FT_GlyphSlot slot, FT_Glyph *glyph)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* voidPtr getSfntTable (in FT_Face face, in FT_Sfnt_Tag tag); */
NS_IMETHODIMP nsFreeType2::GetSfntTable(FT_Face face, FT_Sfnt_Tag tag, void * *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void glyphGetCBox (in FT_Glyph glyph, in FT_UInt mode, out FT_BBox box); */
NS_IMETHODIMP nsFreeType2::GlyphGetCBox(FT_Glyph glyph, FT_UInt mode, FT_BBox *box)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void initFreeType (out FT_Library lib); */
NS_IMETHODIMP nsFreeType2::InitFreeType(FT_Library *lib)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void loadGlyph (in FT_Face face, in FT_UInt gindex, in FT_Int flags); */
NS_IMETHODIMP nsFreeType2::LoadGlyph(FT_Face face, FT_UInt gindex, FT_Int flags)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void newFace (in FT_Library lib, in constCharPtr filename, in FT_Long face_num, out FT_Face face); */
NS_IMETHODIMP nsFreeType2::NewFace(FT_Library lib, const char * filename, FT_Long face_num, FT_Face *face)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void outlineDecompose (in FT_Outline_p outline, in const_FT_Outline_Funcs_p funcs, in voidPtr p); */
NS_IMETHODIMP nsFreeType2::OutlineDecompose(FT_Outline * outline, const FT_Outline_Funcs * funcs, void * p)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setCharmap (in FT_Face face, in FT_CharMap charmap); */
NS_IMETHODIMP nsFreeType2::SetCharmap(FT_Face face, FT_CharMap charmap)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void imageCacheLookup (in FTC_Image_Cache cache, in FTC_Image_Desc_p desc, in FT_UInt gindex, out FT_Glyph glyph); */
NS_IMETHODIMP nsFreeType2::ImageCacheLookup(FTC_Image_Cache cache, FTC_Image_Desc * desc, FT_UInt gindex, FT_Glyph *glyph)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void managerLookupSize (in FTC_Manager manager, in FTC_Font font, out FT_Face face, out FT_Size size); */
NS_IMETHODIMP nsFreeType2::ManagerLookupSize(FTC_Manager manager, FTC_Font font, FT_Face *face, FT_Size *size)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void managerDone (in FTC_Manager manager); */
NS_IMETHODIMP nsFreeType2::ManagerDone(FTC_Manager manager)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void managerNew (in FT_Library lib, in FT_UInt max_faces, in FT_UInt max_sizes, in FT_ULong max_bytes, in FTC_Face_Requester requester, in FT_Pointer req_data, out FTC_Manager manager); */
NS_IMETHODIMP nsFreeType2::ManagerNew(FT_Library lib, FT_UInt max_faces, FT_UInt max_sizes, FT_ULong max_bytes, FTC_Face_Requester requester, FT_Pointer req_data, FTC_Manager *manager)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void imageCacheNew (in FTC_Manager manager, out FTC_Image_Cache cache); */
NS_IMETHODIMP nsFreeType2::ImageCacheNew(FTC_Manager manager, FTC_Image_Cache *cache)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif


#endif /* __gen_nsIFreeType2_h__ */
