home *** CD-ROM | disk | FTP | other *** search
/ Tools / WinSN5.0Ver.iso / NETSCAP.50 / WIN1998.ZIP / ns / modules / libfont / src / Pcf.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-04-08  |  1.9 KB  |  65 lines

  1. /* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*-
  2.  *
  3.  * The contents of this file are subject to the Netscape Public License
  4.  * Version 1.0 (the "NPL"); you may not use this file except in
  5.  * compliance with the NPL.  You may obtain a copy of the NPL at
  6.  * http://www.mozilla.org/NPL/
  7.  *
  8.  * Software distributed under the NPL is distributed on an "AS IS" basis,
  9.  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
  10.  * for the specific language governing rights and limitations under the
  11.  * NPL.
  12.  *
  13.  * The Initial Developer of this code under the NPL is Netscape
  14.  * Communications Corporation.  Portions created by Netscape are
  15.  * Copyright (C) 1998 Netscape Communications Corporation.  All Rights
  16.  * Reserved.
  17.  */
  18. /* 
  19.  *
  20.  * Implements a link between the (cf) CFont Interface and
  21.  * its C++ implementation viz (f) FontObject.
  22.  *
  23.  * dp Suresh <dp@netscape.com>
  24.  */
  25.  
  26.  
  27. #ifndef _Pcf_H_
  28. #define _Pcf_H_
  29.  
  30. #include "Mnfrc.h"
  31. #include "Mcf.h"            /* Generated header */
  32.  
  33. struct cfImpl {
  34.   cfImplHeader    header;
  35.   void *object;                /* FontObject * */
  36. };
  37.  
  38. /* The generated getInterface used the wrong object IDS. So we
  39.  * override them with ours.
  40.  */
  41. #define OVERRIDE_cf_getInterface
  42.  
  43. /* The generated finalize doesn't have provision to free the
  44.  * private data that we create inside the object. So we
  45.  * override the finalize method and implement destruction
  46.  * of our private data.
  47.  */
  48. #define OVERRIDE_cf_finalize
  49.  
  50. /* We are doing much more with the reference counting mechanism.
  51.  * cf has all these refcounting it
  52.  *    1. the users of the nff
  53.  *    2. the fonthandles in the nff
  54.  *
  55.  * Other places a pointer to nff is stored but these dont increment
  56.  * the refcount:
  57.  *    1. FontObjectCache
  58.  *    2. FontObject has a self member which is the nff
  59.  *
  60.  * We override the release to put a hook in for out FontObject
  61.  * Garbage Collector to run.
  62. */
  63. #define OVERRIDE_cf_release
  64. #endif /* _Pcf_H_ */
  65.