rtftype.h
上传用户:zhang_dd
上传日期:2007-01-02
资源大小:7k
文件大小:3k
源码类别:

RichEdit

开发平台:

Visual C++

  1. // RTFTYPE.H
  2. #define fTrue 1
  3. #define fFalse 0
  4. typedef struct char_prop
  5. {
  6.     char fBold;
  7.     char fUnderline;
  8.     char fItalic;
  9. } CHP;                  // CHaracter Properties
  10. typedef enum {justL, justR, justC, justF } JUST;
  11. typedef struct para_prop
  12. {
  13.     int xaLeft;                 // left indent in twips
  14.     int xaRight;                // right indent in twips
  15.     int xaFirst;                // first line indent in twips
  16.     JUST just;                  // justification
  17. } PAP;                  // PAragraph Properties
  18. typedef enum {sbkNon, sbkCol, sbkEvn, sbkOdd, sbkPg} SBK;
  19. typedef enum {pgDec, pgURom, pgLRom, pgULtr, pgLLtr} PGN;
  20. typedef struct sect_prop
  21. {
  22.     int cCols;                  // number of columns
  23.     SBK sbk;                    // section break type
  24.     int xaPgn;                  // x position of page number in twips
  25.     int yaPgn;                  // y position of page number in twips
  26.     PGN pgnFormat;              // how the page number is formatted
  27. } SEP;                  // SEction Properties
  28. typedef struct doc_prop
  29. {
  30.     int xaPage;                 // page width in twips
  31.     int yaPage;                 // page height in twips
  32.     int xaLeft;                 // left margin in twips
  33.     int yaTop;                  // top margin in twips
  34.     int xaRight;                // right margin in twips
  35.     int yaBottom;               // bottom margin in twips
  36.     int pgnStart;               // starting page number in twips
  37.     char fFacingp;              // facing pages enabled?
  38.     char fLandscape;            // landscape or portrait??
  39. } DOP;                  // DOcument Properties
  40. typedef enum { rdsNorm, rdsSkip } RDS;              // Rtf Destination State
  41. typedef enum { risNorm, risBin, risHex } RIS;       // Rtf Internal State
  42. typedef struct save             // property save structure
  43. {
  44.     struct save *pNext;         // next save
  45.     CHP chp;
  46.     PAP pap;
  47.     SEP sep;
  48.     DOP dop;
  49.     RDS rds;
  50.     RIS ris;
  51. } SAVE;
  52. // What types of properties are there?
  53. typedef enum {ipropBold, ipropItalic, ipropUnderline, ipropLeftInd,
  54.               ipropRightInd, ipropFirstInd, ipropCols, ipropPgnX,
  55.               ipropPgnY, ipropXaPage, ipropYaPage, ipropXaLeft,
  56.               ipropXaRight, ipropYaTop, ipropYaBottom, ipropPgnStart,
  57.               ipropSbk, ipropPgnFormat, ipropFacingp, ipropLandscape,
  58.               ipropJust, ipropPard, ipropPlain, ipropSectd,
  59.               ipropMax } IPROP;
  60. typedef enum {actnSpec, actnByte, actnWord} ACTN;
  61. typedef enum {propChp, propPap, propSep, propDop} PROPTYPE;
  62. typedef struct propmod
  63. {
  64.     ACTN actn;              // size of value
  65.     PROPTYPE prop;          // structure containing value
  66.     int  offset;            // offset of value from base of structure
  67. } PROP;
  68. typedef enum {ipfnBin, ipfnHex, ipfnSkipDest } IPFN;
  69. typedef enum {idestPict, idestSkip } IDEST;
  70. typedef enum {kwdChar, kwdDest, kwdProp, kwdSpec} KWD;
  71. typedef struct symbol
  72. {
  73.     char *szKeyword;        // RTF keyword
  74.     int  dflt;              // default value to use
  75.     bool fPassDflt;         // true to use default value from this table
  76.     KWD  kwd;               // base action to take
  77.     int  idx;               // index into property table if kwd == kwdProp
  78.                             // index into destination table if kwd == kwdDest
  79.                             // character to print if kwd == kwdChar
  80. } SYM;