File: utilTextAttribute.h

package info (click to toggle)
ted 2.16-5
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 13,944 kB
  • ctags: 20,273
  • sloc: ansic: 167,980; makefile: 12,518; sh: 263
file content (98 lines) | stat: -rw-r--r-- 2,884 bytes parent folder | download
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	*/