1 #ifndef SCTEXT_SHARED_H
2 #define SCTEXT_SHARED_H
3 
4 #include <QList>
5 #include <QObject>
6 #include <QString>
7 #include <cassert>
8 
9 //#include "text/paragraphlayout.h"
10 #include "text/frect.h"
11 #include "style.h"
12 #include "styles/charstyle.h"
13 #include "styles/paragraphstyle.h"
14 #include "styles/stylecontextproxy.h"
15 
16 
17 class SCRIBUS_API ScText_Shared : public QList<ScText*>
18 {
19 public:
20 	ScText_Shared(const StyleContext* pstyles);
21 	ScText_Shared(const ScText_Shared& other);
22 	~ScText_Shared();
23 
24 	ScText_Shared& operator= (const ScText_Shared& other);
25 
26 	ParagraphStyle defaultStyle;
27 	StyleContextProxy pstyleContext;
28 	uint refs { 1 };
29 	uint len { 0 };
30 	uint cursorPosition { 0 };
31 	int  selFirst { 0 };
32 	int  selLast { -1 };
33 	uint marksCount { 0 };
34 	bool marksCountChanged { false };
35 	ParagraphStyle trailingStyle;
36 	CharStyle orphanedCharStyle;
37 
38 	void clear();
39 
40 	/**
41 	   A char's stylecontext is the containing paragraph's style,
42        This routines makes sure that all charstyles look for defaults
43 	   in the parstyle first.
44 	 */
45 	void replaceCharStyleContextInParagraph(int pos, const StyleContext* newContext);
46 };
47 
48 #endif /*SCTEXT_SHARED_H*/
49