1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
|
/************************************************************************/
/* */
/* Attributes of text. */
/* */
/************************************************************************/
# ifndef UTIL_TEXT_ATTRIBUTE_H
# define UTIL_TEXT_ATTRIBUTE_H
# include <utilPropMask.h>
typedef struct TextAttribute
{
short int taFontNumber;
short int taFontSizeHalfPoints;
short int taTextColorNumber;
short int taTextStyleNumber;
unsigned int taFontIsBold:1;
unsigned int taFontIsSlanted:1;
unsigned int taTextIsUnderlined:1;
unsigned int taSmallCaps:1;
unsigned int taHasStrikethrough:1;
unsigned int taCapitals:1;
unsigned int taSuperSub:2;
# define DOCfontREGULAR 0
# define DOCfontSUPERSCRIPT 1
# define DOCfontSUBSCRIPT 2
} TextAttribute;
typedef enum TextProperty
{
TAprop_NONE= -1,
TApropDOC_FONT_NUMBER= 0,
TApropFONTSIZE,
TApropFONTBOLD,
TApropFONTSLANTED,
TApropTEXTUNDERLINED,
TApropSUPERSUB,
TApropSMALLCAPS,
TApropCAPITALS,
TApropSTRIKETHROUGH,
TApropTEXT_COLOR,
TApropTEXT_STYLE,
TAprop_COUNT
} TextProperty;
# define docEqualFontAttributes(ta1,ta2) ( \
(ta1)->taFontIsBold == (ta2)->taFontIsBold && \
(ta1)->taFontIsSlanted == (ta2)->taFontIsSlanted )
# define docEqualFont(ta1,ta2) ( \
(ta1)->taFontNumber == (ta2)->taFontNumber && \
(ta1)->taFontSizeHalfPoints == (ta2)->taFontSizeHalfPoints && \
(ta1)->taSuperSub == (ta2)->taSuperSub && \
(ta1)->taSmallCaps == (ta2)->taSmallCaps && \
docEqualFontAttributes( (ta1), (ta2) ) )
# define docEqualTextAttributes(ta1,ta2) ( \
docEqualFont((ta1),(ta2)) && \
(ta1)->taTextIsUnderlined == (ta2)->taTextIsUnderlined && \
(ta1)->taHasStrikethrough == (ta2)->taHasStrikethrough && \
(ta1)->taCapitals == (ta2)->taCapitals && \
(ta1)->taTextColorNumber == (ta2)->taTextColorNumber )
# define SUPERSUB_SIZE( sz ) ( 7*(sz)/10 )
/************************************************************************/
/* */
/* Default attributes. */
/* */
/************************************************************************/
extern TextAttribute DocDefaultAttributes;
/************************************************************************/
/* */
/* Routine declarations. */
/* */
/************************************************************************/
extern void utilInitTextAttribute( TextAttribute * ta );
extern void utilAttributeDifference( PropertyMask * pChangeMask,
const TextAttribute * taTo,
const TextAttribute * taFrom,
const PropertyMask * updMask );
extern void utilUpdateTextAttribute( PropertyMask * pChangeMask,
TextAttribute * taTo,
const TextAttribute * taFrom,
const PropertyMask * updMask );
# endif /* UTIL_TEXT_ATTRIBUTE_H */
|