summaryrefslogtreecommitdiff
path: root/src/rtfformatting.h
blob: 2dfc126773abcdbbcee02d79721071f4455615f5 (plain)
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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
// RtfTextProperties.h: interface for the RtfTextProperties class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_RTFTEXTPROPERTIES_H__719D85C9_69D9_4499_BE5E_7A9A7F6F9C38__INCLUDED_)
#define AFX_RTFTEXTPROPERTIES_H__719D85C9_69D9_4499_BE5E_7A9A7F6F9C38__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

class RtfFormatting
{
public:
	RtfFormatting()
	{
		resetText();
		resetPara();
	}

	RtfFormatting(const RtfFormatting& format)
	{
		copy(format);
	}

	bool textEquals(const RtfFormatting& format) const
	{
		return m_bold == format.m_bold &&
			m_italic == format.m_italic &&
			m_strike == format.m_italic &&
			m_hidden == format.m_hidden &&
			m_underline == format.m_underline &&
			m_color == format.m_color;
	}

	bool paraEquals(RtfFormatting& format) const
	{
		return m_style == format.m_style &&
			   m_list == format.m_list &&
			   m_inTbl == format.m_inTbl;
	}

	void copy(const RtfFormatting& format)
	{
		m_bold = format.m_bold;
		m_italic = format.m_italic;
		m_strike = format.m_italic;
		m_hidden = format.m_hidden;
		m_underline = format.m_underline;
		m_color = format.m_color;

		m_style = format.m_style;
		m_list = format.m_list;
		m_inTbl = format.m_inTbl;
	}

	void resetText()
	{
		m_bold = m_italic = m_strike =
			m_underline = m_hidden = false;
		m_color = -1;
	}

	void resetPara()
	{
		m_style = m_list = -1;
		m_inTbl = false;
	}

	bool textIsBold() const
		{ return m_bold; }
	bool textIsItalic() const
		{ return m_italic; }
	bool textIsStrike() const
		{ return m_strike; }
	bool textIsUnderline() const
		{ return m_underline; }
	bool textIsHidden() const
		{ return m_hidden; }
	int textColor() const
		{ return m_color; }
	int paraStyle() const
		{ return m_style; }
	int paraList() const
		{ return m_list; }
	bool paraInTable() const
		{ return m_inTbl; }

	void textSetBold(bool bold)
		{ m_bold = bold; }
	void textSetItalic(bool italic)
		{ m_italic = italic; }
	void textSetStrike(bool strike)
		{ m_strike = strike; }
	void textSetUnderline(bool underline)
		{ m_underline = underline; }
	void textSetHidden(bool hidden)
		{ m_hidden = hidden; }
	void textSetColor(int color)
		{ m_color = color; }
	void paraSetStyle(int style)
		{ m_style = style; }
	void paraSetList(int list)
		{ m_list = list; }
	void paraSetTable(bool inTable)
		{ m_inTbl = inTable; }

protected:
	bool m_bold;
	bool m_italic;
	bool m_strike;
	bool m_underline;
	bool m_hidden;
	int m_color;

	int m_style;
	int m_list;
	bool m_inTbl;
	// TODO: Character styles
};

#endif // !defined(AFX_RTFTEXTPROPERTIES_H__719D85C9_69D9_4499_BE5E_7A9A7F6F9C38__INCLUDED_)