Hex Artifact Content

Not logged in

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_..