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