Artifact f62bdbf2e74c7d8bfa620b0879dc10c967eb4c13:
0000: 23 69 66 6e 64 65 66 20 5f 45 44 49 54 57 49 4e #ifndef _EDITWIN
0010: 47 5f 44 4f 43 5f 48 5f 0d 0a 23 64 65 66 69 6e G_DOC_H_..#defin
0020: 65 20 5f 45 44 49 54 57 49 4e 47 5f 44 4f 43 5f e _EDITWING_DOC_
0030: 48 5f 0d 0a 23 69 6e 63 6c 75 64 65 20 22 65 77 H_..#include "ew
0040: 43 6f 6d 6d 6f 6e 2e 68 22 0d 0a 23 69 66 6e 64 Common.h"..#ifnd
0050: 65 66 20 5f 5f 63 63 64 6f 63 5f 5f 0d 0a 6e 61 ef __ccdoc__..na
0060: 6d 65 73 70 61 63 65 20 65 64 69 74 77 69 6e 67 mespace editwing
0070: 20 7b 0d 0a 6e 61 6d 65 73 70 61 63 65 20 64 6f {..namespace do
0080: 63 20 7b 0d 0a 23 65 6e 64 69 66 0d 0a 0d 0a 0d c {..#endif.....
0090: 0a 0d 0a 63 6c 61 73 73 20 44 6f 63 49 6d 70 6c ...class DocImpl
00a0: 3b 0d 0a 63 6c 61 73 73 20 44 6f 63 45 76 48 61 ;..class DocEvHa
00b0: 6e 64 6c 65 72 3b 0d 0a 63 6c 61 73 73 20 43 6f ndler;..class Co
00c0: 6d 6d 61 6e 64 3b 0d 0a 63 6c 61 73 73 20 49 6e mmand;..class In
00d0: 73 65 72 74 3b 0d 0a 63 6c 61 73 73 20 44 65 6c sert;..class Del
00e0: 65 74 65 3b 0d 0a 63 6c 61 73 73 20 52 65 70 6c ete;..class Repl
00f0: 61 63 65 3b 0d 0a 0d 0a 0d 0a 0d 0a 2f 2f 3d 3d ace;........//==
0100: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0110: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0120: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0130: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0140: 3d 3d 3d 3d 3d 3d 3d 0d 0a 2f 2f 40 7b 20 40 70 =======..//@{ @p
0150: 6b 67 20 65 64 69 74 77 69 6e 67 2e 44 6f 63 20 kg editwing.Doc
0160: 2f 2f 40 7d 0d 0a 2f 2f 40 7b 0d 0a 2f 2f 09 95 //@}..//@{..//..
0170: b6 8f 91 83 66 81 5b 83 5e 0d 0a 2f 2f 0d 0a 2f ....f.[.^..//../
0180: 2f 09 82 b1 82 cc 83 4e 83 89 83 58 82 cd 92 50 /......N...X...P
0190: 82 c8 82 e9 83 43 83 93 83 5e 81 5b 83 74 83 46 .....C...^.[.t.F
01a0: 83 43 83 58 82 c5 81 41 93 e0 95 94 8e c0 91 95 .C.X...A........
01b0: 82 cd 0d 0a 2f 2f 09 63 6c 61 73 73 20 44 6f 63 ....//.class Doc
01c0: 49 6d 70 6c 20 82 c5 8d 73 82 a4 81 42 82 cc 82 Impl ...s...B...
01d0: c5 81 41 8f da 82 b5 82 ad 82 cd 82 bb 82 bf 82 ..A.............
01e0: e7 82 f0 8e 51 8f c6 82 cc 82 b1 82 c6 81 42 0d ....Q.........B.
01f0: 0a 2f 2f 40 7d 0d 0a 2f 2f 3d 3d 3d 3d 3d 3d 3d .//@}..//=======
0200: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0210: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0220: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0230: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0240: 3d 3d 0d 0a 0d 0a 63 6c 61 73 73 20 44 6f 63 75 ==....class Docu
0250: 6d 65 6e 74 20 3a 20 70 75 62 6c 69 63 20 6b 69 ment : public ki
0260: 3a 3a 4f 62 6a 65 63 74 0d 0a 7b 0d 0a 70 75 62 ::Object..{..pub
0270: 6c 69 63 3a 0d 0a 0d 0a 09 2f 2f 40 7b 20 89 bd lic:.....//@{ ..
0280: 82 e0 82 b5 82 c8 82 a2 83 52 83 93 83 58 83 67 .........R...X.g
0290: 83 89 83 4e 83 5e 20 2f 2f 40 7d 0d 0a 09 44 6f ...N.^ //@}...Do
02a0: 63 75 6d 65 6e 74 28 29 3b 0d 0a 09 7e 44 6f 63 cument();...~Doc
02b0: 75 6d 65 6e 74 28 29 3b 0d 0a 0d 0a 09 2f 2f 40 ument();.....//@
02c0: 7b 20 83 74 83 40 83 43 83 8b 82 f0 8a 4a 82 ad { .t.@.C.....J..
02d0: 20 2f 2f 40 7d 0d 0a 09 76 6f 69 64 20 4f 70 65 //@}...void Ope
02e0: 6e 46 69 6c 65 28 20 6b 69 3a 3a 61 70 74 72 3c nFile( ki::aptr<
02f0: 6b 69 3a 3a 54 65 78 74 46 69 6c 65 52 3e 20 74 ki::TextFileR> t
0300: 66 20 29 3b 0d 0a 0d 0a 09 2f 2f 40 7b 20 83 74 f );.....//@{ .t
0310: 83 40 83 43 83 8b 82 f0 95 db 91 b6 20 2f 2f 40 .@.C........ //@
0320: 7d 0d 0a 09 76 6f 69 64 20 53 61 76 65 46 69 6c }...void SaveFil
0330: 65 28 20 6b 69 3a 3a 54 65 78 74 46 69 6c 65 57 e( ki::TextFileW
0340: 26 20 74 66 20 29 3b 0d 0a 0d 0a 09 2f 2f 40 7b & tf );.....//@{
0350: 20 93 e0 97 65 94 6a 8a fc 20 2f 2f 40 7d 0d 0a ...e.j.. //@}..
0360: 09 76 6f 69 64 20 43 6c 65 61 72 41 6c 6c 28 29 .void ClearAll()
0370: 3b 0d 0a 0d 0a 09 2f 2f 40 7b 20 91 80 8d ec 83 ;.....//@{ .....
0380: 52 83 7d 83 93 83 68 8e c0 8d 73 20 2f 2f 40 7d R.}...h...s //@}
0390: 0d 0a 09 76 6f 69 64 20 45 78 65 63 75 74 65 28 ...void Execute(
03a0: 20 63 6f 6e 73 74 20 43 6f 6d 6d 61 6e 64 26 20 const Command&
03b0: 63 6d 64 20 29 3b 0d 0a 0d 0a 09 2f 2f 40 7b 20 cmd );.....//@{
03c0: 83 41 83 93 83 68 83 44 20 2f 2f 40 5d 0d 0a 09 .A...h.D //@]...
03d0: 76 6f 69 64 20 55 6e 64 6f 28 29 3b 0d 0a 0d 0a void Undo();....
03e0: 09 2f 2f 40 7b 20 83 8a 83 68 83 44 20 2f 2f 40 .//@{ ...h.D //@
03f0: 5d 0d 0a 09 76 6f 69 64 20 52 65 64 6f 28 29 3b ]...void Redo();
0400: 0d 0a 0d 0a 09 2f 2f 40 7b 20 83 41 83 93 83 68 .....//@{ .A...h
0410: 83 44 89 f1 90 94 90 a7 8c c0 20 2f 2f 40 5d 0d .D........ //@].
0420: 0a 09 76 6f 69 64 20 53 65 74 55 6e 64 6f 4c 69 ..void SetUndoLi
0430: 6d 69 74 28 20 6c 6f 6e 67 20 6c 69 6d 20 29 3b mit( long lim );
0440: 0d 0a 0d 0a 09 2f 2f 40 7b 20 95 cf 8d 58 83 74 .....//@{ ...X.t
0450: 83 89 83 4f 82 f0 83 4e 83 8a 83 41 20 2f 2f 40 ...O...N...A //@
0460: 7d 0d 0a 09 76 6f 69 64 20 43 6c 65 61 72 4d 6f }...void ClearMo
0470: 64 69 66 79 46 6c 61 67 28 29 3b 0d 0a 0d 0a 09 difyFlag();.....
0480: 2f 2f 40 7b 20 83 43 83 78 83 93 83 67 83 6e 83 //@{ .C.x...g.n.
0490: 93 83 68 83 89 93 6f 98 5e 20 2f 2f 40 7d 0d 0a ..h...o.^ //@}..
04a0: 09 76 6f 69 64 20 41 64 64 48 61 6e 64 6c 65 72 .void AddHandler
04b0: 28 20 44 6f 63 45 76 48 61 6e 64 6c 65 72 2a 20 ( DocEvHandler*
04c0: 65 68 20 29 3b 0d 0a 0d 0a 09 2f 2f 40 7b 20 83 eh );.....//@{ .
04d0: 43 83 78 83 93 83 67 83 6e 83 93 83 68 83 89 89 C.x...g.n...h...
04e0: f0 8f 9c 20 2f 2f 40 7d 0d 0a 09 76 6f 69 64 20 ... //@}...void
04f0: 44 65 6c 48 61 6e 64 6c 65 72 28 20 44 6f 63 45 DelHandler( DocE
0500: 76 48 61 6e 64 6c 65 72 2a 20 65 68 20 29 3b 0d vHandler* eh );.
0510: 0a 0d 0a 09 2f 2f 40 7b 20 83 4c 81 5b 83 8f 81 ....//@{ .L.[...
0520: 5b 83 68 92 e8 8b 60 90 d8 82 e8 91 d6 82 a6 20 [.h...`........
0530: 2f 2f 40 7d 0d 0a 09 76 6f 69 64 20 53 65 74 4b //@}...void SetK
0540: 65 79 77 6f 72 64 28 20 63 6f 6e 73 74 20 75 6e eyword( const un
0550: 69 63 6f 64 65 2a 20 64 65 66 62 75 66 2c 20 75 icode* defbuf, u
0560: 6c 6f 6e 67 20 73 69 7a 3d 30 20 29 3b 0d 0a 0d long siz=0 );...
0570: 0a 70 75 62 6c 69 63 3a 0d 0a 0d 0a 09 2f 2f 40 .public:.....//@
0580: 7b 20 93 e0 95 94 8e c0 91 95 83 4e 83 89 83 58 { .........N...X
0590: 20 2f 2f 40 7d 0d 0a 09 44 6f 63 49 6d 70 6c 26 //@}...DocImpl&
05a0: 20 69 6d 70 6c 28 29 20 7b 20 72 65 74 75 72 6e impl() { return
05b0: 20 2a 69 6d 70 6c 5f 3b 20 7d 0d 0a 0d 0a 09 2f *impl_; }...../
05c0: 2f 40 7b 20 8d 73 90 94 20 2f 2f 40 7d 0d 0a 09 /@{ .s.. //@}...
05d0: 75 6c 6f 6e 67 20 74 6c 6e 28 29 20 63 6f 6e 73 ulong tln() cons
05e0: 74 3b 0d 0a 0d 0a 09 2f 2f 40 7b 20 8d 73 83 6f t;.....//@{ .s.o
05f0: 83 62 83 74 83 40 20 2f 2f 40 7d 0d 0a 09 63 6f .b.t.@ //@}...co
0600: 6e 73 74 20 75 6e 69 63 6f 64 65 2a 20 74 6c 28 nst unicode* tl(
0610: 20 75 6c 6f 6e 67 20 69 20 29 20 63 6f 6e 73 74 ulong i ) const
0620: 3b 0d 0a 0d 0a 09 2f 2f 40 7b 20 8d 73 95 b6 8e ;.....//@{ .s...
0630: 9a 90 94 20 2f 2f 40 7d 0d 0a 09 75 6c 6f 6e 67 ... //@}...ulong
0640: 20 6c 65 6e 28 20 75 6c 6f 6e 67 20 69 20 29 20 len( ulong i )
0650: 63 6f 6e 73 74 3b 0d 0a 0d 0a 09 2f 2f 40 7b 20 const;.....//@{
0660: 8e 77 92 e8 94 cd 88 cd 82 cc 83 65 83 4c 83 58 .w.........e.L.X
0670: 83 67 82 cc 92 b7 82 b3 20 2f 2f 40 7d 0d 0a 09 .g...... //@}...
0680: 75 6c 6f 6e 67 20 67 65 74 52 61 6e 67 65 4c 65 ulong getRangeLe
0690: 6e 67 74 68 28 20 63 6f 6e 73 74 20 44 50 6f 73 ngth( const DPos
06a0: 26 20 73 74 74 2c 20 63 6f 6e 73 74 20 44 50 6f & stt, const DPo
06b0: 73 26 20 65 6e 64 20 29 20 63 6f 6e 73 74 3b 0d s& end ) const;.
06c0: 0a 0d 0a 09 2f 2f 40 7b 20 8e 77 92 e8 94 cd 88 ....//@{ .w.....
06d0: cd 82 cc 83 65 83 4c 83 58 83 67 20 2f 2f 40 7d ....e.L.X.g //@}
06e0: 0d 0a 09 76 6f 69 64 20 67 65 74 54 65 78 74 28 ...void getText(
06f0: 20 75 6e 69 63 6f 64 65 2a 20 62 75 66 2c 20 63 unicode* buf, c
0700: 6f 6e 73 74 20 44 50 6f 73 26 20 73 74 74 2c 20 onst DPos& stt,
0710: 63 6f 6e 73 74 20 44 50 6f 73 26 20 65 6e 64 20 const DPos& end
0720: 29 20 63 6f 6e 73 74 3b 0d 0a 0d 0a 09 2f 2f 40 ) const;.....//@
0730: 7b 20 83 41 83 93 83 68 83 44 89 c2 94 5c 81 48 { .A...h.D...\.H
0740: 20 2f 2f 40 7d 0d 0a 09 62 6f 6f 6c 20 69 73 55 //@}...bool isU
0750: 6e 64 6f 41 62 6c 65 28 29 20 63 6f 6e 73 74 3b ndoAble() const;
0760: 0d 0a 0d 0a 09 2f 2f 40 7b 20 83 8a 83 68 83 44 .....//@{ ...h.D
0770: 89 c2 94 5c 81 48 20 2f 2f 40 7d 0d 0a 09 62 6f ...\.H //@}...bo
0780: 6f 6c 20 69 73 52 65 64 6f 41 62 6c 65 28 29 20 ol isRedoAble()
0790: 63 6f 6e 73 74 3b 0d 0a 0d 0a 09 2f 2f 40 7b 20 const;.....//@{
07a0: 95 cf 8d 58 8d cf 82 dd 81 48 20 2f 2f 40 7d 0d ...X.....H //@}.
07b0: 0a 09 62 6f 6f 6c 20 69 73 4d 6f 64 69 66 69 65 ..bool isModifie
07c0: 64 28 29 20 63 6f 6e 73 74 3b 0d 0a 0d 0a 09 2f d() const;...../
07d0: 2f 40 7b 20 83 72 83 57 81 5b 83 74 83 89 83 4f /@{ .r.W.[.t...O
07e0: 81 69 83 7d 83 4e 83 8d 83 52 83 7d 83 93 83 68 .i.}.N...R.}...h
07f0: 8e c0 8d 73 92 86 82 cc 82 dd 90 ac 97 a7 81 6a ...s...........j
0800: 20 2f 2f 40 7d 0d 0a 09 76 6f 69 64 20 73 65 74 //@}...void set
0810: 42 75 73 79 46 6c 61 67 28 20 62 6f 6f 6c 20 62 BusyFlag( bool b
0820: 3d 74 72 75 65 20 29 20 7b 20 62 75 73 79 5f 20 =true ) { busy_
0830: 3d 20 62 3b 20 7d 0d 0a 09 62 6f 6f 6c 20 69 73 = b; }...bool is
0840: 42 75 73 79 28 29 20 63 6f 6e 73 74 20 7b 20 72 Busy() const { r
0850: 65 74 75 72 6e 20 62 75 73 79 5f 3b 20 7d 0d 0a eturn busy_; }..
0860: 0d 0a 70 72 69 76 61 74 65 3a 0d 0a 0d 0a 09 2f ..private:...../
0870: 2f 20 8e c0 91 95 0d 0a 09 6b 69 3a 3a 64 70 74 / .......ki::dpt
0880: 72 3c 44 6f 63 49 6d 70 6c 3e 20 69 6d 70 6c 5f r<DocImpl> impl_
0890: 3b 0d 0a 09 62 6f 6f 6c 20 62 75 73 79 5f 3b 0d ;...bool busy_;.
08a0: 0a 0d 0a 70 72 69 76 61 74 65 3a 0d 0a 0d 0a 09 ...private:.....
08b0: 4e 4f 43 4f 50 59 28 44 6f 63 75 6d 65 6e 74 29 NOCOPY(Document)
08c0: 3b 0d 0a 7d 3b 0d 0a 0d 0a 0d 0a 0d 0a 2f 2f 3d ;..};........//=
08d0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
08e0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
08f0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0900: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0910: 3d 3d 3d 3d 3d 3d 3d 3d 0d 0a 2f 2f 40 7b 0d 0a ========..//@{..
0920: 2f 2f 09 83 43 83 78 83 93 83 67 83 6e 83 93 83 //..C.x...g.n...
0930: 68 83 89 83 43 83 93 83 5e 81 5b 83 74 83 46 83 h...C...^.[.t.F.
0940: 43 83 58 0d 0a 2f 2f 0d 0a 2f 2f 09 83 68 83 4c C.X..//..//..h.L
0950: 83 85 83 81 83 93 83 67 82 a9 82 e7 94 ad 90 b6 .......g........
0960: 82 b7 82 e9 83 43 83 78 83 93 83 67 81 69 91 7d .....C.x...g.i.}
0970: 93 fc 2f 8d ed 8f 9c 82 c8 82 c7 82 c8 82 c7 81 ../.............
0980: 63 81 6a 82 f0 0d 0a 2f 2f 09 8e f3 82 af 8e e6 c.j....//.......
0990: 82 e8 82 bd 82 a2 8f ea 8d 87 82 cd 81 41 82 b1 .............A..
09a0: 82 cc 83 43 83 93 83 5e 81 5b 83 74 83 46 83 43 ...C...^.[.t.F.C
09b0: 83 58 82 f0 8c 70 8f b3 82 b5 81 41 93 4b 8b 58 .X...p.....A.K.X
09c0: 83 6e 83 93 83 68 83 89 82 f0 0d 0a 2f 2f 09 8f .n...h......//..
09d0: 91 82 ad 82 b1 82 c6 81 42 56 69 65 77 82 cc 8d ........BView...
09e0: c4 95 60 89 e6 8f 88 97 9d 82 c8 82 c7 82 e0 82 ..`.............
09f0: b1 82 ea 82 f0 92 ca 82 b6 82 c4 8e c0 8d 73 82 ..............s.
0a00: b3 82 ea 82 c4 82 a2 82 e9 81 42 0d 0a 2f 2f 40 ..........B..//@
0a10: 7d 0d 0a 2f 2f 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d }..//===========
0a20: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0a30: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0a40: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0a50: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0d 0a ==============..
0a60: 0d 0a 63 6c 61 73 73 20 44 6f 63 45 76 48 61 6e ..class DocEvHan
0a70: 64 6c 65 72 0d 0a 7b 0d 0a 70 75 62 6c 69 63 3a dler..{..public:
0a80: 0d 0a 09 2f 2f 40 7b 0d 0a 09 2f 2f 09 83 65 83 ...//@{...//..e.
0a90: 4c 83 58 83 67 93 e0 97 65 82 aa 95 cf 8d 58 82 L.X.g...e.....X.
0aa0: b3 82 ea 82 bd 82 c6 82 ab 82 c9 94 ad 90 b6 0d ................
0ab0: 0a 09 2f 2f 09 40 70 61 72 61 6d 20 73 20 20 20 ..//.@param s
0ac0: 20 20 20 20 20 95 cf 8d 58 94 cd 88 cd 82 cc 90 ...X.......
0ad0: e6 93 aa 0d 0a 09 2f 2f 09 40 70 61 72 61 6d 20 ......//.@param
0ae0: 65 20 20 20 20 20 20 20 20 95 cf 8d 58 94 cd 88 e ...X...
0af0: cd 82 cc 8f 49 92 5b 28 91 4f 29 0d 0a 09 2f 2f ....I.[(.O)...//
0b00: 09 40 70 61 72 61 6d 20 65 32 20 20 20 20 20 20 .@param e2
0b10: 20 95 cf 8d 58 94 cd 88 cd 82 cc 8f 49 92 5b 28 ...X.......I.[(
0b20: 8c e3 29 0d 0a 09 2f 2f 09 40 70 61 72 61 6d 20 ..)...//.@param
0b30: 72 65 70 61 72 73 65 64 20 65 32 82 e6 82 e8 8c reparsed e2.....
0b40: e3 82 eb 82 cc 83 52 83 81 83 93 83 67 83 41 83 ......R.....g.A.
0b50: 45 83 67 8f f3 91 d4 82 aa 95 cf 89 bb 82 b5 82 E.g.............
0b60: c4 82 a2 82 bd 82 e7 74 72 75 65 0d 0a 09 2f 2f .......true...//
0b70: 09 40 70 61 72 61 6d 20 6e 6d 6c 63 6d 64 20 20 .@param nmlcmd
0b80: 20 91 7d 93 fc 2f 8d ed 8f 9c 2f 92 75 8a b7 82 .}../..../.u...
0b90: c8 82 e7 74 72 75 65 81 41 83 74 83 40 83 43 83 ...true.A.t.@.C.
0ba0: 8b 8a 4a 82 ab 2f 91 53 92 75 8a b7 82 c8 82 e7 ..J../.S.u......
0bb0: 66 61 6c 73 65 0d 0a 09 2f 2f 40 7d 0d 0a 09 76 false...//@}...v
0bc0: 69 72 74 75 61 6c 20 76 6f 69 64 20 6f 6e 5f 74 irtual void on_t
0bd0: 65 78 74 5f 75 70 64 61 74 65 28 20 63 6f 6e 73 ext_update( cons
0be0: 74 20 44 50 6f 73 26 20 73 2c 0d 0a 09 09 63 6f t DPos& s,....co
0bf0: 6e 73 74 20 44 50 6f 73 26 20 65 2c 20 63 6f 6e nst DPos& e, con
0c00: 73 74 20 44 50 6f 73 26 20 65 32 2c 20 62 6f 6f st DPos& e2, boo
0c10: 6c 20 72 65 70 61 72 73 65 64 2c 20 62 6f 6f 6c l reparsed, bool
0c20: 20 6e 6d 6c 63 6d 64 20 29 20 7b 7d 0d 0a 0d 0a nmlcmd ) {}....
0c30: 09 2f 2f 40 7b 0d 0a 09 2f 2f 09 83 4c 81 5b 83 .//@{...//..L.[.
0c40: 8f 81 5b 83 68 82 aa 95 cf 8d 58 82 b3 82 ea 82 ..[.h.....X.....
0c50: bd 82 c6 82 ab 82 c9 94 ad 90 b6 0d 0a 09 2f 2f ..............//
0c60: 40 7d 0d 0a 09 76 69 72 74 75 61 6c 20 76 6f 69 @}...virtual voi
0c70: 64 20 6f 6e 5f 6b 65 79 77 6f 72 64 5f 63 68 61 d on_keyword_cha
0c80: 6e 67 65 28 29 20 7b 7d 0d 0a 0d 0a 09 2f 2f 40 nge() {}.....//@
0c90: 7b 0d 0a 09 2f 2f 09 83 5f 81 5b 83 65 83 42 83 {...//.._.[.e.B.
0ca0: 74 83 89 83 4f 82 aa 95 cf 8d 58 82 b3 82 ea 82 t...O.....X.....
0cb0: bd 82 c6 82 ab 82 c9 94 ad 90 b6 0d 0a 09 2f 2f ..............//
0cc0: 40 7d 0d 0a 09 76 69 72 74 75 61 6c 20 76 6f 69 @}...virtual voi
0cd0: 64 20 6f 6e 5f 64 69 72 74 79 66 6c 61 67 5f 63 d on_dirtyflag_c
0ce0: 68 61 6e 67 65 28 20 62 6f 6f 6c 20 64 69 72 74 hange( bool dirt
0cf0: 79 20 29 20 7b 7d 0d 0a 7d 3b 0d 0a 0d 0a 0d 0a y ) {}..};......
0d00: 0d 0a 2f 2f 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ..//============
0d10: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0d20: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0d30: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0d40: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0d 0a 2f =============../
0d50: 2f 40 7b 0d 0a 2f 2f 09 91 80 8d ec 83 52 83 7d /@{..//......R.}
0d60: 83 93 83 68 83 43 83 93 83 5e 81 5b 83 74 83 46 ...h.C...^.[.t.F
0d70: 83 43 83 58 0d 0a 2f 2f 0d 0a 2f 2f 09 83 68 83 .C.X..//..//..h.
0d80: 4c 83 85 83 81 83 93 83 67 82 cd 81 41 43 6f 6d L.......g...ACom
0d90: 6d 61 6e 64 20 82 a9 82 e7 94 68 90 b6 82 b5 82 mand .....h.....
0da0: bd 83 4e 83 89 83 58 82 cc 83 43 83 93 83 58 83 ..N...X...C...X.
0db0: 5e 83 93 83 58 82 cc 0d 0a 2f 2f 09 6f 70 65 72 ^...X....//.oper
0dc0: 61 74 6f 72 28 29 20 82 f0 8c c4 82 d1 8f 6f 82 ator() .......o.
0dd0: b7 82 b1 82 c6 82 c5 81 41 90 46 81 58 82 c8 91 ........A.F.X...
0de0: 80 8d ec 82 f0 8e c0 8d 73 82 b7 82 e9 81 42 82 ........s.....B.
0df0: c6 82 e8 82 a0 82 a6 82 b8 0d 0a 2f 2f 09 8b ef ...........//...
0e00: 91 cc 93 49 82 c9 82 cd 20 49 6e 73 65 72 74 2f ...I.... Insert/
0e10: 44 65 6c 65 74 65 2f 52 65 70 6c 61 63 65 20 82 Delete/Replace .
0e20: cc 82 52 82 c2 82 be 82 af 81 42 82 a0 82 c6 82 ..R.......B.....
0e30: c5 83 7d 83 4e 83 8d 83 52 83 7d 83 93 83 68 97 ..}.N...R.}...h.
0e40: 70 0d 0a 2f 2f 09 83 4e 83 89 83 58 82 e0 8d ec p..//..N...X....
0e50: 82 e9 82 c2 82 e0 82 e8 82 be 82 af 82 c7 81 41 ...............A
0e60: 82 c6 82 e8 82 a0 82 a6 82 b8 82 cd 95 db 97 af ................
0e70: 81 42 0d 0a 2f 2f 40 7d 0d 0a 2f 2f 3d 3d 3d 3d .B..//@}..//====
0e80: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0e90: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0ea0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0eb0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0ec0: 3d 3d 3d 3d 3d 0d 0a 0d 0a 63 6c 61 73 73 20 43 =====....class C
0ed0: 6f 6d 6d 61 6e 64 20 3a 20 70 75 62 6c 69 63 20 ommand : public
0ee0: 6b 69 3a 3a 4f 62 6a 65 63 74 0d 0a 7b 0d 0a 70 ki::Object..{..p
0ef0: 72 6f 74 65 63 74 65 64 3a 0d 0a 09 66 72 69 65 rotected:...frie
0f00: 6e 64 20 63 6c 61 73 73 20 55 6e 52 65 44 6f 43 nd class UnReDoC
0f10: 68 61 69 6e 3b 0d 0a 09 66 72 69 65 6e 64 20 63 hain;...friend c
0f20: 6c 61 73 73 20 4d 61 63 72 6f 43 6f 6d 6d 61 6e lass MacroComman
0f30: 64 3b 0d 0a 09 76 69 72 74 75 61 6c 20 43 6f 6d d;...virtual Com
0f40: 6d 61 6e 64 2a 20 6f 70 65 72 61 74 6f 72 28 29 mand* operator()
0f50: 28 20 44 6f 63 75 6d 65 6e 74 26 20 64 6f 63 20 ( Document& doc
0f60: 29 20 63 6f 6e 73 74 20 3d 20 30 3b 0d 0a 7d 3b ) const = 0;..};
0f70: 0d 0a 0d 0a 0d 0a 0d 0a 2f 2f 3d 3d 3d 3d 3d 3d ........//======
0f80: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0f90: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0fa0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0fb0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0fc0: 3d 3d 3d 0d 0a 2f 2f 40 7b 0d 0a 2f 2f 09 91 7d ===..//@{..//..}
0fd0: 93 fc 83 52 83 7d 83 93 83 68 0d 0a 2f 2f 40 7d ...R.}...h..//@}
0fe0: 0d 0a 2f 2f 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ..//============
0ff0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1000: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1010: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1020: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0d 0a 0d =============...
1030: 0a 63 6c 61 73 73 20 49 6e 73 65 72 74 20 3a 20 .class Insert :
1040: 70 75 62 6c 69 63 20 43 6f 6d 6d 61 6e 64 0d 0a public Command..
1050: 7b 0d 0a 70 75 62 6c 69 63 3a 0d 0a 0d 0a 09 2f {..public:...../
1060: 2f 40 7b 0d 0a 09 2f 2f 09 40 70 61 72 61 6d 20 /@{...//.@param
1070: 73 20 91 7d 93 fc 88 ca 92 75 0d 0a 09 2f 2f 09 s .}.....u...//.
1080: 40 70 61 72 61 6d 20 73 74 72 20 91 7d 93 fc 95 @param str .}...
1090: b6 8e 9a 97 f1 0d 0a 09 2f 2f 09 40 70 61 72 61 ........//.@para
10a0: 6d 20 6c 65 6e 20 95 b6 8e 9a 97 f1 82 cc 92 b7 m len ..........
10b0: 82 b3 0d 0a 09 2f 2f 09 40 70 61 72 61 6d 20 64 .....//.@param d
10c0: 65 6c 20 83 52 83 7d 83 93 83 68 8f 49 97 b9 8e el .R.}...h.I...
10d0: 9e 82 c9 64 65 6c 65 74 65 20 5b 5d 20 73 74 72 ...delete [] str
10e0: 82 b5 82 c4 82 e6 82 a2 82 a9 81 48 0d 0a 09 2f ...........H.../
10f0: 2f 40 7d 0d 0a 09 49 6e 73 65 72 74 28 20 63 6f /@}...Insert( co
1100: 6e 73 74 20 44 50 6f 73 26 20 73 2c 20 63 6f 6e nst DPos& s, con
1110: 73 74 20 75 6e 69 63 6f 64 65 2a 20 73 74 72 2c st unicode* str,
1120: 20 75 6c 6f 6e 67 20 6c 65 6e 2c 20 62 6f 6f 6c ulong len, bool
1130: 20 64 65 6c 3d 66 61 6c 73 65 20 29 3b 0d 0a 09 del=false );...
1140: 7e 49 6e 73 65 72 74 28 29 3b 0d 0a 0d 0a 70 72 ~Insert();....pr
1150: 69 76 61 74 65 3a 0d 0a 0d 0a 09 43 6f 6d 6d 61 ivate:.....Comma
1160: 6e 64 2a 20 6f 70 65 72 61 74 6f 72 28 29 28 20 nd* operator()(
1170: 44 6f 63 75 6d 65 6e 74 26 20 64 6f 63 20 29 20 Document& doc )
1180: 63 6f 6e 73 74 3b 0d 0a 09 44 50 6f 73 20 20 20 const;...DPos
1190: 20 20 20 20 20 20 20 20 73 74 74 5f 3b 0d 0a 09 stt_;...
11a0: 63 6f 6e 73 74 20 75 6e 69 63 6f 64 65 2a 20 62 const unicode* b
11b0: 75 66 5f 3b 0d 0a 09 75 6c 6f 6e 67 20 20 20 20 uf_;...ulong
11c0: 20 20 20 20 20 20 6c 65 6e 5f 3b 0d 0a 09 62 6f len_;...bo
11d0: 6f 6c 20 20 20 20 20 20 20 20 20 20 20 64 65 6c ol del
11e0: 5f 3b 0d 0a 7d 3b 0d 0a 0d 0a 0d 0a 0d 0a 2f 2f _;..};........//
11f0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1200: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1210: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1220: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1230: 3d 3d 3d 3d 3d 3d 3d 3d 3d 0d 0a 2f 2f 40 7b 0d =========..//@{.
1240: 0a 2f 2f 09 8d ed 8f 9c 83 52 83 7d 83 93 83 68 .//......R.}...h
1250: 0d 0a 2f 2f 40 7d 0d 0a 2f 2f 3d 3d 3d 3d 3d 3d ..//@}..//======
1260: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1270: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1280: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1290: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
12a0: 3d 3d 3d 0d 0a 0d 0a 63 6c 61 73 73 20 44 65 6c ===....class Del
12b0: 65 74 65 20 3a 20 70 75 62 6c 69 63 20 43 6f 6d ete : public Com
12c0: 6d 61 6e 64 0d 0a 7b 0d 0a 70 75 62 6c 69 63 3a mand..{..public:
12d0: 0d 0a 0d 0a 09 2f 2f 40 7b 0d 0a 09 2f 2f 09 40 .....//@{...//.@
12e0: 70 61 72 61 6d 20 73 20 8a 4a 8e 6e 88 ca 92 75 param s .J.n...u
12f0: 0d 0a 09 2f 2f 09 40 70 61 72 61 6d 20 65 20 8f ...//.@param e .
1300: 49 92 5b 88 ca 92 75 0d 0a 09 2f 2f 40 7d 0d 0a I.[...u...//@}..
1310: 09 44 65 6c 65 74 65 28 20 63 6f 6e 73 74 20 44 .Delete( const D
1320: 50 6f 73 26 20 73 2c 20 63 6f 6e 73 74 20 44 50 Pos& s, const DP
1330: 6f 73 26 20 65 20 29 3b 0d 0a 0d 0a 70 72 69 76 os& e );....priv
1340: 61 74 65 3a 0d 0a 0d 0a 09 43 6f 6d 6d 61 6e 64 ate:.....Command
1350: 2a 20 6f 70 65 72 61 74 6f 72 28 29 28 20 44 6f * operator()( Do
1360: 63 75 6d 65 6e 74 26 20 64 6f 63 20 29 20 63 6f cument& doc ) co
1370: 6e 73 74 3b 0d 0a 09 44 50 6f 73 20 73 74 74 5f nst;...DPos stt_
1380: 3b 0d 0a 09 44 50 6f 73 20 65 6e 64 5f 3b 0d 0a ;...DPos end_;..
1390: 7d 3b 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 2f 2f 3d 3d };..........//==
13a0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
13b0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
13c0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
13d0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
13e0: 3d 3d 3d 3d 3d 3d 3d 0d 0a 2f 2f 40 7b 0d 0a 2f =======..//@{../
13f0: 2f 09 92 75 8a b7 83 52 83 7d 83 93 83 68 0d 0a /..u...R.}...h..
1400: 2f 2f 40 7d 0d 0a 2f 2f 3d 3d 3d 3d 3d 3d 3d 3d //@}..//========
1410: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1420: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1430: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1440: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1450: 3d 0d 0a 0d 0a 63 6c 61 73 73 20 52 65 70 6c 61 =....class Repla
1460: 63 65 20 3a 20 70 75 62 6c 69 63 20 43 6f 6d 6d ce : public Comm
1470: 61 6e 64 0d 0a 7b 0d 0a 70 75 62 6c 69 63 3a 0d and..{..public:.
1480: 0a 0d 0a 09 2f 2f 40 7b 0d 0a 09 2f 2f 09 40 70 ....//@{...//.@p
1490: 61 72 61 6d 20 73 20 8a 4a 8e 6e 88 ca 92 75 0d aram s .J.n...u.
14a0: 0a 09 2f 2f 09 40 70 61 72 61 6d 20 65 20 8f 49 ..//.@param e .I
14b0: 92 5b 88 ca 92 75 0d 0a 09 2f 2f 09 40 70 61 72 .[...u...//.@par
14c0: 61 6d 20 73 74 72 20 91 7d 93 fc 95 b6 8e 9a 97 am str .}.......
14d0: f1 0d 0a 09 2f 2f 09 40 70 61 72 61 6d 20 6c 65 ....//.@param le
14e0: 6e 20 95 b6 8e 9a 97 f1 82 cc 92 b7 82 b3 0d 0a n ..............
14f0: 09 2f 2f 09 40 70 61 72 61 6d 20 64 65 6c 20 83 .//.@param del .
1500: 52 83 7d 83 93 83 68 8f 49 97 b9 8e 9e 82 c9 64 R.}...h.I......d
1510: 65 6c 65 74 65 20 5b 5d 20 73 74 72 82 b5 82 c4 elete [] str....
1520: 82 e6 82 a2 82 a9 81 48 0d 0a 09 2f 2f 40 7d 0d .......H...//@}.
1530: 0a 09 52 65 70 6c 61 63 65 28 20 63 6f 6e 73 74 ..Replace( const
1540: 20 44 50 6f 73 26 20 73 2c 20 63 6f 6e 73 74 20 DPos& s, const
1550: 44 50 6f 73 26 20 65 2c 0d 0a 09 09 63 6f 6e 73 DPos& e,....cons
1560: 74 20 75 6e 69 63 6f 64 65 2a 20 73 74 72 2c 20 t unicode* str,
1570: 75 6c 6f 6e 67 20 6c 65 6e 2c 20 62 6f 6f 6c 20 ulong len, bool
1580: 64 65 6c 3d 66 61 6c 73 65 20 29 3b 0d 0a 09 7e del=false );...~
1590: 52 65 70 6c 61 63 65 28 29 3b 0d 0a 0d 0a 70 72 Replace();....pr
15a0: 69 76 61 74 65 3a 0d 0a 0d 0a 09 43 6f 6d 6d 61 ivate:.....Comma
15b0: 6e 64 2a 20 6f 70 65 72 61 74 6f 72 28 29 28 20 nd* operator()(
15c0: 44 6f 63 75 6d 65 6e 74 26 20 64 6f 63 20 29 20 Document& doc )
15d0: 63 6f 6e 73 74 3b 0d 0a 09 44 50 6f 73 20 20 20 const;...DPos
15e0: 20 20 20 20 20 20 20 20 73 74 74 5f 3b 0d 0a 09 stt_;...
15f0: 44 50 6f 73 20 20 20 20 20 20 20 20 20 20 20 65 DPos e
1600: 6e 64 5f 3b 0d 0a 09 63 6f 6e 73 74 20 75 6e 69 nd_;...const uni
1610: 63 6f 64 65 2a 20 62 75 66 5f 3b 0d 0a 09 75 6c code* buf_;...ul
1620: 6f 6e 67 20 20 20 20 20 20 20 20 20 20 6c 65 6e ong len
1630: 5f 3b 0d 0a 09 62 6f 6f 6c 20 20 20 20 20 20 20 _;...bool
1640: 20 20 20 20 64 65 6c 5f 3b 0d 0a 7d 3b 0d 0a 0d del_;..};...
1650: 0a 0d 0a 0d 0a 2f 2f 3d 3d 3d 3d 3d 3d 3d 3d 3d .....//=========
1660: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1670: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1680: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1690: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
16a0: 0d 0a 2f 2f 40 7b 0d 0a 2f 2f 09 83 7d 83 4e 83 ..//@{..//..}.N.
16b0: 8d 83 52 83 7d 83 93 83 68 0d 0a 2f 2f 0d 0a 2f ..R.}...h..//../
16c0: 2f 09 95 a1 90 94 82 cc 83 52 83 7d 83 93 83 68 /........R.}...h
16d0: 82 f0 88 ea 82 c2 82 cc 83 52 83 7d 83 93 83 68 .........R.}...h
16e0: 82 c6 82 b5 82 c4 98 41 91 b1 8e c0 8d 73 82 b7 .......A.....s..
16f0: 82 e9 81 42 0d 0a 2f 2f 09 82 bd 82 be 82 b5 81 ...B..//........
1700: 41 49 6e 73 65 72 74 2f 44 65 6c 65 74 65 2f 52 AInsert/Delete/R
1710: 65 70 6c 61 63 65 82 f0 88 ea 89 f1 8d 73 82 a4 eplace.......s..
1720: 82 bd 82 d1 82 c9 93 96 91 52 0d 0a 2f 2f 09 95 .........R..//..
1730: b6 8e 9a 97 f1 82 cc 88 ca 92 75 82 cd 95 cf 89 ..........u.....
1740: bb 82 b7 82 e9 82 cc 82 be 82 aa 81 41 82 bb 82 ............A...
1750: ea 82 c9 8a d6 82 b7 82 e9 95 cf 8a b7 8f 88 97 ................
1760: 9d 82 cd 0d 0a 2f 2f 09 8d 73 82 ed 82 c8 82 a2 .....//..s......
1770: 81 42 82 b7 82 c8 82 ed 82 bf 81 41 49 6e 73 65 .B.........AInse
1780: 72 74 2d 3e 44 65 6c 65 74 65 2d 3e 49 6e 73 65 rt->Delete->Inse
1790: 72 74 20 82 dd 82 bd 82 a2 82 c8 0d 0a 2f 2f 09 rt ..........//.
17a0: 98 41 91 b1 8f 88 97 9d 82 f0 8f 91 82 ad 82 c6 .A..............
17b0: 82 ab 82 cd 81 41 8d 73 90 94 82 e2 95 b6 8e 9a .....A.s........
17c0: 90 94 82 cc 95 cf 89 bb 82 f0 8d 6c 97 b6 82 b5 ...........l....
17d0: 82 c8 82 aa 82 e7 0d 0a 2f 2f 09 92 6c 82 f0 92 ........//..l...
17e0: e8 82 df 82 c4 82 a2 82 ad 82 b1 82 c6 82 aa 95 ................
17f0: 4b 97 76 82 c9 82 c8 82 e9 81 42 82 cc 82 c5 81 K.v.......B.....
1800: 41 82 a0 82 f1 82 dc 82 e8 8e 67 82 a6 82 c8 82 A.........g.....
1810: a2 28 5e 5e 3b 0d 0a 2f 2f 40 7d 0d 0a 2f 2f 3d .(^^;..//@}..//=
1820: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1830: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1840: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1850: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1860: 3d 3d 3d 3d 3d 3d 3d 3d 0d 0a 0d 0a 63 6c 61 73 ========....clas
1870: 73 20 4d 61 63 72 6f 43 6f 6d 6d 61 6e 64 20 3a s MacroCommand :
1880: 20 70 75 62 6c 69 63 20 43 6f 6d 6d 61 6e 64 0d public Command.
1890: 0a 7b 0d 0a 70 75 62 6c 69 63 3a 0d 0a 09 2f 2f .{..public:...//
18a0: 40 7b 20 83 52 83 7d 83 93 83 68 82 cc 92 c7 89 @{ .R.}...h.....
18b0: c1 20 2f 2f 40 7d 0d 0a 09 76 6f 69 64 20 41 64 . //@}...void Ad
18c0: 64 28 20 43 6f 6d 6d 61 6e 64 2a 20 63 6d 64 20 d( Command* cmd
18d0: 29 20 7b 20 61 72 72 5f 2e 41 64 64 28 63 6d 64 ) { arr_.Add(cmd
18e0: 29 3b 20 7d 0d 0a 0d 0a 09 2f 2f 40 7b 20 83 52 ); }.....//@{ .R
18f0: 83 7d 83 93 83 68 90 94 20 2f 2f 40 7d 0d 0a 09 .}...h.. //@}...
1900: 75 6c 6f 6e 67 20 73 69 7a 65 28 29 20 63 6f 6e ulong size() con
1910: 73 74 20 7b 20 72 65 74 75 72 6e 20 61 72 72 5f st { return arr_
1920: 2e 73 69 7a 65 28 29 3b 20 7d 0d 0a 0d 0a 09 2f .size(); }...../
1930: 2f 40 20 83 66 83 58 83 67 83 89 83 4e 83 5e 20 /@ .f.X.g...N.^
1940: 2f 2f 40 7d 0d 0a 09 7e 4d 61 63 72 6f 43 6f 6d //@}...~MacroCom
1950: 6d 61 6e 64 28 29 0d 0a 09 7b 0d 0a 09 09 66 6f mand()...{....fo
1960: 72 28 20 75 6c 6f 6e 67 20 69 3d 30 2c 65 3d 61 r( ulong i=0,e=a
1970: 72 72 5f 2e 73 69 7a 65 28 29 3b 20 69 3c 65 3b rr_.size(); i<e;
1980: 20 2b 2b 69 20 29 0d 0a 09 09 09 64 65 6c 65 74 ++i ).....delet
1990: 65 20 61 72 72 5f 5b 69 5d 3b 0d 0a 09 7d 0d 0a e arr_[i];...}..
19a0: 0d 0a 70 72 69 76 61 74 65 3a 0d 0a 09 43 6f 6d ..private:...Com
19b0: 6d 61 6e 64 2a 20 6f 70 65 72 61 74 6f 72 28 29 mand* operator()
19c0: 28 20 44 6f 63 75 6d 65 6e 74 26 20 64 6f 63 20 ( Document& doc
19d0: 29 20 63 6f 6e 73 74 3b 0d 0a 09 6b 69 3a 3a 73 ) const;...ki::s
19e0: 74 6f 72 61 67 65 3c 43 6f 6d 6d 61 6e 64 2a 3e torage<Command*>
19f0: 20 61 72 72 5f 3b 0d 0a 7d 3b 0d 0a 0d 0a 0d 0a arr_;..};......
1a00: 0d 0a 2f 2f 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ..//============
1a10: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1a20: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1a30: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1a40: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0d 0a 0d =============...
1a50: 0a 7d 7d 20 20 20 20 20 2f 2f 20 6e 61 6d 65 73 .}} // names
1a60: 70 61 63 65 20 65 64 69 74 77 69 6e 67 3a 3a 64 pace editwing::d
1a70: 6f 63 75 6d 65 6e 74 0d 0a 23 65 6e 64 69 66 20 ocument..#endif
1a80: 2f 2f 20 5f 45 44 49 54 57 49 4e 47 5f 44 4f 43 // _EDITWING_DOC
1a90: 5f 48 5f 0d 0a _H_..