home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / msdn_vcb / samples / vc98 / sdk / graphics / gdi / fonts / gridfont / cset.hxx < prev    next >
Text File  |  1994-08-28  |  1KB  |  72 lines

  1.  
  2. /*
  3.       this option allows to select a type of characters 
  4.       and either print/display only the characters in the
  5.     set, or to color them, whatever.
  6.  
  7.     To make this work i need to
  8.         a) have a way to
  9.             1) identify
  10.             2) create
  11.             3) combine
  12.             the subsets
  13.  
  14.         b) be able to determin whether a character
  15.              IsInSet
  16.              and which is the next character in the set
  17.  
  18.         c) associate an action with the set
  19.             actions are
  20.                 fg, bg color and ignore 
  21.                 (can use fg color=white for ignore)
  22.             and can be kept in a single WORD
  23.  
  24.     As sources for subsets I have:
  25.         i)    named subsets (ISO 10646)
  26.         ii) character properties
  27.         
  28. */
  29.  
  30. #ifndef _CSET_HXX_
  31. #define _CSET_HXX_
  32.  
  33. // base class for any form of set
  34.  
  35. class CSet
  36. {
  37.     public:
  38.         virtual BOOL In(WORD iChar) = 0;
  39.         //virtual WORD Next(WORD iChar) = 0;
  40.         //virtual WORD Prev(WORD iChar) = 0;
  41.     protected:
  42. } ;
  43.  
  44.  
  45.  
  46. // Set based on CType 
  47. class CCTypeSet : public CSet
  48. {
  49.     public:
  50.         CCTypeSet(WORD fC1Mask, WORD fC2Test, WORD fC3Mask);
  51.         BOOL In(WORD iChar);
  52.     protected:
  53.         void GetPageData( WORD iPage );
  54.         BOOL _pCharInSet[256];
  55.         BOOL _pPageInSet[256];
  56.         WORD _fC1Mask;
  57.         WORD _fC2Test;    // C2 is an enumerated field
  58.         WORD _fC3Mask;
  59.         WORD _iPage;
  60. } ;
  61.  
  62.  
  63.  
  64. // Set based on font coverage
  65. class CFontSet: public CSet 
  66. {
  67.     public:
  68.         CFontSet(HWND hwnd, HFONT hfont) ;
  69. } ;
  70.  
  71. #endif
  72.