0000: 23 69 66 6e 64 65 66 20 5f 45 44 49 54 57 49 4e #ifndef _EDITWIN
0010: 47 5f 49 50 5f 56 49 45 57 5f 48 5f 0d 0a 23 64 G_IP_VIEW_H_..#d
0020: 65 66 69 6e 65 20 5f 45 44 49 54 57 49 4e 47 5f efine _EDITWING_
0030: 49 50 5f 56 49 45 57 5f 48 5f 0d 0a 23 69 6e 63 IP_VIEW_H_..#inc
0040: 6c 75 64 65 20 22 65 77 56 69 65 77 2e 68 22 0d lude "ewView.h".
0050: 0a 23 69 6e 63 6c 75 64 65 20 22 69 70 5f 64 6f .#include "ip_do
0060: 63 2e 68 22 0d 0a 75 73 69 6e 67 20 6e 61 6d 65 c.h"..using name
0070: 73 70 61 63 65 20 6b 69 3b 0d 0a 23 69 66 6e 64 space ki;..#ifnd
0080: 65 66 20 5f 5f 63 63 64 6f 63 5f 5f 0d 0a 6e 61 ef __ccdoc__..na
0090: 6d 65 73 70 61 63 65 20 65 64 69 74 77 69 6e 67 mespace editwing
00a0: 20 7b 0d 0a 6e 61 6d 65 73 70 61 63 65 20 76 69 {..namespace vi
00b0: 65 77 20 7b 0d 0a 23 65 6e 64 69 66 0d 0a 0d 0a ew {..#endif....
00c0: 0d 0a 0d 0a 75 73 69 6e 67 20 64 6f 63 3a 3a 44 ....using doc::D
00d0: 6f 63 49 6d 70 6c 3b 0d 0a 0d 0a 0d 0a 0d 0a 2f ocImpl;......../
00e0: 2f 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d /===============
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 0d 0a 2f 2f 40 7b ==========..//@{
0130: 20 40 70 6b 67 20 65 64 69 74 77 69 6e 67 2e 56 @pkg editwing.V
0140: 69 65 77 2e 49 6d 70 6c 20 2f 2f 40 7d 0d 0a 2f iew.Impl //@}../
0150: 2f 40 7b 0d 0a 2f 2f 09 95 60 89 e6 8a ee 96 7b /@{..//..`.....{
0160: 83 8b 81 5b 83 60 83 93 0d 0a 2f 2f 0d 0a 2f 2f ...[.`....//..//
0170: 09 97 98 97 70 82 b7 82 e9 82 c9 82 cd 81 41 43 ....p.........AC
0180: 61 6e 76 61 73 83 49 83 75 83 57 83 46 83 4e 83 anvas.I.u.W.F.N.
0190: 67 82 a9 82 e7 20 67 65 74 50 61 69 6e 74 65 72 g.... getPainter
01a0: 20 82 b5 82 c4 8e 67 82 a2 82 dc 82 b7 81 42 0d .....g.......B.
01b0: 0a 2f 2f 09 89 e6 96 ca 97 70 83 66 83 6f 83 43 .//......p.f.o.C
01c0: 83 58 83 52 83 93 83 65 83 4c 83 58 83 67 82 cc .X.R...e.L.X.g..
01d0: 83 8c 83 43 83 84 82 c5 82 b7 81 42 82 ab 82 bf ...C.......B....
01e0: 82 f1 82 c6 8f 91 82 a2 82 c4 82 a8 82 af 82 ce ................
01f0: 88 f3 8d fc 8b 40 94 5c 82 f0 0d 0a 2f 2f 09 92 .....@.\....//..
0200: c7 89 c1 82 b7 82 e9 82 c6 82 ab 82 c9 8a 79 82 ..............y.
0210: c8 82 cc 82 a9 82 e0 82 b5 82 ea 82 dc 82 b9 82 ................
0220: f1 82 aa 81 41 82 bb 82 f1 82 c8 82 b1 82 c6 82 ....A...........
0230: f0 8d 6c 82 a6 82 e9 8c 76 89 e6 90 ab 82 aa 0d ..l.....v.......
0240: 0a 2f 2f 09 82 a0 82 e9 82 cd 82 b8 82 e0 82 c8 .//.............
0250: 82 ad 8b c9 82 df 82 c4 93 4b 93 96 82 c9 81 63 .........K.....c
0260: 81 42 0d 0a 2f 2f 40 7d 0d 0a 2f 2f 3d 3d 3d 3d .B..//@}..//====
0270: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0280: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0290: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
02a0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
02b0: 3d 3d 3d 3d 3d 0d 0a 0d 0a 63 6c 61 73 73 20 50 =====....class P
02c0: 61 69 6e 74 65 72 20 3a 20 70 75 62 6c 69 63 20 ainter : public
02d0: 4f 62 6a 65 63 74 0d 0a 7b 0d 0a 70 75 62 6c 69 Object..{..publi
02e0: 63 3a 0d 0a 0d 0a 09 7e 50 61 69 6e 74 65 72 28 c:.....~Painter(
02f0: 29 3b 0d 0a 0d 0a 09 2f 2f 40 7b 20 8e 77 92 e8 );.....//@{ .w..
0300: 88 ca 92 75 82 c9 88 ea 95 b6 8e 9a 8f 6f 97 cd ...u.........o..
0310: 20 2f 2f 40 7d 0d 0a 09 76 6f 69 64 20 43 68 61 //@}...void Cha
0320: 72 4f 75 74 28 20 75 6e 69 63 6f 64 65 20 63 68 rOut( unicode ch
0330: 2c 20 69 6e 74 20 78 2c 20 69 6e 74 20 79 20 29 , int x, int y )
0340: 3b 0d 0a 0d 0a 09 2f 2f 40 7b 20 8e 77 92 e8 88 ;.....//@{ .w...
0350: ca 92 75 82 c9 95 b6 8e 9a 97 f1 82 f0 8f 6f 97 ..u...........o.
0360: cd 20 2f 2f 40 7d 0d 0a 09 76 6f 69 64 20 53 74 . //@}...void St
0370: 72 69 6e 67 4f 75 74 28 20 63 6f 6e 73 74 20 75 ringOut( const u
0380: 6e 69 63 6f 64 65 2a 20 73 74 72 2c 20 69 6e 74 nicode* str, int
0390: 20 6c 65 6e 2c 20 69 6e 74 20 78 2c 20 69 6e 74 len, int x, int
03a0: 20 79 20 29 3b 0d 0a 0d 0a 09 2f 2f 40 7b 20 95 y );.....//@{ .
03b0: b6 8e 9a 90 46 90 d8 82 e8 91 d6 82 a6 20 2f 2f ....F........ //
03c0: 40 7d 0d 0a 09 76 6f 69 64 20 53 65 74 43 6f 6c @}...void SetCol
03d0: 6f 72 28 20 69 6e 74 20 69 20 29 3b 0d 0a 0d 0a or( int i );....
03e0: 09 2f 2f 40 7b 20 94 77 8c 69 90 46 82 c5 93 68 .//@{ .w.i.F...h
03f0: 82 e8 82 c2 82 d4 82 b5 20 2f 2f 40 7d 0d 0a 09 ........ //@}...
0400: 76 6f 69 64 20 46 69 6c 6c 28 20 63 6f 6e 73 74 void Fill( const
0410: 20 52 45 43 54 26 20 72 63 20 29 3b 0d 0a 0d 0a RECT& rc );....
0420: 09 2f 2f 40 7b 20 94 bd 93 5d 20 2f 2f 40 7d 0d .//@{ ...] //@}.
0430: 0a 09 76 6f 69 64 20 49 6e 76 65 72 74 28 20 63 ..void Invert( c
0440: 6f 6e 73 74 20 52 45 43 54 26 20 72 63 20 29 3b onst RECT& rc );
0450: 0d 0a 0d 0a 09 2f 2f 40 7b 20 90 fc 82 f0 88 f8 .....//@{ ......
0460: 82 ad 20 2f 2f 40 7d 0d 0a 09 76 6f 69 64 20 44 .. //@}...void D
0470: 72 61 77 4c 69 6e 65 28 20 69 6e 74 20 78 31 2c rawLine( int x1,
0480: 20 69 6e 74 20 79 31 2c 20 69 6e 74 20 78 32 2c int y1, int x2,
0490: 20 69 6e 74 20 79 32 20 29 3b 0d 0a 0d 0a 09 2f int y2 );...../
04a0: 2f 40 7b 20 83 4e 83 8a 83 62 83 76 97 cc 88 e6 /@{ .N...b.v....
04b0: 90 dd 92 e8 20 2f 2f 40 7d 0d 0a 09 76 6f 69 64 .... //@}...void
04c0: 20 53 65 74 43 6c 69 70 28 20 63 6f 6e 73 74 20 SetClip( const
04d0: 52 45 43 54 26 20 72 63 20 29 3b 0d 0a 0d 0a 09 RECT& rc );.....
04e0: 2f 2f 40 7b 20 83 4e 83 8a 83 62 83 76 97 cc 88 //@{ .N...b.v...
04f0: e6 89 f0 8f 9c 20 2f 2f 40 7d 0d 0a 09 76 6f 69 ..... //@}...voi
0500: 64 20 43 6c 65 61 72 43 6c 69 70 28 29 3b 0d 0a d ClearClip();..
0510: 0d 0a 09 2f 2f 40 7b 20 94 bc 8a 70 83 58 83 79 ...//@{ ...p.X.y
0520: 81 5b 83 58 97 70 8b 4c 8d 86 95 60 89 e6 20 2f .[.X.p.L...`.. /
0530: 2f 40 7d 0d 0a 09 76 6f 69 64 20 44 72 61 77 48 /@}...void DrawH
0540: 53 50 28 20 69 6e 74 20 78 2c 20 69 6e 74 20 79 SP( int x, int y
0550: 2c 20 69 6e 74 20 74 69 6d 65 73 20 29 3b 0d 0a , int times );..
0560: 0d 0a 09 2f 2f 40 7b 20 91 53 8a 70 83 58 83 79 ...//@{ .S.p.X.y
0570: 81 5b 83 58 97 70 8b 4c 8d 86 95 60 89 e6 20 2f .[.X.p.L...`.. /
0580: 2f 40 7d 0d 0a 09 76 6f 69 64 20 44 72 61 77 5a /@}...void DrawZ
0590: 53 50 28 20 69 6e 74 20 78 2c 20 69 6e 74 20 79 SP( int x, int y
05a0: 2c 20 69 6e 74 20 74 69 6d 65 73 20 29 3b 0d 0a , int times );..
05b0: 0d 0a 70 75 62 6c 69 63 3a 0d 0a 0d 0a 09 2f 2f ..public:.....//
05c0: 40 7b 20 8d 82 82 b3 28 70 69 78 65 6c 29 20 2f @{ ....(pixel) /
05d0: 2f 40 7d 0d 0a 09 69 6e 74 20 48 28 29 20 63 6f /@}...int H() co
05e0: 6e 73 74 20 7b 20 72 65 74 75 72 6e 20 68 65 69 nst { return hei
05f0: 67 68 74 5f 3b 20 7d 0d 0a 0d 0a 09 2f 2f 40 7b ght_; }.....//@{
0600: 20 90 94 8e 9a 95 9d 28 70 69 78 65 6c 29 20 2f ......(pixel) /
0610: 2f 40 7d 0d 0a 09 69 6e 74 20 46 28 29 20 63 6f /@}...int F() co
0620: 6e 73 74 20 7b 20 72 65 74 75 72 6e 20 66 69 67 nst { return fig
0630: 57 69 64 74 68 5f 3b 20 7d 0d 0a 0d 0a 09 2f 2f Width_; }.....//
0640: 40 7b 20 95 b6 8e 9a 95 9d 28 70 69 78 65 6c 29 @{ ......(pixel)
0650: 20 2f 2f 40 7d 0d 0a 09 69 6e 74 20 57 63 28 20 //@}...int Wc(
0660: 75 6e 69 63 6f 64 65 20 63 68 20 29 20 63 6f 6e unicode ch ) con
0670: 73 74 0d 0a 09 09 7b 0d 0a 09 09 09 69 66 28 20 st....{.....if(
0680: 77 69 64 74 68 54 61 62 6c 65 5f 5b 20 63 68 20 widthTable_[ ch
0690: 5d 20 3d 3d 20 2d 31 20 29 0d 0a 09 09 09 09 3a ] == -1 )......:
06a0: 3a 47 65 74 43 68 61 72 57 69 64 74 68 57 28 20 :GetCharWidthW(
06b0: 64 63 5f 2c 20 63 68 2c 20 63 68 2c 20 77 69 64 dc_, ch, ch, wid
06c0: 74 68 54 61 62 6c 65 5f 2b 63 68 20 29 3b 0d 0a thTable_+ch );..
06d0: 09 09 09 72 65 74 75 72 6e 20 77 69 64 74 68 54 ...return widthT
06e0: 61 62 6c 65 5f 5b 20 63 68 20 5d 3b 0d 0a 09 09 able_[ ch ];....
06f0: 7d 0d 0a 09 69 6e 74 20 57 28 20 63 6f 6e 73 74 }...int W( const
0700: 20 75 6e 69 63 6f 64 65 2a 20 70 63 68 20 29 20 unicode* pch )
0710: 63 6f 6e 73 74 20 2f 2f 20 31 2e 30 38 20 83 54 const // 1.08 .T
0720: 83 8d 83 51 81 5b 83 67 83 79 83 41 89 f1 94 f0 ...Q.[.g.y.A....
0730: 0d 0a 09 09 7b 0d 0a 09 09 09 75 6e 69 63 6f 64 ....{.....unicod
0740: 65 20 63 68 20 3d 20 2a 70 63 68 3b 0d 0a 09 09 e ch = *pch;....
0750: 09 69 66 28 20 77 69 64 74 68 54 61 62 6c 65 5f .if( widthTable_
0760: 5b 20 63 68 20 5d 20 3d 3d 20 2d 31 20 29 0d 0a [ ch ] == -1 )..
0770: 09 09 09 7b 0d 0a 09 09 09 09 69 66 28 20 69 73 ...{......if( is
0780: 48 69 67 68 53 75 72 72 6f 67 61 74 65 28 63 68 HighSurrogate(ch
0790: 29 20 29 0d 0a 09 09 09 09 7b 0d 0a 09 09 09 09 ) )......{......
07a0: 09 53 49 5a 45 20 73 7a 3b 0d 0a 09 09 09 09 09 .SIZE sz;.......
07b0: 69 66 28 20 3a 3a 47 65 74 54 65 78 74 45 78 74 if( ::GetTextExt
07c0: 65 6e 74 50 6f 69 6e 74 33 32 57 28 20 64 63 5f entPoint32W( dc_
07d0: 2c 20 70 63 68 2c 20 32 2c 20 26 73 7a 20 29 20 , pch, 2, &sz )
07e0: 29 0d 0a 09 09 09 09 09 09 72 65 74 75 72 6e 20 )........return
07f0: 73 7a 2e 63 78 3b 0d 0a 09 09 09 09 09 69 6e 74 sz.cx;.......int
0800: 20 77 20 3d 20 30 3b 0d 0a 09 09 09 09 09 3a 3a w = 0;.......::
0810: 47 65 74 43 68 61 72 57 69 64 74 68 57 28 20 64 GetCharWidthW( d
0820: 63 5f 2c 20 63 68 2c 20 63 68 2c 20 26 77 20 29 c_, ch, ch, &w )
0830: 3b 0d 0a 09 09 09 09 09 72 65 74 75 72 6e 20 77 ;.......return w
0840: 3b 0d 0a 09 09 09 09 7d 0d 0a 09 09 09 09 3a 3a ;......}......::
0850: 47 65 74 43 68 61 72 57 69 64 74 68 57 28 20 64 GetCharWidthW( d
0860: 63 5f 2c 20 63 68 2c 20 63 68 2c 20 77 69 64 74 c_, ch, ch, widt
0870: 68 54 61 62 6c 65 5f 2b 63 68 20 29 3b 0d 0a 09 hTable_+ch );...
0880: 09 09 7d 0d 0a 09 09 09 72 65 74 75 72 6e 20 77 ..}.....return w
0890: 69 64 74 68 54 61 62 6c 65 5f 5b 20 63 68 20 5d idthTable_[ ch ]
08a0: 3b 0d 0a 09 09 7d 0d 0a 0d 0a 09 2f 2f 40 7b 20 ;....}.....//@{
08b0: 95 57 8f 80 95 b6 8e 9a 95 9d 28 70 69 78 65 6c .W........(pixel
08c0: 29 20 2f 2f 40 7d 0d 0a 09 69 6e 74 20 57 28 29 ) //@}...int W()
08d0: 20 63 6f 6e 73 74 20 7b 20 72 65 74 75 72 6e 20 const { return
08e0: 77 69 64 74 68 54 61 62 6c 65 5f 5b 20 4c 27 78 widthTable_[ L'x
08f0: 27 20 5d 3b 20 7d 0d 0a 0d 0a 09 2f 2f 40 7b 20 ' ]; }.....//@{
0900: 8e 9f 82 cc 83 5e 83 75 91 b5 82 a6 88 ca 92 75 .....^.u.......u
0910: 82 f0 8c 76 8e 5a 20 2f 2f 40 7d 0d 0a 09 2f 2f ...v.Z //@}...//
0920: 69 6e 74 20 6e 65 78 74 54 61 62 28 69 6e 74 20 int nextTab(int
0930: 78 29 20 63 6f 6e 73 74 20 7b 20 69 6e 74 20 74 x) const { int t
0940: 3d 54 28 29 3b 20 72 65 74 75 72 6e 20 28 78 2f =T(); return (x/
0950: 74 2b 31 29 2a 74 3b 20 7d 0d 0a 09 69 6e 74 20 t+1)*t; }...int
0960: 6e 65 78 74 54 61 62 28 69 6e 74 20 78 29 20 63 nextTab(int x) c
0970: 6f 6e 73 74 20 7b 20 69 6e 74 20 74 3d 54 28 29 onst { int t=T()
0980: 3b 20 72 65 74 75 72 6e 20 28 28 78 2b 34 29 2f ; return ((x+4)/
0990: 74 2b 31 29 2a 74 3b 20 7d 0d 0a 09 70 72 69 76 t+1)*t; }...priv
09a0: 61 74 65 3a 20 69 6e 74 20 54 28 29 20 63 6f 6e ate: int T() con
09b0: 73 74 20 7b 20 72 65 74 75 72 6e 20 77 69 64 74 st { return widt
09c0: 68 54 61 62 6c 65 5f 5b 20 4c 27 5c 74 27 20 5d hTable_[ L'\t' ]
09d0: 3b 20 7d 20 70 75 62 6c 69 63 3a 0d 0a 0d 0a 09 ; } public:.....
09e0: 2f 2f 40 7b 20 8c bb 8d dd 82 cc 83 74 83 48 83 //@{ .......t.H.
09f0: 93 83 67 8f ee 95 f1 20 2f 2f 40 7d 0d 0a 09 63 ..g.... //@}...c
0a00: 6f 6e 73 74 20 4c 4f 47 46 4f 4e 54 26 20 4c 6f onst LOGFONT& Lo
0a10: 67 46 6f 6e 74 28 29 20 63 6f 6e 73 74 20 7b 20 gFont() const {
0a20: 72 65 74 75 72 6e 20 6c 6f 67 66 6f 6e 74 5f 3b return logfont_;
0a30: 20 7d 0d 0a 0d 0a 09 2f 2f 40 7b 20 93 c1 95 ca }.....//@{ ....
0a40: 95 b6 8e 9a 82 f0 95 60 89 e6 82 b7 82 e9 82 a9 .......`........
0a50: 94 db 82 a9 20 2f 2f 40 7d 0d 0a 09 62 6f 6f 6c .... //@}...bool
0a60: 20 73 63 28 20 69 6e 74 20 69 20 29 20 63 6f 6e sc( int i ) con
0a70: 73 74 20 7b 20 72 65 74 75 72 6e 20 73 63 44 72 st { return scDr
0a80: 61 77 5f 5b 69 5d 3b 20 7d 0d 0a 0d 0a 70 72 69 aw_[i]; }....pri
0a90: 76 61 74 65 3a 0d 0a 0d 0a 09 63 6f 6e 73 74 20 vate:.....const
0aa0: 48 44 43 20 20 20 20 64 63 5f 3b 0d 0a 09 63 6f HDC dc_;...co
0ab0: 6e 73 74 20 48 46 4f 4e 54 20 20 66 6f 6e 74 5f nst HFONT font_
0ac0: 3b 0d 0a 09 63 6f 6e 73 74 20 48 50 45 4e 20 20 ;...const HPEN
0ad0: 20 70 65 6e 5f 3b 0d 0a 09 63 6f 6e 73 74 20 48 pen_;...const H
0ae0: 42 52 55 53 48 20 62 72 75 73 68 5f 3b 0d 0a 09 BRUSH brush_;...
0af0: 69 6e 74 20 20 20 20 20 20 20 20 20 20 68 65 69 int hei
0b00: 67 68 74 5f 3b 0d 0a 09 69 6e 74 2a 20 20 20 20 ght_;...int*
0b10: 20 20 20 20 20 77 69 64 74 68 54 61 62 6c 65 5f widthTable_
0b20: 3b 0d 0a 09 69 6e 74 20 20 20 20 20 20 20 20 20 ;...int
0b30: 20 66 69 67 57 69 64 74 68 5f 3b 0d 0a 09 4c 4f figWidth_;...LO
0b40: 47 46 4f 4e 54 20 20 20 20 20 20 6c 6f 67 66 6f GFONT logfo
0b50: 6e 74 5f 3b 0d 0a 09 43 4f 4c 4f 52 52 45 46 20 nt_;...COLORREF
0b60: 20 20 20 20 63 6f 6c 6f 72 54 61 62 6c 65 5f 5b colorTable_[
0b70: 37 5d 3b 0d 0a 09 62 6f 6f 6c 20 20 20 20 20 20 7];...bool
0b80: 20 20 20 73 63 44 72 61 77 5f 5b 35 5d 3b 0d 0a scDraw_[5];..
0b90: 0d 0a 70 72 69 76 61 74 65 3a 0d 0a 0d 0a 09 50 ..private:.....P
0ba0: 61 69 6e 74 65 72 28 20 48 44 43 20 68 64 63 2c ainter( HDC hdc,
0bb0: 20 63 6f 6e 73 74 20 56 43 6f 6e 66 69 67 26 20 const VConfig&
0bc0: 76 63 20 29 3b 0d 0a 09 48 44 43 20 67 65 74 44 vc );...HDC getD
0bd0: 43 28 29 20 7b 20 72 65 74 75 72 6e 20 64 63 5f C() { return dc_
0be0: 3b 20 7d 0d 0a 09 66 72 69 65 6e 64 20 63 6c 61 ; }...friend cla
0bf0: 73 73 20 43 61 6e 76 61 73 3b 0d 0a 09 4e 4f 43 ss Canvas;...NOC
0c00: 4f 50 59 28 50 61 69 6e 74 65 72 29 3b 0d 0a 7d OPY(Painter);..}
0c10: 3b 0d 0a 0d 0a 0d 0a 0d 0a 2f 2f 3d 3d 3d 3d 3d ;........//=====
0c20: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0c30: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0c40: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0c50: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0c60: 3d 3d 3d 3d 0d 0a 2f 2f 40 7b 0d 0a 2f 2f 09 95 ====..//@{..//..
0c70: 60 89 e6 89 c2 94 5c 97 cc 88 e6 0d 0a 2f 2f 0d `.....\......//.
0c80: 0a 2f 2f 09 83 45 83 43 83 93 83 68 83 45 83 54 .//..E.C...h.E.T
0c90: 83 43 83 59 82 cc 95 cf 8d 58 82 e2 90 dc 82 e8 .C.Y.....X......
0ca0: 95 d4 82 b5 82 cc 97 4c 96 b3 82 e2 83 74 83 48 .......L.....t.H
0cb0: 83 93 83 67 82 cc 90 dd 92 e8 82 c8 82 c7 82 c9 ...g............
0cc0: 0d 0a 2f 2f 09 91 ce 89 9e 82 b5 82 c4 81 41 95 ..//..........A.
0cd0: 60 89 e6 97 cc 88 e6 82 cc 83 54 83 43 83 59 82 `.........T.C.Y.
0ce0: f0 93 4b 93 96 82 c9 8a c7 97 9d 82 b5 82 dc 82 ..K.............
0cf0: b7 81 42 82 e2 82 e9 82 b1 82 c6 82 cd 0d 0a 2f ..B............/
0d00: 2f 09 82 c6 82 e8 82 a0 82 a6 82 b8 82 bb 82 ea /...............
0d10: 82 be 82 af 81 42 0d 0a 2f 2f 40 7d 0d 0a 2f 2f .....B..//@}..//
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 3d 3d 3d ================
0d50: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0d60: 3d 3d 3d 3d 3d 3d 3d 3d 3d 0d 0a 0d 0a 63 6c 61 =========....cla
0d70: 73 73 20 43 61 6e 76 61 73 20 3a 20 70 75 62 6c ss Canvas : publ
0d80: 69 63 20 4f 62 6a 65 63 74 0d 0a 7b 0d 0a 70 75 ic Object..{..pu
0d90: 62 6c 69 63 3a 0d 0a 0d 0a 09 43 61 6e 76 61 73 blic:.....Canvas
0da0: 28 20 63 6f 6e 73 74 20 56 69 65 77 26 20 76 77 ( const View& vw
0db0: 20 29 3b 0d 0a 0d 0a 09 2f 2f 40 7b 20 56 69 65 );.....//@{ Vie
0dc0: 77 82 cc 91 e5 82 ab 82 b3 95 cf 8d 58 83 43 83 w...........X.C.
0dd0: 78 83 93 83 67 8f 88 97 9d 0d 0a 09 2f 2f 09 20 x...g.......//.
0de0: 40 72 65 74 75 72 6e 20 90 dc 82 e8 95 d4 82 b5 @return ........
0df0: 95 9d 82 aa 95 cf 82 ed 82 c1 82 bd 82 e7 74 72 ..............tr
0e00: 75 65 20 2f 2f 40 7d 0d 0a 09 62 6f 6f 6c 20 6f ue //@}...bool o
0e10: 6e 5f 76 69 65 77 5f 72 65 73 69 7a 65 28 20 69 n_view_resize( i
0e20: 6e 74 20 63 78 2c 20 69 6e 74 20 63 79 20 29 3b nt cx, int cy );
0e30: 0d 0a 0d 0a 09 2f 2f 40 7b 20 8d 73 90 94 95 cf .....//@{ .s....
0e40: 8d 58 83 43 83 78 83 93 83 67 8f 88 97 9d 0d 0a .X.C.x...g......
0e50: 09 2f 2f 09 20 40 72 65 74 75 72 6e 20 83 65 83 .//. @return .e.
0e60: 4c 83 58 83 67 97 cc 88 e6 82 cc 95 9d 82 aa 95 L.X.g...........
0e70: cf 82 ed 82 c1 82 bd 82 e7 74 72 75 65 20 2f 2f .........true //
0e80: 40 7d 0d 0a 09 62 6f 6f 6c 20 6f 6e 5f 74 6c 6e @}...bool on_tln
0e90: 5f 63 68 61 6e 67 65 28 20 75 6c 6f 6e 67 20 74 _change( ulong t
0ea0: 6c 6e 20 29 3b 0d 0a 0d 0a 09 2f 2f 40 7b 20 83 ln );.....//@{ .
0eb0: 74 83 48 83 93 83 67 95 cf 8d 58 83 43 83 78 83 t.H...g...X.C.x.
0ec0: 93 83 67 8f 88 97 9d 20 2f 2f 40 7d 0d 0a 09 76 ..g.... //@}...v
0ed0: 6f 69 64 20 6f 6e 5f 66 6f 6e 74 5f 63 68 61 6e oid on_font_chan
0ee0: 67 65 28 20 63 6f 6e 73 74 20 56 43 6f 6e 66 69 ge( const VConfi
0ef0: 67 26 20 76 63 20 29 3b 0d 0a 0d 0a 09 2f 2f 40 g& vc );.....//@
0f00: 7b 20 90 dd 92 e8 95 cf 8d 58 83 43 83 78 83 93 { .......X.C.x..
0f10: 83 67 8f 88 97 9d 20 2f 2f 40 7d 0d 0a 09 76 6f .g.... //@}...vo
0f20: 69 64 20 6f 6e 5f 63 6f 6e 66 69 67 5f 63 68 61 id on_config_cha
0f30: 6e 67 65 28 20 69 6e 74 20 77 72 61 70 2c 20 62 nge( int wrap, b
0f40: 6f 6f 6c 20 73 68 6f 77 6c 6e 20 29 3b 0d 0a 0d ool showln );...
0f50: 0a 70 75 62 6c 69 63 3a 0d 0a 0d 0a 09 2f 2f 40 .public:.....//@
0f60: 7b 20 5b 8d 73 94 d4 8d 86 82 f0 95 5c 8e a6 82 { [.s.......\...
0f70: b7 82 e9 82 a9 94 db 82 a9 5d 20 2f 2f 40 7d 0d .........] //@}.
0f80: 0a 09 62 6f 6f 6c 20 73 68 6f 77 4c 4e 28 29 20 ..bool showLN()
0f90: 63 6f 6e 73 74 20 7b 20 72 65 74 75 72 6e 20 73 const { return s
0fa0: 68 6f 77 4c 4e 5f 3b 20 7d 0d 0a 0d 0a 09 2f 2f howLN_; }.....//
0fb0: 40 7b 20 5b 2d 31 3a 90 dc 82 e8 95 d4 82 b5 96 @{ [-1:.........
0fc0: b3 82 b5 20 20 30 3a 91 8b 89 45 92 5b 20 20 65 ... 0:...E.[ e
0fd0: 6c 73 65 3a 8e 77 92 e8 95 b6 8e 9a 90 94 5d 20 lse:.w........]
0fe0: 2f 2f 40 7d 0d 0a 09 69 6e 74 20 77 72 61 70 54 //@}...int wrapT
0ff0: 79 70 65 28 29 20 63 6f 6e 73 74 20 7b 20 72 65 ype() const { re
1000: 74 75 72 6e 20 77 72 61 70 54 79 70 65 5f 3b 20 turn wrapType_;
1010: 7d 0d 0a 0d 0a 09 2f 2f 40 7b 20 90 dc 82 e8 95 }.....//@{ .....
1020: d4 82 b5 95 9d 28 70 69 78 65 6c 29 20 2f 2f 40 .....(pixel) //@
1030: 7d 0d 0a 09 75 6c 6f 6e 67 20 77 72 61 70 57 69 }...ulong wrapWi
1040: 64 74 68 28 29 20 63 6f 6e 73 74 20 7b 20 72 65 dth() const { re
1050: 74 75 72 6e 20 77 72 61 70 57 69 64 74 68 5f 3b turn wrapWidth_;
1060: 20 7d 0d 0a 0d 0a 09 2f 2f 40 7b 20 95 5c 8e a6 }.....//@{ .\..
1070: 97 cc 88 e6 82 cc 88 ca 92 75 28 70 69 78 65 6c .........u(pixel
1080: 29 20 2f 2f 40 7d 0d 0a 09 63 6f 6e 73 74 20 52 ) //@}...const R
1090: 45 43 54 26 20 7a 6f 6e 65 28 29 20 63 6f 6e 73 ECT& zone() cons
10a0: 74 20 7b 20 72 65 74 75 72 6e 20 74 78 74 5a 6f t { return txtZo
10b0: 6e 65 5f 3b 20 7d 0d 0a 0d 0a 09 2f 2f 40 7b 20 ne_; }.....//@{
10c0: 95 60 89 e6 97 70 83 49 83 75 83 57 83 46 83 4e .`...p.I.u.W.F.N
10d0: 83 67 20 2f 2f 40 7d 0d 0a 09 50 61 69 6e 74 65 .g //@}...Painte
10e0: 72 26 20 67 65 74 50 61 69 6e 74 65 72 28 29 20 r& getPainter()
10f0: 63 6f 6e 73 74 20 7b 20 72 65 74 75 72 6e 20 2a const { return *
1100: 66 6f 6e 74 5f 3b 20 7d 0d 0a 0d 0a 70 72 69 76 font_; }....priv
1110: 61 74 65 3a 0d 0a 0d 0a 09 69 6e 74 20 20 77 72 ate:.....int wr
1120: 61 70 54 79 70 65 5f 3b 20 20 2f 2f 20 5b 20 2d apType_; // [ -
1130: 31 3a 90 dc 82 e8 95 d4 82 b5 96 b3 82 b5 20 20 1:............
1140: 30 3a 91 8b 89 45 92 5b 20 20 65 6c 73 65 3a 8e 0:...E.[ else:.
1150: 77 92 e8 95 b6 8e 9a 90 94 20 5d 0d 0a 09 62 6f w........ ]...bo
1160: 6f 6c 20 73 68 6f 77 4c 4e 5f 3b 20 20 20 20 2f ol showLN_; /
1170: 2f 20 5b 20 8d 73 94 d4 8d 86 82 f0 95 5c 8e a6 / [ .s.......\..
1180: 82 b7 82 e9 82 a9 94 db 82 a9 20 5d 0d 0a 0d 0a .......... ]....
1190: 09 64 70 74 72 3c 50 61 69 6e 74 65 72 3e 20 66 .dptr<Painter> f
11a0: 6f 6e 74 5f 3b 20 2f 2f 20 95 60 89 e6 97 70 83 ont_; // .`...p.
11b0: 49 83 75 83 57 83 46 83 4e 83 67 0d 0a 09 75 6c I.u.W.F.N.g...ul
11c0: 6f 6e 67 20 20 20 20 77 72 61 70 57 69 64 74 68 ong wrapWidth
11d0: 5f 3b 20 2f 2f 20 90 dc 82 e8 95 d4 82 b5 95 9d _; // ..........
11e0: 28 70 69 78 65 6c 29 0d 0a 09 52 45 43 54 20 20 (pixel)...RECT
11f0: 20 20 20 20 20 74 78 74 5a 6f 6e 65 5f 3b 20 2f txtZone_; /
1200: 2f 20 83 65 83 4c 83 58 83 67 95 5c 8e a6 88 e6 / .e.L.X.g.\....
1210: 82 cc 88 ca 92 75 28 70 69 78 65 6c 29 0d 0a 09 .....u(pixel)...
1220: 69 6e 74 20 20 20 20 20 20 20 20 20 66 69 67 4e int figN
1230: 75 6d 5f 3b 20 2f 2f 20 8d 73 94 d4 8d 86 82 cc um_; // .s......
1240: 8c 85 90 94 0d 0a 0d 0a 70 72 69 76 61 74 65 3a ........private:
1250: 0d 0a 0d 0a 09 62 6f 6f 6c 20 43 61 6c 63 4c 4e .....bool CalcLN
1260: 41 72 65 61 57 69 64 74 68 28 29 3b 0d 0a 09 76 AreaWidth();...v
1270: 6f 69 64 20 43 61 6c 63 57 72 61 70 57 69 64 74 oid CalcWrapWidt
1280: 68 28 29 3b 0d 0a 0d 0a 70 72 69 76 61 74 65 3a h();....private:
1290: 0d 0a 0d 0a 09 4e 4f 43 4f 50 59 28 43 61 6e 76 .....NOCOPY(Canv
12a0: 61 73 29 3b 0d 0a 7d 3b 0d 0a 0d 0a 0d 0a 0d 0a as);..};........
12b0: 2f 2f 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d //==============
12c0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
12d0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
12e0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
12f0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0d 0a 2f 2f 40 ===========..//@
1300: 7b 0d 0a 2f 2f 09 8d 73 96 88 82 cc 90 dc 82 e8 {..//..s........
1310: 95 d4 82 b5 8f ee 95 f1 0d 0a 2f 2f 40 7d 0d 0a ..........//@}..
1320: 2f 2f 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d //==============
1330: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1340: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1350: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1360: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0d 0a 0d 0a 73 ===========....s
1370: 74 72 75 63 74 20 57 4c 69 6e 65 20 3a 20 70 75 truct WLine : pu
1380: 62 6c 69 63 20 73 74 6f 72 61 67 65 3c 75 6c 6f blic storage<ulo
1390: 6e 67 3e 0d 0a 7b 0d 0a 09 2f 2f 20 5b 30 5d 20 ng>..{...// [0]
13a0: 20 20 3a 20 82 bb 82 cc 8d 73 82 cc 90 dc 82 e8 : .....s......
13b0: 95 d4 82 b5 96 b3 82 b5 82 c5 82 cc 89 a1 95 9d ................
13c0: 82 f0 8a 69 94 5b 0d 0a 09 2f 2f 20 5b 31 2d 6e ...i.[...// [1-n
13d0: 5d 20 3a 20 6e 8d 73 96 da 82 cc 8f 49 92 5b 82 ] : n.s.....I.[.
13e0: cc 69 6e 64 65 78 82 f0 8a 69 94 5b 81 42 0d 0a .index...i.[.B..
13f0: 09 2f 2f 0d 0a 09 2f 2f 20 20 20 97 e1 82 a6 82 .//...// .....
1400: ce 20 22 61 61 61 62 62 62 22 20 82 c6 82 a2 82 . "aaabbb" .....
1410: a4 98 5f 97 9d 8d 73 82 f0 20 22 61 61 61 62 22 .._...s.. "aaab"
1420: 20 22 62 62 22 20 82 c6 90 dc 82 e9 82 c8 82 e7 "bb" ..........
1430: 0d 0a 09 2f 2f 20 20 20 7b 34 38 2c 20 34 2c 20 ...// {48, 4,
1440: 36 7d 20 82 c8 82 c7 82 c6 82 a2 82 a4 92 b7 82 6} .............
1450: b3 82 52 82 cc 94 7a 97 f1 82 c6 82 c8 82 e9 81 ..R...z.........
1460: 42 0d 0a 0d 0a 09 57 4c 69 6e 65 28 29 20 3a 20 B.....WLine() :
1470: 73 74 6f 72 61 67 65 3c 75 6c 6f 6e 67 3e 28 32 storage<ulong>(2
1480: 29 20 7b 7d 0d 0a 09 75 6c 6f 6e 67 26 20 77 69 ) {}...ulong& wi
1490: 64 74 68 28 29 20 20 20 20 20 20 7b 20 72 65 74 dth() { ret
14a0: 75 72 6e 20 28 2a 74 68 69 73 29 5b 30 5d 3b 20 urn (*this)[0];
14b0: 7d 0d 0a 09 75 6c 6f 6e 67 20 77 69 64 74 68 28 }...ulong width(
14c0: 29 20 63 6f 6e 73 74 20 7b 20 72 65 74 75 72 6e ) const { return
14d0: 20 28 2a 74 68 69 73 29 5b 30 5d 3b 20 7d 0d 0a (*this)[0]; }..
14e0: 09 75 6c 6f 6e 67 20 72 6c 6e 28 29 20 63 6f 6e .ulong rln() con
14f0: 73 74 20 20 20 7b 20 72 65 74 75 72 6e 20 73 69 st { return si
1500: 7a 65 28 29 2d 31 3b 20 7d 0d 0a 7d 3b 0d 0a 0d ze()-1; }..};...
1510: 0a 0d 0a 0d 0a 2f 2f 3d 3d 3d 3d 3d 3d 3d 3d 3d .....//=========
1520: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1530: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1540: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1550: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1560: 0d 0a 2f 2f 40 7b 0d 0a 2f 2f 09 8d c4 95 60 89 ..//@{..//....`.
1570: e6 94 cd 88 cd 82 f0 8e 77 92 e8 82 b7 82 e9 82 ........w.......
1580: bd 82 df 82 cc 83 74 83 89 83 4f 0d 0a 2f 2f 40 ......t...O..//@
1590: 7d 0d 0a 2f 2f 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d }..//===========
15a0: 3d 3d 3d 3d 3d 3d 3d 3d 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 0d 0a ==============..
15e0: 0d 0a 65 6e 75 6d 20 52 65 44 72 61 77 54 79 70 ..enum ReDrawTyp
15f0: 65 0d 0a 7b 0d 0a 09 4c 4e 41 52 45 41 2c 20 2f e..{...LNAREA, /
1600: 2f 20 8d 73 94 d4 8d 86 83 5d 81 5b 83 93 82 cc / .s.....].[....
1610: 82 dd 0d 0a 09 4c 49 4e 45 2c 20 20 20 2f 2f 20 .....LINE, //
1620: 95 cf 8d 58 82 cc 82 a0 82 c1 82 bd 88 ea 8d 73 ...X...........s
1630: 82 cc 82 dd 0d 0a 09 41 46 54 45 52 2c 20 20 2f .......AFTER, /
1640: 2f 20 95 cf 8d 58 82 cc 82 a0 82 c1 82 bd 8d 73 / ...X.........s
1650: 88 c8 89 ba 91 53 95 94 0d 0a 09 41 4c 4c 20 20 .....S.....ALL
1660: 20 20 20 2f 2f 20 91 53 89 e6 96 ca 0d 0a 7d 3b // .S......};
1670: 0d 0a 0d 0a 0d 0a 0d 0a 2f 2f 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: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
16b0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
16c0: 3d 3d 3d 0d 0a 2f 2f 40 7b 0d 0a 2f 2f 09 95 60 ===..//@{..//..`
16d0: 89 e6 8f 88 97 9d 82 f0 8d d7 82 a9 82 ad 8e 77 ...............w
16e0: 92 e8 82 b7 82 e9 8d 5c 91 a2 91 cc 0d 0a 2f 2f .......\......//
16f0: 40 7d 0d 0a 2f 2f 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d @}..//==========
1700: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1710: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1720: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1730: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0d ===============.
1740: 0a 0d 0a 73 74 72 75 63 74 20 56 44 72 61 77 49 ...struct VDrawI
1750: 6e 66 6f 0d 0a 7b 0d 0a 09 63 6f 6e 73 74 20 52 nfo..{...const R
1760: 45 43 54 20 72 63 3b 20 20 2f 2f 20 8d c4 95 60 ECT rc; // ...`
1770: 89 e6 94 cd 88 cd 0d 0a 09 69 6e 74 20 58 42 41 .........int XBA
1780: 53 45 3b 20 20 20 20 20 20 2f 2f 20 88 ea 94 d4 SE; // ....
1790: 8d b6 82 cc 95 b6 8e 9a 82 cc 78 8d c0 95 57 0d ..........x...W.
17a0: 0a 09 69 6e 74 20 58 4d 49 4e 3b 20 20 20 20 20 ..int XMIN;
17b0: 20 20 2f 2f 20 83 65 83 4c 83 58 83 67 8d c4 95 // .e.L.X.g...
17c0: 60 89 e6 94 cd 88 cd 8d b6 92 5b 0d 0a 09 69 6e `.........[...in
17d0: 74 20 58 4d 41 58 3b 20 20 20 20 20 20 20 2f 2f t XMAX; //
17e0: 20 83 65 83 4c 83 58 83 67 8d c4 95 60 89 e6 94 .e.L.X.g...`...
17f0: cd 88 cd 89 45 92 5b 0d 0a 09 69 6e 74 20 59 4d ....E.[...int YM
1800: 49 4e 3b 20 20 20 20 20 20 20 2f 2f 20 83 65 83 IN; // .e.
1810: 4c 83 58 83 67 8d c4 95 60 89 e6 94 cd 88 cd 8f L.X.g...`.......
1820: e3 92 5b 0d 0a 09 69 6e 74 20 59 4d 41 58 3b 20 ..[...int YMAX;
1830: 20 20 20 20 20 20 2f 2f 20 83 65 83 4c 83 58 83 // .e.L.X.
1840: 67 8d c4 95 60 89 e6 94 cd 88 cd 89 ba 92 5b 0d g...`.........[.
1850: 0a 09 75 6c 6f 6e 67 20 54 4c 4d 49 4e 3b 20 20 ..ulong TLMIN;
1860: 20 20 2f 2f 20 83 65 83 4c 83 58 83 67 8d c4 95 // .e.L.X.g...
1870: 60 89 e6 94 cd 88 cd 8f e3 92 5b 98 5f 97 9d 8d `.........[._...
1880: 73 94 d4 8d 86 0d 0a 09 69 6e 74 20 53 58 42 2c s.......int SXB,
1890: 20 53 58 45 3b 20 20 20 2f 2f 20 91 49 91 f0 94 SXE; // .I...
18a0: cd 88 cd 82 cc 78 8d c0 95 57 0d 0a 09 69 6e 74 .....x...W...int
18b0: 20 53 59 42 2c 20 53 59 45 3b 20 20 20 2f 2f 20 SYB, SYE; //
18c0: 91 49 91 f0 94 cd 88 cd 82 cc 79 8d c0 95 57 0d .I........y...W.
18d0: 0a 0d 0a 09 65 78 70 6c 69 63 69 74 20 56 44 72 ....explicit VDr
18e0: 61 77 49 6e 66 6f 28 20 63 6f 6e 73 74 20 52 45 awInfo( const RE
18f0: 43 54 26 20 72 20 29 20 3a 20 72 63 28 72 29 20 CT& r ) : rc(r)
1900: 7b 7d 0d 0a 7d 3b 0d 0a 0d 0a 0d 0a 0d 0a 2f 2f {}..};........//
1910: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1920: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1930: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1940: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1950: 3d 3d 3d 3d 3d 3d 3d 3d 3d 0d 0a 2f 2f 40 7b 0d =========..//@{.
1960: 0a 2f 2f 09 90 dc 82 e8 95 d4 82 b5 65 64 83 65 .//.........ed.e
1970: 83 4c 83 58 83 67 82 cc 8a c7 97 9d 81 45 95 5c .L.X.g.......E.\
1980: 8e a6 93 99 0d 0a 2f 2f 0d 0a 2f 2f 09 43 61 6e ......//..//.Can
1990: 76 61 73 83 4e 83 89 83 58 82 c9 82 e6 82 c1 82 vas.N...X.......
19a0: c4 8c 76 8e 5a 82 b3 82 ea 82 bd 97 cc 88 e6 83 ..v.Z...........
19b0: 54 83 43 83 59 82 f0 8e 51 8d 6c 82 c9 81 41 83 T.C.Y...Q.l...A.
19c0: 65 83 4c 83 58 83 67 82 cc 0d 0a 2f 2f 09 90 dc e.L.X.g....//...
19d0: 82 e8 95 d4 82 b5 8f 88 97 9d 82 f0 8e c0 8d 73 ...............s
19e0: 82 b7 82 e9 81 42 82 b1 82 b1 82 c5 81 41 83 58 .....B.......A.X
19f0: 83 4e 83 8d 81 5b 83 8b 90 a7 8c e4 81 41 95 60 .N...[.......A.`
1a00: 89 e6 8f 88 97 9d 82 c8 82 c7 0d 0a 2f 2f 09 8e ............//..
1a10: e5 97 76 82 c8 8f 88 97 9d 82 cd 91 53 82 c4 8e ..v.........S...
1a20: c0 8d 73 82 b7 82 e9 82 b1 82 c6 82 c9 82 c8 82 ..s.............
1a30: e9 81 42 0d 0a 2f 2f 40 7d 0d 0a 2f 2f 3d 3d 3d ..B..//@}..//===
1a40: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1a50: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1a60: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1a70: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1a80: 3d 3d 3d 3d 3d 3d 0d 0a 0d 0a 63 6c 61 73 73 20 ======....class
1a90: 56 69 65 77 49 6d 70 6c 20 3a 20 70 75 62 6c 69 ViewImpl : publi
1aa0: 63 20 4f 62 6a 65 63 74 0d 0a 7b 0d 0a 70 75 62 c Object..{..pub
1ab0: 6c 69 63 3a 0d 0a 0d 0a 09 56 69 65 77 49 6d 70 lic:.....ViewImp
1ac0: 6c 28 20 56 69 65 77 26 20 76 77 2c 20 44 6f 63 l( View& vw, Doc
1ad0: 49 6d 70 6c 26 20 64 63 20 29 3b 0d 0a 0d 0a 09 Impl& dc );.....
1ae0: 2f 2f 40 7b 20 90 dc 82 e8 95 d4 82 b5 95 fb 8e //@{ ...........
1af0: ae 90 d8 91 d6 20 2f 2f 40 7d 0d 0a 09 76 6f 69 ..... //@}...voi
1b00: 64 20 53 65 74 57 72 61 70 54 79 70 65 28 20 69 d SetWrapType( i
1b10: 6e 74 20 77 74 20 29 3b 0d 0a 0d 0a 09 2f 2f 40 nt wt );.....//@
1b20: 7b 20 8d 73 94 d4 8d 86 95 5c 8e a6 2f 94 f1 95 { .s.....\../...
1b30: 5c 8e a6 90 d8 91 d6 20 2f 2f 40 7d 0d 0a 09 76 \...... //@}...v
1b40: 6f 69 64 20 53 68 6f 77 4c 69 6e 65 4e 6f 28 20 oid ShowLineNo(
1b50: 62 6f 6f 6c 20 73 68 6f 77 20 29 3b 0d 0a 0d 0a bool show );....
1b60: 09 2f 2f 40 7b 20 95 5c 8e a6 90 46 81 45 83 74 .//@{ .\...F.E.t
1b70: 83 48 83 93 83 67 90 d8 91 d6 20 2f 2f 40 7d 0d .H...g.... //@}.
1b80: 0a 09 76 6f 69 64 20 53 65 74 46 6f 6e 74 28 20 ..void SetFont(
1b90: 63 6f 6e 73 74 20 56 43 6f 6e 66 69 67 26 20 76 const VConfig& v
1ba0: 63 20 29 3b 0d 0a 0d 0a 09 09 2f 2f 40 7b 20 83 c );......//@{ .
1bb0: 65 83 4c 83 58 83 67 97 cc 88 e6 82 cc 83 54 83 e.L.X.g.......T.
1bc0: 43 83 59 95 cf 8d 58 83 43 83 78 83 93 83 67 20 C.Y...X.C.x...g
1bd0: 2f 2f 40 7d 0d 0a 09 09 76 6f 69 64 20 6f 6e 5f //@}....void on_
1be0: 76 69 65 77 5f 72 65 73 69 7a 65 28 20 69 6e 74 view_resize( int
1bf0: 20 63 78 2c 20 69 6e 74 20 63 79 20 29 3b 0d 0a cx, int cy );..
1c00: 0d 0a 09 76 6f 69 64 20 44 6f 52 65 73 69 7a 65 ...void DoResize
1c10: 28 20 62 6f 6f 6c 20 77 72 61 70 57 69 64 74 68 ( bool wrapWidth
1c20: 43 68 61 6e 67 65 64 20 29 3b 0d 0a 09 76 6f 69 Changed );...voi
1c30: 64 20 44 6f 43 6f 6e 66 69 67 43 68 61 6e 67 65 d DoConfigChange
1c40: 28 29 3b 0d 0a 0d 0a 09 2f 2f 40 7b 20 83 65 83 ();.....//@{ .e.
1c50: 4c 83 58 83 67 83 66 81 5b 83 5e 82 cc 8d 58 90 L.X.g.f.[.^...X.
1c60: 56 83 43 83 78 83 93 83 67 20 2f 2f 40 7d 0d 0a V.C.x...g //@}..
1c70: 09 76 6f 69 64 20 6f 6e 5f 74 65 78 74 5f 75 70 .void on_text_up
1c80: 64 61 74 65 28 20 63 6f 6e 73 74 20 44 50 6f 73 date( const DPos
1c90: 26 20 73 2c 0d 0a 09 09 63 6f 6e 73 74 20 44 50 & s,....const DP
1ca0: 6f 73 26 20 65 2c 20 63 6f 6e 73 74 20 44 50 6f os& e, const DPo
1cb0: 73 26 20 65 32 2c 20 62 6f 6f 6c 20 62 41 66 74 s& e2, bool bAft
1cc0: 2c 20 62 6f 6f 6c 20 6d 43 75 72 20 29 3b 0d 0a , bool mCur );..
1cd0: 0d 0a 09 2f 2f 40 7b 20 95 60 89 e6 8f 88 97 9d ...//@{ .`......
1ce0: 20 2f 2f 40 7d 0d 0a 09 76 6f 69 64 20 6f 6e 5f //@}...void on_
1cf0: 70 61 69 6e 74 28 20 63 6f 6e 73 74 20 50 41 49 paint( const PAI
1d00: 4e 54 53 54 52 55 43 54 26 20 70 73 20 29 3b 0d NTSTRUCT& ps );.
1d10: 0a 0d 0a 70 75 62 6c 69 63 3a 0d 0a 0d 0a 09 2f ...public:...../
1d20: 2f 40 7b 20 91 53 95 5c 8e a6 8d 73 90 94 20 2f /@{ .S.\...s.. /
1d30: 2f 40 7d 0d 0a 09 75 6c 6f 6e 67 20 76 6c 6e 28 /@}...ulong vln(
1d40: 29 20 63 6f 6e 73 74 20 7b 20 72 65 74 75 72 6e ) const { return
1d50: 20 76 6c 4e 75 6d 5f 3b 20 7d 0d 0a 0d 0a 09 2f vlNum_; }...../
1d60: 2f 40 7b 20 88 ea 8d 73 82 cc 95 5c 8e a6 8d 73 /@{ ...s...\...s
1d70: 90 94 20 2f 2f 40 7d 0d 0a 09 75 6c 6f 6e 67 20 .. //@}...ulong
1d80: 72 6c 6e 28 20 75 6c 6f 6e 67 20 74 6c 20 29 20 rln( ulong tl )
1d90: 63 6f 6e 73 74 20 7b 20 72 65 74 75 72 6e 20 77 const { return w
1da0: 72 61 70 5f 5b 74 6c 5d 2e 72 6c 6e 28 29 3b 20 rap_[tl].rln();
1db0: 7d 0d 0a 0d 0a 09 2f 2f 40 7b 20 90 dc 82 e8 95 }.....//@{ .....
1dc0: d4 82 b5 88 ca 92 75 20 2f 2f 40 7d 0d 0a 09 75 ......u //@}...u
1dd0: 6c 6f 6e 67 20 72 6c 65 6e 64 28 20 75 6c 6f 6e long rlend( ulon
1de0: 67 20 74 6c 2c 20 75 6c 6f 6e 67 20 72 6c 20 29 g tl, ulong rl )
1df0: 20 63 6f 6e 73 74 20 7b 20 72 65 74 75 72 6e 20 const { return
1e00: 77 72 61 70 5f 5b 74 6c 5d 5b 72 6c 2b 31 5d 3b wrap_[tl][rl+1];
1e10: 20 7d 0d 0a 0d 0a 09 2f 2f 40 7b 20 88 ea 8c c2 }.....//@{ ....
1e20: 82 c5 82 e0 90 dc 82 e8 95 d4 82 b5 82 aa 91 b6 ................
1e30: 8d dd 82 b7 82 e9 82 a9 94 db 82 a9 20 2f 2f 40 ............ //@
1e40: 7d 0d 0a 09 62 6f 6f 6c 20 77 72 61 70 65 78 69 }...bool wrapexi
1e50: 73 74 73 28 29 20 63 6f 6e 73 74 20 7b 20 72 65 sts() const { re
1e60: 74 75 72 6e 20 64 6f 63 5f 2e 74 6c 6e 28 29 20 turn doc_.tln()
1e70: 21 3d 20 76 6c 6e 28 29 3b 20 7d 0d 0a 0d 0a 09 != vln(); }.....
1e80: 2f 2f 40 7b 20 83 4a 81 5b 83 5c 83 8b 20 2f 2f //@{ .J.[.\.. //
1e90: 40 7d 0d 0a 09 43 75 72 73 6f 72 26 20 63 75 72 @}...Cursor& cur
1ea0: 28 29 20 7b 20 72 65 74 75 72 6e 20 63 75 72 5f () { return cur_
1eb0: 3b 20 7d 0d 0a 0d 0a 09 2f 2f 40 7b 20 83 74 83 ; }.....//@{ .t.
1ec0: 48 83 93 83 67 20 2f 2f 40 7d 0d 0a 09 63 6f 6e H...g //@}...con
1ed0: 73 74 20 50 61 69 6e 74 65 72 26 20 66 6e 74 28 st Painter& fnt(
1ee0: 29 20 63 6f 6e 73 74 20 7b 20 72 65 74 75 72 6e ) const { return
1ef0: 20 63 76 73 5f 2e 67 65 74 50 61 69 6e 74 65 72 cvs_.getPainter
1f00: 28 29 3b 20 7d 0d 0a 0d 0a 0d 0a 09 76 6f 69 64 (); }.......void
1f10: 20 6f 6e 5f 68 73 63 72 6f 6c 6c 28 20 69 6e 74 on_hscroll( int
1f20: 20 63 6f 64 65 20 29 3b 0d 0a 09 76 6f 69 64 20 code );...void
1f30: 6f 6e 5f 76 73 63 72 6f 6c 6c 28 20 69 6e 74 20 on_vscroll( int
1f40: 63 6f 64 65 20 29 3b 0d 0a 09 76 6f 69 64 20 6f code );...void o
1f50: 6e 5f 77 68 65 65 6c 28 20 73 68 6f 72 74 20 64 n_wheel( short d
1f60: 65 6c 74 61 20 29 3b 0d 0a 0d 0a 09 76 6f 69 64 elta );.....void
1f70: 20 47 65 74 56 50 6f 73 28 20 69 6e 74 20 78 2c GetVPos( int x,
1f80: 20 69 6e 74 20 79 2c 20 56 50 6f 73 2a 20 76 70 int y, VPos* vp
1f90: 2c 20 62 6f 6f 6c 20 6c 69 6e 65 6d 6f 64 65 3d , bool linemode=
1fa0: 66 61 6c 73 65 20 29 20 63 6f 6e 73 74 3b 0d 0a false ) const;..
1fb0: 09 76 6f 69 64 20 47 65 74 4f 72 69 67 69 6e 28 .void GetOrigin(
1fc0: 20 69 6e 74 2a 20 78 2c 20 69 6e 74 2a 20 79 20 int* x, int* y
1fd0: 29 20 63 6f 6e 73 74 3b 0d 0a 09 76 6f 69 64 20 ) const;...void
1fe0: 43 6f 6e 76 44 50 6f 73 54 6f 56 50 6f 73 28 20 ConvDPosToVPos(
1ff0: 44 50 6f 73 20 64 70 2c 20 56 50 6f 73 2a 20 76 DPos dp, VPos* v
2000: 70 2c 20 63 6f 6e 73 74 20 56 50 6f 73 2a 20 62 p, const VPos* b
2010: 61 73 65 3d 4e 55 4c 4c 20 29 20 63 6f 6e 73 74 ase=NULL ) const
2020: 3b 0d 0a 09 76 6f 69 64 20 53 63 72 6f 6c 6c 54 ;...void ScrollT
2030: 6f 28 20 63 6f 6e 73 74 20 56 50 6f 73 26 20 76 o( const VPos& v
2040: 70 20 29 3b 0d 0a 09 69 6e 74 20 20 47 65 74 4c p );...int GetL
2050: 61 73 74 57 69 64 74 68 28 20 75 6c 6f 6e 67 20 astWidth( ulong
2060: 74 6c 20 29 20 63 6f 6e 73 74 3b 0d 0a 0d 0a 70 tl ) const;....p
2070: 75 62 6c 69 63 3a 0d 0a 0d 0a 09 63 6f 6e 73 74 ublic:.....const
2080: 20 52 45 43 54 26 20 7a 6f 6e 65 28 29 20 63 6f RECT& zone() co
2090: 6e 73 74 20 7b 20 72 65 74 75 72 6e 20 63 76 73 nst { return cvs
20a0: 5f 2e 7a 6f 6e 65 28 29 3b 20 7d 0d 0a 09 69 6e _.zone(); }...in
20b0: 74 20 6c 65 66 74 28 29 20 20 63 6f 6e 73 74 20 t left() const
20c0: 7b 20 72 65 74 75 72 6e 20 63 76 73 5f 2e 7a 6f { return cvs_.zo
20d0: 6e 65 28 29 2e 6c 65 66 74 3b 20 7d 0d 0a 09 69 ne().left; }...i
20e0: 6e 74 20 72 69 67 68 74 28 29 20 63 6f 6e 73 74 nt right() const
20f0: 20 7b 20 72 65 74 75 72 6e 20 63 76 73 5f 2e 7a { return cvs_.z
2100: 6f 6e 65 28 29 2e 72 69 67 68 74 3b 20 7d 0d 0a one().right; }..
2110: 09 69 6e 74 20 62 6f 74 74 6f 6d 28 29 63 6f 6e .int bottom()con
2120: 73 74 20 7b 20 72 65 74 75 72 6e 20 63 76 73 5f st { return cvs_
2130: 2e 7a 6f 6e 65 28 29 2e 62 6f 74 74 6f 6d 3b 20 .zone().bottom;
2140: 7d 0d 0a 09 69 6e 74 20 6c 6e 61 28 29 20 20 20 }...int lna()
2150: 63 6f 6e 73 74 20 7b 20 72 65 74 75 72 6e 20 63 const { return c
2160: 76 73 5f 2e 7a 6f 6e 65 28 29 2e 6c 65 66 74 3b vs_.zone().left;
2170: 20 7d 0d 0a 09 69 6e 74 20 63 78 28 29 20 20 20 }...int cx()
2180: 20 63 6f 6e 73 74 20 7b 20 72 65 74 75 72 6e 20 const { return
2190: 63 76 73 5f 2e 7a 6f 6e 65 28 29 2e 72 69 67 68 cvs_.zone().righ
21a0: 74 20 2d 20 63 76 73 5f 2e 7a 6f 6e 65 28 29 2e t - cvs_.zone().
21b0: 6c 65 66 74 3b 20 7d 0d 0a 09 69 6e 74 20 63 78 left; }...int cx
21c0: 41 6c 6c 28 29 20 63 6f 6e 73 74 20 7b 20 72 65 All() const { re
21d0: 74 75 72 6e 20 63 76 73 5f 2e 7a 6f 6e 65 28 29 turn cvs_.zone()
21e0: 2e 72 69 67 68 74 3b 20 7d 0d 0a 09 69 6e 74 20 .right; }...int
21f0: 63 79 28 29 20 20 20 20 63 6f 6e 73 74 20 7b 20 cy() const {
2200: 72 65 74 75 72 6e 20 63 76 73 5f 2e 7a 6f 6e 65 return cvs_.zone
2210: 28 29 2e 62 6f 74 74 6f 6d 3b 20 7d 0d 0a 0d 0a ().bottom; }....
2220: 70 72 69 76 61 74 65 3a 0d 0a 0d 0a 09 63 6f 6e private:.....con
2230: 73 74 20 44 6f 63 49 6d 70 6c 26 20 20 20 64 6f st DocImpl& do
2240: 63 5f 3b 0d 0a 09 43 61 6e 76 61 73 20 20 20 20 c_;...Canvas
2250: 20 20 20 20 20 20 20 63 76 73 5f 3b 0d 0a 09 43 cvs_;...C
2260: 75 72 73 6f 72 20 20 20 20 20 20 20 20 20 20 20 ursor
2270: 63 75 72 5f 3b 0d 0a 09 67 61 70 62 75 66 6f 62 cur_;...gapbufob
2280: 6a 3c 57 4c 69 6e 65 3e 20 77 72 61 70 5f 3b 0d j<WLine> wrap_;.
2290: 0a 09 75 6c 6f 6e 67 20 20 20 20 20 20 20 20 20 ..ulong
22a0: 20 20 20 76 6c 4e 75 6d 5f 3b 0d 0a 09 75 6c 6f vlNum_;...ulo
22b0: 6e 67 20 20 20 20 20 20 20 20 20 20 20 20 74 65 ng te
22c0: 78 74 43 78 5f 3b 0d 0a 0d 0a 70 72 69 76 61 74 xtCx_;....privat
22d0: 65 3a 0d 0a 0d 0a 09 76 6f 69 64 20 44 72 61 77 e:.....void Draw
22e0: 4c 4e 41 28 20 63 6f 6e 73 74 20 56 44 72 61 77 LNA( const VDraw
22f0: 49 6e 66 6f 26 20 76 2c 20 50 61 69 6e 74 65 72 Info& v, Painter
2300: 26 20 70 20 29 3b 0d 0a 09 76 6f 69 64 20 44 72 & p );...void Dr
2310: 61 77 54 58 54 28 20 63 6f 6e 73 74 20 56 44 72 awTXT( const VDr
2320: 61 77 49 6e 66 6f 20 76 2c 20 50 61 69 6e 74 65 awInfo v, Painte
2330: 72 26 20 70 20 29 3b 0d 0a 09 76 6f 69 64 20 49 r& p );...void I
2340: 6e 76 28 20 69 6e 74 20 79 2c 20 69 6e 74 20 78 nv( int y, int x
2350: 62 2c 20 69 6e 74 20 78 65 2c 20 50 61 69 6e 74 b, int xe, Paint
2360: 65 72 26 20 70 20 29 3b 0d 0a 0d 0a 09 76 6f 69 er& p );.....voi
2370: 64 20 43 61 6c 63 45 76 65 72 79 4c 69 6e 65 57 d CalcEveryLineW
2380: 69 64 74 68 28 29 3b 0d 0a 09 75 6c 6f 6e 67 20 idth();...ulong
2390: 43 61 6c 63 4c 69 6e 65 57 69 64 74 68 28 20 63 CalcLineWidth( c
23a0: 6f 6e 73 74 20 75 6e 69 63 6f 64 65 2a 20 74 78 onst unicode* tx
23b0: 74 2c 20 75 6c 6f 6e 67 20 6c 65 6e 20 29 20 63 t, ulong len ) c
23c0: 6f 6e 73 74 3b 0d 0a 09 76 6f 69 64 20 4d 6f 64 onst;...void Mod
23d0: 69 66 79 57 72 61 70 49 6e 66 6f 28 20 63 6f 6e ifyWrapInfo( con
23e0: 73 74 20 75 6e 69 63 6f 64 65 2a 20 74 78 74 2c st unicode* txt,
23f0: 20 75 6c 6f 6e 67 20 6c 65 6e 2c 20 57 4c 69 6e ulong len, WLin
2400: 65 26 20 77 6c 2c 20 75 6c 6f 6e 67 20 73 74 74 e& wl, ulong stt
2410: 20 29 3b 0d 0a 09 76 6f 69 64 20 52 65 57 72 61 );...void ReWra
2420: 70 41 6c 6c 28 29 3b 0d 0a 09 69 6e 74 20 52 65 pAll();...int Re
2430: 57 72 61 70 53 69 6e 67 6c 65 28 20 63 6f 6e 73 WrapSingle( cons
2440: 74 20 44 50 6f 73 26 20 73 20 29 3b 0d 0a 09 69 t DPos& s );...i
2450: 6e 74 20 49 6e 73 65 72 74 4d 75 6c 74 69 28 20 nt InsertMulti(
2460: 75 6c 6f 6e 67 20 74 69 5f 73 2c 20 75 6c 6f 6e ulong ti_s, ulon
2470: 67 20 74 69 5f 65 20 29 3b 0d 0a 09 69 6e 74 20 g ti_e );...int
2480: 44 65 6c 65 74 65 4d 75 6c 74 69 28 20 75 6c 6f DeleteMulti( ulo
2490: 6e 67 20 74 69 5f 73 2c 20 75 6c 6f 6e 67 20 74 ng ti_s, ulong t
24a0: 69 5f 65 20 29 3b 0d 0a 09 76 6f 69 64 20 55 70 i_e );...void Up
24b0: 64 61 74 65 54 65 78 74 43 78 28 29 3b 0d 0a 09 dateTextCx();...
24c0: 76 6f 69 64 20 52 65 44 72 61 77 28 20 52 65 44 void ReDraw( ReD
24d0: 72 61 77 54 79 70 65 20 72 2c 20 63 6f 6e 73 74 rawType r, const
24e0: 20 44 50 6f 73 2a 20 73 3d 4e 55 4c 4c 20 29 3b DPos* s=NULL );
24f0: 0d 0a 0d 0a 70 72 69 76 61 74 65 3a 0d 0a 0d 0a ....private:....
2500: 09 48 57 4e 44 20 68 77 6e 64 5f 3b 0d 0a 09 53 .HWND hwnd_;...S
2510: 43 52 4f 4c 4c 49 4e 46 4f 20 72 6c 53 63 72 5f CROLLINFO rlScr_
2520: 3b 20 2f 2f 20 89 a1 83 58 83 4e 83 8d 81 5b 83 ; // ...X.N...[.
2530: 8b 8f ee 95 f1 81 69 70 69 78 65 6c 92 50 88 ca ......ipixel.P..
2540: 81 6a 0d 0a 09 53 43 52 4f 4c 4c 49 4e 46 4f 20 .j...SCROLLINFO
2550: 75 64 53 63 72 5f 3b 20 2f 2f 20 8f 63 83 58 83 udScr_; // .c.X.
2560: 4e 83 8d 81 5b 83 8b 8f ee 95 f1 81 69 8d 73 92 N...[.......i.s.
2570: 50 88 ca 81 6a 0d 0a 09 75 6c 6f 6e 67 20 75 64 P...j...ulong ud
2580: 53 63 72 5f 74 6c 5f 3b 20 20 20 2f 2f 20 88 ea Scr_tl_; // ..
2590: 94 d4 8f e3 82 c9 95 5c 8e a6 82 b3 82 ea 82 e9 .......\........
25a0: 98 5f 97 9d 8d 73 82 cc 54 4c 69 6e 65 5f 49 6e ._...s..TLine_In
25b0: 64 65 78 0d 0a 09 75 6c 6f 6e 67 20 75 64 53 63 dex...ulong udSc
25c0: 72 5f 76 72 6c 5f 3b 20 20 2f 2f 20 88 ea 94 d4 r_vrl_; // ....
25d0: 8f e3 82 c9 95 5c 8e a6 82 b3 82 ea 82 e9 95 5c .....\.........\
25e0: 8e a6 8d 73 82 cc 56 52 4c 69 6e 65 5f 49 6e 64 ...s..VRLine_Ind
25f0: 65 78 0d 0a 0d 0a 70 72 69 76 61 74 65 3a 0d 0a ex....private:..
2600: 0d 0a 09 62 6f 6f 6c 20 52 65 53 65 74 53 63 72 ...bool ReSetScr
2610: 6f 6c 6c 49 6e 66 6f 28 29 3b 0d 0a 09 76 6f 69 ollInfo();...voi
2620: 64 20 46 6f 72 63 65 53 63 72 6f 6c 6c 54 6f 28 d ForceScrollTo(
2630: 20 75 6c 6f 6e 67 20 74 6c 20 29 3b 0d 0a 09 76 ulong tl );...v
2640: 6f 69 64 20 55 70 64 61 74 65 53 63 72 6f 6c 6c oid UpdateScroll
2650: 42 61 72 28 29 3b 0d 0a 09 52 65 44 72 61 77 54 Bar();...ReDrawT
2660: 79 70 65 20 54 65 78 74 55 70 64 61 74 65 5f 53 ype TextUpdate_S
2670: 63 72 6f 6c 6c 42 61 72 28 20 63 6f 6e 73 74 20 crollBar( const
2680: 44 50 6f 73 26 20 73 2c 20 63 6f 6e 73 74 20 44 DPos& s, const D
2690: 50 6f 73 26 20 65 2c 20 63 6f 6e 73 74 20 44 50 Pos& e, const DP
26a0: 6f 73 26 20 65 32 20 29 3b 0d 0a 0d 0a 09 75 6c os& e2 );.....ul
26b0: 6f 6e 67 20 74 6c 32 76 6c 28 20 75 6c 6f 6e 67 ong tl2vl( ulong
26c0: 20 74 6c 20 29 20 63 6f 6e 73 74 3b 0d 0a 09 76 tl ) const;...v
26d0: 6f 69 64 20 47 65 74 44 72 61 77 50 6f 73 49 6e oid GetDrawPosIn
26e0: 66 6f 28 20 56 44 72 61 77 49 6e 66 6f 26 20 76 fo( VDrawInfo& v
26f0: 20 29 20 63 6f 6e 73 74 3b 0d 0a 09 76 6f 69 64 ) const;...void
2700: 20 49 6e 76 61 6c 69 64 61 74 65 56 69 65 77 28 InvalidateView(
2710: 20 63 6f 6e 73 74 20 44 50 6f 73 26 20 64 70 2c const DPos& dp,
2720: 20 62 6f 6f 6c 20 61 66 74 65 72 61 6c 6c 20 29 bool afterall )
2730: 20 63 6f 6e 73 74 3b 0d 0a 09 76 6f 69 64 20 53 const;...void S
2740: 63 72 6f 6c 6c 56 69 65 77 28 20 69 6e 74 20 64 crollView( int d
2750: 78 2c 20 69 6e 74 20 64 79 2c 20 62 6f 6f 6c 20 x, int dy, bool
2760: 75 70 64 61 74 65 20 29 3b 0d 0a 09 76 6f 69 64 update );...void
2770: 20 55 70 44 6f 77 6e 28 20 69 6e 74 20 64 79 2c UpDown( int dy,
2780: 20 62 6f 6f 6c 20 74 68 75 6d 62 20 29 3b 0d 0a bool thumb );..
2790: 7d 3b 0d 0a 0d 0a 0d 0a 0d 0a 2f 2f 2d 2d 2d 2d };........//----
27a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
27b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
27c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
27d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
27e0: 2d 2d 2d 2d 2d 0d 0a 0d 0a 69 6e 6c 69 6e 65 20 -----....inline
27f0: 76 6f 69 64 20 56 69 65 77 49 6d 70 6c 3a 3a 6f void ViewImpl::o
2800: 6e 5f 76 69 65 77 5f 72 65 73 69 7a 65 28 20 69 n_view_resize( i
2810: 6e 74 20 63 78 2c 20 69 6e 74 20 63 79 20 29 0d nt cx, int cy ).
2820: 0a 09 7b 20 44 6f 52 65 73 69 7a 65 28 20 63 76 ..{ DoResize( cv
2830: 73 5f 2e 6f 6e 5f 76 69 65 77 5f 72 65 73 69 7a s_.on_view_resiz
2840: 65 28 20 63 78 2c 20 63 79 20 29 20 29 3b 20 7d e( cx, cy ) ); }
2850: 0d 0a 0d 0a 69 6e 6c 69 6e 65 20 76 6f 69 64 20 ....inline void
2860: 56 69 65 77 49 6d 70 6c 3a 3a 53 65 74 57 72 61 ViewImpl::SetWra
2870: 70 54 79 70 65 28 20 69 6e 74 20 77 74 20 29 0d pType( int wt ).
2880: 0a 09 7b 20 63 76 73 5f 2e 6f 6e 5f 63 6f 6e 66 ..{ cvs_.on_conf
2890: 69 67 5f 63 68 61 6e 67 65 28 20 77 74 2c 20 63 ig_change( wt, c
28a0: 76 73 5f 2e 73 68 6f 77 4c 4e 28 29 20 29 3b 0d vs_.showLN() );.
28b0: 0a 09 20 20 44 6f 43 6f 6e 66 69 67 43 68 61 6e .. DoConfigChan
28c0: 67 65 28 29 3b 20 7d 0d 0a 0d 0a 69 6e 6c 69 6e ge(); }....inlin
28d0: 65 20 76 6f 69 64 20 56 69 65 77 49 6d 70 6c 3a e void ViewImpl:
28e0: 3a 53 68 6f 77 4c 69 6e 65 4e 6f 28 20 62 6f 6f :ShowLineNo( boo
28f0: 6c 20 73 68 6f 77 20 29 0d 0a 09 7b 20 63 76 73 l show )...{ cvs
2900: 5f 2e 6f 6e 5f 63 6f 6e 66 69 67 5f 63 68 61 6e _.on_config_chan
2910: 67 65 28 20 63 76 73 5f 2e 77 72 61 70 54 79 70 ge( cvs_.wrapTyp
2920: 65 28 29 2c 20 73 68 6f 77 20 29 3b 0d 0a 09 20 e(), show );...
2930: 20 44 6f 43 6f 6e 66 69 67 43 68 61 6e 67 65 28 DoConfigChange(
2940: 29 3b 20 7d 0d 0a 0d 0a 69 6e 6c 69 6e 65 20 76 ); }....inline v
2950: 6f 69 64 20 56 69 65 77 49 6d 70 6c 3a 3a 53 65 oid ViewImpl::Se
2960: 74 46 6f 6e 74 28 20 63 6f 6e 73 74 20 56 43 6f tFont( const VCo
2970: 6e 66 69 67 26 20 76 63 20 29 0d 0a 09 7b 20 63 nfig& vc )...{ c
2980: 76 73 5f 2e 6f 6e 5f 66 6f 6e 74 5f 63 68 61 6e vs_.on_font_chan
2990: 67 65 28 20 76 63 20 29 3b 0d 0a 09 20 20 63 75 ge( vc );... cu
29a0: 72 5f 2e 6f 6e 5f 73 65 74 66 6f 63 75 73 28 29 r_.on_setfocus()
29b0: 3b 0d 0a 09 20 20 43 61 6c 63 45 76 65 72 79 4c ;... CalcEveryL
29c0: 69 6e 65 57 69 64 74 68 28 29 3b 20 2f 2f 20 8d ineWidth(); // .
29d0: 73 95 9d 8d c4 8c 76 8e 5a 0d 0a 09 20 20 44 6f s.....v.Z... Do
29e0: 43 6f 6e 66 69 67 43 68 61 6e 67 65 28 29 3b 20 ConfigChange();
29f0: 7d 0d 0a 0d 0a 69 6e 6c 69 6e 65 20 76 6f 69 64 }....inline void
2a00: 20 56 69 65 77 49 6d 70 6c 3a 3a 47 65 74 4f 72 ViewImpl::GetOr
2a10: 69 67 69 6e 28 20 69 6e 74 2a 20 78 2c 20 69 6e igin( int* x, in
2a20: 74 2a 20 79 20 29 20 63 6f 6e 73 74 0d 0a 09 7b t* y ) const...{
2a30: 20 2a 78 20 3d 20 6c 65 66 74 28 29 2d 72 6c 53 *x = left()-rlS
2a40: 63 72 5f 2e 6e 50 6f 73 2c 20 2a 79 20 3d 20 2d cr_.nPos, *y = -
2a50: 75 64 53 63 72 5f 2e 6e 50 6f 73 2a 63 76 73 5f udScr_.nPos*cvs_
2a60: 2e 67 65 74 50 61 69 6e 74 65 72 28 29 2e 48 28 .getPainter().H(
2a70: 29 3b 20 7d 0d 0a 0d 0a 0d 0a 0d 0a 2f 2f 3d 3d ); }........//==
2a80: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
2a90: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
2aa0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
2ab0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
2ac0: 3d 3d 3d 3d 3d 3d 3d 0d 0a 0d 0a 7d 7d 20 20 20 =======....}}
2ad0: 20 20 2f 2f 20 6e 61 6d 65 73 70 61 63 65 20 65 // namespace e
2ae0: 64 69 74 77 69 6e 67 3a 3a 76 69 65 77 0d 0a 23 ditwing::view..#
2af0: 65 6e 64 69 66 20 2f 2f 20 5f 45 44 49 54 57 49 endif // _EDITWI
2b00: 4e 47 5f 49 50 5f 56 49 45 57 5f 48 5f 0d 0a NG_IP_VIEW_H_..