Hex Artifact Content

Not logged in

Artifact bfa35c0d3f9f6f41f5b167837184cfc94771af98:


0000: 23 69 66 6e 64 65 66 20 5f 45 44 49 54 57 49 4e  #ifndef _EDITWIN
0010: 47 5f 56 49 45 57 5f 48 5f 0d 0a 23 64 65 66 69  G_VIEW_H_..#defi
0020: 6e 65 20 5f 45 44 49 54 57 49 4e 47 5f 56 49 45  ne _EDITWING_VIE
0030: 57 5f 48 5f 0d 0a 23 69 6e 63 6c 75 64 65 20 22  W_H_..#include "
0040: 65 77 43 6f 6d 6d 6f 6e 2e 68 22 0d 0a 23 69 6e  ewCommon.h"..#in
0050: 63 6c 75 64 65 20 22 65 77 44 6f 63 2e 68 22 0d  clude "ewDoc.h".
0060: 0a 23 69 66 6e 64 65 66 20 5f 5f 63 63 64 6f 63  .#ifndef __ccdoc
0070: 5f 5f 0d 0a 6e 61 6d 65 73 70 61 63 65 20 65 64  __..namespace ed
0080: 69 74 77 69 6e 67 20 7b 0d 0a 6e 61 6d 65 73 70  itwing {..namesp
0090: 61 63 65 20 76 69 65 77 20 7b 0d 0a 23 65 6e 64  ace view {..#end
00a0: 69 66 0d 0a 0d 0a 0d 0a 0d 0a 63 6c 61 73 73 20  if........class 
00b0: 43 61 6e 76 61 73 3b 0d 0a 63 6c 61 73 73 20 56  Canvas;..class V
00c0: 69 65 77 49 6d 70 6c 3b 0d 0a 63 6c 61 73 73 20  iewImpl;..class 
00d0: 43 75 72 73 6f 72 3b 0d 0a 63 6c 61 73 73 20 43  Cursor;..class C
00e0: 61 72 65 74 3b 0d 0a 0d 0a 0d 0a 0d 0a 2f 2f 3d  aret;........//=
00f0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
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 0d 0a 2f 2f 40 7b 20 40  ========..//@{ @
0140: 70 6b 67 20 65 64 69 74 77 69 6e 67 2e 56 69 65  pkg editwing.Vie
0150: 77 20 2f 2f 40 7d 0d 0a 2f 2f 40 7b 0d 0a 2f 2f  w //@}..//@{..//
0160: 09 95 60 89 e6 8f 88 97 9d 82 c8 82 c7 0d 0a 2f  ..`............/
0170: 2f 0d 0a 2f 2f 09 82 b1 82 cc 83 4e 83 89 83 58  /..//......N...X
0180: 82 c5 82 cd 81 41 83 81 83 62 83 5a 81 5b 83 57  .....A...b.Z.[.W
0190: 82 cc 95 aa 94 7a 82 f0 8d 73 82 a4 82 be 82 af  .....z...s......
01a0: 82 c5 81 41 8e c0 91 95 82 cd 0d 0a 2f 2f 09 43  ...A........//.C
01b0: 61 6e 76 61 73 2f 56 69 65 77 49 6d 70 6c 20 93  anvas/ViewImpl .
01c0: 99 82 c5 8d 73 82 a4 81 42 82 cc 82 c5 81 41 8f  ....s...B.....A.
01d0: da 82 b5 82 ad 82 cd 82 bb 82 bf 82 e7 82 f0 8e  ................
01e0: 51 8f c6 82 cc 82 b1 82 c6 81 42 0d 0a 2f 2f 40  Q.........B..//@
01f0: 7d 0d 0a 2f 2f 3d 3d 3d 3d 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 0d 0a  ==============..
0240: 0d 0a 63 6c 61 73 73 20 56 69 65 77 20 3a 20 70  ..class View : p
0250: 75 62 6c 69 63 20 6b 69 3a 3a 57 6e 64 49 6d 70  ublic ki::WndImp
0260: 6c 2c 20 70 75 62 6c 69 63 20 64 6f 63 3a 3a 44  l, public doc::D
0270: 6f 63 45 76 48 61 6e 64 6c 65 72 0d 0a 7b 0d 0a  ocEvHandler..{..
0280: 70 75 62 6c 69 63 3a 0d 0a 0d 0a 09 2f 2f 40 7b  public:.....//@{
0290: 20 89 bd 82 e0 82 b5 82 c8 82 a2 83 52 83 93 83   ...........R...
02a0: 58 83 67 83 89 83 4e 83 5e 20 2f 2f 40 7d 0d 0a  X.g...N.^ //@}..
02b0: 09 56 69 65 77 28 20 64 6f 63 3a 3a 44 6f 63 75  .View( doc::Docu
02c0: 6d 65 6e 74 26 20 64 2c 20 48 57 4e 44 20 77 6e  ment& d, HWND wn
02d0: 64 20 29 3b 0d 0a 09 7e 56 69 65 77 28 29 3b 0d  d );...~View();.
02e0: 0a 0d 0a 09 2f 2f 40 7b 20 90 dc 82 e8 95 d4 82  ....//@{ .......
02f0: b5 95 fb 8e ae 90 d8 91 d6 20 2f 2f 40 7d 0d 0a  ......... //@}..
0300: 09 76 6f 69 64 20 53 65 74 57 72 61 70 54 79 70  .void SetWrapTyp
0310: 65 28 20 69 6e 74 20 77 74 20 29 3b 0d 0a 0d 0a  e( int wt );....
0320: 09 2f 2f 40 7b 20 8d 73 94 d4 8d 86 95 5c 8e a6  .//@{ .s.....\..
0330: 2f 94 f1 95 5c 8e a6 90 d8 91 d6 20 2f 2f 40 7d  /...\...... //@}
0340: 0d 0a 09 76 6f 69 64 20 53 68 6f 77 4c 69 6e 65  ...void ShowLine
0350: 4e 6f 28 20 62 6f 6f 6c 20 73 68 6f 77 20 29 3b  No( bool show );
0360: 0d 0a 0d 0a 09 2f 2f 40 7b 20 95 5c 8e a6 90 46  .....//@{ .\...F
0370: 81 45 83 74 83 48 83 93 83 67 90 d8 91 d6 20 2f  .E.t.H...g.... /
0380: 2f 40 7d 0d 0a 09 76 6f 69 64 20 53 65 74 46 6f  /@}...void SetFo
0390: 6e 74 28 20 63 6f 6e 73 74 20 56 43 6f 6e 66 69  nt( const VConfi
03a0: 67 26 20 76 63 20 29 3b 0d 0a 0d 0a 09 2f 2f 40  g& vc );.....//@
03b0: 7b 20 93 e0 95 94 8e c0 91 95 20 2f 2f 40 7d 0d  { ........ //@}.
03c0: 0a 09 56 69 65 77 49 6d 70 6c 26 20 69 6d 70 6c  ..ViewImpl& impl
03d0: 28 29 20 7b 20 72 65 74 75 72 6e 20 2a 69 6d 70  () { return *imp
03e0: 6c 5f 3b 20 7d 0d 0a 0d 0a 09 2f 2f 40 7b 20 83  l_; }.....//@{ .
03f0: 4a 81 5b 83 5c 83 8b 20 2f 2f 40 7d 0d 0a 09 43  J.[.\.. //@}...C
0400: 75 72 73 6f 72 26 20 63 75 72 28 29 3b 0d 0a 0d  ursor& cur();...
0410: 0a 70 72 69 76 61 74 65 3a 0d 0a 0d 0a 09 64 6f  .private:.....do
0420: 63 3a 3a 44 6f 63 49 6d 70 6c 26 20 20 20 20 20  c::DocImpl&     
0430: 20 64 6f 63 5f 3b 0d 0a 09 6b 69 3a 3a 64 70 74   doc_;...ki::dpt
0440: 72 3c 56 69 65 77 49 6d 70 6c 3e 20 69 6d 70 6c  r<ViewImpl> impl
0450: 5f 3b 0d 0a 09 73 74 61 74 69 63 20 43 6c 73 4e  _;...static ClsN
0460: 61 6d 65 20 20 20 20 20 63 6c 61 73 73 4e 61 6d  ame     classNam
0470: 65 5f 3b 0d 0a 0d 0a 70 72 69 76 61 74 65 3a 0d  e_;....private:.
0480: 0a 0d 0a 09 76 6f 69 64 20 20 20 20 6f 6e 5f 63  ....void    on_c
0490: 72 65 61 74 65 28 20 43 52 45 41 54 45 53 54 52  reate( CREATESTR
04a0: 55 43 54 2a 20 63 73 20 29 3b 0d 0a 09 76 6f 69  UCT* cs );...voi
04b0: 64 20 20 20 20 6f 6e 5f 64 65 73 74 72 6f 79 28  d    on_destroy(
04c0: 29 3b 0d 0a 09 4c 52 45 53 55 4c 54 20 6f 6e 5f  );...LRESULT on_
04d0: 6d 65 73 73 61 67 65 28 20 55 49 4e 54 20 6d 73  message( UINT ms
04e0: 67 2c 20 57 50 41 52 41 4d 20 77 70 2c 20 4c 50  g, WPARAM wp, LP
04f0: 41 52 41 4d 20 6c 70 20 29 3b 0d 0a 09 76 6f 69  ARAM lp );...voi
0500: 64 20 20 20 20 6f 6e 5f 74 65 78 74 5f 75 70 64  d    on_text_upd
0510: 61 74 65 28 20 63 6f 6e 73 74 20 44 50 6f 73 26  ate( const DPos&
0520: 20 73 2c 20 63 6f 6e 73 74 20 44 50 6f 73 26 20   s, const DPos& 
0530: 65 2c 20 63 6f 6e 73 74 20 44 50 6f 73 26 20 65  e, const DPos& e
0540: 32 2c 20 62 6f 6f 6c 20 62 41 66 74 2c 20 62 6f  2, bool bAft, bo
0550: 6f 6c 20 6d 43 75 72 20 29 3b 0d 0a 09 76 6f 69  ol mCur );...voi
0560: 64 20 20 20 20 6f 6e 5f 6b 65 79 77 6f 72 64 5f  d    on_keyword_
0570: 63 68 61 6e 67 65 28 29 3b 0d 0a 7d 3b 0d 0a 0d  change();..};...
0580: 0a 0d 0a 0d 0a 2f 2f 3d 3d 3d 3d 3d 3d 3d 3d 3d  .....//=========
0590: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
05a0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
05b0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
05c0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
05d0: 0d 0a 2f 2f 40 7b 0d 0a 2f 2f 09 83 43 83 78 83  ..//@{..//..C.x.
05e0: 93 83 67 83 6e 83 93 83 68 83 89 83 43 83 93 83  ..g.n...h...C...
05f0: 5e 81 5b 83 74 83 46 83 43 83 58 0d 0a 2f 2f 0d  ^.[.t.F.C.X..//.
0600: 0a 2f 2f 09 83 4a 81 5b 83 5c 83 8b 82 a9 82 e7  .//..J.[.\......
0610: 94 ad 90 b6 82 b7 82 e9 83 43 83 78 83 93 83 67  .........C.x...g
0620: 90 46 81 58 82 f0 0d 0a 2f 2f 40 7d 0d 0a 2f 2f  .F.X....//@}..//
0630: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0640: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0650: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0660: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0670: 3d 3d 3d 3d 3d 3d 3d 3d 3d 0d 0a 0d 0a 63 6c 61  =========....cla
0680: 73 73 20 43 75 72 45 76 48 61 6e 64 6c 65 72 0d  ss CurEvHandler.
0690: 0a 7b 0d 0a 09 66 72 69 65 6e 64 20 63 6c 61 73  .{...friend clas
06a0: 73 20 43 75 72 73 6f 72 3b 0d 0a 09 76 69 72 74  s Cursor;...virt
06b0: 75 61 6c 20 76 6f 69 64 20 6f 6e 5f 6d 6f 76 65  ual void on_move
06c0: 28 20 63 6f 6e 73 74 20 44 50 6f 73 26 20 63 2c  ( const DPos& c,
06d0: 20 63 6f 6e 73 74 20 44 50 6f 73 26 20 73 20 29   const DPos& s )
06e0: 20 7b 7d 0d 0a 09 76 69 72 74 75 61 6c 20 76 6f   {}...virtual vo
06f0: 69 64 20 6f 6e 5f 63 68 61 72 28 20 43 75 72 73  id on_char( Curs
0700: 6f 72 26 20 63 75 72 2c 20 75 6e 69 63 6f 64 65  or& cur, unicode
0710: 20 77 63 68 20 29 3b 0d 0a 09 76 69 72 74 75 61   wch );...virtua
0720: 6c 20 76 6f 69 64 20 6f 6e 5f 6b 65 79 28 20 43  l void on_key( C
0730: 75 72 73 6f 72 26 20 63 75 72 2c 20 69 6e 74 20  ursor& cur, int 
0740: 76 6b 2c 20 62 6f 6f 6c 20 73 66 74 2c 20 62 6f  vk, bool sft, bo
0750: 6f 6c 20 63 74 6c 20 29 3b 0d 0a 09 76 69 72 74  ol ctl );...virt
0760: 75 61 6c 20 76 6f 69 64 20 6f 6e 5f 69 6d 65 28  ual void on_ime(
0770: 20 43 75 72 73 6f 72 26 20 63 75 72 2c 20 75 6e   Cursor& cur, un
0780: 69 63 6f 64 65 2a 20 73 74 72 2c 20 75 6c 6f 6e  icode* str, ulon
0790: 67 20 6c 65 6e 20 29 3b 0d 0a 7d 3b 0d 0a 0d 0a  g len );..};....
07a0: 0d 0a 0d 0a 2f 2f 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ....//==========
07b0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
07c0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
07d0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
07e0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0d  ===============.
07f0: 0a 2f 2f 40 7b 0d 0a 2f 2f 09 95 5c 8e a6 88 ca  .//@{..//..\....
0800: 92 75 8f ee 95 f1 82 dc 82 c5 8a dc 82 df 82 bd  .u..............
0810: 44 50 6f 73 0d 0a 2f 2f 40 7d 0d 0a 2f 2f 3d 3d  DPos..//@}..//==
0820: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0830: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0840: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0850: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0860: 3d 3d 3d 3d 3d 3d 3d 0d 0a 0d 0a 73 74 72 75 63  =======....struc
0870: 74 20 56 50 6f 73 20 3a 20 70 75 62 6c 69 63 20  t VPos : public 
0880: 44 50 6f 73 0d 0a 7b 0d 0a 09 75 6c 6f 6e 67 20  DPos..{...ulong 
0890: 76 6c 3b 20 2f 2f 20 56 4c 69 6e 65 2d 49 6e 64  vl; // VLine-Ind
08a0: 65 78 0d 0a 09 75 6c 6f 6e 67 20 72 6c 3b 20 2f  ex...ulong rl; /
08b0: 2f 20 52 4c 69 6e 65 2d 49 6e 64 65 78 0d 0a 09  / RLine-Index...
08c0: 69 6e 74 20 20 20 76 78 3b 20 2f 2f 20 83 58 83  int   vx; // .X.
08d0: 4e 83 8d 81 5b 83 8b 82 f0 8d 6c 97 b6 82 b5 82  N...[.....l.....
08e0: c8 82 a2 89 bc 91 7a 83 58 83 4e 83 8a 81 5b 83  ......z.X.N...[.
08f0: 93 8f e3 82 cc 78 8d c0 95 57 28 70 69 78 65 6c  .....x...W(pixel
0900: 29 20 0d 0a 09 69 6e 74 20 20 20 72 78 3b 20 2f  ) ...int   rx; /
0910: 2f 20 95 b6 8e 9a 82 cc 95 c0 82 d1 82 c9 8d b6  / ..............
0920: 89 45 82 b3 82 ea 82 c4 82 c8 82 a2 78 8d c0 95  .E..........x...
0930: 57 28 70 69 78 65 6c 29 0d 0a 09 09 20 20 20 20  W(pixel)....    
0940: 20 20 2f 2f 20 20 20 3d 3d 20 92 b7 82 a2 8d 73    //   == .....s
0950: 82 cc 82 b5 82 c1 82 db 82 a9 82 e7 92 5a 82 a2  .............Z..
0960: 8d 73 82 c9 20 5b 81 aa 5d 20 82 c5 88 da 93 ae  .s.. [..] ......
0970: 82 b5 82 c4 0d 0a 09 09 20 20 20 20 20 20 2f 2f  ........      //
0980: 20 20 20 3d 3d 20 82 bb 82 cc 8c e3 20 5b 81 ab     == ...... [..
0990: 5d 20 82 c5 96 df 82 ea 82 e9 82 e6 82 a4 82 c8  ] ..............
09a0: 83 41 83 8c 82 c5 82 b7 81 42 0d 0a 09 76 6f 69  .A.......B...voi
09b0: 64 20 6f 70 65 72 61 74 6f 72 3d 28 20 63 6f 6e  d operator=( con
09c0: 73 74 20 44 50 6f 73 26 20 64 70 20 29 20 7b 20  st DPos& dp ) { 
09d0: 74 6c 3d 64 70 2e 74 6c 2c 20 61 64 3d 64 70 2e  tl=dp.tl, ad=dp.
09e0: 61 64 3b 20 7d 0d 0a 0d 0a 09 56 50 6f 73 28 62  ad; }.....VPos(b
09f0: 6f 6f 6c 29 20 3a 20 44 50 6f 73 28 30 2c 30 29  ool) : DPos(0,0)
0a00: 2c 76 6c 28 30 29 2c 72 6c 28 30 29 2c 76 78 28  ,vl(0),rl(0),vx(
0a10: 30 29 2c 72 78 28 30 29 20 7b 7d 0d 0a 09 56 50  0),rx(0) {}...VP
0a20: 6f 73 28 29 20 7b 7d 0d 0a 7d 3b 0d 0a 0d 0a 0d  os() {}..};.....
0a30: 0a 0d 0a 2f 2f 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 3d 3d  ================
0a60: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0a70: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0d 0a  ==============..
0a80: 2f 2f 40 7b 0d 0a 2f 2f 09 83 4a 81 5b 83 5c 83  //@{..//..J.[.\.
0a90: 8b 0d 0a 2f 2f 40 7d 0d 0a 2f 2f 3d 3d 3d 3d 3d  ...//@}..//=====
0aa0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0ab0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0ac0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0ad0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0ae0: 3d 3d 3d 3d 0d 0a 0d 0a 63 6c 61 73 73 20 43 75  ====....class Cu
0af0: 72 73 6f 72 20 3a 20 70 75 62 6c 69 63 20 6b 69  rsor : public ki
0b00: 3a 3a 4f 62 6a 65 63 74 0d 0a 7b 0d 0a 70 75 62  ::Object..{..pub
0b10: 6c 69 63 3a 0d 0a 0d 0a 09 2f 2f 20 8f 89 8a fa  lic:.....// ....
0b20: 89 bb 82 c6 82 a9 0d 0a 09 43 75 72 73 6f 72 28  .........Cursor(
0b30: 20 48 57 4e 44 20 77 6e 64 2c 20 56 69 65 77 49   HWND wnd, ViewI
0b40: 6d 70 6c 26 20 76 77 2c 20 64 6f 63 3a 3a 44 6f  mpl& vw, doc::Do
0b50: 63 49 6d 70 6c 26 20 64 63 20 29 3b 0d 0a 09 7e  cImpl& dc );...~
0b60: 43 75 72 73 6f 72 28 29 3b 0d 0a 09 76 6f 69 64  Cursor();...void
0b70: 20 41 64 64 48 61 6e 64 6c 65 72 28 20 43 75 72   AddHandler( Cur
0b80: 45 76 48 61 6e 64 6c 65 72 2a 20 65 76 20 29 3b  EvHandler* ev );
0b90: 0d 0a 09 76 6f 69 64 20 44 65 6c 48 61 6e 64 6c  ...void DelHandl
0ba0: 65 72 28 20 43 75 72 45 76 48 61 6e 64 6c 65 72  er( CurEvHandler
0bb0: 2a 20 65 76 20 29 3b 0d 0a 0d 0a 09 2f 2f 20 83  * ev );.....// .
0bc0: 4a 81 5b 83 5c 83 8b 88 da 93 ae 0d 0a 09 76 6f  J.[.\.........vo
0bd0: 69 64 20 4d 6f 76 65 43 75 72 28 20 63 6f 6e 73  id MoveCur( cons
0be0: 74 20 44 50 6f 73 26 20 64 70 2c 20 62 6f 6f 6c  t DPos& dp, bool
0bf0: 20 73 65 6c 65 63 74 20 29 3b 0d 0a 0d 0a 09 2f   select );...../
0c00: 2f 20 83 4c 81 5b 82 c9 82 e6 82 e9 83 4a 81 5b  / .L.[.......J.[
0c10: 83 5c 83 8b 88 da 93 ae 0d 0a 09 76 6f 69 64 20  .\.........void 
0c20: 4c 65 66 74 28 20 62 6f 6f 6c 20 77 69 64 65 2c  Left( bool wide,
0c30: 20 62 6f 6f 6c 20 73 65 6c 65 63 74 20 29 3b 0d   bool select );.
0c40: 0a 09 76 6f 69 64 20 52 69 67 68 74 28 20 62 6f  ..void Right( bo
0c50: 6f 6c 20 77 69 64 65 2c 20 62 6f 6f 6c 20 73 65  ol wide, bool se
0c60: 6c 65 63 74 20 29 3b 0d 0a 09 76 6f 69 64 20 55  lect );...void U
0c70: 70 28 20 62 6f 6f 6c 20 77 69 64 65 2c 20 62 6f  p( bool wide, bo
0c80: 6f 6c 20 73 65 6c 65 63 74 20 29 3b 0d 0a 09 76  ol select );...v
0c90: 6f 69 64 20 44 6f 77 6e 28 20 62 6f 6f 6c 20 77  oid Down( bool w
0ca0: 69 64 65 2c 20 62 6f 6f 6c 20 73 65 6c 65 63 74  ide, bool select
0cb0: 20 29 3b 0d 0a 09 76 6f 69 64 20 48 6f 6d 65 28   );...void Home(
0cc0: 20 62 6f 6f 6c 20 77 69 64 65 2c 20 62 6f 6f 6c   bool wide, bool
0cd0: 20 73 65 6c 65 63 74 20 29 3b 0d 0a 09 76 6f 69   select );...voi
0ce0: 64 20 45 6e 64 28 20 62 6f 6f 6c 20 77 69 64 65  d End( bool wide
0cf0: 2c 20 62 6f 6f 6c 20 73 65 6c 65 63 74 20 29 3b  , bool select );
0d00: 0d 0a 09 76 6f 69 64 20 50 61 67 65 55 70 28 20  ...void PageUp( 
0d10: 62 6f 6f 6c 20 73 65 6c 65 63 74 20 29 3b 0d 0a  bool select );..
0d20: 09 76 6f 69 64 20 50 61 67 65 44 6f 77 6e 28 20  .void PageDown( 
0d30: 62 6f 6f 6c 20 73 65 6c 65 63 74 20 29 3b 0d 0a  bool select );..
0d40: 0d 0a 09 2f 2f 20 83 65 83 4c 83 58 83 67 8f 91  ...// .e.L.X.g..
0d50: 82 ab 8a b7 82 a6 0d 0a 09 76 6f 69 64 20 49 6e  .........void In
0d60: 70 75 74 28 20 63 6f 6e 73 74 20 75 6e 69 63 6f  put( const unico
0d70: 64 65 2a 20 73 74 72 2c 20 75 6c 6f 6e 67 20 6c  de* str, ulong l
0d80: 65 6e 20 29 3b 0d 0a 09 76 6f 69 64 20 49 6e 70  en );...void Inp
0d90: 75 74 28 20 63 6f 6e 73 74 20 63 68 61 72 2a 20  ut( const char* 
0da0: 73 74 72 2c 20 75 6c 6f 6e 67 20 6c 65 6e 20 29  str, ulong len )
0db0: 3b 0d 0a 09 76 6f 69 64 20 49 6e 70 75 74 43 68  ;...void InputCh
0dc0: 61 72 28 20 75 6e 69 63 6f 64 65 20 63 68 20 29  ar( unicode ch )
0dd0: 3b 0d 0a 09 76 6f 69 64 20 44 65 6c 28 29 3b 0d  ;...void Del();.
0de0: 0a 09 76 6f 69 64 20 44 65 6c 42 61 63 6b 28 29  ..void DelBack()
0df0: 3b 0d 0a 0d 0a 09 2f 2f 20 83 4e 83 8a 83 62 83  ;.....// .N...b.
0e00: 76 83 7b 81 5b 83 68 0d 0a 09 76 6f 69 64 20 43  v.{.[.h...void C
0e10: 75 74 28 29 3b 0d 0a 09 76 6f 69 64 20 43 6f 70  ut();...void Cop
0e20: 79 28 29 3b 0d 0a 09 76 6f 69 64 20 50 61 73 74  y();...void Past
0e30: 65 28 29 3b 0d 0a 0d 0a 09 2f 2f 20 91 49 91 f0  e();.....// .I..
0e40: 83 65 83 4c 83 58 83 67 8e e6 93 be 0d 0a 09 6b  .e.L.X.g.......k
0e50: 69 3a 3a 61 61 72 72 3c 75 6e 69 63 6f 64 65 3e  i::aarr<unicode>
0e60: 20 67 65 74 53 65 6c 65 63 74 65 64 53 74 72 28   getSelectedStr(
0e70: 29 20 63 6f 6e 73 74 3b 0d 0a 0d 0a 09 2f 2f 20  ) const;.....// 
0e80: 83 82 81 5b 83 68 90 d8 91 d6 0d 0a 09 76 6f 69  ...[.h.......voi
0e90: 64 20 53 65 74 49 6e 73 4d 6f 64 65 28 20 62 6f  d SetInsMode( bo
0ea0: 6f 6c 20 62 49 6e 73 20 29 3b 0d 0a 09 76 6f 69  ol bIns );...voi
0eb0: 64 20 53 65 74 52 4f 4d 6f 64 65 28 20 62 6f 6f  d SetROMode( boo
0ec0: 6c 20 62 52 4f 20 29 3b 0d 0a 0d 0a 70 75 62 6c  l bRO );....publ
0ed0: 69 63 3a 0d 0a 0d 0a 09 62 6f 6f 6c 20 69 73 49  ic:.....bool isI
0ee0: 6e 73 4d 6f 64 65 28 29 20 63 6f 6e 73 74 3b 0d  nsMode() const;.
0ef0: 0a 09 62 6f 6f 6c 20 69 73 52 4f 4d 6f 64 65 28  ..bool isROMode(
0f00: 29 20 63 6f 6e 73 74 3b 0d 0a 09 62 6f 6f 6c 20  ) const;...bool 
0f10: 69 73 53 65 6c 65 63 74 65 64 28 29 20 63 6f 6e  isSelected() con
0f20: 73 74 3b 0d 0a 09 62 6f 6f 6c 20 67 65 74 43 75  st;...bool getCu
0f30: 72 50 6f 73 28 20 63 6f 6e 73 74 20 56 50 6f 73  rPos( const VPos
0f40: 2a 2a 20 73 74 61 72 74 2c 20 63 6f 6e 73 74 20  ** start, const 
0f50: 56 50 6f 73 2a 2a 20 65 6e 64 20 29 20 63 6f 6e  VPos** end ) con
0f60: 73 74 3b 0d 0a 09 76 6f 69 64 20 52 65 73 65 74  st;...void Reset
0f70: 50 6f 73 28 29 3b 0d 0a 09 76 6f 69 64 20 6f 6e  Pos();...void on
0f80: 5f 73 63 72 6f 6c 6c 5f 62 65 67 69 6e 28 29 3b  _scroll_begin();
0f90: 0d 0a 09 76 6f 69 64 20 6f 6e 5f 73 63 72 6f 6c  ...void on_scrol
0fa0: 6c 5f 65 6e 64 28 29 3b 0d 0a 09 76 6f 69 64 20  l_end();...void 
0fb0: 6f 6e 5f 74 65 78 74 5f 75 70 64 61 74 65 28 20  on_text_update( 
0fc0: 63 6f 6e 73 74 20 44 50 6f 73 26 20 73 2c 20 63  const DPos& s, c
0fd0: 6f 6e 73 74 20 44 50 6f 73 26 20 65 2c 20 63 6f  onst DPos& e, co
0fe0: 6e 73 74 20 44 50 6f 73 26 20 65 32 2c 20 62 6f  nst DPos& e2, bo
0ff0: 6f 6c 20 6d 43 75 72 20 29 3b 0d 0a 09 76 6f 69  ol mCur );...voi
1000: 64 20 6f 6e 5f 73 65 74 66 6f 63 75 73 28 29 3b  d on_setfocus();
1010: 0d 0a 09 76 6f 69 64 20 6f 6e 5f 6b 69 6c 6c 66  ...void on_killf
1020: 6f 63 75 73 28 29 3b 0d 0a 09 76 6f 69 64 20 6f  ocus();...void o
1030: 6e 5f 6b 65 79 64 6f 77 6e 28 20 69 6e 74 20 76  n_keydown( int v
1040: 6b 2c 20 4c 50 41 52 41 4d 20 66 6c 61 67 20 29  k, LPARAM flag )
1050: 3b 0d 0a 09 76 6f 69 64 20 6f 6e 5f 63 68 61 72  ;...void on_char
1060: 28 20 54 43 48 41 52 20 63 68 20 29 3b 0d 0a 09  ( TCHAR ch );...
1070: 76 6f 69 64 20 6f 6e 5f 69 6d 65 5f 63 6f 6d 70  void on_ime_comp
1080: 6f 73 69 74 69 6f 6e 28 20 4c 50 41 52 41 4d 20  osition( LPARAM 
1090: 6c 70 20 29 3b 0d 0a 09 76 6f 69 64 20 6f 6e 5f  lp );...void on_
10a0: 6c 62 75 74 74 6f 6e 5f 64 6f 77 6e 28 20 73 68  lbutton_down( sh
10b0: 6f 72 74 20 78 2c 20 73 68 6f 72 74 20 79 2c 20  ort x, short y, 
10c0: 62 6f 6f 6c 20 73 68 69 66 74 20 29 3b 0d 0a 09  bool shift );...
10d0: 76 6f 69 64 20 6f 6e 5f 6d 6f 75 73 65 5f 6d 6f  void on_mouse_mo
10e0: 76 65 28 20 73 68 6f 72 74 20 78 2c 20 73 68 6f  ve( short x, sho
10f0: 72 74 20 79 20 29 3b 0d 0a 09 76 6f 69 64 20 6f  rt y );...void o
1100: 6e 5f 6c 62 75 74 74 6f 6e 5f 75 70 28 20 73 68  n_lbutton_up( sh
1110: 6f 72 74 20 78 2c 20 73 68 6f 72 74 20 79 20 29  ort x, short y )
1120: 3b 0d 0a 09 76 6f 69 64 20 6f 6e 5f 6c 62 75 74  ;...void on_lbut
1130: 74 6f 6e 5f 64 62 6c 28 20 73 68 6f 72 74 20 78  ton_dbl( short x
1140: 2c 20 73 68 6f 72 74 20 79 20 29 3b 0d 0a 09 62  , short y );...b
1150: 6f 6f 6c 20 6f 6e 5f 63 6f 6e 74 65 78 74 6d 65  ool on_contextme
1160: 6e 75 28 20 73 68 6f 72 74 20 78 2c 20 73 68 6f  nu( short x, sho
1170: 72 74 20 79 20 29 3b 0d 0a 09 76 6f 69 64 20 6f  rt y );...void o
1180: 6e 5f 74 69 6d 65 72 28 29 3b 0d 0a 09 69 6e 74  n_timer();...int
1190: 20 20 6f 6e 5f 69 6d 65 5f 72 65 63 6f 6e 76 65    on_ime_reconve
11a0: 72 74 73 74 72 69 6e 67 28 20 52 45 43 4f 4e 56  rtstring( RECONV
11b0: 45 52 54 53 54 52 49 4e 47 2a 20 72 73 20 29 3b  ERTSTRING* rs );
11c0: 0d 0a 09 62 6f 6f 6c 20 6f 6e 5f 69 6d 65 5f 63  ...bool on_ime_c
11d0: 6f 6e 66 69 72 6d 72 65 63 6f 6e 76 65 72 74 73  onfirmreconverts
11e0: 74 72 69 6e 67 28 20 52 45 43 4f 4e 56 45 52 54  tring( RECONVERT
11f0: 53 54 52 49 4e 47 2a 20 72 73 20 29 3b 0d 0a 0d  STRING* rs );...
1200: 0a 70 72 69 76 61 74 65 3a 0d 0a 0d 0a 09 64 6f  .private:.....do
1210: 63 3a 3a 44 6f 63 49 6d 70 6c 26 20 20 20 64 6f  c::DocImpl&   do
1220: 63 5f 3b 0d 0a 09 56 69 65 77 49 6d 70 6c 26 20  c_;...ViewImpl& 
1230: 20 20 20 20 20 20 76 69 65 77 5f 3b 0d 0a 09 43        view_;...C
1240: 75 72 45 76 48 61 6e 64 6c 65 72 2a 20 20 20 70  urEvHandler*   p
1250: 45 76 48 61 6e 5f 3b 0d 0a 09 6b 69 3a 3a 64 70  EvHan_;...ki::dp
1260: 74 72 3c 43 61 72 65 74 3e 20 63 61 72 65 74 5f  tr<Caret> caret_
1270: 3b 0d 0a 0d 0a 09 56 50 6f 73 20 63 75 72 5f 3b  ;.....VPos cur_;
1280: 20 20 2f 2f 20 83 4a 81 5b 83 5c 83 8b 88 ca 92    // .J.[.\.....
1290: 75 0d 0a 09 56 50 6f 73 20 73 65 6c 5f 3b 20 20  u...VPos sel_;  
12a0: 2f 2f 20 91 49 91 f0 8e 9e 82 cc 8e b2 91 ab 88  // .I...........
12b0: ca 92 75 0d 0a 09 62 6f 6f 6c 20 62 49 6e 73 5f  ..u...bool bIns_
12c0: 3b 20 2f 2f 20 91 7d 93 fc 83 82 81 5b 83 68 81  ; // .}.....[.h.
12d0: 48 0d 0a 09 62 6f 6f 6c 20 62 52 4f 5f 3b 20 20  H...bool bRO_;  
12e0: 2f 2f 20 93 c7 8e e6 90 ea 97 70 81 48 0d 0a 0d  // .......p.H...
12f0: 0a 09 55 49 4e 54 5f 50 54 52 20 74 69 6d 65 72  ..UINT_PTR timer
1300: 49 44 5f 3b 2f 2f 20 83 7d 83 45 83 58 83 68 83  ID_;// .}.E.X.h.
1310: 89 83 62 83 4f 90 a7 8c e4 97 70 82 cc 0d 0a 09  ..b.O.....p.....
1320: 69 6e 74 20 20 6b 65 79 52 65 70 54 69 6d 65 5f  int  keyRepTime_
1330: 3b 20 2f 2f 20 83 5e 83 43 83 7d 81 5b 8a d6 8c  ; // .^.C.}.[...
1340: 57 0d 0a 09 69 6e 74 20 20 64 72 61 67 58 5f 3b  W...int  dragX_;
1350: 20 20 20 20 20 20 2f 2f 20 88 ca 92 75 0d 0a 09        // ...u...
1360: 69 6e 74 20 20 64 72 61 67 59 5f 3b 20 20 20 20  int  dragY_;    
1370: 20 20 2f 2f 20 88 ca 92 75 0d 0a 09 62 6f 6f 6c    // ...u...bool
1380: 20 6c 69 6e 65 53 65 6c 65 63 74 4d 6f 64 65 5f   lineSelectMode_
1390: 3b 20 2f 2f 20 8d 73 91 49 91 f0 83 82 81 5b 83  ; // .s.I.....[.
13a0: 68 81 48 0d 0a 0d 0a 09 43 75 72 45 76 48 61 6e  h.H.....CurEvHan
13b0: 64 6c 65 72 20 64 65 66 61 75 6c 74 48 61 6e 64  dler defaultHand
13c0: 6c 65 72 5f 3b 0d 0a 0d 0a 70 72 69 76 61 74 65  ler_;....private
13d0: 3a 0d 0a 0d 0a 09 76 6f 69 64 20 4d 6f 76 65 42  :.....void MoveB
13e0: 79 4d 6f 75 73 65 28 20 69 6e 74 20 78 2c 20 69  yMouse( int x, i
13f0: 6e 74 20 79 20 29 3b 0d 0a 09 76 6f 69 64 20 4d  nt y );...void M
1400: 6f 76 65 54 6f 28 20 63 6f 6e 73 74 20 56 50 6f  oveTo( const VPo
1410: 73 26 20 76 70 2c 20 62 6f 6f 6c 20 73 65 6c 20  s& vp, bool sel 
1420: 29 3b 0d 0a 09 76 6f 69 64 20 55 64 28 20 69 6e  );...void Ud( in
1430: 74 20 64 79 2c 20 62 6f 6f 6c 20 73 65 6c 65 63  t dy, bool selec
1440: 74 20 29 3b 0d 0a 09 76 6f 69 64 20 55 70 64 61  t );...void Upda
1450: 74 65 43 61 72 65 74 50 6f 73 28 29 3b 0d 0a 09  teCaretPos();...
1460: 76 6f 69 64 20 52 65 64 72 61 77 28 20 63 6f 6e  void Redraw( con
1470: 73 74 20 56 50 6f 73 26 20 73 2c 20 63 6f 6e 73  st VPos& s, cons
1480: 74 20 56 50 6f 73 26 20 65 20 29 3b 0d 0a 7d 3b  t VPos& e );..};
1490: 0d 0a 0d 0a 0d 0a 0d 0a 2f 2f 2d 2d 2d 2d 2d 2d  ........//------
14a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
14b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
14c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
14d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
14e0: 2d 2d 2d 0d 0a 0d 0a 69 6e 6c 69 6e 65 20 62 6f  ---....inline bo
14f0: 6f 6c 20 43 75 72 73 6f 72 3a 3a 69 73 53 65 6c  ol Cursor::isSel
1500: 65 63 74 65 64 28 29 20 63 6f 6e 73 74 0d 0a 09  ected() const...
1510: 7b 20 72 65 74 75 72 6e 20 63 75 72 5f 21 3d 73  { return cur_!=s
1520: 65 6c 5f 3b 20 7d 0d 0a 0d 0a 69 6e 6c 69 6e 65  el_; }....inline
1530: 20 62 6f 6f 6c 20 43 75 72 73 6f 72 3a 3a 69 73   bool Cursor::is
1540: 49 6e 73 4d 6f 64 65 28 29 20 63 6f 6e 73 74 0d  InsMode() const.
1550: 0a 09 7b 20 72 65 74 75 72 6e 20 62 49 6e 73 5f  ..{ return bIns_
1560: 3b 20 7d 0d 0a 0d 0a 69 6e 6c 69 6e 65 20 62 6f  ; }....inline bo
1570: 6f 6c 20 43 75 72 73 6f 72 3a 3a 69 73 52 4f 4d  ol Cursor::isROM
1580: 6f 64 65 28 29 20 63 6f 6e 73 74 0d 0a 09 7b 20  ode() const...{ 
1590: 72 65 74 75 72 6e 20 62 52 4f 5f 3b 20 7d 0d 0a  return bRO_; }..
15a0: 0d 0a 0d 0a 0d 0a 2f 2f 3d 3d 3d 3d 3d 3d 3d 3d  ......//========
15b0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
15c0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
15d0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
15e0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
15f0: 3d 0d 0a 0d 0a 7d 7d 20 20 20 20 2f 2f 20 6e 61  =....}}    // na
1600: 6d 65 73 70 61 63 65 20 65 64 69 74 77 69 6e 67  mespace editwing
1610: 3a 3a 76 69 65 77 0d 0a 23 65 6e 64 69 66 20 2f  ::view..#endif /
1620: 2f 20 5f 45 44 49 54 57 49 4e 47 5f 56 49 45 57  / _EDITWING_VIEW
1630: 5f 48 5f 0d 0a                                   _H_..