OSDN Git Service

moved from CVS
[tombo/Tombo.git] / Src / YAEdit / YAEditDoc.h
1 #ifndef YAEDITDOC_H\r
2 #define YAEDITDOC_H\r
3 \r
4 class YAEditImpl;\r
5 class Region;\r
6 class PhysicalLineManager;\r
7 class YAEditCallback;\r
8 class YAEditListener;\r
9 \r
10 class UndoInfo;\r
11 \r
12 ////////////////////////////////////////////////////\r
13 // Document container for YAE\r
14 ////////////////////////////////////////////////////\r
15 \r
16 class YAEditDoc {\r
17 protected:\r
18         PhysicalLineManager *pPhLineMgr;\r
19         YAEditListener *pListener;\r
20 \r
21         YAEditCallback *pCallback;\r
22 \r
23         // undo related\r
24         UndoInfo *pUndo;\r
25 \r
26         // this member should not to edit directry. use SetModify().\r
27         BOOL bModified;\r
28         BOOL bReadOnly;\r
29 \r
30         BOOL ReleaseDoc();\r
31 public:\r
32         ////////////////////////////////////////////////////\r
33         // ctor, dtor & initialize\r
34 \r
35         YAEditDoc();\r
36         ~YAEditDoc();\r
37 \r
38         BOOL Init(const char *pStr, YAEditListener *pListener, YAEditCallback*pCb);\r
39 \r
40         PhysicalLineManager *GetPhMgr() { return pPhLineMgr; }\r
41 \r
42         ////////////////////////////////////////////////////\r
43         // set/get document\r
44 \r
45         BOOL LoadDoc(const char *pStr);\r
46         char *GetDocumentData(LPDWORD pLen);\r
47 \r
48         ////////////////////////////////////////////////////\r
49         // retrieve & set line \r
50 \r
51         BOOL ReplaceString(const Region *pRegion, LPCTSTR pString);\r
52         BOOL Undo();\r
53 \r
54         BOOL IsModify() { return bModified; }\r
55         void SetModify(BOOL b);\r
56 \r
57         BOOL IsReadOnly() { return bReadOnly; }\r
58         void SetReadOnly(BOOL b);\r
59 \r
60         ////////////////////////////////////////////////////\r
61         // Data size related functions\r
62         DWORD GetDataBytes(const Region *pRegion);\r
63         void ConvertBytesToCoordinate(DWORD nPos, Coordinate *pPos);\r
64 \r
65         ////////////////////////////////////////////////////\r
66         // set current document status as undo point\r
67         BOOL InsertUndoPoint();\r
68 \r
69         ////////////////////////////////////////////////////\r
70         // only for testing\r
71 \r
72         LPCTSTR GetUndoStr();\r
73         const Region GetUndoRegion();\r
74 };\r
75 \r
76 #endif