summaryrefslogblamecommitdiffstats
path: root/private/mvdm/wow16/write/prmdefs.h
blob: d949fad174efec710f0909209166aacbc2b92add (plain) (tree)





































































































                                                                                          
/************************************************************/
/* Windows Write, Copyright 1985-1992 Microsoft Corporation */
/************************************************************/

/* Single property modifiers */

/*      ***     MUST agree with dnsprm in mglobals.c       ***     */

#ifndef PRMDEFSH
#define PRMDEFSH

/* Paragraph */
#define sprmPLMarg      1       /* Left margin */
#define sprmPRMarg      2       /* Right margin */
#define sprmPFIndent    3       /* First line indent (from LM) */
#define sprmPJc         4       /* Justification code */
#define sprmPRuler      5       /* Ruler (formerly Clear tab) */
#define sprmPRuler1     6       /* Ruler1 (formerly Set tab) */
#define sprmPKeep       7       /* Keep */
#define sprmPNormal     8       /* Normal para (formerly Style, overrides all others) */
#define sprmPRhc        9       /* Running head code */
#define sprmPSame       10      /* Everything (overrides all others) */
#define sprmPDyaLine    11      /* Line height */
#define sprmPDyaBefore  12      /* Space before */
#define sprmPDyaAfter   13      /* Space after */
#define sprmPNest       14      /* Nest para */
#define sprmPUnNest     15      /* Un-nest para */
#define sprmPHang       16      /* Hanging indent */
#define sprmPRgtbd      17      /* add a range of tabs  */
#define sprmPKeepFollow 18      /* Keep follow */
/*#define sprmPCAll       19      /* Clear all tabs */

/* Character */
#define sprmCBold       20      /* Bold */
#define sprmCItalic     21      /* Italic */
#define sprmCUline      22      /* Underline */
#define sprmCPos        23      /* Super/subscript */
#define sprmCFtc        24      /* Font code */
#define sprmCHps        25      /* Half-point size */
#define sprmCSame       26      /* Whole CHP */
#define sprmCChgFtc     27      /* Alter Font code */
#define sprmCChgHps     28      /* Alter point size */
#define sprmCPlain      29      /* Change to plain text (preserve font) */
#define sprmCShadow     30      /* Shadow text attribute */
#define sprmCOutline    31      /* Outline text attribute */
#define sprmCCsm        32      /* case modification */

#define sprmCStrike     33      /* Strikeout */               /* unused */
#define sprmCDline      34      /* Double underline */        /* unused */
/*#define sprmCPitch    35      /* Pitch */
/*#define sprmCOverset  36      /* Margin overset */
/*#define sprmCStc      37      /* Style (overrides all others) */
#define sprmCMapFtc     38      /* Defines font code mapping */
#define sprmCOldFtc     39      /* Defines procedural font code mapping
                                   for old WORD files */

#define sprmPRhcNorm    40      /* Normalize rhc indent to be margin-relatve */
#define sprmMax         41      /* UPDATE WHEN ADDING SPRMS */

struct PRM
        { /* PropeRty Modifier -- 2 bytes only 
            (now 4 bytes so scratch file can be >64K (7.12.91) v-dougk) 
            Couldn't be 3 bytes because Heap mgmt in Write assumes
            word sizes of memory requests .  Don't know what would take 
            to change that. */
        unsigned char    fComplex        : 1; /* If fComplex == false . . . */
        unsigned char    sprm            : 7;
        CHAR     val;
        WORD dummy;
        };

struct PRMX
        { /* PropeRty Modifier, part 2 */
        unsigned     int fComplex        : 1; /* if fComplex == true */
        unsigned     int bfprm_hi        : 15;
        unsigned     int  bfprm_low          ;
        };

extern struct PRM PrmAppend(struct PRM prm, CHAR *psprm);
extern DoPrm(struct CHP *pchp, struct PAP *ppap, struct PRM prm);

#define fcSCRATCHPRM(prm) (((((typeFC)(((struct PRMX *)&(prm))->bfprm_hi )) << 16) + \
                             (((typeFC)(((struct PRMX *)&(prm))->bfprm_low))      )) << 1)
#define bPRMNIL(prm)      (!((prm).fComplex) && !((prm).sprm) && !((prm).val))
#define SETPRMNIL(prm)    ((prm).fComplex = (prm).sprm = (prm).val = (prm).dummy = 0)

/* Definitions for ESPRM */
#define ESPRM_cch       000003  /* Mask for cch of sprm */
#define ESPRM_sgcMult   000004  /* Sgc multiplier */
#define ESPRM_sgc       000014  /* Sprm Group Code mask */
#define ESPRM_spr       000040  /* Sprm priority mask */
#define ESPRM_fClobber  000100  /* Overrides sprms with same sgc and <= spr */
#define ESPRM_fSame     000200  /* Overrides another instance of same sprm */

#define sgcChar         (0 * ESPRM_sgcMult)
#define sgcPara         (1 * ESPRM_sgcMult)
#define sgcParaSpec     (2 * ESPRM_sgcMult)

#define hpsSuperSub     12

#define dxaTabDelta     50
#endif