Hex Artifact Content

Not logged in

Artifact a25d583a35063324b2ae17f17017948ea1d6763a:


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