home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 7 / FreshFishVol7.bin / bbs / gnu / aplusplus-1.01-src.lha / GNU / src / amiga / APlusPlus-1.01 / libsource / FontC.cxx < prev    next >
C/C++ Source or Header  |  1994-05-07  |  2KB  |  91 lines

  1. /******************************************************************************
  2.  **
  3.  **    C++ Class Library for the Amiga© system software.
  4.  **
  5.  **    Copyright (C) 1994 by Armin Vogt  **  EMail: armin@uni-paderborn.de
  6.  **    All Rights Reserved.
  7.  **
  8.  **    $Source: apphome:APlusPlus/RCS/libsource/FontC.cxx,v $
  9.  **    $Revision: 1.5 $
  10.  **    $Date: 1994/05/07 15:02:41 $
  11.  **    $Author: Armin_Vogt $
  12.  **
  13.  ******************************************************************************/
  14.  
  15.  
  16. extern "C" {
  17. #ifdef __GNUG__
  18. #include <dos/dos.h>
  19. #include <inline/diskfont.h>
  20. #include <inline/graphics.h>
  21. #endif
  22.  
  23. #ifdef __SASC
  24. #include <proto/diskfont.h>
  25. #include <proto/graphics.h>
  26. #endif
  27. }
  28.  
  29. #include <APlusPlus/intuition/IntuiRoot.h>
  30. #include <APlusPlus/graphics/FontC.h>
  31.  
  32.  
  33. volatile static char rcs_id[] = "$Id: FontC.cxx,v 1.5 1994/05/07 15:02:41 Armin_Vogt Exp Armin_Vogt $";
  34.  
  35.  
  36. void FontC::create(UBYTE *fontName,UWORD ySize,UBYTE style,UBYTE flags)
  37. {
  38.     struct TextAttr ta = { (STRPTR)fontName,ySize,style,flags };
  39.     if (fontName==NULL) ta.ta_Name = IntuiRoot::getRootScreen()->screenPtr()->Font->ta_Name;
  40.     if (ySize==0) ta.ta_YSize = IntuiRoot::getRootScreen()->screenPtr()->Font->ta_YSize;
  41.     font = OpenDiskFont(&ta);    
  42. }
  43.  
  44. FontC::FontC(UBYTE *fontName,UWORD ySize,UBYTE style,UBYTE flags)
  45. {
  46.     create(fontName,ySize,style,flags);
  47. }
  48.  
  49. FontC::FontC(struct TextAttr *ta)
  50. {
  51.     font = OpenDiskFont(ta);
  52. }
  53.  
  54. FontC::FontC(struct TextFont *tf)
  55. {
  56.     create((UBYTE*)tf->tf_Message.mn_Node.ln_Name,tf->tf_YSize,tf->tf_Style,tf->tf_Flags);
  57. }
  58. void FontC::copy(const FontC& from)
  59. {
  60.     create((UBYTE*)from.font->tf_Message.mn_Node.ln_Name,from.font->tf_YSize,from.font->tf_Style,from.font->tf_Flags);
  61. }
  62.  
  63. FontC::FontC(const FontC& from)
  64. {
  65.     copy(from);
  66. }    
  67.  
  68. FontC& FontC::operator = (const FontC& from)
  69. {
  70.     if (this!=&from)
  71.     {
  72.         copy(from);
  73.     }
  74.     return *this;
  75. }
  76.  
  77. FontC::operator const struct TextAttr * () const
  78. {
  79.     static struct TextAttr ta = { 
  80.             (STRPTR)font->tf_Message.mn_Node.ln_Name,
  81.             font->tf_YSize,
  82.             font->tf_Style,
  83.             font->tf_Flags     };
  84.     return &ta;
  85. }
  86.  
  87. FontC::~FontC()
  88. {
  89.     CloseFont(font);
  90. }
  91.