CCPanose Class Reference

Class to hold and manipulate Panose numbers See also: class FontMan, class ATMFontMan, class TTFontMan. More...

#include <ccpanose.h>

Inheritance diagram for CCPanose:

CCObject SimpleCCObject List of all members.

Public Member Functions

 CCPanose ()
 Default constructor for class CCPanose.
 CCPanose (const PANOSE &PanoseNumber)
 Constructor.
void SetAllToAny ()
 Sets all 10 components of the Panose number to PAN_ANY.
void SetAll (BYTE, BYTE, BYTE, BYTE, BYTE, BYTE, BYTE, BYTE, BYTE, BYTE)
 Sets the components of the Panose number to those given.
void operator= (const CCPanose &x)
 Copies a CCPanose object.
BOOL BodgePanoseNumber (BOOL Bold, BOOL Italic)
 Bodges the bold and italic flags into the Weight and Letterform components.
BOOL BodgeToNormal ()
 Bodges the Panose number to normalise it, i.e. regular weight, non-italic. See Also: CCPanose::BodgePanoseNumber.
void SetFamilyType (BYTE value)
void SetSerifStyle (BYTE value)
void SetWeight (BYTE value)
void SetProportion (BYTE value)
void SetContrast (BYTE value)
void SetStrokeVariation (BYTE value)
void SetArmStyle (BYTE value)
void SetLetterform (BYTE value)
void SetMidline (BYTE value)
void SetXHeight (BYTE value)
BYTE GetFamilyType () const
BYTE GetSerifStyle () const
BYTE GetWeight () const
BYTE GetProportion () const
BYTE GetContrast () const
BYTE GetStrokeVariation () const
BYTE GetArmStyle () const
BYTE GetLetterform () const
BYTE GetMidline () const
BYTE GetXHeight () const
void GetDebugDetails (StringBase *Str)
 Adds to PANOSE debug information to (*Str).

Static Public Member Functions

static UINT32 Distance (const CCPanose &x, const CCPanose &y)
 Calculates the distance between x and y See Also: class CCPanose.

Static Private Member Functions

static UINT32 DistanceFamilyType (BYTE x, BYTE y)
static UINT32 DistanceSerifStyle (BYTE x, BYTE y)
static UINT32 DistanceWeight (BYTE x, BYTE y)
static UINT32 DistanceProportion (BYTE x, BYTE y)
static UINT32 DistanceContrast (BYTE x, BYTE y)
static UINT32 DistanceStrokeVariation (BYTE x, BYTE y)
static UINT32 DistanceArmStyle (BYTE x, BYTE y)
static UINT32 DistanceLetterform (BYTE x, BYTE y)
static UINT32 DistanceMidline (BYTE x, BYTE y)
static UINT32 DistanceXHeight (BYTE x, BYTE y)

Private Attributes

BYTE mFamilyType
BYTE mSerifStyle
BYTE mWeight
BYTE mProportion
BYTE mContrast
BYTE mStrokeVariation
BYTE mArmStyle
BYTE mLetterform
BYTE mMidline
BYTE mXHeight

Detailed Description

Class to hold and manipulate Panose numbers See also: class FontMan, class ATMFontMan, class TTFontMan.

Author:
Andy_Hayward (Xara Group Ltd) <camelotdev@xara.com>
Date:
24/05/96 Base Class: CCObject

Definition at line 251 of file ccpanose.h.


Constructor & Destructor Documentation

CCPanose::CCPanose  ) 
 

Default constructor for class CCPanose.

Author:
Andy_Hayward (Xara Group Ltd) <camelotdev@xara.com>
Date:
24/05/96
Parameters:
- [INPUTS]
Returns:
-

Definition at line 125 of file ccpanose.cpp.

00126 {
00127     SetAllToAny();
00128 }

CCPanose::CCPanose const PANOSE PanoseNumber  ) 
 

Constructor.

Author:
Andy_Hayward (Xara Group Ltd) <camelotdev@xara.com>
Date:
15/08/96
Parameters:
PanoseNumber - panose number to copy [INPUTS]
Returns:
-

Definition at line 142 of file ccpanose.cpp.

00143 {
00144     mFamilyType         = PanoseNumber.bFamilyType;
00145     mSerifStyle         = PanoseNumber.bSerifStyle; 
00146     mWeight             = PanoseNumber.bWeight; 
00147     mProportion         = PanoseNumber.bProportion; 
00148     mContrast           = PanoseNumber.bContrast;
00149     mStrokeVariation    = PanoseNumber.bStrokeVariation; 
00150     mArmStyle           = PanoseNumber.bArmStyle; 
00151     mLetterform         = PanoseNumber.bLetterform; 
00152     mMidline            = PanoseNumber.bMidline; 
00153     mXHeight            = PanoseNumber.bXHeight;    
00154 }


Member Function Documentation

BOOL CCPanose::BodgePanoseNumber BOOL  IsBold,
BOOL  IsItalic
 

Bodges the bold and italic flags into the Weight and Letterform components.

Author:
Andy_Hayward (Xara Group Ltd) <camelotdev@xara.com>
Date:
26/07/96
Parameters:
Bold - Bold flag to bodge in [INPUTS] Italic - Italic flag to bodge in
Returns:
TRUE if successful, FALSE otherwise

Definition at line 258 of file ccpanose.cpp.

00259 {
00260     if (mFamilyType != PAN_FAMILY_PICTORIAL)
00261     {
00262         // only do this if we're not a symbol font
00263 
00264         if (IsBold==FALSE)
00265         {
00266             // regular font
00267             if (mWeight==PAN_ANY || mWeight==PAN_NO_FIT || mWeight>PAN_WEIGHT_MEDIUM)
00268             {
00269                 mWeight=PAN_WEIGHT_MEDIUM;
00270             }
00271         }
00272         else
00273         {
00274             // bold font
00275             if (mWeight==PAN_ANY || mWeight==PAN_NO_FIT || mWeight<PAN_WEIGHT_BOLD)
00276             {
00277                 mWeight=PAN_WEIGHT_BOLD;
00278             }
00279         }
00280 
00281         if (IsItalic==FALSE)
00282         {
00283             // upright font
00284             if (mLetterform==PAN_ANY || mLetterform==PAN_NO_FIT)
00285             {
00286                 mLetterform=PAN_LETT_NORMAL_CONTACT;
00287             }
00288             else if (mLetterform>=PAN_LETT_OBLIQUE_CONTACT && mLetterform<=PAN_LETT_OBLIQUE_SQUARE)
00289             {
00290                 mLetterform=mLetterform-7;      // !!HACK!!
00291             }
00292         }
00293         else
00294         {
00295             // italic font
00296             if (mLetterform==PAN_ANY || mLetterform==PAN_NO_FIT)
00297             {
00298                 mLetterform=PAN_LETT_OBLIQUE_CONTACT;
00299             }
00300             else if (mLetterform>=PAN_LETT_NORMAL_CONTACT && mLetterform<=PAN_LETT_NORMAL_SQUARE)
00301             {
00302                 mLetterform=mLetterform+7;      // !!HACK!!
00303             }
00304         }
00305 
00306     }
00307     
00308     return TRUE;    // we have succeeded, haven't we?
00309 }

BOOL CCPanose::BodgeToNormal  ) 
 

Bodges the Panose number to normalise it, i.e. regular weight, non-italic. See Also: CCPanose::BodgePanoseNumber.

Author:
Andy_Hayward (Xara Group Ltd) <camelotdev@xara.com>
Date:
19/08/96
Parameters:
- [INPUTS]
Returns:
TRUE if successful, FALSE otherwise

Definition at line 324 of file ccpanose.cpp.

00325 {
00326     return BodgePanoseNumber(FALSE, FALSE);
00327 }

UINT32 CCPanose::Distance const CCPanose x,
const CCPanose y
[static]
 

Calculates the distance between x and y See Also: class CCPanose.

Author:
Andy_Hayward (Xara Group Ltd) <camelotdev@xara.com>
Date:
19/08/96
Parameters:
x,y - CCPanose objects to determine the distance between [INPUTS]
Returns:
distance between x and y, as a CCPanoseDistance object

Definition at line 352 of file ccpanose.cpp.

00353 {
00354     UINT32 Distance = 0;
00355 
00356     Distance += DistanceFamilyType(x.mFamilyType, y.mFamilyType);
00357     Distance += DistanceSerifStyle(x.mSerifStyle, y.mSerifStyle);
00358     Distance += DistanceWeight(x.mWeight, y.mWeight);
00359     Distance += DistanceProportion(x.mProportion, y.mProportion);
00360     Distance += DistanceContrast(x.mContrast, y.mContrast);
00361     Distance += DistanceStrokeVariation(x.mStrokeVariation, y.mStrokeVariation);
00362     Distance += DistanceArmStyle(x.mArmStyle, y.mArmStyle);
00363     Distance += DistanceLetterform(x.mLetterform, y.mLetterform);
00364     Distance += DistanceMidline(x.mMidline, y.mMidline);
00365     Distance += DistanceXHeight(x.mXHeight, y.mXHeight);
00366     
00367     return Distance;
00368 }

UINT32 CCPanose::DistanceArmStyle BYTE  x,
BYTE  y
[static, private]
 

Definition at line 506 of file ccpanose.cpp.

00507 {
00508     const static UINT32 Metric[12][12] = {
00509         {0x00010000, 0x00100000, 0x00001000, 0x00001000, 0x00001000, 0x00001000, 0x00001000, 0x00001000, 0x00001000, 0x00001000, 0x00001000, 0x00001000},
00510         {0x00100000, 0x10000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000},
00511         {0x00001000, 0x01000000, 0x00000000, 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000010, 0x00000040, 0x00000040, 0x00000040, 0x00000040},
00512         {0x00001000, 0x01000000, 0x00000020, 0x00000000, 0x00000020, 0x00000020, 0x00000020, 0x00000040, 0x00000010, 0x00000040, 0x00000040, 0x00000040},
00513         {0x00001000, 0x01000000, 0x00000020, 0x00000020, 0x00000000, 0x00000020, 0x00000020, 0x00000040, 0x00000040, 0x00000010, 0x00000040, 0x00000040},
00514         {0x00001000, 0x01000000, 0x00000020, 0x00000020, 0x00000020, 0x00000000, 0x00000020, 0x00000040, 0x00000040, 0x00000040, 0x00000010, 0x00000040},
00515         {0x00001000, 0x01000000, 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000000, 0x00000040, 0x00000040, 0x00000040, 0x00000040, 0x00000010},
00516         {0x00001000, 0x01000000, 0x00000010, 0x00000040, 0x00000040, 0x00000040, 0x00000040, 0x00000000, 0x00000020, 0x00000020, 0x00000020, 0x00000020},
00517         {0x00001000, 0x01000000, 0x00000040, 0x00000010, 0x00000040, 0x00000040, 0x00000040, 0x00000020, 0x00000000, 0x00000020, 0x00000020, 0x00000020},
00518         {0x00001000, 0x01000000, 0x00000040, 0x00000040, 0x00000010, 0x00000040, 0x00000040, 0x00000020, 0x00000020, 0x00000000, 0x00000020, 0x00000020},
00519         {0x00001000, 0x01000000, 0x00000040, 0x00000040, 0x00000040, 0x00000010, 0x00000040, 0x00000020, 0x00000020, 0x00000020, 0x00000000, 0x00000020},
00520         {0x00001000, 0x01000000, 0x00000040, 0x00000040, 0x00000040, 0x00000040, 0x00000010, 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000000}};
00521 
00522     if ( x>11) x = 1;
00523     if ( y>11) y = 1;
00524 
00525     return Metric[x][y];
00526 }

UINT32 CCPanose::DistanceContrast BYTE  x,
BYTE  y
[static, private]
 

Definition at line 467 of file ccpanose.cpp.

00468 {
00469     const static UINT32 Metric[10][10] = {
00470         {0x00010000, 0x00100000, 0x00001000, 0x00001000, 0x00001000, 0x00001000, 0x00001000, 0x00001000, 0x00001000, 0x00001000},
00471         {0x00100000, 0x10000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000},
00472         {0x00001000, 0x01000000, 0x00000000, 0x00000001, 0x00000004, 0x00000009, 0x00000010, 0x00000019, 0x00000024, 0x00000031},
00473         {0x00001000, 0x01000000, 0x00000001, 0x00000000, 0x00000001, 0x00000004, 0x00000009, 0x00000010, 0x00000019, 0x00000024},
00474         {0x00001000, 0x01000000, 0x00000004, 0x00000001, 0x00000000, 0x00000001, 0x00000004, 0x00000009, 0x00000010, 0x00000019},
00475         {0x00001000, 0x01000000, 0x00000009, 0x00000004, 0x00000001, 0x00000000, 0x00000001, 0x00000004, 0x00000009, 0x00000010},
00476         {0x00001000, 0x01000000, 0x00000010, 0x00000009, 0x00000004, 0x00000001, 0x00000000, 0x00000001, 0x00000004, 0x00000009},
00477         {0x00001000, 0x01000000, 0x00000019, 0x00000010, 0x00000009, 0x00000004, 0x00000001, 0x00000000, 0x00000001, 0x00000004},
00478         {0x00001000, 0x01000000, 0x00000024, 0x00000019, 0x00000010, 0x00000009, 0x00000004, 0x00000001, 0x00000000, 0x00000001},
00479         {0x00001000, 0x01000000, 0x00000031, 0x00000024, 0x00000019, 0x00000010, 0x00000009, 0x00000004, 0x00000001, 0x00000000}};
00480 
00481     if ( x>9) x = 1;
00482     if ( y>9) y = 1;
00483 
00484     return Metric[x][y];
00485 }

UINT32 CCPanose::DistanceFamilyType BYTE  x,
BYTE  y
[static, private]
 

Definition at line 370 of file ccpanose.cpp.

00371 {
00372     //  Specifies the font family.
00373     //  
00374     //  Value   Meaning
00375     //  
00376     //      0   Any
00377     //      1   No fit
00378     //      2   Text and display
00379     //      3   Script
00380     //      4   Decorative
00381     //      5   Pictorial
00382     //  
00383     //  High weightings, since we _really_ want a font from the same family.
00384     
00385     const static UINT32 Metric[6][6] = {
00386         {0x00010000, 0x00100000, 0x00001000, 0x00001000, 0x00001000, 0x00001000},
00387         {0x00100000, 0x10000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000},
00388         {0x00001000, 0x01000000, 0x00000000, 0x000000ff, 0x000000ff, 0x000000ff},
00389         {0x00001000, 0x01000000, 0x000000ff, 0x00000000, 0x000000ff, 0x000000ff},
00390         {0x00001000, 0x01000000, 0x000000ff, 0x000000ff, 0x00000000, 0x000000ff},
00391         {0x00001000, 0x01000000, 0x000000ff, 0x000000ff, 0x000000ff, 0x00000000}};
00392 
00393     if ( x>5) x = 1;
00394     if ( y>5) y = 1;
00395 
00396     return Metric[x][y];
00397 }

UINT32 CCPanose::DistanceLetterform BYTE  x,
BYTE  y
[static, private]
 

Definition at line 528 of file ccpanose.cpp.

00529 {
00530     const static UINT32 Metric[16][16] = {
00531         {0x00010000, 0x00100000, 0x00001000, 0x00001000, 0x00001000, 0x00001000, 0x00001000, 0x00001000, 0x00001000, 0x00001000, 0x00001000, 0x00001000, 0x00001000, 0x00001000, 0x00001000, 0x00001000},
00532         {0x00100000, 0x10000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000},
00533         {0x00001000, 0x01000000, 0x00000000, 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000010, 0x00000040, 0x00000040, 0x00000040, 0x00000040, 0x00000040, 0x00000040},
00534         {0x00001000, 0x01000000, 0x00000020, 0x00000000, 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000040, 0x00000010, 0x00000040, 0x00000040, 0x00000040, 0x00000040, 0x00000040},
00535         {0x00001000, 0x01000000, 0x00000020, 0x00000020, 0x00000000, 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000040, 0x00000040, 0x00000010, 0x00000040, 0x00000040, 0x00000040, 0x00000040},
00536         {0x00001000, 0x01000000, 0x00000020, 0x00000020, 0x00000020, 0x00000000, 0x00000020, 0x00000020, 0x00000020, 0x00000040, 0x00000040, 0x00000040, 0x00000010, 0x00000040, 0x00000040, 0x00000040},
00537         {0x00001000, 0x01000000, 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000000, 0x00000020, 0x00000020, 0x00000040, 0x00000040, 0x00000040, 0x00000040, 0x00000010, 0x00000040, 0x00000040},
00538         {0x00001000, 0x01000000, 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000000, 0x00000020, 0x00000040, 0x00000040, 0x00000040, 0x00000040, 0x00000040, 0x00000010, 0x00000040},
00539         {0x00001000, 0x01000000, 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000000, 0x00000040, 0x00000040, 0x00000040, 0x00000040, 0x00000040, 0x00000040, 0x00000010},
00540         {0x00001000, 0x01000000, 0x00000010, 0x00000040, 0x00000040, 0x00000040, 0x00000040, 0x00000040, 0x00000040, 0x00000000, 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000020},
00541         {0x00001000, 0x01000000, 0x00000040, 0x00000010, 0x00000040, 0x00000040, 0x00000040, 0x00000040, 0x00000040, 0x00000020, 0x00000000, 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000020},
00542         {0x00001000, 0x01000000, 0x00000040, 0x00000040, 0x00000010, 0x00000040, 0x00000040, 0x00000040, 0x00000040, 0x00000020, 0x00000020, 0x00000000, 0x00000020, 0x00000020, 0x00000020, 0x00000020},
00543         {0x00001000, 0x01000000, 0x00000040, 0x00000040, 0x00000040, 0x00000010, 0x00000040, 0x00000040, 0x00000040, 0x00000020, 0x00000020, 0x00000020, 0x00000000, 0x00000020, 0x00000020, 0x00000020},
00544         {0x00001000, 0x01000000, 0x00000040, 0x00000040, 0x00000040, 0x00000040, 0x00000010, 0x00000040, 0x00000040, 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000000, 0x00000020, 0x00000020},
00545         {0x00001000, 0x01000000, 0x00000040, 0x00000040, 0x00000040, 0x00000040, 0x00000040, 0x00000010, 0x00000040, 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000000, 0x00000020},
00546         {0x00001000, 0x01000000, 0x00000040, 0x00000040, 0x00000040, 0x00000040, 0x00000040, 0x00000040, 0x00000010, 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000000}};
00547 
00548     if ( x>15) x = 1;
00549     if ( y>15) y = 1;
00550 
00551     return Metric[x][y];
00552 }

UINT32 CCPanose::DistanceMidline BYTE  x,
BYTE  y
[static, private]
 

Definition at line 554 of file ccpanose.cpp.

00555 {
00556     const static UINT32 Metric[14][14] = {
00557         {0x00010000, 0x00100000, 0x00001000, 0x00001000, 0x00001000, 0x00001000, 0x00001000, 0x00001000, 0x00001000, 0x00001000, 0x00001000, 0x00001000, 0x00001000, 0x00001000},
00558         {0x00100000, 0x10000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000},
00559         {0x00001000, 0x01000000, 0x00000000, 0x00000010, 0x00000010, 0x00000020, 0x00000040, 0x00000040, 0x00000020, 0x00000040, 0x00000040, 0x00000020, 0x00000040, 0x00000040},
00560         {0x00001000, 0x01000000, 0x00000010, 0x00000000, 0x00000010, 0x00000040, 0x00000020, 0x00000040, 0x00000040, 0x00000020, 0x00000040, 0x00000040, 0x00000020, 0x00000040},
00561         {0x00001000, 0x01000000, 0x00000010, 0x00000010, 0x00000000, 0x00000040, 0x00000040, 0x00000020, 0x00000040, 0x00000040, 0x00000020, 0x00000040, 0x00000040, 0x00000020},
00562         {0x00001000, 0x01000000, 0x00000020, 0x00000040, 0x00000040, 0x00000000, 0x00000010, 0x00000010, 0x00000020, 0x00000040, 0x00000040, 0x00000020, 0x00000040, 0x00000040},
00563         {0x00001000, 0x01000000, 0x00000040, 0x00000020, 0x00000040, 0x00000010, 0x00000000, 0x00000010, 0x00000040, 0x00000020, 0x00000040, 0x00000040, 0x00000020, 0x00000040},
00564         {0x00001000, 0x01000000, 0x00000040, 0x00000040, 0x00000020, 0x00000010, 0x00000010, 0x00000000, 0x00000040, 0x00000040, 0x00000020, 0x00000040, 0x00000040, 0x00000020},
00565         {0x00001000, 0x01000000, 0x00000020, 0x00000040, 0x00000040, 0x00000020, 0x00000040, 0x00000040, 0x00000000, 0x00000010, 0x00000010, 0x00000020, 0x00000040, 0x00000040},
00566         {0x00001000, 0x01000000, 0x00000040, 0x00000020, 0x00000040, 0x00000040, 0x00000020, 0x00000040, 0x00000010, 0x00000000, 0x00000010, 0x00000040, 0x00000020, 0x00000040},
00567         {0x00001000, 0x01000000, 0x00000040, 0x00000040, 0x00000020, 0x00000040, 0x00000040, 0x00000020, 0x00000010, 0x00000010, 0x00000000, 0x00000040, 0x00000040, 0x00000020},
00568         {0x00001000, 0x01000000, 0x00000020, 0x00000040, 0x00000040, 0x00000020, 0x00000040, 0x00000040, 0x00000020, 0x00000040, 0x00000040, 0x00000000, 0x00000010, 0x00000010},
00569         {0x00001000, 0x01000000, 0x00000040, 0x00000020, 0x00000040, 0x00000040, 0x00000020, 0x00000040, 0x00000040, 0x00000020, 0x00000040, 0x00000010, 0x00000000, 0x00000010},
00570         {0x00001000, 0x01000000, 0x00000040, 0x00000040, 0x00000020, 0x00000040, 0x00000040, 0x00000020, 0x00000040, 0x00000040, 0x00000020, 0x00000010, 0x00000010, 0x00000000}};
00571 
00572     if ( x>13) x = 1;
00573     if ( y>13) y = 1;
00574 
00575     return Metric[x][y];
00576 }

UINT32 CCPanose::DistanceProportion BYTE  x,
BYTE  y
[static, private]
 

Definition at line 447 of file ccpanose.cpp.

00448 {
00449     const static UINT32 Metric[10][10] = {
00450         {0x00010000, 0x00100000, 0x00001000, 0x00001000, 0x00001000, 0x00001000, 0x00001000, 0x00001000, 0x00001000, 0x00001000},
00451         {0x00100000, 0x10000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000},
00452         {0x00001000, 0x01000000, 0x00000000, 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000020},
00453         {0x00001000, 0x01000000, 0x00000020, 0x00000000, 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000020},
00454         {0x00001000, 0x01000000, 0x00000020, 0x00000020, 0x00000000, 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000020},
00455         {0x00001000, 0x01000000, 0x00000020, 0x00000020, 0x00000020, 0x00000000, 0x00000040, 0x00000004, 0x00000080, 0x00000040},
00456         {0x00001000, 0x01000000, 0x00000020, 0x00000020, 0x00000020, 0x00000040, 0x00000000, 0x00000080, 0x00000004, 0x00000040},
00457         {0x00001000, 0x01000000, 0x00000020, 0x00000020, 0x00000020, 0x00000004, 0x00000080, 0x00000000, 0x000000c0, 0x00000080},
00458         {0x00001000, 0x01000000, 0x00000020, 0x00000020, 0x00000020, 0x00000080, 0x00000004, 0x000000c0, 0x00000000, 0x00000080},
00459         {0x00001000, 0x01000000, 0x00000020, 0x00000020, 0x00000020, 0x00000040, 0x00000040, 0x00000080, 0x00000080, 0x00000000}};
00460 
00461     if ( x>9) x = 1;
00462     if ( y>9) y = 1;
00463 
00464     return Metric[x][y];
00465 }

UINT32 CCPanose::DistanceSerifStyle BYTE  x,
BYTE  y
[static, private]
 

Definition at line 399 of file ccpanose.cpp.

00400 {
00401     const static UINT32 Metric[16][16] = {
00402         {0x00010000, 0x00100000, 0x00001000, 0x00001000, 0x00001000, 0x00001000, 0x00001000, 0x00001000, 0x00001000, 0x00001000, 0x00001000, 0x00001000, 0x00001000, 0x00001000, 0x00001000, 0x00001000},
00403         {0x00100000, 0x10000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000},
00404         {0x00001000, 0x01000000, 0x00000000, 0x00000004, 0x00000004, 0x00000004, 0x00000010, 0x00000010, 0x00000010, 0x00000010, 0x00000010, 0x00000040, 0x00000040, 0x00000040, 0x00000010, 0x00000010},
00405         {0x00001000, 0x01000000, 0x00000004, 0x00000000, 0x00000004, 0x00000004, 0x00000010, 0x00000010, 0x00000010, 0x00000010, 0x00000010, 0x00000040, 0x00000040, 0x00000040, 0x00000010, 0x00000010},
00406         {0x00001000, 0x01000000, 0x00000004, 0x00000004, 0x00000000, 0x00000004, 0x00000010, 0x00000010, 0x00000010, 0x00000010, 0x00000010, 0x00000040, 0x00000040, 0x00000040, 0x00000010, 0x00000010},
00407         {0x00001000, 0x01000000, 0x00000004, 0x00000004, 0x00000004, 0x00000000, 0x00000010, 0x00000010, 0x00000010, 0x00000010, 0x00000010, 0x00000040, 0x00000040, 0x00000040, 0x00000010, 0x00000010},
00408         {0x00001000, 0x01000000, 0x00000010, 0x00000010, 0x00000010, 0x00000010, 0x00000000, 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000040, 0x00000040, 0x00000040, 0x00000020, 0x00000020},
00409         {0x00001000, 0x01000000, 0x00000010, 0x00000010, 0x00000010, 0x00000010, 0x00000020, 0x00000000, 0x00000020, 0x00000020, 0x00000020, 0x00000040, 0x00000040, 0x00000040, 0x00000020, 0x00000020},
00410         {0x00001000, 0x01000000, 0x00000010, 0x00000010, 0x00000010, 0x00000010, 0x00000020, 0x00000020, 0x00000000, 0x00000020, 0x00000020, 0x00000040, 0x00000040, 0x00000040, 0x00000020, 0x00000020},
00411         {0x00001000, 0x01000000, 0x00000010, 0x00000010, 0x00000010, 0x00000010, 0x00000020, 0x00000020, 0x00000020, 0x00000000, 0x00000020, 0x00000040, 0x00000040, 0x00000040, 0x00000020, 0x00000020},
00412         {0x00001000, 0x01000000, 0x00000010, 0x00000010, 0x00000010, 0x00000010, 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000000, 0x00000040, 0x00000040, 0x00000040, 0x00000020, 0x00000020},
00413         {0x00001000, 0x01000000, 0x00000040, 0x00000040, 0x00000040, 0x00000040, 0x00000040, 0x00000040, 0x00000040, 0x00000040, 0x00000040, 0x00000000, 0x00000010, 0x00000010, 0x00000040, 0x00000040},
00414         {0x00001000, 0x01000000, 0x00000040, 0x00000040, 0x00000040, 0x00000040, 0x00000040, 0x00000040, 0x00000040, 0x00000040, 0x00000040, 0x00000010, 0x00000000, 0x00000010, 0x00000040, 0x00000040},
00415         {0x00001000, 0x01000000, 0x00000040, 0x00000040, 0x00000040, 0x00000040, 0x00000040, 0x00000040, 0x00000040, 0x00000040, 0x00000040, 0x00000010, 0x00000010, 0x00000000, 0x00000040, 0x00000040},
00416         {0x00001000, 0x01000000, 0x00000010, 0x00000010, 0x00000010, 0x00000010, 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000040, 0x00000040, 0x00000040, 0x00000000, 0x00000020},
00417         {0x00001000, 0x01000000, 0x00000010, 0x00000010, 0x00000010, 0x00000010, 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000040, 0x00000040, 0x00000040, 0x00000020, 0x00000000}};
00418 
00419     if ( x>15) x = 1;
00420     if ( y>15) y = 1;
00421 
00422     return Metric[x][y];
00423 }

UINT32 CCPanose::DistanceStrokeVariation BYTE  x,
BYTE  y
[static, private]
 

Definition at line 487 of file ccpanose.cpp.

00488 {
00489     const static UINT32 Metric[9][9] = {
00490         {0x00010000, 0x00100000, 0x00001000, 0x00001000, 0x00001000, 0x00001000, 0x00001000, 0x00001000, 0x00001000},
00491         {0x00100000, 0x10000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000},
00492         {0x00001000, 0x01000000, 0x00000000, 0x00000010, 0x00000010, 0x00000010, 0x00000020, 0x00000020, 0x00000040},
00493         {0x00001000, 0x01000000, 0x00000010, 0x00000000, 0x00000010, 0x00000010, 0x00000020, 0x00000020, 0x00000040},
00494         {0x00001000, 0x01000000, 0x00000010, 0x00000010, 0x00000000, 0x00000010, 0x00000020, 0x00000020, 0x00000040},
00495         {0x00001000, 0x01000000, 0x00000010, 0x00000010, 0x00000010, 0x00000000, 0x00000020, 0x00000020, 0x00000040},
00496         {0x00001000, 0x01000000, 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000000, 0x00000010, 0x00000020},
00497         {0x00001000, 0x01000000, 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000010, 0x00000000, 0x00000020},
00498         {0x00001000, 0x01000000, 0x00000040, 0x00000040, 0x00000040, 0x00000040, 0x00000020, 0x00000020, 0x00000000}};
00499 
00500     if ( x>8) x = 1;
00501     if ( y>8) y = 1;
00502 
00503     return Metric[x][y];
00504 }

UINT32 CCPanose::DistanceWeight BYTE  x,
BYTE  y
[static, private]
 

Definition at line 425 of file ccpanose.cpp.

00426 {
00427     const static UINT32 Metric[12][12] = {
00428         {0x00010000, 0x00100000, 0x00001000, 0x00001000, 0x00001000, 0x00001000, 0x00001000, 0x00001000, 0x00001000, 0x00001000, 0x00001000, 0x00001000},
00429         {0x00100000, 0x10000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000},
00430         {0x00001000, 0x01000000, 0x00000000, 0x00000001, 0x00000004, 0x00000009, 0x00000010, 0x00000019, 0x00000024, 0x00000031, 0x00000040, 0x00000051},
00431         {0x00001000, 0x01000000, 0x00000001, 0x00000000, 0x00000001, 0x00000004, 0x00000009, 0x00000010, 0x00000019, 0x00000024, 0x00000031, 0x00000040},
00432         {0x00001000, 0x01000000, 0x00000004, 0x00000001, 0x00000000, 0x00000001, 0x00000004, 0x00000009, 0x00000010, 0x00000019, 0x00000024, 0x00000031},
00433         {0x00001000, 0x01000000, 0x00000009, 0x00000004, 0x00000001, 0x00000000, 0x00000001, 0x00000004, 0x00000009, 0x00000010, 0x00000019, 0x00000024},
00434         {0x00001000, 0x01000000, 0x00000010, 0x00000009, 0x00000004, 0x00000001, 0x00000000, 0x00000001, 0x00000004, 0x00000009, 0x00000010, 0x00000019},
00435         {0x00001000, 0x01000000, 0x00000019, 0x00000010, 0x00000009, 0x00000004, 0x00000001, 0x00000000, 0x00000001, 0x00000004, 0x00000009, 0x00000010},
00436         {0x00001000, 0x01000000, 0x00000024, 0x00000019, 0x00000010, 0x00000009, 0x00000004, 0x00000001, 0x00000000, 0x00000001, 0x00000004, 0x00000009},
00437         {0x00001000, 0x01000000, 0x00000031, 0x00000024, 0x00000019, 0x00000010, 0x00000009, 0x00000004, 0x00000001, 0x00000000, 0x00000001, 0x00000004},
00438         {0x00001000, 0x01000000, 0x00000040, 0x00000031, 0x00000024, 0x00000019, 0x00000010, 0x00000009, 0x00000004, 0x00000001, 0x00000000, 0x00000001},
00439         {0x00001000, 0x01000000, 0x00000051, 0x00000040, 0x00000031, 0x00000024, 0x00000019, 0x00000010, 0x00000009, 0x00000004, 0x00000001, 0x00000000}};
00440 
00441     if ( x>11) x = 1;
00442     if ( y>11) y = 1;
00443 
00444     return Metric[x][y];
00445 }

UINT32 CCPanose::DistanceXHeight BYTE  x,
BYTE  y
[static, private]
 

Definition at line 578 of file ccpanose.cpp.

00579 {
00580     const static UINT32 Metric[8][8] = {
00581         {0x00010000, 0x00100000, 0x00001000, 0x00001000, 0x00001000, 0x00001000, 0x00001000, 0x00001000},
00582         {0x00100000, 0x10000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000},
00583         {0x00001000, 0x01000000, 0x00000000, 0x00000020, 0x00000020, 0x00000010, 0x00000040, 0x00000040},
00584         {0x00001000, 0x01000000, 0x00000020, 0x00000000, 0x00000020, 0x00000040, 0x00000010, 0x00000040},
00585         {0x00001000, 0x01000000, 0x00000020, 0x00000020, 0x00000000, 0x00000040, 0x00000040, 0x00000010},
00586         {0x00001000, 0x01000000, 0x00000010, 0x00000040, 0x00000040, 0x00000000, 0x00000020, 0x00000020},
00587         {0x00001000, 0x01000000, 0x00000040, 0x00000010, 0x00000040, 0x00000020, 0x00000000, 0x00000020},
00588         {0x00001000, 0x01000000, 0x00000040, 0x00000040, 0x00000010, 0x00000020, 0x00000020, 0x00000000}};
00589 
00590     if ( x>7) x = 1;
00591     if ( y>7) y = 1;
00592 
00593     return Metric[x][y];
00594 }

BYTE CCPanose::GetArmStyle  )  const [inline]
 

Definition at line 319 of file ccpanose.h.

00319 {return mArmStyle;};

BYTE CCPanose::GetContrast  )  const [inline]
 

Definition at line 317 of file ccpanose.h.

00317 {return mContrast;};

void CCPanose::GetDebugDetails StringBase pStr  ) 
 

Adds to PANOSE debug information to (*Str).

Author:
Andy_Hayward (Xara Group Ltd) <camelotdev@xara.com>
Date:
24/05/96
Parameters:
Pointer to a StringBase [INPUTS]
Returns:
-

Definition at line 608 of file ccpanose.cpp.

00609 {
00610     TCHAR               s[256], t[256];
00611 
00612     camSnprintf( s, 256, _T("\r\nPANOSE information\r\n\r\n") );
00613     (*pStr) += s;
00614     
00615     switch (mFamilyType)
00616     {
00617         case PAN_ANY                        : camSnprintf( t, 256, _T("Any") ); break;
00618         case PAN_NO_FIT                     : camSnprintf( t, 256, _T("No fit") ); break;
00619         case PAN_FAMILY_TEXT_DISPLAY        : camSnprintf( t, 256, _T("Text and display") ); break;
00620         case PAN_FAMILY_SCRIPT              : camSnprintf( t, 256, _T("Script") ); break;
00621         case PAN_FAMILY_DECORATIVE          : camSnprintf( t, 256, _T("Decorative") ); break;
00622         case PAN_FAMILY_PICTORIAL           : camSnprintf( t, 256, _T("Pictorial") ); break;
00623         default                             : camSnprintf( t, 256, _T("!! Unknown !! (tell Andy)") ); break;
00624     }
00625 
00626     camSnprintf( s, 256, _T("Family Type\t= (%d) %s\r\n") , mFamilyType, t);
00627     (*pStr) += s;
00628 
00629     switch (mSerifStyle)
00630     {
00631         case PAN_ANY                        : camSnprintf( t, 256, _T("Any") ); break;
00632         case PAN_NO_FIT                     : camSnprintf( t, 256, _T("No fit") ); break;
00633         case PAN_SERIF_COVE                 : camSnprintf( t, 256, _T("Cove") ); break;
00634         case PAN_SERIF_OBTUSE_COVE          : camSnprintf( t, 256, _T("Obtuse cove") ); break;
00635         case PAN_SERIF_SQUARE_COVE          : camSnprintf( t, 256, _T("Square cove") ); break;
00636         case PAN_SERIF_OBTUSE_SQUARE_COVE   : camSnprintf( t, 256, _T("Obtuse square cove") ); break;
00637         case PAN_SERIF_SQUARE               : camSnprintf( t, 256, _T("Square   ") ); break;
00638         case PAN_SERIF_THIN                 : camSnprintf( t, 256, _T("Thin") ); break;
00639         case PAN_SERIF_BONE                 : camSnprintf( t, 256, _T("Bone") ); break;
00640         case PAN_SERIF_EXAGGERATED          : camSnprintf( t, 256, _T("Exaggerated") ); break;
00641         case PAN_SERIF_TRIANGLE             : camSnprintf( t, 256, _T("Triangle") ); break;
00642         case PAN_SERIF_NORMAL_SANS          : camSnprintf( t, 256, _T("Normal sans serif") ); break;
00643         case PAN_SERIF_OBTUSE_SANS          : camSnprintf( t, 256, _T("Obtuse sans serif") ); break;
00644         case PAN_SERIF_PERP_SANS            : camSnprintf( t, 256, _T("Perp sans serif") ); break;
00645         case PAN_SERIF_FLARED               : camSnprintf( t, 256, _T("Flared") ); break;
00646         case PAN_SERIF_ROUNDED              : camSnprintf( t, 256, _T("Rounded") ); break;
00647         default                             : camSnprintf( t, 256, _T("!! Unknown !! (tell Andy)") ); break;
00648     }
00649 
00650     camSnprintf( s, 256, _T("Serif Style\t\t= (%d) %s\r\n") , mSerifStyle, t);
00651     (*pStr) += s;
00652     
00653     switch (mWeight)
00654     {
00655         case PAN_ANY                        : camSnprintf( t, 256, _T("Any") ); break;
00656         case PAN_NO_FIT                     : camSnprintf( t, 256, _T("No fit") ); break;
00657         case PAN_WEIGHT_VERY_LIGHT          : camSnprintf( t, 256, _T("Very light") ); break;
00658         case PAN_WEIGHT_LIGHT               : camSnprintf( t, 256, _T("Light") ); break;
00659         case PAN_WEIGHT_THIN                : camSnprintf( t, 256, _T("Thin") ); break;
00660         case PAN_WEIGHT_BOOK                : camSnprintf( t, 256, _T("Book") ); break;
00661         case PAN_WEIGHT_MEDIUM              : camSnprintf( t, 256, _T("Medium") ); break;
00662         case PAN_WEIGHT_DEMI                : camSnprintf( t, 256, _T("Demibold") ); break;
00663         case PAN_WEIGHT_BOLD                : camSnprintf( t, 256, _T("Bold") ); break;
00664         case PAN_WEIGHT_HEAVY               : camSnprintf( t, 256, _T("Heavy") ); break;
00665         case PAN_WEIGHT_BLACK               : camSnprintf( t, 256, _T("Black") ); break;
00666         case PAN_WEIGHT_NORD                : camSnprintf( t, 256, _T("Nord") ); break;
00667         default                             : camSnprintf( t, 256, _T("!! Unknown !! (tell Andy)") ); break;
00668     }
00669 
00670     camSnprintf( s, 256, _T("Weight\t\t= (%d) %s\r\n") , mWeight, t);
00671     (*pStr) += s;
00672 
00673     switch (mProportion)
00674     {
00675         case PAN_ANY                        : camSnprintf( t, 256, _T("Any") ); break;
00676         case PAN_NO_FIT                     : camSnprintf( t, 256, _T("No fit") ); break;
00677         case PAN_PROP_OLD_STYLE             : camSnprintf( t, 256, _T("Old style") ); break;
00678         case PAN_PROP_MODERN                : camSnprintf( t, 256, _T("Modern") ); break;
00679         case PAN_PROP_EVEN_WIDTH            : camSnprintf( t, 256, _T("Even width") ); break;
00680         case PAN_PROP_EXPANDED              : camSnprintf( t, 256, _T("Expanded") ); break;
00681         case PAN_PROP_CONDENSED             : camSnprintf( t, 256, _T("Condensed") ); break;
00682         case PAN_PROP_VERY_EXPANDED         : camSnprintf( t, 256, _T("Very expanded") ); break;
00683         case PAN_PROP_VERY_CONDENSED        : camSnprintf( t, 256, _T("Very condensed") ); break;
00684         case PAN_PROP_MONOSPACED            : camSnprintf( t, 256, _T("Monospaced") ); break;
00685         default                             : camSnprintf( t, 256, _T("!! Unknown !! (tell Andy)") ); break;
00686     }
00687 
00688     camSnprintf( s, 256, _T("Proportion\t= (%d) %s\r\n") , mProportion, t);
00689     (*pStr) += s;
00690     
00691     switch (mContrast)
00692     {
00693         case PAN_ANY                        : camSnprintf( t, 256, _T("Any") ); break;
00694         case PAN_NO_FIT                     : camSnprintf( t, 256, _T("No fit") ); break;
00695         case PAN_CONTRAST_NONE              : camSnprintf( t, 256, _T("None") ); break;
00696         case PAN_CONTRAST_VERY_LOW          : camSnprintf( t, 256, _T("Very low") ); break;
00697         case PAN_CONTRAST_LOW               : camSnprintf( t, 256, _T("Low") ); break;
00698         case PAN_CONTRAST_MEDIUM_LOW        : camSnprintf( t, 256, _T("Medium low") ); break;
00699         case PAN_CONTRAST_MEDIUM            : camSnprintf( t, 256, _T("Medium") ); break;
00700         case PAN_CONTRAST_MEDIUM_HIGH       : camSnprintf( t, 256, _T("Medium high") ); break;
00701         case PAN_CONTRAST_HIGH              : camSnprintf( t, 256, _T("High") ); break;
00702         case PAN_CONTRAST_VERY_HIGH         : camSnprintf( t, 256, _T("Very high") ); break;
00703         default                             : camSnprintf( t, 256, _T("!! Unknown !! (tell Andy)") ); break;
00704     }
00705 
00706     camSnprintf( s, 256, _T("Contrast\t\t= (%d) %s\r\n") , mContrast, t);
00707     (*pStr) += s;
00708     
00709     switch (mStrokeVariation)
00710     {
00711         case PAN_ANY                        : camSnprintf( t, 256, _T("Any") ); break;
00712         case PAN_NO_FIT                     : camSnprintf( t, 256, _T("No fit") ); break;
00713         case PAN_STROKE_GRADUAL_DIAG        : camSnprintf( t, 256, _T("Gradual/diagonal") ); break;
00714         case PAN_STROKE_GRADUAL_TRAN        : camSnprintf( t, 256, _T("Gradual/transitional") ); break;
00715         case PAN_STROKE_GRADUAL_VERT        : camSnprintf( t, 256, _T("Gradual/vertical") ); break;
00716         case PAN_STROKE_GRADUAL_HORZ        : camSnprintf( t, 256, _T("Gradual/horizontal") ); break;
00717         case PAN_STROKE_RAPID_VERT          : camSnprintf( t, 256, _T("Rapid/vertical") ); break;
00718         case PAN_STROKE_RAPID_HORZ          : camSnprintf( t, 256, _T("Rapid/horizontal") ); break;
00719         case PAN_STROKE_INSTANT_VERT        : camSnprintf( t, 256, _T("Instant/vertical") ); break;
00720         default                             : camSnprintf( t, 256, _T("!! Unknown !! (tell Andy)") ); break;
00721     }
00722 
00723     camSnprintf( s, 256, _T("Stroke Variation\t= (%d) %s\r\n") , mStrokeVariation, t);
00724     (*pStr) += s;
00725     
00726     switch (mArmStyle)
00727     {
00728         case PAN_ANY                        : camSnprintf( t, 256, _T("Any") ); break;
00729         case PAN_NO_FIT                     : camSnprintf( t, 256, _T("No fit") ); break;
00730         case PAN_STRAIGHT_ARMS_HORZ         : camSnprintf( t, 256, _T("Straight arms/horizontal") ); break;
00731         case PAN_STRAIGHT_ARMS_WEDGE        : camSnprintf( t, 256, _T("Straight arms/wedge") ); break;
00732         case PAN_STRAIGHT_ARMS_VERT         : camSnprintf( t, 256, _T("traight arms/vertical") ); break;
00733         case PAN_STRAIGHT_ARMS_SINGLE_SERIF : camSnprintf( t, 256, _T("Straight arms/single-serif") ); break;
00734         case PAN_STRAIGHT_ARMS_DOUBLE_SERIF : camSnprintf( t, 256, _T("Straight arms/double-serif") ); break;
00735         case PAN_BENT_ARMS_HORZ             : camSnprintf( t, 256, _T("Non-straight arms/horizontal") ); break;
00736         case PAN_BENT_ARMS_WEDGE            : camSnprintf( t, 256, _T("Non-straight arms/wedge") ); break;
00737         case PAN_BENT_ARMS_VERT             : camSnprintf( t, 256, _T("Non-straight arms/vertical") ); break;
00738         case PAN_BENT_ARMS_SINGLE_SERIF     : camSnprintf( t, 256, _T("Non-straight arms/single-serif") ); break;
00739         case PAN_BENT_ARMS_DOUBLE_SERIF     : camSnprintf( t, 256, _T("Non-straight arms/double-serif") ); break;
00740         default                             : camSnprintf( t, 256, _T("!! Unknown !! (tell Andy)") ); break;
00741     }
00742 
00743     camSnprintf( s, 256, _T("Arm Style\t\t= (%d) %s\r\n") , mArmStyle, t);
00744     (*pStr) += s;
00745     
00746     switch (mLetterform)
00747     {
00748         case PAN_ANY                        : camSnprintf( t, 256, _T("Any") ); break;
00749         case PAN_NO_FIT                     : camSnprintf( t, 256, _T("No fit") ); break;
00750         case PAN_LETT_NORMAL_CONTACT        : camSnprintf( t, 256, _T("Normal/contact") ); break;
00751         case PAN_LETT_NORMAL_WEIGHTED       : camSnprintf( t, 256, _T("Normal/weighted") ); break;
00752         case PAN_LETT_NORMAL_BOXED          : camSnprintf( t, 256, _T("Normal/boxed") ); break;
00753         case PAN_LETT_NORMAL_FLATTENED      : camSnprintf( t, 256, _T("Normal/flattened") ); break;
00754         case PAN_LETT_NORMAL_ROUNDED        : camSnprintf( t, 256, _T("Normal/rounded") ); break;
00755         case PAN_LETT_NORMAL_OFF_CENTER     : camSnprintf( t, 256, _T("Normal/off center") ); break;
00756         case PAN_LETT_NORMAL_SQUARE         : camSnprintf( t, 256, _T("Normal/square") ); break;
00757         case PAN_LETT_OBLIQUE_CONTACT       : camSnprintf( t, 256, _T("Oblique/contact") ); break;
00758         case PAN_LETT_OBLIQUE_WEIGHTED      : camSnprintf( t, 256, _T("Oblique/weighted") ); break;
00759         case PAN_LETT_OBLIQUE_BOXED         : camSnprintf( t, 256, _T("Oblique/boxed") ); break;
00760         case PAN_LETT_OBLIQUE_FLATTENED     : camSnprintf( t, 256, _T("Oblique/flattened") ); break;
00761         case PAN_LETT_OBLIQUE_ROUNDED       : camSnprintf( t, 256, _T("Oblique/rounded") ); break;
00762         case PAN_LETT_OBLIQUE_OFF_CENTER    : camSnprintf( t, 256, _T("Oblique/off center") ); break;
00763         case PAN_LETT_OBLIQUE_SQUARE        : camSnprintf( t, 256, _T("Oblique/square") ); break;
00764         default                             : camSnprintf( t, 256, _T("!! Unknown !! (tell Andy)") ); break;
00765     }
00766 
00767     camSnprintf( s, 256, _T("Letter Form\t= (%d) %s\r\n") , mLetterform, t);
00768     (*pStr) += s;
00769 
00770     switch (mMidline)
00771     {
00772         case PAN_ANY                        : camSnprintf( t, 256, _T("Any") ); break;
00773         case PAN_NO_FIT                     : camSnprintf( t, 256, _T("No fit") ); break;
00774         case PAN_MIDLINE_STANDARD_TRIMMED   : camSnprintf( t, 256, _T("Standard/trimmed") ); break;
00775         case PAN_MIDLINE_STANDARD_POINTED   : camSnprintf( t, 256, _T("Standard/pointed") ); break;
00776         case PAN_MIDLINE_STANDARD_SERIFED   : camSnprintf( t, 256, _T("Standard/serifed") ); break;
00777         case PAN_MIDLINE_HIGH_TRIMMED       : camSnprintf( t, 256, _T("High/trimmed") ); break;
00778         case PAN_MIDLINE_HIGH_POINTED       : camSnprintf( t, 256, _T("High/pointed") ); break;
00779         case PAN_MIDLINE_HIGH_SERIFED       : camSnprintf( t, 256, _T("High/serifed") ); break;
00780         case PAN_MIDLINE_CONSTANT_TRIMMED   : camSnprintf( t, 256, _T("Constant/trimmed") ); break;
00781         case PAN_MIDLINE_CONSTANT_POINTED   : camSnprintf( t, 256, _T("Constant/pointed") ); break;
00782         case PAN_MIDLINE_CONSTANT_SERIFED   : camSnprintf( t, 256, _T("Constant/serifed") ); break;
00783         case PAN_MIDLINE_LOW_TRIMMED        : camSnprintf( t, 256, _T("Low/trimmed") ); break;
00784         case PAN_MIDLINE_LOW_POINTED        : camSnprintf( t, 256, _T("Low/pointed") ); break;
00785         case PAN_MIDLINE_LOW_SERIFED        : camSnprintf( t, 256, _T("Low/serifed") ); break;
00786         default                             : camSnprintf( t, 256, _T("!! Unknown !! (tell Andy)") ); break;
00787     }
00788 
00789     camSnprintf( s, 256, _T("Midline\t\t= (%d) %s\r\n") , mMidline, t);
00790     (*pStr) += s;
00791 
00792     switch (mXHeight)
00793     {
00794         case PAN_ANY                        : camSnprintf( t, 256, _T("Any") ); break;
00795         case PAN_NO_FIT                     : camSnprintf( t, 256, _T("No fit") ); break;
00796         case PAN_XHEIGHT_CONSTANT_SMALL     : camSnprintf( t, 256, _T("Constant/small") ); break;
00797         case PAN_XHEIGHT_CONSTANT_STD       : camSnprintf( t, 256, _T("Constant/standard") ); break;
00798         case PAN_XHEIGHT_CONSTANT_LARGE     : camSnprintf( t, 256, _T("Constant/large") ); break;
00799         case PAN_XHEIGHT_DUCKING_SMALL      : camSnprintf( t, 256, _T("Ducking/small") ); break;
00800         case PAN_XHEIGHT_DUCKING_STD        : camSnprintf( t, 256, _T("Ducking/standard") ); break;
00801         case PAN_XHEIGHT_DUCKING_LARGE      : camSnprintf( t, 256, _T("Ducking/large") ); break;
00802         default                             : camSnprintf( t, 256, _T("!! Unknown !! (tell Andy)") ); break;
00803     }
00804 
00805     camSnprintf( s, 256, _T("XHeight\t\t= (%d) %s\r\n") , mXHeight, t);
00806     (*pStr) += s;
00807 }

BYTE CCPanose::GetFamilyType  )  const [inline]
 

Definition at line 313 of file ccpanose.h.

00313 {return mFamilyType;};

BYTE CCPanose::GetLetterform  )  const [inline]
 

Definition at line 320 of file ccpanose.h.

00320 {return mLetterform;};

BYTE CCPanose::GetMidline  )  const [inline]
 

Definition at line 321 of file ccpanose.h.

00321 {return mMidline;};

BYTE CCPanose::GetProportion  )  const [inline]
 

Definition at line 316 of file ccpanose.h.

00316 {return mProportion;};

BYTE CCPanose::GetSerifStyle  )  const [inline]
 

Definition at line 314 of file ccpanose.h.

00314 {return mSerifStyle;};

BYTE CCPanose::GetStrokeVariation  )  const [inline]
 

Definition at line 318 of file ccpanose.h.

00318 {return mStrokeVariation;};

BYTE CCPanose::GetWeight  )  const [inline]
 

Definition at line 315 of file ccpanose.h.

00315 {return mWeight;};

BYTE CCPanose::GetXHeight  )  const [inline]
 

Definition at line 322 of file ccpanose.h.

00322 {return mXHeight;};

void CCPanose::operator= const CCPanose x  ) 
 

Copies a CCPanose object.

Author:
Andy_Hayward (Xara Group Ltd) <camelotdev@xara.com>
Date:
24/07/96
Parameters:
x - another CCPanose object to copy [INPUTS]
Returns:
-

Definition at line 231 of file ccpanose.cpp.

00232 {
00233     this->mFamilyType = x.mFamilyType;
00234     this->mSerifStyle = x.mSerifStyle; 
00235     this->mWeight = x.mWeight; 
00236     this->mProportion = x.mProportion; 
00237     this->mContrast = x.mContrast; 
00238     this->mStrokeVariation = x.mStrokeVariation; 
00239     this->mArmStyle = x.mArmStyle; 
00240     this->mLetterform = x.mLetterform; 
00241     this->mMidline = x.mMidline; 
00242     this->mXHeight = x.mXHeight; 
00243 }

void CCPanose::SetAll BYTE  FamilyType,
BYTE  SerifStyle,
BYTE  Weight,
BYTE  Proportion,
BYTE  Contrast,
BYTE  StrokeVariation,
BYTE  ArmStyle,
BYTE  LetterForm,
BYTE  Midline,
BYTE  XHeight
 

Sets the components of the Panose number to those given.

Author:
Andy_Hayward (Xara Group Ltd) <camelotdev@xara.com>
Date:
24/07/96
Parameters:
Obvious really - the 10 components of the Panose number [INPUTS]
Returns:
-

Definition at line 195 of file ccpanose.cpp.

00206 {
00207     mFamilyType         = FamilyType;
00208     mSerifStyle         = SerifStyle; 
00209     mWeight             = Weight; 
00210     mProportion         = Proportion; 
00211     mContrast           = Contrast;
00212     mStrokeVariation    = StrokeVariation; 
00213     mArmStyle           = ArmStyle; 
00214     mLetterform         = LetterForm; 
00215     mMidline            = Midline; 
00216     mXHeight            = XHeight; 
00217 }

void CCPanose::SetAllToAny  ) 
 

Sets all 10 components of the Panose number to PAN_ANY.

Author:
Andy_Hayward (Xara Group Ltd) <camelotdev@xara.com>
Date:
24/07/96
Parameters:
- [INPUTS]
Returns:
-

Definition at line 168 of file ccpanose.cpp.

void CCPanose::SetArmStyle BYTE  value  )  [inline]
 

Definition at line 308 of file ccpanose.h.

00308 {mArmStyle = value;};

void CCPanose::SetContrast BYTE  value  )  [inline]
 

Definition at line 306 of file ccpanose.h.

00306 {mContrast = value;};

void CCPanose::SetFamilyType BYTE  value  )  [inline]
 

Definition at line 302 of file ccpanose.h.

00302 {mFamilyType = value;};

void CCPanose::SetLetterform BYTE  value  )  [inline]
 

Definition at line 309 of file ccpanose.h.

00309 {mLetterform = value;};

void CCPanose::SetMidline BYTE  value  )  [inline]
 

Definition at line 310 of file ccpanose.h.

00310 {mMidline = value;};

void CCPanose::SetProportion BYTE  value  )  [inline]
 

Definition at line 305 of file ccpanose.h.

00305 {mProportion = value;};

void CCPanose::SetSerifStyle BYTE  value  )  [inline]
 

Definition at line 303 of file ccpanose.h.

00303 {mSerifStyle = value;};

void CCPanose::SetStrokeVariation BYTE  value  )  [inline]
 

Definition at line 307 of file ccpanose.h.

00307 {mStrokeVariation = value;};

void CCPanose::SetWeight BYTE  value  )  [inline]
 

Definition at line 304 of file ccpanose.h.

00304 {mWeight = value;};

void CCPanose::SetXHeight BYTE  value  )  [inline]
 

Definition at line 311 of file ccpanose.h.

00311 {mXHeight = value;};


Member Data Documentation

BYTE CCPanose::mArmStyle [private]
 

Definition at line 265 of file ccpanose.h.

BYTE CCPanose::mContrast [private]
 

Definition at line 263 of file ccpanose.h.

BYTE CCPanose::mFamilyType [private]
 

Definition at line 259 of file ccpanose.h.

BYTE CCPanose::mLetterform [private]
 

Definition at line 266 of file ccpanose.h.

BYTE CCPanose::mMidline [private]
 

Definition at line 267 of file ccpanose.h.

BYTE CCPanose::mProportion [private]
 

Definition at line 262 of file ccpanose.h.

BYTE CCPanose::mSerifStyle [private]
 

Definition at line 260 of file ccpanose.h.

BYTE CCPanose::mStrokeVariation [private]
 

Definition at line 264 of file ccpanose.h.

BYTE CCPanose::mWeight [private]
 

Definition at line 261 of file ccpanose.h.

BYTE CCPanose::mXHeight [private]
 

Definition at line 268 of file ccpanose.h.


The documentation for this class was generated from the following files:
Generated on Sat Nov 10 03:52:10 2007 for Camelot by  doxygen 1.4.4