Hex Artifact Content

Not logged in

Artifact 72773e35b0a1a94956cd2d0672e9a9f5258a86f4:


0000: 23 69 6e 63 6c 75 64 65 20 22 73 74 64 61 66 78  #include "stdafx
0010: 2e 68 22 0d 0a 23 69 6e 63 6c 75 64 65 20 22 72  .h"..#include "r
0020: 73 72 63 2f 72 65 73 6f 75 72 63 65 2e 68 22 0d  src/resource.h".
0030: 0a 23 69 6e 63 6c 75 64 65 20 22 47 70 4d 61 69  .#include "GpMai
0040: 6e 2e 68 22 0d 0a 75 73 69 6e 67 20 6e 61 6d 65  n.h"..using name
0050: 73 70 61 63 65 20 6b 69 3b 0d 0a 75 73 69 6e 67  space ki;..using
0060: 20 6e 61 6d 65 73 70 61 63 65 20 65 64 69 74 77   namespace editw
0070: 69 6e 67 3b 0d 0a 0d 0a 0d 0a 0d 0a 2f 2f 2d 2d  ing;........//--
0080: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0090: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
00a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
00b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
00c0: 2d 2d 2d 2d 2d 2d 2d 0d 0a 2f 2f 20 90 56 8b 4b  -------..// .V.K
00d0: 83 76 83 8d 83 5a 83 58 8b 4e 93 ae 0d 0a 2f 2f  .v...Z.X.N....//
00e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
00f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0100: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0110: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0120: 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 76 6f 69  ---------....voi
0130: 64 20 42 6f 6f 74 4e 65 77 50 72 6f 63 65 73 73  d BootNewProcess
0140: 28 20 63 6f 6e 73 74 20 54 43 48 41 52 2a 20 63  ( const TCHAR* c
0150: 6d 64 20 3d 20 54 45 58 54 28 22 22 29 20 29 0d  md = TEXT("") ).
0160: 0a 7b 0d 0a 09 53 54 41 52 54 55 50 49 4e 46 4f  .{...STARTUPINFO
0170: 20 20 20 20 20 20 20 20 20 73 74 69 3b 0d 0a 09           sti;...
0180: 50 52 4f 43 45 53 53 5f 49 4e 46 4f 52 4d 41 54  PROCESS_INFORMAT
0190: 49 4f 4e 20 70 73 69 3b 0d 0a 09 3a 3a 47 65 74  ION psi;...::Get
01a0: 53 74 61 72 74 75 70 49 6e 66 6f 28 20 26 73 74  StartupInfo( &st
01b0: 69 20 29 3b 0d 0a 0d 0a 09 53 74 72 69 6e 67 20  i );.....String 
01c0: 66 63 6d 64 20 3d 20 50 61 74 68 28 50 61 74 68  fcmd = Path(Path
01d0: 3a 3a 45 78 65 4e 61 6d 65 29 2e 42 65 53 68 6f  ::ExeName).BeSho
01e0: 72 74 53 74 79 6c 65 28 29 3b 0d 0a 09 66 63 6d  rtStyle();...fcm
01f0: 64 20 2b 3d 20 27 20 27 3b 0d 0a 09 66 63 6d 64  d += ' ';...fcmd
0200: 20 2b 3d 20 63 6d 64 3b 0d 0a 0d 0a 09 69 66 28   += cmd;.....if(
0210: 20 3a 3a 43 72 65 61 74 65 50 72 6f 63 65 73 73   ::CreateProcess
0220: 28 20 4e 55 4c 4c 2c 20 63 6f 6e 73 74 5f 63 61  ( NULL, const_ca
0230: 73 74 3c 54 43 48 41 52 2a 3e 28 66 63 6d 64 2e  st<TCHAR*>(fcmd.
0240: 63 5f 73 74 72 28 29 29 2c 0d 0a 09 09 09 4e 55  c_str()),.....NU
0250: 4c 4c 2c 20 4e 55 4c 4c 2c 20 46 41 4c 53 45 2c  LL, NULL, FALSE,
0260: 20 4e 4f 52 4d 41 4c 5f 50 52 49 4f 52 49 54 59   NORMAL_PRIORITY
0270: 5f 43 4c 41 53 53 2c 20 4e 55 4c 4c 2c 20 4e 55  _CLASS, NULL, NU
0280: 4c 4c 2c 0d 0a 09 09 09 26 73 74 69 2c 20 26 70  LL,.....&sti, &p
0290: 73 69 20 29 20 29 0d 0a 09 7b 0d 0a 09 09 3a 3a  si ) )...{....::
02a0: 43 6c 6f 73 65 48 61 6e 64 6c 65 28 20 70 73 69  CloseHandle( psi
02b0: 2e 68 54 68 72 65 61 64 20 29 3b 0d 0a 09 09 3a  .hThread );....:
02c0: 3a 43 6c 6f 73 65 48 61 6e 64 6c 65 28 20 70 73  :CloseHandle( ps
02d0: 69 2e 68 50 72 6f 63 65 73 73 20 29 3b 0d 0a 09  i.hProcess );...
02e0: 7d 0d 0a 7d 0d 0a 0d 0a 0d 0a 0d 0a 2f 2f 2d 2d  }..}........//--
02f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0300: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0310: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0320: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0330: 2d 2d 2d 2d 2d 2d 2d 0d 0a 2f 2f 20 83 58 83 65  -------..// .X.e
0340: 81 5b 83 5e 83 58 83 6f 81 5b 90 a7 8c e4 0d 0a  .[.^.X.o.[......
0350: 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  //--------------
0360: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0370: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0380: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0390: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 69  -----------....i
03a0: 6e 6c 69 6e 65 20 47 70 53 74 42 61 72 3a 3a 47  nline GpStBar::G
03b0: 70 53 74 42 61 72 28 29 0d 0a 09 3a 20 73 74 72  pStBar()...: str
03c0: 5f 28 4e 55 4c 4c 29 0d 0a 09 2c 20 6c 62 5f 28  _(NULL)..., lb_(
03d0: 32 29 0d 0a 7b 0d 0a 7d 0d 0a 0d 0a 69 6e 6c 69  2)..{..}....inli
03e0: 6e 65 20 76 6f 69 64 20 47 70 53 74 42 61 72 3a  ne void GpStBar:
03f0: 3a 53 65 74 43 73 54 65 78 74 28 20 63 6f 6e 73  :SetCsText( cons
0400: 74 20 54 43 48 41 52 2a 20 73 74 72 20 29 0d 0a  t TCHAR* str )..
0410: 7b 0d 0a 09 2f 2f 20 95 b6 8e 9a 83 52 81 5b 83  {...// .....R.[.
0420: 68 95 5c 8e a6 97 cc 88 e6 82 c9 53 65 74 54 65  h.\........SetTe
0430: 78 74 82 b7 82 e9 0d 0a 09 53 65 74 54 65 78 74  xt.......SetText
0440: 28 20 73 74 72 5f 3d 73 74 72 2c 20 31 20 29 3b  ( str_=str, 1 );
0450: 0d 0a 7d 0d 0a 0d 0a 69 6e 6c 69 6e 65 20 76 6f  ..}....inline vo
0460: 69 64 20 47 70 53 74 42 61 72 3a 3a 53 65 74 4c  id GpStBar::SetL
0470: 62 54 65 78 74 28 20 69 6e 74 20 6c 62 20 29 0d  bText( int lb ).
0480: 0a 7b 0d 0a 09 2f 2f 20 89 fc 8d 73 83 52 81 5b  .{...// ...s.R.[
0490: 83 68 95 5c 8e a6 97 cc 88 e6 82 c9 53 65 74 54  .h.\........SetT
04a0: 65 78 74 82 b7 82 e9 0d 0a 09 73 74 61 74 69 63  ext.......static
04b0: 20 63 6f 6e 73 74 20 54 43 48 41 52 2a 20 63 6f   const TCHAR* co
04c0: 6e 73 74 20 6c 62 73 74 72 5b 5d 20 3d 20 7b 54  nst lbstr[] = {T
04d0: 45 58 54 28 22 43 52 22 29 2c 54 45 58 54 28 22  EXT("CR"),TEXT("
04e0: 4c 46 22 29 2c 54 45 58 54 28 22 43 52 4c 46 22  LF"),TEXT("CRLF"
04f0: 29 7d 3b 0d 0a 09 53 65 74 54 65 78 74 28 20 6c  )};...SetText( l
0500: 62 73 74 72 5b 6c 62 5f 3d 6c 62 5d 2c 20 32 20  bstr[lb_=lb], 2 
0510: 29 3b 0d 0a 7d 0d 0a 0d 0a 69 6e 74 20 47 70 53  );..}....int GpS
0520: 74 42 61 72 3a 3a 41 75 74 6f 52 65 73 69 7a 65  tBar::AutoResize
0530: 28 20 62 6f 6f 6c 20 6d 61 78 69 6d 69 7a 65 64  ( bool maximized
0540: 20 29 0d 0a 7b 0d 0a 09 2f 2f 20 95 b6 8e 9a 83   )..{...// .....
0550: 52 81 5b 83 68 95 5c 8e a6 97 cc 88 e6 82 f0 8a  R.[.h.\.........
0560: 6d 95 db 82 b5 82 c2 82 c2 83 8a 83 54 83 43 83  m...........T.C.
0570: 59 0d 0a 09 69 6e 74 20 68 20 3d 20 53 74 61 74  Y...int h = Stat
0580: 75 73 42 61 72 3a 3a 41 75 74 6f 52 65 73 69 7a  usBar::AutoResiz
0590: 65 28 20 6d 61 78 69 6d 69 7a 65 64 20 29 3b 0d  e( maximized );.
05a0: 0a 09 69 6e 74 20 77 5b 5d 20 3d 20 7b 20 77 69  ..int w[] = { wi
05b0: 64 74 68 28 29 2d 35 2c 20 77 69 64 74 68 28 29  dth()-5, width()
05c0: 2d 35 2c 20 77 69 64 74 68 28 29 2d 35 20 7d 3b  -5, width()-5 };
05d0: 0d 0a 0d 0a 09 48 44 43 20 64 63 20 3d 20 3a 3a  .....HDC dc = ::
05e0: 47 65 74 44 43 28 20 68 77 6e 64 28 29 20 29 3b  GetDC( hwnd() );
05f0: 0d 0a 09 53 49 5a 45 20 73 3b 0d 0a 09 69 66 28  ...SIZE s;...if(
0600: 20 3a 3a 47 65 74 54 65 78 74 45 78 74 65 6e 74   ::GetTextExtent
0610: 50 6f 69 6e 74 33 32 28 20 64 63 2c 20 54 45 58  Point32( dc, TEX
0620: 54 28 22 42 42 42 42 4d 22 29 2c 20 35 2c 20 26  T("BBBBM"), 5, &
0630: 73 20 29 20 29 0d 0a 09 09 77 5b 31 5d 20 3d 20  s ) )....w[1] = 
0640: 77 5b 32 5d 20 2d 20 73 2e 63 78 3b 0d 0a 09 69  w[2] - s.cx;...i
0650: 66 28 20 3a 3a 47 65 74 54 65 78 74 45 78 74 65  f( ::GetTextExte
0660: 6e 74 50 6f 69 6e 74 33 32 28 20 64 63 2c 20 54  ntPoint32( dc, T
0670: 45 58 54 28 22 42 42 42 42 42 22 29 2c 20 35 2c  EXT("BBBBB"), 5,
0680: 20 26 73 20 29 20 29 0d 0a 09 09 77 5b 30 5d 20   &s ) )....w[0] 
0690: 3d 20 77 5b 31 5d 20 2d 20 73 2e 63 78 3b 0d 0a  = w[1] - s.cx;..
06a0: 09 3a 3a 52 65 6c 65 61 73 65 44 43 28 20 68 77  .::ReleaseDC( hw
06b0: 6e 64 28 29 2c 20 64 63 20 29 3b 0d 0a 0d 0a 09  nd(), dc );.....
06c0: 53 65 74 50 61 72 74 73 28 20 63 6f 75 6e 74 6f  SetParts( counto
06d0: 66 28 77 29 2c 20 77 20 29 3b 0d 0a 09 53 65 74  f(w), w );...Set
06e0: 43 73 54 65 78 74 28 20 73 74 72 5f 20 29 3b 0d  CsText( str_ );.
06f0: 0a 09 53 65 74 4c 62 54 65 78 74 28 20 6c 62 5f  ..SetLbText( lb_
0700: 20 29 3b 0d 0a 09 72 65 74 75 72 6e 20 68 3b 0d   );...return h;.
0710: 0a 7d 0d 0a 0d 0a 0d 0a 0d 0a 2f 2f 2d 2d 2d 2d  .}........//----
0720: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0730: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0740: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0750: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0760: 2d 2d 2d 2d 2d 0d 0a 2f 2f 20 83 66 83 42 83 58  -----..// .f.B.X
0770: 83 70 83 62 83 60 83 83 0d 0a 2f 2f 2d 2d 2d 2d  .p.b.`....//----
0780: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0790: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
07a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
07b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
07c0: 2d 2d 2d 2d 2d 0d 0a 0d 0a 4c 52 45 53 55 4c 54  -----....LRESULT
07d0: 20 47 72 65 65 6e 50 61 64 57 6e 64 3a 3a 6f 6e   GreenPadWnd::on
07e0: 5f 6d 65 73 73 61 67 65 28 20 55 49 4e 54 20 6d  _message( UINT m
07f0: 73 67 2c 20 57 50 41 52 41 4d 20 77 70 2c 20 4c  sg, WPARAM wp, L
0800: 50 41 52 41 4d 20 6c 70 20 29 0d 0a 7b 0d 0a 09  PARAM lp )..{...
0810: 73 77 69 74 63 68 28 20 6d 73 67 20 29 0d 0a 09  switch( msg )...
0820: 7b 0d 0a 09 2f 2f 20 83 41 83 4e 83 65 83 42 83  {...// .A.N.e.B.
0830: 75 89 bb 81 42 45 64 69 74 43 74 72 6c 82 c9 83  u...BEditCtrl...
0840: 74 83 48 81 5b 83 4a 83 58 82 f0 81 42 0d 0a 09  t.H.[.J.X...B...
0850: 63 61 73 65 20 57 4d 5f 41 43 54 49 56 41 54 45  case WM_ACTIVATE
0860: 3a 0d 0a 09 09 69 66 28 20 4c 4f 57 4f 52 44 28  :....if( LOWORD(
0870: 77 70 29 20 21 3d 20 57 41 5f 49 4e 41 43 54 49  wp) != WA_INACTI
0880: 56 45 20 29 0d 0a 09 09 09 65 64 69 74 5f 2e 53  VE ).....edit_.S
0890: 65 74 46 6f 63 75 73 28 29 3b 0d 0a 09 09 62 72  etFocus();....br
08a0: 65 61 6b 3b 0d 0a 0d 0a 09 2f 2f 20 83 54 83 43  eak;.....// .T.C
08b0: 83 59 95 cf 8d 58 81 42 8e 71 91 8b 82 f0 93 4b  .Y...X.B.q.....K
08c0: 93 96 82 c9 88 da 93 ae 81 42 0d 0a 09 63 61 73  .........B...cas
08d0: 65 20 57 4d 5f 53 49 5a 45 3a 0d 0a 09 09 69 66  e WM_SIZE:....if
08e0: 28 20 77 70 3d 3d 53 49 5a 45 5f 4d 41 58 49 4d  ( wp==SIZE_MAXIM
08f0: 49 5a 45 44 20 7c 7c 20 77 70 3d 3d 53 49 5a 45  IZED || wp==SIZE
0900: 5f 52 45 53 54 4f 52 45 44 20 29 0d 0a 09 09 7b  _RESTORED )....{
0910: 0d 0a 09 09 09 69 6e 74 20 68 74 20 3d 20 73 74  .....int ht = st
0920: 62 5f 2e 41 75 74 6f 52 65 73 69 7a 65 28 20 77  b_.AutoResize( w
0930: 70 3d 3d 53 49 5a 45 5f 4d 41 58 49 4d 49 5a 45  p==SIZE_MAXIMIZE
0940: 44 20 29 3b 0d 0a 09 09 09 65 64 69 74 5f 2e 4d  D );.....edit_.M
0950: 6f 76 65 54 6f 28 20 30 2c 20 30 2c 20 4c 4f 57  oveTo( 0, 0, LOW
0960: 4f 52 44 28 6c 70 29 2c 20 48 49 57 4f 52 44 28  ORD(lp), HIWORD(
0970: 6c 70 29 2d 68 74 20 29 3b 0d 0a 09 09 09 63 66  lp)-ht );.....cf
0980: 67 5f 2e 52 65 6d 65 6d 62 65 72 57 6e 64 28 74  g_.RememberWnd(t
0990: 68 69 73 29 3b 0d 0a 09 09 7d 0d 0a 09 09 62 72  his);....}....br
09a0: 65 61 6b 3b 0d 0a 0d 0a 09 2f 2f 20 83 45 83 43  eak;.....// .E.C
09b0: 83 93 83 68 83 45 88 da 93 ae 0d 0a 09 63 61 73  ...h.E.......cas
09c0: 65 20 57 4d 5f 4d 4f 56 45 3a 0d 0a 09 09 7b 0d  e WM_MOVE:....{.
09d0: 0a 09 09 09 52 45 43 54 20 72 63 3b 0d 0a 09 09  ....RECT rc;....
09e0: 09 67 65 74 50 6f 73 28 26 72 63 29 3b 0d 0a 09  .getPos(&rc);...
09f0: 09 09 63 66 67 5f 2e 52 65 6d 65 6d 62 65 72 57  ..cfg_.RememberW
0a00: 6e 64 28 74 68 69 73 29 3b 0d 0a 09 09 7d 0d 0a  nd(this);....}..
0a10: 09 09 62 72 65 61 6b 3b 0d 0a 0d 0a 09 2f 2f 20  ..break;.....// 
0a20: 83 56 83 58 83 65 83 80 83 52 83 7d 83 93 83 68  .V.X.e...R.}...h
0a30: 81 42 8f 49 97 b9 83 7b 83 5e 83 93 82 c6 82 a9  .B.I...{.^......
0a40: 81 42 0d 0a 09 63 61 73 65 20 57 4d 5f 53 59 53  .B...case WM_SYS
0a50: 43 4f 4d 4d 41 4e 44 3a 0d 0a 09 09 69 66 28 20  COMMAND:....if( 
0a60: 77 70 3d 3d 53 43 5f 43 4c 4f 53 45 20 7c 7c 20  wp==SC_CLOSE || 
0a70: 77 70 3d 3d 53 43 5f 44 45 46 41 55 4c 54 20 29  wp==SC_DEFAULT )
0a80: 0d 0a 09 09 09 6f 6e 5f 65 78 69 74 28 29 3b 0d  .....on_exit();.
0a90: 0a 09 09 65 6c 73 65 0d 0a 09 09 09 72 65 74 75  ...else.....retu
0aa0: 72 6e 20 57 6e 64 49 6d 70 6c 3a 3a 6f 6e 5f 6d  rn WndImpl::on_m
0ab0: 65 73 73 61 67 65 28 20 6d 73 67 2c 20 77 70 2c  essage( msg, wp,
0ac0: 20 6c 70 20 29 3b 0d 0a 09 09 62 72 65 61 6b 3b   lp );....break;
0ad0: 0d 0a 0d 0a 09 2f 2f 20 89 45 83 4e 83 8a 83 62  .....// .E.N...b
0ae0: 83 4e 83 81 83 6a 83 85 81 5b 0d 0a 09 63 61 73  .N...j...[...cas
0af0: 65 20 57 4d 5f 43 4f 4e 54 45 58 54 4d 45 4e 55  e WM_CONTEXTMENU
0b00: 3a 0d 0a 09 09 69 66 28 20 72 65 69 6e 74 65 72  :....if( reinter
0b10: 70 72 65 74 5f 63 61 73 74 3c 48 57 4e 44 3e 28  pret_cast<HWND>(
0b20: 77 70 29 20 3d 3d 20 65 64 69 74 5f 2e 68 77 6e  wp) == edit_.hwn
0b30: 64 28 29 20 29 0d 0a 09 09 09 3a 3a 54 72 61 63  d() ).....::Trac
0b40: 6b 50 6f 70 75 70 4d 65 6e 75 28 0d 0a 09 09 09  kPopupMenu(.....
0b50: 09 3a 3a 47 65 74 53 75 62 4d 65 6e 75 28 20 3a  .::GetSubMenu( :
0b60: 3a 47 65 74 4d 65 6e 75 28 68 77 6e 64 28 29 29  :GetMenu(hwnd())
0b70: 2c 20 31 20 29 2c 20 2f 2f 20 95 d2 8f 57 83 81  , 1 ), // ...W..
0b80: 83 6a 83 85 81 5b 95 5c 8e a6 0d 0a 09 09 09 09  .j...[.\........
0b90: 54 50 4d 5f 4c 45 46 54 41 4c 49 47 4e 7c 54 50  TPM_LEFTALIGN|TP
0ba0: 4d 5f 54 4f 50 41 4c 49 47 4e 7c 54 50 4d 5f 4c  M_TOPALIGN|TPM_L
0bb0: 45 46 54 42 55 54 54 4f 4e 7c 54 50 4d 5f 52 49  EFTBUTTON|TPM_RI
0bc0: 47 48 54 42 55 54 54 4f 4e 2c 0d 0a 09 09 09 09  GHTBUTTON,......
0bd0: 4c 4f 57 4f 52 44 28 6c 70 29 2c 20 48 49 57 4f  LOWORD(lp), HIWO
0be0: 52 44 28 6c 70 29 2c 20 30 2c 20 68 77 6e 64 28  RD(lp), 0, hwnd(
0bf0: 29 2c 20 4e 55 4c 4c 20 29 3b 0d 0a 09 09 65 6c  ), NULL );....el
0c00: 73 65 0d 0a 09 09 09 72 65 74 75 72 6e 20 57 6e  se.....return Wn
0c10: 64 49 6d 70 6c 3a 3a 6f 6e 5f 6d 65 73 73 61 67  dImpl::on_messag
0c20: 65 28 20 6d 73 67 2c 20 77 70 2c 20 6c 70 20 29  e( msg, wp, lp )
0c30: 3b 0d 0a 09 09 62 72 65 61 6b 3b 0d 0a 0d 0a 09  ;....break;.....
0c40: 2f 2f 20 83 81 83 6a 83 85 81 5b 82 cc 83 4f 83  // ...j...[...O.
0c50: 8c 81 5b 83 41 83 45 83 67 8f 88 97 9d 0d 0a 09  ..[.A.E.g.......
0c60: 63 61 73 65 20 57 4d 5f 49 4e 49 54 4d 45 4e 55  case WM_INITMENU
0c70: 3a 0d 0a 09 63 61 73 65 20 57 4d 5f 49 4e 49 54  :...case WM_INIT
0c80: 4d 45 4e 55 50 4f 50 55 50 3a 0d 0a 09 09 6f 6e  MENUPOPUP:....on
0c90: 5f 69 6e 69 74 6d 65 6e 75 28 20 72 65 69 6e 74  _initmenu( reint
0ca0: 65 72 70 72 65 74 5f 63 61 73 74 3c 48 4d 45 4e  erpret_cast<HMEN
0cb0: 55 3e 28 77 70 29 2c 20 6d 73 67 3d 3d 57 4d 5f  U>(wp), msg==WM_
0cc0: 49 4e 49 54 4d 45 4e 55 50 4f 50 55 50 20 29 3b  INITMENUPOPUP );
0cd0: 0d 0a 09 09 62 72 65 61 6b 3b 0d 0a 0d 0a 09 2f  ....break;...../
0ce0: 2f 20 82 63 81 95 82 63 0d 0a 09 63 61 73 65 20  / .c...c...case 
0cf0: 57 4d 5f 44 52 4f 50 46 49 4c 45 53 3a 0d 0a 09  WM_DROPFILES:...
0d00: 09 6f 6e 5f 64 72 6f 70 28 20 72 65 69 6e 74 65  .on_drop( reinte
0d10: 72 70 72 65 74 5f 63 61 73 74 3c 48 44 52 4f 50  rpret_cast<HDROP
0d20: 3e 28 77 70 29 20 29 3b 0d 0a 09 09 62 72 65 61  >(wp) );....brea
0d30: 6b 3b 0d 0a 0d 0a 09 2f 2f 20 4d 52 55 0d 0a 09  k;.....// MRU...
0d40: 63 61 73 65 20 47 50 4d 5f 4d 52 55 43 48 41 4e  case GPM_MRUCHAN
0d50: 47 45 44 3a 0d 0a 09 09 53 65 74 75 70 4d 52 55  GED:....SetupMRU
0d60: 4d 65 6e 75 28 29 3b 0d 0a 09 09 62 72 65 61 6b  Menu();....break
0d70: 3b 0d 0a 0d 0a 09 2f 2f 20 82 bb 82 cc 91 bc 0d  ;.....// .......
0d80: 0a 09 64 65 66 61 75 6c 74 3a 0d 0a 09 09 72 65  ..default:....re
0d90: 74 75 72 6e 20 57 6e 64 49 6d 70 6c 3a 3a 6f 6e  turn WndImpl::on
0da0: 5f 6d 65 73 73 61 67 65 28 20 6d 73 67 2c 20 77  _message( msg, w
0db0: 70 2c 20 6c 70 20 29 3b 0d 0a 09 7d 0d 0a 0d 0a  p, lp );...}....
0dc0: 09 72 65 74 75 72 6e 20 30 3b 0d 0a 7d 0d 0a 0d  .return 0;..}...
0dd0: 0a 62 6f 6f 6c 20 47 72 65 65 6e 50 61 64 57 6e  .bool GreenPadWn
0de0: 64 3a 3a 6f 6e 5f 63 6f 6d 6d 61 6e 64 28 20 55  d::on_command( U
0df0: 49 4e 54 20 69 64 2c 20 48 57 4e 44 20 63 74 72  INT id, HWND ctr
0e00: 6c 20 29 0d 0a 7b 0d 0a 09 73 77 69 74 63 68 28  l )..{...switch(
0e10: 20 69 64 20 29 0d 0a 09 7b 0d 0a 09 2f 2f 20 57   id )...{...// W
0e20: 69 6e 64 6f 77 0d 0a 09 63 61 73 65 20 49 44 5f  indow...case ID_
0e30: 43 4d 44 5f 4e 45 58 54 57 49 4e 44 4f 57 3a 20  CMD_NEXTWINDOW: 
0e40: 6f 6e 5f 6e 65 78 74 77 6e 64 28 29 3b 20 62 72  on_nextwnd(); br
0e50: 65 61 6b 3b 0d 0a 09 63 61 73 65 20 49 44 5f 43  eak;...case ID_C
0e60: 4d 44 5f 50 52 45 56 57 49 4e 44 4f 57 3a 20 6f  MD_PREVWINDOW: o
0e70: 6e 5f 70 72 65 76 77 6e 64 28 29 3b 20 62 72 65  n_prevwnd(); bre
0e80: 61 6b 3b 0d 0a 0d 0a 09 2f 2f 20 46 69 6c 65 0d  ak;.....// File.
0e90: 0a 09 63 61 73 65 20 49 44 5f 43 4d 44 5f 4e 45  ..case ID_CMD_NE
0ea0: 57 46 49 4c 45 3a 20 20 20 20 6f 6e 5f 6e 65 77  WFILE:    on_new
0eb0: 66 69 6c 65 28 29 3b 20 20 20 62 72 65 61 6b 3b  file();   break;
0ec0: 0d 0a 09 63 61 73 65 20 49 44 5f 43 4d 44 5f 4f  ...case ID_CMD_O
0ed0: 50 45 4e 46 49 4c 45 3a 20 20 20 6f 6e 5f 6f 70  PENFILE:   on_op
0ee0: 65 6e 66 69 6c 65 28 29 3b 20 20 62 72 65 61 6b  enfile();  break
0ef0: 3b 0d 0a 09 63 61 73 65 20 49 44 5f 43 4d 44 5f  ;...case ID_CMD_
0f00: 52 45 4f 50 45 4e 46 49 4c 45 3a 20 6f 6e 5f 72  REOPENFILE: on_r
0f10: 65 6f 70 65 6e 66 69 6c 65 28 29 3b 62 72 65 61  eopenfile();brea
0f20: 6b 3b 0d 0a 09 63 61 73 65 20 49 44 5f 43 4d 44  k;...case ID_CMD
0f30: 5f 53 41 56 45 46 49 4c 45 3a 20 20 20 6f 6e 5f  _SAVEFILE:   on_
0f40: 73 61 76 65 66 69 6c 65 28 29 3b 20 20 62 72 65  savefile();  bre
0f50: 61 6b 3b 0d 0a 09 63 61 73 65 20 49 44 5f 43 4d  ak;...case ID_CM
0f60: 44 5f 53 41 56 45 46 49 4c 45 41 53 3a 20 6f 6e  D_SAVEFILEAS: on
0f70: 5f 73 61 76 65 66 69 6c 65 61 73 28 29 3b 62 72  _savefileas();br
0f80: 65 61 6b 3b 0d 0a 09 63 61 73 65 20 49 44 5f 43  eak;...case ID_C
0f90: 4d 44 5f 45 58 49 54 3a 20 20 20 20 20 20 20 6f  MD_EXIT:       o
0fa0: 6e 5f 65 78 69 74 28 29 3b 20 20 20 20 20 20 62  n_exit();      b
0fb0: 72 65 61 6b 3b 0d 0a 0d 0a 09 2f 2f 20 45 64 69  reak;.....// Edi
0fc0: 74 0d 0a 09 63 61 73 65 20 49 44 5f 43 4d 44 5f  t...case ID_CMD_
0fd0: 55 4e 44 4f 3a 20 20 20 20 20 20 20 65 64 69 74  UNDO:       edit
0fe0: 5f 2e 67 65 74 44 6f 63 28 29 2e 55 6e 64 6f 28  _.getDoc().Undo(
0ff0: 29 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20  );              
1000: 62 72 65 61 6b 3b 0d 0a 09 63 61 73 65 20 49 44  break;...case ID
1010: 5f 43 4d 44 5f 52 45 44 4f 3a 20 20 20 20 20 20  _CMD_REDO:      
1020: 20 65 64 69 74 5f 2e 67 65 74 44 6f 63 28 29 2e   edit_.getDoc().
1030: 52 65 64 6f 28 29 3b 20 20 20 20 20 20 20 20 20  Redo();         
1040: 20 20 20 20 20 62 72 65 61 6b 3b 0d 0a 09 63 61       break;...ca
1050: 73 65 20 49 44 5f 43 4d 44 5f 43 55 54 3a 20 20  se ID_CMD_CUT:  
1060: 20 20 20 20 20 20 65 64 69 74 5f 2e 67 65 74 43        edit_.getC
1070: 75 72 73 6f 72 28 29 2e 43 75 74 28 29 3b 20 20  ursor().Cut();  
1080: 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b            break;
1090: 0d 0a 09 63 61 73 65 20 49 44 5f 43 4d 44 5f 43  ...case ID_CMD_C
10a0: 4f 50 59 3a 20 20 20 20 20 20 20 65 64 69 74 5f  OPY:       edit_
10b0: 2e 67 65 74 43 75 72 73 6f 72 28 29 2e 43 6f 70  .getCursor().Cop
10c0: 79 28 29 3b 20 20 20 20 20 20 20 20 20 20 20 62  y();           b
10d0: 72 65 61 6b 3b 0d 0a 09 63 61 73 65 20 49 44 5f  reak;...case ID_
10e0: 43 4d 44 5f 50 41 53 54 45 3a 20 20 20 20 20 20  CMD_PASTE:      
10f0: 65 64 69 74 5f 2e 67 65 74 43 75 72 73 6f 72 28  edit_.getCursor(
1100: 29 2e 50 61 73 74 65 28 29 3b 20 20 20 20 20 20  ).Paste();      
1110: 20 20 20 20 62 72 65 61 6b 3b 0d 0a 09 63 61 73      break;...cas
1120: 65 20 49 44 5f 43 4d 44 5f 44 45 4c 45 54 45 3a  e ID_CMD_DELETE:
1130: 20 69 66 28 20 65 64 69 74 5f 2e 67 65 74 43 75   if( edit_.getCu
1140: 72 73 6f 72 28 29 2e 69 73 53 65 6c 65 63 74 65  rsor().isSelecte
1150: 64 28 29 20 29 0d 0a 09 20 20 20 20 20 20 20 20  d() )...        
1160: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1170: 65 64 69 74 5f 2e 67 65 74 43 75 72 73 6f 72 28  edit_.getCursor(
1180: 29 2e 44 65 6c 28 29 3b 20 20 20 20 20 20 20 20  ).Del();        
1190: 20 20 20 20 62 72 65 61 6b 3b 0d 0a 09 63 61 73      break;...cas
11a0: 65 20 49 44 5f 43 4d 44 5f 53 45 4c 45 43 54 41  e ID_CMD_SELECTA
11b0: 4c 4c 3a 20 20 65 64 69 74 5f 2e 67 65 74 43 75  LL:  edit_.getCu
11c0: 72 73 6f 72 28 29 2e 48 6f 6d 65 28 74 72 75 65  rsor().Home(true
11d0: 2c 66 61 6c 73 65 29 3b 0d 0a 09 20 20 20 20 20  ,false);...     
11e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11f0: 20 20 20 65 64 69 74 5f 2e 67 65 74 43 75 72 73     edit_.getCurs
1200: 6f 72 28 29 2e 45 6e 64 28 74 72 75 65 2c 74 72  or().End(true,tr
1210: 75 65 29 3b 20 20 20 62 72 65 61 6b 3b 0d 0a 09  ue);   break;...
1220: 63 61 73 65 20 49 44 5f 43 4d 44 5f 44 41 54 45  case ID_CMD_DATE
1230: 54 49 4d 45 3a 20 20 20 6f 6e 5f 64 61 74 65 74  TIME:   on_datet
1240: 69 6d 65 28 29 3b 20 20 20 20 20 20 20 20 20 20  ime();          
1250: 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61              brea
1260: 6b 3b 0d 0a 0d 0a 09 2f 2f 20 53 65 61 72 63 68  k;.....// Search
1270: 0d 0a 09 63 61 73 65 20 49 44 5f 43 4d 44 5f 46  ...case ID_CMD_F
1280: 49 4e 44 3a 20 20 20 20 20 20 20 73 65 61 72 63  IND:       searc
1290: 68 5f 2e 53 68 6f 77 44 6c 67 28 29 3b 20 20 62  h_.ShowDlg();  b
12a0: 72 65 61 6b 3b 0d 0a 09 63 61 73 65 20 49 44 5f  reak;...case ID_
12b0: 43 4d 44 5f 46 49 4e 44 4e 45 58 54 3a 20 20 20  CMD_FINDNEXT:   
12c0: 73 65 61 72 63 68 5f 2e 46 69 6e 64 4e 65 78 74  search_.FindNext
12d0: 28 29 3b 20 62 72 65 61 6b 3b 0d 0a 09 63 61 73  (); break;...cas
12e0: 65 20 49 44 5f 43 4d 44 5f 46 49 4e 44 50 52 45  e ID_CMD_FINDPRE
12f0: 56 3a 20 20 20 73 65 61 72 63 68 5f 2e 46 69 6e  V:   search_.Fin
1300: 64 50 72 65 76 28 29 3b 20 62 72 65 61 6b 3b 0d  dPrev(); break;.
1310: 0a 09 63 61 73 65 20 49 44 5f 43 4d 44 5f 4a 55  ..case ID_CMD_JU
1320: 4d 50 3a 20 20 20 20 20 20 20 6f 6e 5f 6a 75 6d  MP:       on_jum
1330: 70 28 29 3b 20 62 72 65 61 6b 3b 0d 0a 09 63 61  p(); break;...ca
1340: 73 65 20 49 44 5f 43 4d 44 5f 47 52 45 50 3a 20  se ID_CMD_GREP: 
1350: 20 20 20 20 20 20 6f 6e 5f 67 72 65 70 28 29 3b        on_grep();
1360: 62 72 65 61 6b 3b 0d 0a 0d 0a 09 2f 2f 20 56 69  break;.....// Vi
1370: 65 77 0d 0a 09 63 61 73 65 20 49 44 5f 43 4d 44  ew...case ID_CMD
1380: 5f 4e 4f 57 52 41 50 3a 20 20 20 20 20 65 64 69  _NOWRAP:     edi
1390: 74 5f 2e 67 65 74 56 69 65 77 28 29 2e 53 65 74  t_.getView().Set
13a0: 57 72 61 70 54 79 70 65 28 20 77 72 61 70 5f 3d  WrapType( wrap_=
13b0: 2d 31 20 29 3b 20 62 72 65 61 6b 3b 0d 0a 09 63  -1 ); break;...c
13c0: 61 73 65 20 49 44 5f 43 4d 44 5f 57 52 41 50 57  ase ID_CMD_WRAPW
13d0: 49 44 54 48 3a 20 20 65 64 69 74 5f 2e 67 65 74  IDTH:  edit_.get
13e0: 56 69 65 77 28 29 2e 53 65 74 57 72 61 70 54 79  View().SetWrapTy
13f0: 70 65 28 20 77 72 61 70 5f 3d 63 66 67 5f 2e 77  pe( wrap_=cfg_.w
1400: 72 61 70 57 69 64 74 68 28 29 20 29 3b 20 62 72  rapWidth() ); br
1410: 65 61 6b 3b 0d 0a 09 63 61 73 65 20 49 44 5f 43  eak;...case ID_C
1420: 4d 44 5f 57 52 41 50 57 49 4e 44 4f 57 3a 20 65  MD_WRAPWINDOW: e
1430: 64 69 74 5f 2e 67 65 74 56 69 65 77 28 29 2e 53  dit_.getView().S
1440: 65 74 57 72 61 70 54 79 70 65 28 20 77 72 61 70  etWrapType( wrap
1450: 5f 3d 30 20 29 3b 20 62 72 65 61 6b 3b 0d 0a 09  _=0 ); break;...
1460: 63 61 73 65 20 49 44 5f 43 4d 44 5f 43 4f 4e 46  case ID_CMD_CONF
1470: 49 47 3a 20 20 20 20 20 6f 6e 5f 63 6f 6e 66 69  IG:     on_confi
1480: 67 28 29 3b 20 20 20 20 62 72 65 61 6b 3b 0d 0a  g();    break;..
1490: 09 63 61 73 65 20 49 44 5f 43 4d 44 5f 53 54 41  .case ID_CMD_STA
14a0: 54 55 53 42 41 52 3a 20 20 6f 6e 5f 73 74 61 74  TUSBAR:  on_stat
14b0: 75 73 42 61 72 28 29 3b 20 62 72 65 61 6b 3b 0d  usBar(); break;.
14c0: 0a 0d 0a 09 2f 2f 20 44 6f 63 54 79 70 65 0d 0a  ....// DocType..
14d0: 09 64 65 66 61 75 6c 74 3a 20 69 66 28 20 49 44  .default: if( ID
14e0: 5f 43 4d 44 5f 44 4f 43 54 59 50 45 20 3c 3d 20  _CMD_DOCTYPE <= 
14f0: 69 64 20 29 20 7b 0d 0a 09 09 09 6f 6e 5f 64 6f  id ) {.....on_do
1500: 63 74 79 70 65 28 20 69 64 20 2d 20 49 44 5f 43  ctype( id - ID_C
1510: 4d 44 5f 44 4f 43 54 59 50 45 20 29 3b 0d 0a 09  MD_DOCTYPE );...
1520: 09 09 62 72 65 61 6b 3b 0d 0a 09 09 7d 20 65 6c  ..break;....} el
1530: 73 65 20 69 66 28 20 49 44 5f 43 4d 44 5f 4d 52  se if( ID_CMD_MR
1540: 55 20 3c 3d 20 69 64 20 29 20 7b 0d 0a 09 09 09  U <= id ) {.....
1550: 6f 6e 5f 6d 72 75 28 20 69 64 20 2d 20 49 44 5f  on_mru( id - ID_
1560: 43 4d 44 5f 4d 52 55 20 29 3b 0d 0a 09 09 09 62  CMD_MRU );.....b
1570: 72 65 61 6b 3b 0d 0a 09 09 7d 0d 0a 0d 0a 09 2f  reak;....}...../
1580: 2f 20 44 65 66 61 75 6c 74 0d 0a 09 09 72 65 74  / Default....ret
1590: 75 72 6e 20 66 61 6c 73 65 3b 0d 0a 09 7d 0d 0a  urn false;...}..
15a0: 09 72 65 74 75 72 6e 20 74 72 75 65 3b 0d 0a 7d  .return true;..}
15b0: 0d 0a 0d 0a 62 6f 6f 6c 20 47 72 65 65 6e 50 61  ....bool GreenPa
15c0: 64 57 6e 64 3a 3a 50 72 65 54 72 61 6e 73 6c 61  dWnd::PreTransla
15d0: 74 65 4d 65 73 73 61 67 65 28 20 4d 53 47 2a 20  teMessage( MSG* 
15e0: 6d 73 67 20 29 0d 0a 7b 0d 0a 09 2f 2f 20 8b ea  msg )..{...// ..
15f0: 93 f7 82 cc 8d f4 5e 5e 3b 0d 0a 09 69 66 28 20  ......^^;...if( 
1600: 73 65 61 72 63 68 5f 2e 54 72 61 70 4d 73 67 28  search_.TrapMsg(
1610: 6d 73 67 29 20 29 0d 0a 09 09 72 65 74 75 72 6e  msg) )....return
1620: 20 74 72 75 65 3b 0d 0a 09 2f 2f 20 83 4c 81 5b   true;...// .L.[
1630: 83 7b 81 5b 83 68 83 56 83 87 81 5b 83 67 83 4a  .{.[.h.V...[.g.J
1640: 83 62 83 67 8f 88 97 9d 0d 0a 09 72 65 74 75 72  .b.g.......retur
1650: 6e 20 30 20 21 3d 20 3a 3a 54 72 61 6e 73 6c 61  n 0 != ::Transla
1660: 74 65 41 63 63 65 6c 65 72 61 74 6f 72 28 20 68  teAccelerator( h
1670: 77 6e 64 28 29 2c 20 61 63 63 65 6c 5f 2c 20 6d  wnd(), accel_, m
1680: 73 67 20 29 3b 0d 0a 7d 0d 0a 0d 0a 0d 0a 0d 0a  sg );..}........
1690: 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  //--------------
16a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
16b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
16c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
16d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 2f 2f 20  -----------..// 
16e0: 83 52 83 7d 83 93 83 68 8f 88 97 9d 0d 0a 2f 2f  .R.}...h......//
16f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1700: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1710: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1720: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1730: 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 76 6f 69  ---------....voi
1740: 64 20 47 72 65 65 6e 50 61 64 57 6e 64 3a 3a 6f  d GreenPadWnd::o
1750: 6e 5f 64 69 72 74 79 66 6c 61 67 5f 63 68 61 6e  n_dirtyflag_chan
1760: 67 65 28 20 62 6f 6f 6c 20 29 0d 0a 7b 0d 0a 09  ge( bool )..{...
1770: 55 70 64 61 74 65 57 69 6e 64 6f 77 4e 61 6d 65  UpdateWindowName
1780: 28 29 3b 0d 0a 7d 0d 0a 0d 0a 76 6f 69 64 20 47  ();..}....void G
1790: 72 65 65 6e 50 61 64 57 6e 64 3a 3a 6f 6e 5f 6e  reenPadWnd::on_n
17a0: 65 77 66 69 6c 65 28 29 0d 0a 7b 0d 0a 09 42 6f  ewfile()..{...Bo
17b0: 6f 74 4e 65 77 50 72 6f 63 65 73 73 28 29 3b 0d  otNewProcess();.
17c0: 0a 7d 0d 0a 0d 0a 76 6f 69 64 20 47 72 65 65 6e  .}....void Green
17d0: 50 61 64 57 6e 64 3a 3a 6f 6e 5f 6f 70 65 6e 66  PadWnd::on_openf
17e0: 69 6c 65 28 29 0d 0a 7b 0d 0a 09 50 61 74 68 20  ile()..{...Path 
17f0: 66 6e 3b 0d 0a 09 69 6e 74 20 20 63 73 3b 0d 0a  fn;...int  cs;..
1800: 09 69 66 28 20 53 68 6f 77 4f 70 65 6e 44 6c 67  .if( ShowOpenDlg
1810: 28 20 26 66 6e 2c 20 26 63 73 20 29 20 29 0d 0a  ( &fn, &cs ) )..
1820: 09 09 4f 70 65 6e 28 20 66 6e 2c 20 63 73 20 29  ..Open( fn, cs )
1830: 3b 0d 0a 7d 0d 0a 0d 0a 76 6f 69 64 20 47 72 65  ;..}....void Gre
1840: 65 6e 50 61 64 57 6e 64 3a 3a 6f 6e 5f 72 65 6f  enPadWnd::on_reo
1850: 70 65 6e 66 69 6c 65 28 29 0d 0a 7b 0d 0a 09 69  penfile()..{...i
1860: 66 28 20 21 69 73 55 6e 74 69 74 6c 65 64 28 29  f( !isUntitled()
1870: 20 29 0d 0a 09 7b 0d 0a 09 09 52 65 6f 70 65 6e   )...{....Reopen
1880: 44 6c 67 20 64 6c 67 28 20 63 68 61 72 53 65 74  Dlg dlg( charSet
1890: 73 5f 2c 20 63 73 69 5f 20 29 3b 0d 0a 09 09 64  s_, csi_ );....d
18a0: 6c 67 2e 47 6f 4d 6f 64 61 6c 28 20 68 77 6e 64  lg.GoModal( hwnd
18b0: 28 29 20 29 3b 0d 0a 09 09 69 66 28 20 64 6c 67  () );....if( dlg
18c0: 2e 65 6e 64 63 6f 64 65 28 29 3d 3d 49 44 4f 4b  .endcode()==IDOK
18d0: 20 26 26 20 41 73 6b 54 6f 53 61 76 65 28 29 20   && AskToSave() 
18e0: 29 0d 0a 09 09 09 4f 70 65 6e 42 79 4d 79 73 65  ).....OpenByMyse
18f0: 6c 66 28 20 66 69 6c 65 6e 61 6d 65 5f 2c 20 63  lf( filename_, c
1900: 68 61 72 53 65 74 73 5f 5b 64 6c 67 2e 63 73 69  harSets_[dlg.csi
1910: 28 29 5d 2e 49 44 2c 20 66 61 6c 73 65 20 29 3b  ()].ID, false );
1920: 0d 0a 09 7d 0d 0a 7d 0d 0a 0d 0a 76 6f 69 64 20  ...}..}....void 
1930: 47 72 65 65 6e 50 61 64 57 6e 64 3a 3a 6f 6e 5f  GreenPadWnd::on_
1940: 73 61 76 65 66 69 6c 65 28 29 0d 0a 7b 0d 0a 09  savefile()..{...
1950: 53 61 76 65 5f 73 68 6f 77 44 6c 67 49 66 4e 65  Save_showDlgIfNe
1960: 65 64 65 64 28 29 3b 0d 0a 7d 0d 0a 0d 0a 76 6f  eded();..}....vo
1970: 69 64 20 47 72 65 65 6e 50 61 64 57 6e 64 3a 3a  id GreenPadWnd::
1980: 6f 6e 5f 73 61 76 65 66 69 6c 65 61 73 28 29 0d  on_savefileas().
1990: 0a 7b 0d 0a 09 69 66 28 20 53 68 6f 77 53 61 76  .{...if( ShowSav
19a0: 65 44 6c 67 28 29 20 29 0d 0a 09 7b 0d 0a 09 09  eDlg() )...{....
19b0: 53 61 76 65 28 29 3b 0d 0a 09 09 52 65 6c 6f 61  Save();....Reloa
19c0: 64 43 6f 6e 66 69 67 28 29 3b 20 2f 2f 20 95 b6  dConfig(); // ..
19d0: 8f 91 83 5e 83 43 83 76 82 c9 89 9e 82 b6 82 c4  ...^.C.v........
19e0: 95 5c 8e a6 82 f0 8d 58 90 56 0d 0a 09 7d 0d 0a  .\.....X.V...}..
19f0: 7d 0d 0a 0d 0a 76 6f 69 64 20 47 72 65 65 6e 50  }....void GreenP
1a00: 61 64 57 6e 64 3a 3a 6f 6e 5f 65 78 69 74 28 29  adWnd::on_exit()
1a10: 0d 0a 7b 0d 0a 09 73 65 61 72 63 68 5f 2e 53 61  ..{...search_.Sa
1a20: 76 65 54 6f 49 4e 49 28 20 63 66 67 5f 2e 67 65  veToINI( cfg_.ge
1a30: 74 49 6d 70 6c 28 29 20 29 3b 0d 0a 09 69 66 28  tImpl() );...if(
1a40: 20 41 73 6b 54 6f 53 61 76 65 28 29 20 29 0d 0a   AskToSave() )..
1a50: 09 09 44 65 73 74 72 6f 79 28 29 3b 0d 0a 7d 0d  ..Destroy();..}.
1a60: 0a 0d 0a 76 6f 69 64 20 47 72 65 65 6e 50 61 64  ...void GreenPad
1a70: 57 6e 64 3a 3a 6f 6e 5f 69 6e 69 74 6d 65 6e 75  Wnd::on_initmenu
1a80: 28 20 48 4d 45 4e 55 20 6d 65 6e 75 2c 20 62 6f  ( HMENU menu, bo
1a90: 6f 6c 20 65 64 69 74 6d 65 6e 75 5f 6f 6e 6c 79  ol editmenu_only
1aa0: 20 29 0d 0a 7b 0d 0a 09 4c 4f 47 47 45 52 28 22   )..{...LOGGER("
1ab0: 47 72 65 65 6e 50 61 64 57 6e 64 3a 3a 52 65 6c  GreenPadWnd::Rel
1ac0: 6f 61 64 43 6f 6e 66 69 67 20 6f 6e 5f 69 6e 69  oadConfig on_ini
1ad0: 74 6d 65 6e 75 20 62 65 67 69 6e 22 29 3b 0d 0a  tmenu begin");..
1ae0: 09 4d 45 4e 55 49 54 45 4d 49 4e 46 4f 20 6d 69  .MENUITEMINFO mi
1af0: 20 3d 20 7b 20 73 69 7a 65 6f 66 28 4d 45 4e 55   = { sizeof(MENU
1b00: 49 54 45 4d 49 4e 46 4f 29 2c 20 4d 49 49 4d 5f  ITEMINFO), MIIM_
1b10: 53 54 41 54 45 20 7d 3b 0d 0a 0d 0a 09 6d 69 2e  STATE };.....mi.
1b20: 66 53 74 61 74 65 20 3d 0d 0a 09 09 28 65 64 69  fState =....(edi
1b30: 74 5f 2e 67 65 74 43 75 72 73 6f 72 28 29 2e 69  t_.getCursor().i
1b40: 73 53 65 6c 65 63 74 65 64 28 29 20 3f 20 4d 46  sSelected() ? MF
1b50: 53 5f 45 4e 41 42 4c 45 44 20 3a 20 4d 46 53 5f  S_ENABLED : MFS_
1b60: 44 49 53 41 42 4c 45 44 29 3b 0d 0a 09 53 65 74  DISABLED);...Set
1b70: 4d 65 6e 75 49 74 65 6d 49 6e 66 6f 28 20 6d 65  MenuItemInfo( me
1b80: 6e 75 2c 20 49 44 5f 43 4d 44 5f 43 55 54 2c 20  nu, ID_CMD_CUT, 
1b90: 46 41 4c 53 45 2c 20 26 6d 69 20 29 3b 0d 0a 09  FALSE, &mi );...
1ba0: 53 65 74 4d 65 6e 75 49 74 65 6d 49 6e 66 6f 28  SetMenuItemInfo(
1bb0: 20 6d 65 6e 75 2c 20 49 44 5f 43 4d 44 5f 43 4f   menu, ID_CMD_CO
1bc0: 50 59 2c 20 46 41 4c 53 45 2c 20 26 6d 69 20 29  PY, FALSE, &mi )
1bd0: 3b 0d 0a 09 53 65 74 4d 65 6e 75 49 74 65 6d 49  ;...SetMenuItemI
1be0: 6e 66 6f 28 20 6d 65 6e 75 2c 20 49 44 5f 43 4d  nfo( menu, ID_CM
1bf0: 44 5f 44 45 4c 45 54 45 2c 20 46 41 4c 53 45 2c  D_DELETE, FALSE,
1c00: 20 26 6d 69 20 29 3b 0d 0a 0d 0a 09 6d 69 2e 66   &mi );.....mi.f
1c10: 53 74 61 74 65 20 3d 0d 0a 09 09 28 65 64 69 74  State =....(edit
1c20: 5f 2e 67 65 74 44 6f 63 28 29 2e 69 73 55 6e 64  _.getDoc().isUnd
1c30: 6f 41 62 6c 65 28 29 20 3f 20 4d 46 53 5f 45 4e  oAble() ? MFS_EN
1c40: 41 42 4c 45 44 20 3a 20 4d 46 53 5f 44 49 53 41  ABLED : MFS_DISA
1c50: 42 4c 45 44 29 3b 0d 0a 09 53 65 74 4d 65 6e 75  BLED);...SetMenu
1c60: 49 74 65 6d 49 6e 66 6f 28 20 6d 65 6e 75 2c 20  ItemInfo( menu, 
1c70: 49 44 5f 43 4d 44 5f 55 4e 44 4f 2c 20 46 41 4c  ID_CMD_UNDO, FAL
1c80: 53 45 2c 20 26 6d 69 20 29 3b 0d 0a 0d 0a 09 6d  SE, &mi );.....m
1c90: 69 2e 66 53 74 61 74 65 20 3d 0d 0a 09 09 28 65  i.fState =....(e
1ca0: 64 69 74 5f 2e 67 65 74 44 6f 63 28 29 2e 69 73  dit_.getDoc().is
1cb0: 52 65 64 6f 41 62 6c 65 28 29 20 3f 20 4d 46 53  RedoAble() ? MFS
1cc0: 5f 45 4e 41 42 4c 45 44 20 3a 20 4d 46 53 5f 44  _ENABLED : MFS_D
1cd0: 49 53 41 42 4c 45 44 29 3b 0d 0a 09 53 65 74 4d  ISABLED);...SetM
1ce0: 65 6e 75 49 74 65 6d 49 6e 66 6f 28 20 6d 65 6e  enuItemInfo( men
1cf0: 75 2c 20 49 44 5f 43 4d 44 5f 52 45 44 4f 2c 20  u, ID_CMD_REDO, 
1d00: 46 41 4c 53 45 2c 20 26 6d 69 20 29 3b 0d 0a 0d  FALSE, &mi );...
1d10: 0a 09 69 66 28 20 65 64 69 74 6d 65 6e 75 5f 6f  ..if( editmenu_o
1d20: 6e 6c 79 20 29 0d 0a 09 7b 0d 0a 09 09 4c 4f 47  nly )...{....LOG
1d30: 47 45 52 28 22 47 72 65 65 6e 50 61 64 57 6e 64  GER("GreenPadWnd
1d40: 3a 3a 52 65 6c 6f 61 64 43 6f 6e 66 69 67 20 6f  ::ReloadConfig o
1d50: 6e 5f 69 6e 69 74 6d 65 6e 75 20 65 6e 64 22 29  n_initmenu end")
1d60: 3b 0d 0a 09 09 72 65 74 75 72 6e 3b 0d 0a 09 7d  ;....return;...}
1d70: 0d 0a 0d 0a 09 6d 69 2e 66 53 74 61 74 65 20 3d  .....mi.fState =
1d80: 20 28 69 73 55 6e 74 69 74 6c 65 64 28 29 20 7c   (isUntitled() |
1d90: 7c 20 65 64 69 74 5f 2e 67 65 74 44 6f 63 28 29  | edit_.getDoc()
1da0: 2e 69 73 4d 6f 64 69 66 69 65 64 28 29 0d 0a 09  .isModified()...
1db0: 09 3f 20 4d 46 53 5f 45 4e 41 42 4c 45 44 20 3a  .? MFS_ENABLED :
1dc0: 20 4d 46 53 5f 44 49 53 41 42 4c 45 44 29 3b 0d   MFS_DISABLED);.
1dd0: 0a 09 53 65 74 4d 65 6e 75 49 74 65 6d 49 6e 66  ..SetMenuItemInf
1de0: 6f 28 20 6d 65 6e 75 2c 20 49 44 5f 43 4d 44 5f  o( menu, ID_CMD_
1df0: 53 41 56 45 46 49 4c 45 2c 20 46 41 4c 53 45 2c  SAVEFILE, FALSE,
1e00: 20 26 6d 69 20 29 3b 0d 0a 0d 0a 09 6d 69 2e 66   &mi );.....mi.f
1e10: 53 74 61 74 65 20 3d 0d 0a 09 09 28 21 69 73 55  State =....(!isU
1e20: 6e 74 69 74 6c 65 64 28 29 20 3f 20 4d 46 53 5f  ntitled() ? MFS_
1e30: 45 4e 41 42 4c 45 44 20 3a 20 4d 46 53 5f 44 49  ENABLED : MFS_DI
1e40: 53 41 42 4c 45 44 29 3b 0d 0a 09 53 65 74 4d 65  SABLED);...SetMe
1e50: 6e 75 49 74 65 6d 49 6e 66 6f 28 20 6d 65 6e 75  nuItemInfo( menu
1e60: 2c 20 49 44 5f 43 4d 44 5f 52 45 4f 50 45 4e 46  , ID_CMD_REOPENF
1e70: 49 4c 45 2c 20 46 41 4c 53 45 2c 20 26 6d 69 20  ILE, FALSE, &mi 
1e80: 29 3b 0d 0a 0d 0a 09 6d 69 2e 66 53 74 61 74 65  );.....mi.fState
1e90: 20 3d 0d 0a 09 09 28 63 66 67 5f 2e 67 72 65 70   =....(cfg_.grep
1ea0: 45 78 65 28 29 2e 6c 65 6e 28 29 3e 30 20 3f 20  Exe().len()>0 ? 
1eb0: 4d 46 53 5f 45 4e 41 42 4c 45 44 20 3a 20 4d 46  MFS_ENABLED : MF
1ec0: 53 5f 44 49 53 41 42 4c 45 44 29 3b 0d 0a 09 53  S_DISABLED);...S
1ed0: 65 74 4d 65 6e 75 49 74 65 6d 49 6e 66 6f 28 20  etMenuItemInfo( 
1ee0: 6d 65 6e 75 2c 20 49 44 5f 43 4d 44 5f 47 52 45  menu, ID_CMD_GRE
1ef0: 50 2c 20 46 41 4c 53 45 2c 20 26 6d 69 20 29 3b  P, FALSE, &mi );
1f00: 0d 0a 0d 0a 09 55 49 4e 54 20 69 64 20 3d 20 28  .....UINT id = (
1f10: 77 72 61 70 5f 3d 3d 2d 31 20 3f 20 49 44 5f 43  wrap_==-1 ? ID_C
1f20: 4d 44 5f 4e 4f 57 52 41 50 0d 0a 09 09 3a 20 28  MD_NOWRAP....: (
1f30: 77 72 61 70 5f 3e 30 20 3f 20 49 44 5f 43 4d 44  wrap_>0 ? ID_CMD
1f40: 5f 57 52 41 50 57 49 44 54 48 20 3a 20 49 44 5f  _WRAPWIDTH : ID_
1f50: 43 4d 44 5f 57 52 41 50 57 49 4e 44 4f 57 29 29  CMD_WRAPWINDOW))
1f60: 3b 0d 0a 09 3a 3a 43 68 65 63 6b 4d 65 6e 75 52  ;...::CheckMenuR
1f70: 61 64 69 6f 49 74 65 6d 28 0d 0a 09 09 6d 65 6e  adioItem(....men
1f80: 75 2c 20 49 44 5f 43 4d 44 5f 4e 4f 57 52 41 50  u, ID_CMD_NOWRAP
1f90: 2c 20 49 44 5f 43 4d 44 5f 57 52 41 50 57 49 4e  , ID_CMD_WRAPWIN
1fa0: 44 4f 57 2c 20 69 64 2c 20 4d 46 5f 42 59 43 4f  DOW, id, MF_BYCO
1fb0: 4d 4d 41 4e 44 20 29 3b 0d 0a 0d 0a 09 3a 3a 43  MMAND );.....::C
1fc0: 68 65 63 6b 4d 65 6e 75 49 74 65 6d 28 20 6d 65  heckMenuItem( me
1fd0: 6e 75 2c 20 49 44 5f 43 4d 44 5f 53 54 41 54 55  nu, ID_CMD_STATU
1fe0: 53 42 41 52 2c 0d 0a 09 09 63 66 67 5f 2e 73 68  SBAR,....cfg_.sh
1ff0: 6f 77 53 74 61 74 75 73 42 61 72 28 29 3f 4d 46  owStatusBar()?MF
2000: 53 5f 43 48 45 43 4b 45 44 3a 4d 46 53 5f 55 4e  S_CHECKED:MFS_UN
2010: 43 48 45 43 4b 45 44 20 29 3b 0d 0a 09 4c 4f 47  CHECKED );...LOG
2020: 47 45 52 28 22 47 72 65 65 6e 50 61 64 57 6e 64  GER("GreenPadWnd
2030: 3a 3a 52 65 6c 6f 61 64 43 6f 6e 66 69 67 20 6f  ::ReloadConfig o
2040: 6e 5f 69 6e 69 74 6d 65 6e 75 20 65 6e 64 22 29  n_initmenu end")
2050: 3b 0d 0a 7d 0d 0a 0d 0a 76 6f 69 64 20 47 72 65  ;..}....void Gre
2060: 65 6e 50 61 64 57 6e 64 3a 3a 6f 6e 5f 64 72 6f  enPadWnd::on_dro
2070: 70 28 20 48 44 52 4f 50 20 68 64 20 29 0d 0a 7b  p( HDROP hd )..{
2080: 0d 0a 09 55 49 4e 54 20 69 4d 61 78 20 3d 20 3a  ...UINT iMax = :
2090: 3a 44 72 61 67 51 75 65 72 79 46 69 6c 65 28 20  :DragQueryFile( 
20a0: 68 64 2c 20 30 78 66 66 66 66 66 66 66 66 2c 20  hd, 0xffffffff, 
20b0: 4e 55 4c 4c 2c 20 30 20 29 3b 0d 0a 09 66 6f 72  NULL, 0 );...for
20c0: 28 20 55 49 4e 54 20 69 3d 30 3b 20 69 3c 69 4d  ( UINT i=0; i<iM
20d0: 61 78 3b 20 2b 2b 69 20 29 0d 0a 09 7b 0d 0a 09  ax; ++i )...{...
20e0: 09 54 43 48 41 52 20 73 74 72 5b 4d 41 58 5f 50  .TCHAR str[MAX_P
20f0: 41 54 48 5d 3b 0d 0a 09 09 3a 3a 44 72 61 67 51  ATH];....::DragQ
2100: 75 65 72 79 46 69 6c 65 28 20 68 64 2c 20 69 2c  ueryFile( hd, i,
2110: 20 73 74 72 2c 20 63 6f 75 6e 74 6f 66 28 73 74   str, countof(st
2120: 72 29 20 29 3b 0d 0a 09 09 4f 70 65 6e 28 20 73  r) );....Open( s
2130: 74 72 2c 20 41 75 74 6f 44 65 74 65 63 74 20 29  tr, AutoDetect )
2140: 3b 0d 0a 09 7d 0d 0a 09 3a 3a 44 72 61 67 46 69  ;...}...::DragFi
2150: 6e 69 73 68 28 20 68 64 20 29 3b 0d 0a 7d 0d 0a  nish( hd );..}..
2160: 0d 0a 76 6f 69 64 20 47 72 65 65 6e 50 61 64 57  ..void GreenPadW
2170: 6e 64 3a 3a 6f 6e 5f 6a 75 6d 70 28 29 0d 0a 7b  nd::on_jump()..{
2180: 0d 0a 09 73 74 72 75 63 74 20 4a 75 6d 70 44 6c  ...struct JumpDl
2190: 67 20 3a 20 70 75 62 6c 69 63 20 44 6c 67 49 6d  g : public DlgIm
21a0: 70 6c 20 7b 0d 0a 09 09 4a 75 6d 70 44 6c 67 28  pl {....JumpDlg(
21b0: 48 57 4e 44 20 77 29 20 3a 20 44 6c 67 49 6d 70  HWND w) : DlgImp
21c0: 6c 28 49 44 44 5f 4a 55 4d 50 29 2c 20 77 5f 28  l(IDD_JUMP), w_(
21d0: 77 29 20 7b 20 47 6f 4d 6f 64 61 6c 28 77 29 3b  w) { GoModal(w);
21e0: 20 7d 0d 0a 09 09 76 6f 69 64 20 6f 6e 5f 69 6e   }....void on_in
21f0: 69 74 28 29 20 7b 0d 0a 09 09 09 53 65 74 43 65  it() {.....SetCe
2200: 6e 74 65 72 28 68 77 6e 64 28 29 2c 77 5f 29 3b  nter(hwnd(),w_);
2210: 20 3a 3a 53 65 74 46 6f 63 75 73 28 69 74 65 6d   ::SetFocus(item
2220: 28 49 44 43 5f 4c 49 4e 45 42 4f 58 29 29 3b 20  (IDC_LINEBOX)); 
2230: 7d 0d 0a 09 09 62 6f 6f 6c 20 6f 6e 5f 6f 6b 28  }....bool on_ok(
2240: 29 20 7b 0d 0a 09 09 09 54 43 48 41 52 20 73 74  ) {.....TCHAR st
2250: 72 5b 31 30 30 5d 3b 0d 0a 09 09 09 3a 3a 47 65  r[100];.....::Ge
2260: 74 57 69 6e 64 6f 77 54 65 78 74 28 20 69 74 65  tWindowText( ite
2270: 6d 28 49 44 43 5f 4c 49 4e 45 42 4f 58 29 2c 20  m(IDC_LINEBOX), 
2280: 73 74 72 2c 20 63 6f 75 6e 74 6f 66 28 73 74 72  str, countof(str
2290: 29 20 29 3b 0d 0a 09 09 09 4c 69 6e 65 4e 6f 20  ) );.....LineNo 
22a0: 3d 20 53 74 72 69 6e 67 28 73 74 72 29 2e 47 65  = String(str).Ge
22b0: 74 49 6e 74 28 29 3b 0d 0a 09 09 09 72 65 74 75  tInt();.....retu
22c0: 72 6e 20 74 72 75 65 3b 0d 0a 09 09 7d 0d 0a 09  rn true;....}...
22d0: 09 69 6e 74 20 4c 69 6e 65 4e 6f 3b 20 48 57 4e  .int LineNo; HWN
22e0: 44 20 77 5f 3b 0d 0a 09 7d 20 64 6c 67 28 68 77  D w_;...} dlg(hw
22f0: 6e 64 28 29 29 3b 0d 0a 0d 0a 09 69 66 28 20 49  nd());.....if( I
2300: 44 4f 4b 20 3d 3d 20 64 6c 67 2e 65 6e 64 63 6f  DOK == dlg.endco
2310: 64 65 28 29 20 29 0d 0a 09 09 4a 75 6d 70 54 6f  de() )....JumpTo
2320: 4c 69 6e 65 28 20 64 6c 67 2e 4c 69 6e 65 4e 6f  Line( dlg.LineNo
2330: 20 29 3b 0d 0a 7d 0d 0a 0d 0a 76 6f 69 64 20 47   );..}....void G
2340: 72 65 65 6e 50 61 64 57 6e 64 3a 3a 6f 6e 5f 67  reenPadWnd::on_g
2350: 72 65 70 28 29 0d 0a 7b 0d 0a 09 50 61 74 68 20  rep()..{...Path 
2360: 67 20 3d 20 63 66 67 5f 2e 67 72 65 70 45 78 65  g = cfg_.grepExe
2370: 28 29 3b 0d 0a 09 69 66 28 20 67 2e 6c 65 6e 28  ();...if( g.len(
2380: 29 20 21 3d 20 30 20 29 0d 0a 09 7b 0d 0a 09 09  ) != 0 )...{....
2390: 50 61 74 68 20 64 3b 0d 0a 09 09 69 66 28 20 66  Path d;....if( f
23a0: 69 6c 65 6e 61 6d 65 5f 2e 6c 65 6e 28 29 20 29  ilename_.len() )
23b0: 0d 0a 09 09 09 28 64 20 3d 20 66 69 6c 65 6e 61  .....(d = filena
23c0: 6d 65 5f 29 2e 42 65 44 69 72 4f 6e 6c 79 28 29  me_).BeDirOnly()
23d0: 2e 42 65 42 61 63 6b 53 6c 61 73 68 28 66 61 6c  .BeBackSlash(fal
23e0: 73 65 29 3b 0d 0a 09 09 65 6c 73 65 0d 0a 09 09  se);....else....
23f0: 09 64 20 3d 20 50 61 74 68 28 50 61 74 68 3a 3a  .d = Path(Path::
2400: 43 75 72 29 3b 0d 0a 0d 0a 09 09 53 74 72 69 6e  Cur);......Strin
2410: 67 20 66 63 6d 64 3b 0d 0a 09 09 66 6f 72 28 20  g fcmd;....for( 
2420: 69 6e 74 20 69 3d 30 2c 20 65 3d 67 2e 6c 65 6e  int i=0, e=g.len
2430: 28 29 3b 20 69 3c 65 3b 20 2b 2b 69 20 29 0d 0a  (); i<e; ++i )..
2440: 09 09 09 69 66 28 20 67 5b 69 5d 3d 3d 54 45 58  ...if( g[i]==TEX
2450: 54 28 27 25 27 29 20 29 0d 0a 09 09 09 7b 0d 0a  T('%') ).....{..
2460: 09 09 09 09 69 66 28 20 67 5b 69 2b 31 5d 3d 3d  ....if( g[i+1]==
2470: 54 45 58 54 28 27 31 27 29 20 7c 7c 20 67 5b 69  TEXT('1') || g[i
2480: 2b 31 5d 3d 3d 54 45 58 54 28 27 44 27 29 20 29  +1]==TEXT('D') )
2490: 20 2f 2f 20 27 31 27 20 66 6f 72 20 62 6b 77 64   // '1' for bkwd
24a0: 20 63 6f 6d 70 61 74 0d 0a 09 09 09 09 09 2b 2b   compat.......++
24b0: 69 2c 20 66 63 6d 64 20 2b 3d 20 64 3b 0d 0a 09  i, fcmd += d;...
24c0: 09 09 09 65 6c 73 65 20 69 66 28 20 67 5b 69 2b  ...else if( g[i+
24d0: 31 5d 3d 3d 54 45 58 54 28 27 46 27 29 20 29 0d  1]==TEXT('F') ).
24e0: 0a 09 09 09 09 09 2b 2b 69 2c 20 66 63 6d 64 20  ......++i, fcmd 
24f0: 2b 3d 20 66 69 6c 65 6e 61 6d 65 5f 3b 0d 0a 09  += filename_;...
2500: 09 09 09 65 6c 73 65 20 69 66 28 20 67 5b 69 2b  ...else if( g[i+
2510: 31 5d 3d 3d 54 45 58 54 28 27 4e 27 29 20 29 0d  1]==TEXT('N') ).
2520: 0a 09 09 09 09 09 2b 2b 69 2c 20 66 63 6d 64 20  ......++i, fcmd 
2530: 2b 3d 20 66 69 6c 65 6e 61 6d 65 5f 2e 6e 61 6d  += filename_.nam
2540: 65 28 29 3b 0d 0a 09 09 09 7d 0d 0a 09 09 09 65  e();.....}.....e
2550: 6c 73 65 0d 0a 09 09 09 09 66 63 6d 64 20 2b 3d  lse......fcmd +=
2560: 20 67 5b 69 5d 3b 0d 0a 0d 0a 09 09 50 52 4f 43   g[i];......PROC
2570: 45 53 53 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e 20  ESS_INFORMATION 
2580: 70 73 69 3b 0d 0a 09 09 53 54 41 52 54 55 50 49  psi;....STARTUPI
2590: 4e 46 4f 20 20 20 20 20 20 20 20 20 73 74 69 20  NFO         sti 
25a0: 3d 20 7b 73 69 7a 65 6f 66 28 53 54 41 52 54 55  = {sizeof(STARTU
25b0: 50 49 4e 46 4f 29 7d 3b 0d 0a 09 09 2f 2f 73 74  PINFO)};....//st
25c0: 69 2e 64 77 46 6c 61 67 73 20 3d 20 53 54 41 52  i.dwFlags = STAR
25d0: 54 46 5f 55 53 45 53 48 4f 57 57 49 4e 44 4f 57  TF_USESHOWWINDOW
25e0: 3b 0d 0a 09 09 2f 2f 73 74 69 2e 77 53 68 6f 77  ;....//sti.wShow
25f0: 57 69 6e 64 6f 77 20 3d 20 53 57 5f 53 48 4f 57  Window = SW_SHOW
2600: 4e 4f 52 4d 41 4c 3b 0d 0a 09 09 69 66 28 20 3a  NORMAL;....if( :
2610: 3a 43 72 65 61 74 65 50 72 6f 63 65 73 73 28 20  :CreateProcess( 
2620: 4e 55 4c 4c 2c 20 63 6f 6e 73 74 5f 63 61 73 74  NULL, const_cast
2630: 3c 54 43 48 41 52 2a 3e 28 66 63 6d 64 2e 63 5f  <TCHAR*>(fcmd.c_
2640: 73 74 72 28 29 29 2c 0d 0a 09 09 09 09 4e 55 4c  str()),......NUL
2650: 4c 2c 20 4e 55 4c 4c 2c 20 46 41 4c 53 45 2c 20  L, NULL, FALSE, 
2660: 4e 4f 52 4d 41 4c 5f 50 52 49 4f 52 49 54 59 5f  NORMAL_PRIORITY_
2670: 43 4c 41 53 53 2c 20 4e 55 4c 4c 2c 20 4e 55 4c  CLASS, NULL, NUL
2680: 4c 2c 0d 0a 09 09 09 09 26 73 74 69 2c 20 26 70  L,......&sti, &p
2690: 73 69 20 29 20 29 0d 0a 09 09 7b 0d 0a 09 09 09  si ) )....{.....
26a0: 3a 3a 43 6c 6f 73 65 48 61 6e 64 6c 65 28 20 70  ::CloseHandle( p
26b0: 73 69 2e 68 54 68 72 65 61 64 20 29 3b 0d 0a 09  si.hThread );...
26c0: 09 09 3a 3a 43 6c 6f 73 65 48 61 6e 64 6c 65 28  ..::CloseHandle(
26d0: 20 70 73 69 2e 68 50 72 6f 63 65 73 73 20 29 3b   psi.hProcess );
26e0: 0d 0a 09 09 7d 0d 0a 09 7d 0d 0a 7d 0d 0a 0d 0a  ....}...}..}....
26f0: 76 6f 69 64 20 47 72 65 65 6e 50 61 64 57 6e 64  void GreenPadWnd
2700: 3a 3a 6f 6e 5f 64 61 74 65 74 69 6d 65 28 29 0d  ::on_datetime().
2710: 0a 7b 0d 0a 09 54 43 48 41 52 20 62 75 66 5b 32  .{...TCHAR buf[2
2720: 35 35 5d 2c 20 74 6d 70 5b 32 35 35 5d 3b 0d 0a  55], tmp[255];..
2730: 09 3a 3a 47 65 74 54 69 6d 65 46 6f 72 6d 61 74  .::GetTimeFormat
2740: 0d 0a 09 09 28 20 4c 4f 43 41 4c 45 5f 55 53 45  ....( LOCALE_USE
2750: 52 5f 44 45 46 41 55 4c 54 2c 20 30 2c 20 4e 55  R_DEFAULT, 0, NU
2760: 4c 4c 2c 20 54 45 58 54 28 22 48 48 3a 6d 6d 20  LL, TEXT("HH:mm 
2770: 22 29 2c 20 62 75 66 2c 20 63 6f 75 6e 74 6f 66  "), buf, countof
2780: 28 62 75 66 29 29 3b 0d 0a 09 3a 3a 47 65 74 44  (buf));...::GetD
2790: 61 74 65 46 6f 72 6d 61 74 0d 0a 09 09 28 20 4c  ateFormat....( L
27a0: 4f 43 41 4c 45 5f 55 53 45 52 5f 44 45 46 41 55  OCALE_USER_DEFAU
27b0: 4c 54 2c 20 30 2c 20 4e 55 4c 4c 2c 20 54 45 58  LT, 0, NULL, TEX
27c0: 54 28 22 79 79 2f 4d 4d 2f 64 64 22 29 2c 74 6d  T("yy/MM/dd"),tm
27d0: 70 2c 63 6f 75 6e 74 6f 66 28 74 6d 70 29 29 3b  p,countof(tmp));
27e0: 0d 0a 09 3a 3a 6c 73 74 72 63 61 74 28 20 62 75  ...::lstrcat( bu
27f0: 66 2c 20 74 6d 70 20 29 3b 0d 0a 09 65 64 69 74  f, tmp );...edit
2800: 5f 2e 67 65 74 43 75 72 73 6f 72 28 29 2e 49 6e  _.getCursor().In
2810: 70 75 74 28 20 62 75 66 2c 20 3a 3a 6c 73 74 72  put( buf, ::lstr
2820: 6c 65 6e 28 62 75 66 29 20 29 3b 0d 0a 7d 0d 0a  len(buf) );..}..
2830: 0d 0a 76 6f 69 64 20 47 72 65 65 6e 50 61 64 57  ..void GreenPadW
2840: 6e 64 3a 3a 6f 6e 5f 64 6f 63 74 79 70 65 28 20  nd::on_doctype( 
2850: 69 6e 74 20 6e 6f 20 29 0d 0a 7b 0d 0a 09 69 66  int no )..{...if
2860: 28 20 48 4d 45 4e 55 20 6d 20 3d 20 3a 3a 47 65  ( HMENU m = ::Ge
2870: 74 53 75 62 4d 65 6e 75 28 20 3a 3a 47 65 74 53  tSubMenu( ::GetS
2880: 75 62 4d 65 6e 75 28 3a 3a 47 65 74 4d 65 6e 75  ubMenu(::GetMenu
2890: 28 68 77 6e 64 28 29 29 2c 33 29 2c 34 20 29 20  (hwnd()),3),4 ) 
28a0: 29 0d 0a 09 7b 0d 0a 09 09 63 66 67 5f 2e 53 65  )...{....cfg_.Se
28b0: 74 44 6f 63 54 79 70 65 42 79 4d 65 6e 75 28 20  tDocTypeByMenu( 
28c0: 6e 6f 2c 20 6d 20 29 3b 0d 0a 09 09 52 65 6c 6f  no, m );....Relo
28d0: 61 64 43 6f 6e 66 69 67 28 20 74 72 75 65 20 29  adConfig( true )
28e0: 3b 0d 0a 09 7d 0d 0a 7d 0d 0a 0d 0a 76 6f 69 64  ;...}..}....void
28f0: 20 47 72 65 65 6e 50 61 64 57 6e 64 3a 3a 6f 6e   GreenPadWnd::on
2900: 5f 63 6f 6e 66 69 67 28 29 0d 0a 7b 0d 0a 09 69  _config()..{...i
2910: 66 28 20 63 66 67 5f 2e 44 6f 44 69 61 6c 6f 67  f( cfg_.DoDialog
2920: 28 2a 74 68 69 73 29 20 29 0d 0a 09 7b 0d 0a 09  (*this) )...{...
2930: 09 53 65 74 75 70 53 75 62 4d 65 6e 75 28 29 3b  .SetupSubMenu();
2940: 0d 0a 09 09 53 65 74 75 70 4d 52 55 4d 65 6e 75  ....SetupMRUMenu
2950: 28 29 3b 0d 0a 09 09 52 65 6c 6f 61 64 43 6f 6e  ();....ReloadCon
2960: 66 69 67 28 66 61 6c 73 65 29 3b 0d 0a 09 7d 0d  fig(false);...}.
2970: 0a 7d 0d 0a 0d 0a 73 74 61 74 69 63 20 69 6e 6c  .}....static inl
2980: 69 6e 65 20 76 6f 69 64 20 4d 79 53 68 6f 77 57  ine void MyShowW
2990: 6e 64 28 20 48 57 4e 44 20 77 6e 64 20 29 0d 0a  nd( HWND wnd )..
29a0: 7b 0d 0a 09 69 66 28 20 3a 3a 49 73 49 63 6f 6e  {...if( ::IsIcon
29b0: 69 63 28 77 6e 64 29 20 29 0d 0a 09 09 3a 3a 53  ic(wnd) )....::S
29c0: 68 6f 77 57 69 6e 64 6f 77 28 20 77 6e 64 2c 20  howWindow( wnd, 
29d0: 53 57 5f 52 45 53 54 4f 52 45 20 29 3b 0d 0a 09  SW_RESTORE );...
29e0: 3a 3a 42 72 69 6e 67 57 69 6e 64 6f 77 54 6f 54  ::BringWindowToT
29f0: 6f 70 28 20 77 6e 64 20 29 3b 0d 0a 7d 0d 0a 0d  op( wnd );..}...
2a00: 0a 76 6f 69 64 20 47 72 65 65 6e 50 61 64 57 6e  .void GreenPadWn
2a10: 64 3a 3a 6f 6e 5f 6e 65 78 74 77 6e 64 28 29 0d  d::on_nextwnd().
2a20: 0a 7b 0d 0a 09 69 66 28 20 48 57 4e 44 20 6e 65  .{...if( HWND ne
2a30: 78 74 20 3d 20 3a 3a 46 69 6e 64 57 69 6e 64 6f  xt = ::FindWindo
2a40: 77 45 78 28 20 4e 55 4c 4c 2c 20 68 77 6e 64 28  wEx( NULL, hwnd(
2a50: 29 2c 20 63 6c 61 73 73 4e 61 6d 65 5f 2c 20 4e  ), className_, N
2a60: 55 4c 4c 20 29 20 29 0d 0a 09 7b 0d 0a 09 09 48  ULL ) )...{....H
2a70: 57 4e 44 20 6c 61 73 74 3d 6e 65 78 74 2c 20 70  WND last=next, p
2a80: 6f 73 3b 0d 0a 09 09 77 68 69 6c 65 28 20 6c 61  os;....while( la
2a90: 73 74 20 21 3d 20 4e 55 4c 4c 20 29 0d 0a 09 09  st != NULL )....
2aa0: 09 6c 61 73 74 20 3d 20 3a 3a 46 69 6e 64 57 69  .last = ::FindWi
2ab0: 6e 64 6f 77 45 78 28 20 4e 55 4c 4c 2c 20 70 6f  ndowEx( NULL, po
2ac0: 73 3d 6c 61 73 74 2c 20 63 6c 61 73 73 4e 61 6d  s=last, classNam
2ad0: 65 5f 2c 20 4e 55 4c 4c 20 29 3b 0d 0a 09 09 69  e_, NULL );....i
2ae0: 66 28 20 70 6f 73 20 21 3d 20 6e 65 78 74 20 29  f( pos != next )
2af0: 0d 0a 09 09 09 3a 3a 53 65 74 57 69 6e 64 6f 77  .....::SetWindow
2b00: 50 6f 73 28 20 68 77 6e 64 28 29 2c 20 70 6f 73  Pos( hwnd(), pos
2b10: 2c 0d 0a 09 09 09 09 30 2c 20 30 2c 20 30 2c 20  ,......0, 0, 0, 
2b20: 30 2c 20 53 57 50 5f 4e 4f 4d 4f 56 45 7c 53 57  0, SWP_NOMOVE|SW
2b30: 50 5f 4e 4f 53 49 5a 45 7c 53 57 50 5f 53 48 4f  P_NOSIZE|SWP_SHO
2b40: 57 57 49 4e 44 4f 57 20 29 3b 0d 0a 09 09 4d 79  WWINDOW );....My
2b50: 53 68 6f 77 57 6e 64 28 20 6e 65 78 74 20 29 3b  ShowWnd( next );
2b60: 0d 0a 09 7d 0d 0a 7d 0d 0a 0d 0a 76 6f 69 64 20  ...}..}....void 
2b70: 47 72 65 65 6e 50 61 64 57 6e 64 3a 3a 6f 6e 5f  GreenPadWnd::on_
2b80: 70 72 65 76 77 6e 64 28 29 0d 0a 7b 0d 0a 09 48  prevwnd()..{...H
2b90: 57 4e 44 20 70 6f 73 3d 4e 55 4c 4c 2c 20 6e 65  WND pos=NULL, ne
2ba0: 78 74 3d 3a 3a 46 69 6e 64 57 69 6e 64 6f 77 45  xt=::FindWindowE
2bb0: 78 28 20 4e 55 4c 4c 2c 4e 55 4c 4c 2c 63 6c 61  x( NULL,NULL,cla
2bc0: 73 73 4e 61 6d 65 5f 2c 4e 55 4c 4c 20 29 3b 0d  ssName_,NULL );.
2bd0: 0a 09 69 66 28 20 6e 65 78 74 3d 3d 68 77 6e 64  ..if( next==hwnd
2be0: 28 29 20 29 0d 0a 09 7b 0d 0a 09 09 77 68 69 6c  () )...{....whil
2bf0: 65 28 20 6e 65 78 74 20 21 3d 20 4e 55 4c 4c 20  e( next != NULL 
2c00: 29 0d 0a 09 09 09 6e 65 78 74 20 3d 20 3a 3a 46  ).....next = ::F
2c10: 69 6e 64 57 69 6e 64 6f 77 45 78 28 20 4e 55 4c  indWindowEx( NUL
2c20: 4c 2c 70 6f 73 3d 6e 65 78 74 2c 63 6c 61 73 73  L,pos=next,class
2c30: 4e 61 6d 65 5f 2c 4e 55 4c 4c 20 29 3b 0d 0a 09  Name_,NULL );...
2c40: 09 69 66 28 20 70 6f 73 21 3d 68 77 6e 64 28 29  .if( pos!=hwnd()
2c50: 29 0d 0a 09 09 09 4d 79 53 68 6f 77 57 6e 64 28  ).....MyShowWnd(
2c60: 20 70 6f 73 20 29 3b 0d 0a 09 7d 0d 0a 09 65 6c   pos );...}...el
2c70: 73 65 0d 0a 09 7b 0d 0a 09 09 77 68 69 6c 65 28  se...{....while(
2c80: 20 6e 65 78 74 21 3d 68 77 6e 64 28 29 20 26 26   next!=hwnd() &&
2c90: 20 6e 65 78 74 21 3d 4e 55 4c 4c 20 29 0d 0a 09   next!=NULL )...
2ca0: 09 09 6e 65 78 74 20 3d 20 3a 3a 46 69 6e 64 57  ..next = ::FindW
2cb0: 69 6e 64 6f 77 45 78 28 20 4e 55 4c 4c 2c 70 6f  indowEx( NULL,po
2cc0: 73 3d 6e 65 78 74 2c 63 6c 61 73 73 4e 61 6d 65  s=next,className
2cd0: 5f 2c 4e 55 4c 4c 20 29 3b 0d 0a 09 09 69 66 28  _,NULL );....if(
2ce0: 20 6e 65 78 74 21 3d 4e 55 4c 4c 20 29 0d 0a 09   next!=NULL )...
2cf0: 09 09 4d 79 53 68 6f 77 57 6e 64 28 20 70 6f 73  ..MyShowWnd( pos
2d00: 20 29 3b 0d 0a 09 7d 0d 0a 7d 0d 0a 0d 0a 76 6f   );...}..}....vo
2d10: 69 64 20 47 72 65 65 6e 50 61 64 57 6e 64 3a 3a  id GreenPadWnd::
2d20: 6f 6e 5f 73 74 61 74 75 73 42 61 72 28 29 0d 0a  on_statusBar()..
2d30: 7b 0d 0a 09 73 74 62 5f 2e 53 65 74 53 74 61 74  {...stb_.SetStat
2d40: 75 73 42 61 72 56 69 73 69 62 6c 65 28 20 21 73  usBarVisible( !s
2d50: 74 62 5f 2e 69 73 53 74 61 74 75 73 42 61 72 56  tb_.isStatusBarV
2d60: 69 73 69 62 6c 65 28 29 20 29 3b 0d 0a 09 63 66  isible() );...cf
2d70: 67 5f 2e 53 68 6f 77 53 74 61 74 75 73 42 61 72  g_.ShowStatusBar
2d80: 53 77 69 74 63 68 28 29 3b 0d 0a 0d 0a 09 57 49  Switch();.....WI
2d90: 4e 44 4f 57 50 4c 41 43 45 4d 45 4e 54 20 77 70  NDOWPLACEMENT wp
2da0: 20 3d 20 7b 73 69 7a 65 6f 66 28 77 70 29 7d 3b   = {sizeof(wp)};
2db0: 0d 0a 09 3a 3a 47 65 74 57 69 6e 64 6f 77 50 6c  ...::GetWindowPl
2dc0: 61 63 65 6d 65 6e 74 28 20 68 77 6e 64 28 29 2c  acement( hwnd(),
2dd0: 20 26 77 70 20 29 3b 0d 0a 09 69 66 28 20 77 70   &wp );...if( wp
2de0: 2e 73 68 6f 77 43 6d 64 20 21 3d 20 53 57 5f 4d  .showCmd != SW_M
2df0: 49 4e 49 4d 49 5a 45 20 29 0d 0a 09 7b 0d 0a 09  INIMIZE )...{...
2e00: 09 63 6f 6e 73 74 20 69 6e 74 20 68 74 20 3d 20  .const int ht = 
2e10: 73 74 62 5f 2e 41 75 74 6f 52 65 73 69 7a 65 28  stb_.AutoResize(
2e20: 20 77 70 2e 73 68 6f 77 43 6d 64 20 3d 3d 20 53   wp.showCmd == S
2e30: 57 5f 4d 41 58 49 4d 49 5a 45 20 29 3b 0d 0a 09  W_MAXIMIZE );...
2e40: 09 52 45 43 54 20 72 63 3b 0d 0a 09 09 67 65 74  .RECT rc;....get
2e50: 43 6c 69 65 6e 74 52 65 63 74 28 26 72 63 29 3b  ClientRect(&rc);
2e60: 0d 0a 09 09 65 64 69 74 5f 2e 4d 6f 76 65 54 6f  ....edit_.MoveTo
2e70: 28 20 30 2c 20 30 2c 20 72 63 2e 72 69 67 68 74  ( 0, 0, rc.right
2e80: 2c 20 72 63 2e 62 6f 74 74 6f 6d 2d 68 74 20 29  , rc.bottom-ht )
2e90: 3b 0d 0a 09 7d 0d 0a 7d 0d 0a 0d 0a 76 6f 69 64  ;...}..}....void
2ea0: 20 47 72 65 65 6e 50 61 64 57 6e 64 3a 3a 6f 6e   GreenPadWnd::on
2eb0: 5f 6d 6f 76 65 28 20 63 6f 6e 73 74 20 44 50 6f  _move( const DPo
2ec0: 73 26 20 63 2c 20 63 6f 6e 73 74 20 44 50 6f 73  s& c, const DPos
2ed0: 26 20 73 20 29 0d 0a 7b 0d 0a 09 73 74 61 74 69  & s )..{...stati
2ee0: 63 20 69 6e 74 20 62 75 73 79 5f 63 6e 74 20 3d  c int busy_cnt =
2ef0: 20 30 3b 0d 0a 09 69 66 28 20 65 64 69 74 5f 2e   0;...if( edit_.
2f00: 67 65 74 44 6f 63 28 29 2e 69 73 42 75 73 79 28  getDoc().isBusy(
2f10: 29 20 26 26 20 28 28 2b 2b 62 75 73 79 5f 63 6e  ) && ((++busy_cn
2f20: 74 29 26 30 78 66 66 29 20 29 0d 0a 09 09 72 65  t)&0xff) )....re
2f30: 74 75 72 6e 3b 0d 0a 0d 0a 09 75 6c 6f 6e 67 20  turn;.....ulong 
2f40: 63 61 64 20 3d 20 63 2e 61 64 3b 0d 0a 09 69 66  cad = c.ad;...if
2f50: 28 20 21 20 63 66 67 5f 2e 63 6f 75 6e 74 42 79  ( ! cfg_.countBy
2f60: 55 6e 69 63 6f 64 65 28 29 20 29 0d 0a 09 7b 0d  Unicode() )...{.
2f70: 0a 09 09 2f 2f 20 53 68 69 66 74 4a 49 53 95 97  ...// ShiftJIS..
2f80: 82 cc 42 79 74 65 90 94 83 4a 83 45 83 93 83 67  ..Byte...J.E...g
2f90: 0d 0a 09 09 63 6f 6e 73 74 20 75 6e 69 63 6f 64  ....const unicod
2fa0: 65 2a 20 63 75 20 3d 20 65 64 69 74 5f 2e 67 65  e* cu = edit_.ge
2fb0: 74 44 6f 63 28 29 2e 74 6c 28 63 2e 74 6c 29 3b  tDoc().tl(c.tl);
2fc0: 0d 0a 09 09 63 6f 6e 73 74 20 75 6c 6f 6e 67 20  ....const ulong 
2fd0: 74 61 62 20 3d 20 63 66 67 5f 2e 76 43 6f 6e 66  tab = cfg_.vConf
2fe0: 69 67 28 29 2e 74 61 62 73 74 65 70 3b 0d 0a 09  ig().tabstep;...
2ff0: 09 63 61 64 20 3d 20 30 3b 0d 0a 09 09 66 6f 72  .cad = 0;....for
3000: 28 20 75 6c 6f 6e 67 20 69 3d 30 3b 20 69 3c 63  ( ulong i=0; i<c
3010: 2e 61 64 3b 20 2b 2b 69 20 29 0d 0a 09 09 09 69  .ad; ++i ).....i
3020: 66 28 20 63 75 5b 69 5d 20 3d 3d 20 4c 27 5c 74  f( cu[i] == L'\t
3030: 27 20 29 0d 0a 09 09 09 09 63 61 64 20 3d 20 28  ' )......cad = (
3040: 63 61 64 2f 74 61 62 2b 31 29 2a 74 61 62 3b 0d  cad/tab+1)*tab;.
3050: 0a 09 09 09 65 6c 73 65 20 69 66 28 20 63 75 5b  ....else if( cu[
3060: 69 5d 3c 30 78 38 30 20 7c 7c 20 30 78 66 66 36  i]<0x80 || 0xff6
3070: 30 3c 3d 63 75 5b 69 5d 20 26 26 20 63 75 5b 69  0<=cu[i] && cu[i
3080: 5d 3c 3d 30 78 66 66 39 66 20 29 0d 0a 09 09 09  ]<=0xff9f ).....
3090: 09 63 61 64 20 3d 20 63 61 64 20 2b 20 31 3b 0d  .cad = cad + 1;.
30a0: 0a 09 09 09 65 6c 73 65 0d 0a 09 09 09 09 63 61  ....else......ca
30b0: 64 20 3d 20 63 61 64 20 2b 20 32 3b 0d 0a 09 7d  d = cad + 2;...}
30c0: 0d 0a 0d 0a 09 53 74 72 69 6e 67 20 73 74 72 3b  .....String str;
30d0: 0d 0a 09 73 74 72 20 2b 3d 20 54 45 58 54 28 27  ...str += TEXT('
30e0: 28 27 29 3b 0d 0a 09 73 74 72 20 2b 3d 20 53 74  (');...str += St
30f0: 72 69 6e 67 28 29 2e 53 65 74 49 6e 74 28 63 2e  ring().SetInt(c.
3100: 74 6c 2b 31 29 3b 0d 0a 09 73 74 72 20 2b 3d 20  tl+1);...str += 
3110: 54 45 58 54 28 27 2c 27 29 3b 0d 0a 09 73 74 72  TEXT(',');...str
3120: 20 2b 3d 20 53 74 72 69 6e 67 28 29 2e 53 65 74   += String().Set
3130: 49 6e 74 28 63 61 64 2b 31 29 3b 0d 0a 09 73 74  Int(cad+1);...st
3140: 72 20 2b 3d 20 54 45 58 54 28 27 29 27 29 3b 0d  r += TEXT(')');.
3150: 0a 09 69 66 28 20 63 20 21 3d 20 73 20 29 0d 0a  ..if( c != s )..
3160: 09 7b 0d 0a 09 09 75 6c 6f 6e 67 20 73 61 64 20  .{....ulong sad 
3170: 3d 20 73 2e 61 64 3b 0d 0a 09 09 69 66 28 20 21  = s.ad;....if( !
3180: 20 63 66 67 5f 2e 63 6f 75 6e 74 42 79 55 6e 69   cfg_.countByUni
3190: 63 6f 64 65 28 29 20 29 0d 0a 09 09 7b 0d 0a 09  code() )....{...
31a0: 09 09 2f 2f 20 53 68 69 66 74 4a 49 53 95 97 82  ..// ShiftJIS...
31b0: cc 42 79 74 65 90 94 83 4a 83 45 83 93 83 67 0d  .Byte...J.E...g.
31c0: 0a 09 09 09 63 6f 6e 73 74 20 75 6e 69 63 6f 64  ....const unicod
31d0: 65 2a 20 73 75 20 3d 20 65 64 69 74 5f 2e 67 65  e* su = edit_.ge
31e0: 74 44 6f 63 28 29 2e 74 6c 28 73 2e 74 6c 29 3b  tDoc().tl(s.tl);
31f0: 0d 0a 09 09 09 73 61 64 20 3d 20 30 3b 0d 0a 09  .....sad = 0;...
3200: 09 09 66 6f 72 28 20 75 6c 6f 6e 67 20 69 3d 30  ..for( ulong i=0
3210: 3b 20 69 3c 73 2e 61 64 3b 20 2b 2b 69 20 29 0d  ; i<s.ad; ++i ).
3220: 0a 09 09 09 09 73 61 64 20 2b 3d 20 28 73 75 5b  .....sad += (su[
3230: 69 5d 3c 30 78 38 30 20 7c 7c 20 30 78 66 66 36  i]<0x80 || 0xff6
3240: 30 3c 3d 73 75 5b 69 5d 20 26 26 20 73 75 5b 69  0<=su[i] && su[i
3250: 5d 3c 3d 30 78 66 66 39 66 20 3f 20 31 20 3a 20  ]<=0xff9f ? 1 : 
3260: 32 29 3b 0d 0a 09 09 7d 0d 0a 09 09 73 74 72 20  2);....}....str 
3270: 2b 3d 20 54 45 58 54 28 22 20 2d 20 28 22 29 3b  += TEXT(" - (");
3280: 0d 0a 09 09 73 74 72 20 2b 3d 20 53 74 72 69 6e  ....str += Strin
3290: 67 28 29 2e 53 65 74 49 6e 74 28 73 2e 74 6c 2b  g().SetInt(s.tl+
32a0: 31 29 3b 0d 0a 09 09 73 74 72 20 2b 3d 20 54 45  1);....str += TE
32b0: 58 54 28 27 2c 27 29 3b 0d 0a 09 09 73 74 72 20  XT(',');....str 
32c0: 2b 3d 20 53 74 72 69 6e 67 28 29 2e 53 65 74 49  += String().SetI
32d0: 6e 74 28 73 61 64 2b 31 29 3b 0d 0a 09 09 73 74  nt(sad+1);....st
32e0: 72 20 2b 3d 20 54 45 58 54 28 27 29 27 29 3b 0d  r += TEXT(')');.
32f0: 0a 09 7d 0d 0a 09 73 74 62 5f 2e 53 65 74 54 65  ..}...stb_.SetTe
3300: 78 74 28 20 73 74 72 2e 63 5f 73 74 72 28 29 20  xt( str.c_str() 
3310: 29 3b 0d 0a 7d 0d 0a 0d 0a 0d 0a 0d 0a 2f 2f 2d  );..}........//-
3320: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
3330: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
3340: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
3350: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
3360: 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 2f 2f 20 83 86 81  --------..// ...
3370: 5b 83 65 83 42 83 8a 83 65 83 42 81 5b 0d 0a 2f  [.e.B...e.B.[../
3380: 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  /---------------
3390: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
33a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
33b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
33c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 76 6f  ----------....vo
33d0: 69 64 20 47 72 65 65 6e 50 61 64 57 6e 64 3a 3a  id GreenPadWnd::
33e0: 4a 75 6d 70 54 6f 4c 69 6e 65 28 20 75 6c 6f 6e  JumpToLine( ulon
33f0: 67 20 6c 6e 20 29 0d 0a 7b 0d 0a 09 65 64 69 74  g ln )..{...edit
3400: 5f 2e 67 65 74 43 75 72 73 6f 72 28 29 2e 4d 6f  _.getCursor().Mo
3410: 76 65 43 75 72 28 20 44 50 6f 73 28 6c 6e 2d 31  veCur( DPos(ln-1
3420: 2c 30 29 2c 20 66 61 6c 73 65 20 29 3b 0d 0a 7d  ,0), false );..}
3430: 0d 0a 0d 0a 76 6f 69 64 20 47 72 65 65 6e 50 61  ....void GreenPa
3440: 64 57 6e 64 3a 3a 53 65 74 75 70 53 75 62 4d 65  dWnd::SetupSubMe
3450: 6e 75 28 29 0d 0a 7b 0d 0a 09 69 66 28 20 48 4d  nu()..{...if( HM
3460: 45 4e 55 20 6d 20 3d 20 3a 3a 47 65 74 53 75 62  ENU m = ::GetSub
3470: 4d 65 6e 75 28 20 3a 3a 47 65 74 53 75 62 4d 65  Menu( ::GetSubMe
3480: 6e 75 28 3a 3a 47 65 74 4d 65 6e 75 28 68 77 6e  nu(::GetMenu(hwn
3490: 64 28 29 29 2c 33 29 2c 34 20 29 20 29 0d 0a 09  d()),3),4 ) )...
34a0: 7b 0d 0a 09 09 63 66 67 5f 2e 53 65 74 44 6f 63  {....cfg_.SetDoc
34b0: 54 79 70 65 4d 65 6e 75 28 20 6d 2c 20 49 44 5f  TypeMenu( m, ID_
34c0: 43 4d 44 5f 44 4f 43 54 59 50 45 20 29 3b 0d 0a  CMD_DOCTYPE );..
34d0: 09 09 3a 3a 44 72 61 77 4d 65 6e 75 42 61 72 28  ..::DrawMenuBar(
34e0: 20 68 77 6e 64 28 29 20 29 3b 0d 0a 09 7d 0d 0a   hwnd() );...}..
34f0: 7d 0d 0a 0d 0a 76 6f 69 64 20 47 72 65 65 6e 50  }....void GreenP
3500: 61 64 57 6e 64 3a 3a 55 70 64 61 74 65 57 69 6e  adWnd::UpdateWin
3510: 64 6f 77 4e 61 6d 65 28 29 0d 0a 7b 0d 0a 09 2f  dowName()..{.../
3520: 2f 20 83 5e 83 43 83 67 83 8b 83 6f 81 5b 82 c9  / .^.C.g...o.[..
3530: 95 5c 8e a6 82 b3 82 ea 82 e9 95 b6 8e 9a 97 f1  .\..............
3540: 82 cc 92 b2 90 ae 0d 0a 09 2f 2f 20 5b 46 69 6c  .........// [Fil
3550: 65 4e 61 6d 65 20 2a 5d 20 2d 20 47 72 65 65 6e  eName *] - Green
3560: 50 61 64 0d 0a 09 53 74 72 69 6e 67 20 6e 61 6d  Pad...String nam
3570: 65 3b 0d 0a 09 6e 61 6d 65 20 2b 3d 20 54 45 58  e;...name += TEX
3580: 54 28 27 5b 27 29 3b 0d 0a 09 6e 61 6d 65 20 2b  T('[');...name +
3590: 3d 20 69 73 55 6e 74 69 74 6c 65 64 28 29 20 3f  = isUntitled() ?
35a0: 20 54 45 58 54 28 22 75 6e 74 69 74 6c 65 64 22   TEXT("untitled"
35b0: 29 20 3a 20 66 69 6c 65 6e 61 6d 65 5f 2e 6e 61  ) : filename_.na
35c0: 6d 65 28 29 3b 0d 0a 09 69 66 28 20 65 64 69 74  me();...if( edit
35d0: 5f 2e 67 65 74 44 6f 63 28 29 2e 69 73 4d 6f 64  _.getDoc().isMod
35e0: 69 66 69 65 64 28 29 20 29 20 6e 61 6d 65 20 2b  ified() ) name +
35f0: 3d 20 54 45 58 54 28 22 20 2a 22 29 3b 0d 0a 09  = TEXT(" *");...
3600: 6e 61 6d 65 20 2b 3d 20 54 45 58 54 28 22 5d 20  name += TEXT("] 
3610: 2d 20 22 29 3b 0d 0a 09 6e 61 6d 65 20 2b 3d 20  - ");...name += 
3620: 53 74 72 69 6e 67 28 49 44 53 5f 41 50 50 4e 41  String(IDS_APPNA
3630: 4d 45 29 2e 63 5f 73 74 72 28 29 3b 0d 0a 0d 0a  ME).c_str();....
3640: 09 53 65 74 54 65 78 74 28 20 6e 61 6d 65 2e 63  .SetText( name.c
3650: 5f 73 74 72 28 29 20 29 3b 0d 0a 09 73 74 62 5f  _str() );...stb_
3660: 2e 53 65 74 43 73 54 65 78 74 28 20 63 68 61 72  .SetCsText( char
3670: 53 65 74 73 5f 5b 63 73 69 5f 5d 2e 73 68 6f 72  Sets_[csi_].shor
3680: 74 4e 61 6d 65 20 29 3b 0d 0a 09 73 74 62 5f 2e  tName );...stb_.
3690: 53 65 74 4c 62 54 65 78 74 28 20 6c 62 5f 20 29  SetLbText( lb_ )
36a0: 3b 0d 0a 7d 0d 0a 0d 0a 76 6f 69 64 20 47 72 65  ;..}....void Gre
36b0: 65 6e 50 61 64 57 6e 64 3a 3a 53 65 74 75 70 4d  enPadWnd::SetupM
36c0: 52 55 4d 65 6e 75 28 29 0d 0a 7b 0d 0a 09 69 66  RUMenu()..{...if
36d0: 28 20 48 4d 45 4e 55 20 6d 20 3d 20 3a 3a 47 65  ( HMENU m = ::Ge
36e0: 74 53 75 62 4d 65 6e 75 28 20 3a 3a 47 65 74 53  tSubMenu( ::GetS
36f0: 75 62 4d 65 6e 75 28 3a 3a 47 65 74 4d 65 6e 75  ubMenu(::GetMenu
3700: 28 68 77 6e 64 28 29 29 2c 30 29 2c 38 20 29 20  (hwnd()),0),8 ) 
3710: 29 0d 0a 09 7b 0d 0a 09 09 63 66 67 5f 2e 53 65  )...{....cfg_.Se
3720: 74 55 70 4d 52 55 4d 65 6e 75 28 20 6d 2c 20 49  tUpMRUMenu( m, I
3730: 44 5f 43 4d 44 5f 4d 52 55 20 29 3b 0d 0a 09 09  D_CMD_MRU );....
3740: 3a 3a 44 72 61 77 4d 65 6e 75 42 61 72 28 20 68  ::DrawMenuBar( h
3750: 77 6e 64 28 29 20 29 3b 0d 0a 09 7d 0d 0a 7d 0d  wnd() );...}..}.
3760: 0a 0d 0a 76 6f 69 64 20 47 72 65 65 6e 50 61 64  ...void GreenPad
3770: 57 6e 64 3a 3a 6f 6e 5f 6d 72 75 28 20 69 6e 74  Wnd::on_mru( int
3780: 20 6e 6f 20 29 0d 0a 7b 0d 0a 09 50 61 74 68 20   no )..{...Path 
3790: 66 6e 20 3d 20 63 66 67 5f 2e 47 65 74 4d 52 55  fn = cfg_.GetMRU
37a0: 28 6e 6f 29 3b 0d 0a 09 69 66 28 20 66 6e 2e 6c  (no);...if( fn.l
37b0: 65 6e 28 29 20 21 3d 20 30 20 29 0d 0a 09 09 4f  en() != 0 )....O
37c0: 70 65 6e 28 20 66 6e 2c 20 41 75 74 6f 44 65 74  pen( fn, AutoDet
37d0: 65 63 74 20 29 3b 0d 0a 7d 0d 0a 0d 0a 0d 0a 0d  ect );..}.......
37e0: 0a 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  .//-------------
37f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
3800: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
3810: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
3820: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 2f 2f  ------------..//
3830: 20 90 dd 92 e8 8d 58 90 56 8f 88 97 9d 0d 0a 2f   .....X.V....../
3840: 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  /---------------
3850: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
3860: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
3870: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
3880: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 76 6f  ----------....vo
3890: 69 64 20 47 72 65 65 6e 50 61 64 57 6e 64 3a 3a  id GreenPadWnd::
38a0: 52 65 6c 6f 61 64 43 6f 6e 66 69 67 28 20 62 6f  ReloadConfig( bo
38b0: 6f 6c 20 6e 6f 53 65 74 44 6f 63 54 79 70 65 20  ol noSetDocType 
38c0: 29 0d 0a 7b 0d 0a 09 2f 2f 20 95 b6 8f 91 83 5e  )..{...// .....^
38d0: 83 43 83 76 83 8d 81 5b 83 68 0d 0a 09 69 66 28  .C.v...[.h...if(
38e0: 20 21 6e 6f 53 65 74 44 6f 63 54 79 70 65 20 29   !noSetDocType )
38f0: 0d 0a 09 7b 0d 0a 09 09 69 6e 74 20 74 20 3d 20  ...{....int t = 
3900: 63 66 67 5f 2e 53 65 74 44 6f 63 54 79 70 65 28  cfg_.SetDocType(
3910: 20 66 69 6c 65 6e 61 6d 65 5f 20 29 3b 0d 0a 09   filename_ );...
3920: 09 69 66 28 20 48 4d 45 4e 55 20 6d 20 3d 20 3a  .if( HMENU m = :
3930: 3a 47 65 74 53 75 62 4d 65 6e 75 28 20 3a 3a 47  :GetSubMenu( ::G
3940: 65 74 53 75 62 4d 65 6e 75 28 3a 3a 47 65 74 4d  etSubMenu(::GetM
3950: 65 6e 75 28 68 77 6e 64 28 29 29 2c 33 29 2c 34  enu(hwnd()),3),4
3960: 20 29 20 29 0d 0a 09 09 09 63 66 67 5f 2e 43 68   ) ).....cfg_.Ch
3970: 65 63 6b 4d 65 6e 75 28 20 6d 2c 20 74 20 29 3b  eckMenu( m, t );
3980: 0d 0a 09 7d 0d 0a 09 4c 4f 47 47 45 52 28 22 47  ...}...LOGGER("G
3990: 72 65 65 6e 50 61 64 57 6e 64 3a 3a 52 65 6c 6f  reenPadWnd::Relo
39a0: 61 64 43 6f 6e 66 69 67 20 44 6f 63 54 79 70 65  adConfig DocType
39b0: 4c 6f 61 64 65 64 22 29 3b 0d 0a 0d 0a 09 2f 2f  Loaded");.....//
39c0: 20 55 6e 64 6f 89 f1 90 94 90 a7 8c c0 0d 0a 09   Undo...........
39d0: 65 64 69 74 5f 2e 67 65 74 44 6f 63 28 29 2e 53  edit_.getDoc().S
39e0: 65 74 55 6e 64 6f 4c 69 6d 69 74 28 20 63 66 67  etUndoLimit( cfg
39f0: 5f 2e 75 6e 64 6f 4c 69 6d 69 74 28 29 20 29 3b  _.undoLimit() );
3a00: 0d 0a 0d 0a 09 2f 2f 20 8d 73 94 d4 8d 86 0d 0a  .....// .s......
3a10: 09 62 6f 6f 6c 20 6c 6e 20 3d 20 63 66 67 5f 2e  .bool ln = cfg_.
3a20: 73 68 6f 77 4c 4e 28 29 3b 0d 0a 09 65 64 69 74  showLN();...edit
3a30: 5f 2e 67 65 74 56 69 65 77 28 29 2e 53 68 6f 77  _.getView().Show
3a40: 4c 69 6e 65 4e 6f 28 20 6c 6e 20 29 3b 0d 0a 0d  LineNo( ln );...
3a50: 0a 09 2f 2f 20 90 dc 82 e8 95 d4 82 b5 95 fb 8e  ..// ...........
3a60: ae 0d 0a 09 77 72 61 70 5f 20 3d 20 63 66 67 5f  ....wrap_ = cfg_
3a70: 2e 77 72 61 70 54 79 70 65 28 29 3b 0d 0a 09 65  .wrapType();...e
3a80: 64 69 74 5f 2e 67 65 74 56 69 65 77 28 29 2e 53  dit_.getView().S
3a90: 65 74 57 72 61 70 54 79 70 65 28 20 77 72 61 70  etWrapType( wrap
3aa0: 5f 20 29 3b 0d 0a 0d 0a 09 2f 2f 20 90 46 81 45  _ );.....// .F.E
3ab0: 83 74 83 48 83 93 83 67 0d 0a 09 56 43 6f 6e 66  .t.H...g...VConf
3ac0: 69 67 20 76 63 20 3d 20 63 66 67 5f 2e 76 43 6f  ig vc = cfg_.vCo
3ad0: 6e 66 69 67 28 29 3b 0d 0a 09 65 64 69 74 5f 2e  nfig();...edit_.
3ae0: 67 65 74 56 69 65 77 28 29 2e 53 65 74 46 6f 6e  getView().SetFon
3af0: 74 28 20 76 63 20 29 3b 0d 0a 09 4c 4f 47 47 45  t( vc );...LOGGE
3b00: 52 28 22 47 72 65 65 6e 50 61 64 57 6e 64 3a 3a  R("GreenPadWnd::
3b10: 52 65 6c 6f 61 64 43 6f 6e 66 69 67 20 56 69 65  ReloadConfig Vie
3b20: 77 43 6f 6e 66 69 67 4c 6f 61 64 65 64 22 29 3b  wConfigLoaded");
3b30: 0d 0a 0d 0a 09 2f 2f 20 83 4c 81 5b 83 8f 81 5b  .....// .L.[...[
3b40: 83 68 83 74 83 40 83 43 83 8b 0d 0a 09 50 61 74  .h.t.@.C.....Pat
3b50: 68 20 6b 77 64 20 3d 20 63 66 67 5f 2e 6b 77 64  h kwd = cfg_.kwd
3b60: 46 69 6c 65 28 29 3b 0d 0a 09 46 69 6c 65 52 20  File();...FileR 
3b70: 66 70 3b 0d 0a 09 69 66 28 20 6b 77 64 2e 6c 65  fp;...if( kwd.le
3b80: 6e 28 29 21 3d 30 20 26 26 20 66 70 2e 4f 70 65  n()!=0 && fp.Ope
3b90: 6e 28 6b 77 64 2e 63 5f 73 74 72 28 29 29 20 29  n(kwd.c_str()) )
3ba0: 0d 0a 09 09 65 64 69 74 5f 2e 67 65 74 44 6f 63  ....edit_.getDoc
3bb0: 28 29 2e 53 65 74 4b 65 79 77 6f 72 64 28 28 63  ().SetKeyword((c
3bc0: 6f 6e 73 74 20 75 6e 69 63 6f 64 65 2a 29 66 70  onst unicode*)fp
3bd0: 2e 62 61 73 65 28 29 2c 66 70 2e 73 69 7a 65 28  .base(),fp.size(
3be0: 29 2f 32 29 3b 0d 0a 09 65 6c 73 65 0d 0a 09 09  )/2);...else....
3bf0: 65 64 69 74 5f 2e 67 65 74 44 6f 63 28 29 2e 53  edit_.getDoc().S
3c00: 65 74 4b 65 79 77 6f 72 64 28 4e 55 4c 4c 2c 30  etKeyword(NULL,0
3c10: 29 3b 0d 0a 09 4c 4f 47 47 45 52 28 22 47 72 65  );...LOGGER("Gre
3c20: 65 6e 50 61 64 57 6e 64 3a 3a 52 65 6c 6f 61 64  enPadWnd::Reload
3c30: 43 6f 6e 66 69 67 20 4b 65 79 77 6f 72 64 4c 6f  Config KeywordLo
3c40: 61 64 65 64 22 29 3b 0d 0a 7d 0d 0a 0d 0a 0d 0a  aded");..}......
3c50: 0d 0a 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ..//------------
3c60: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
3c70: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
3c80: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
3c90: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 2f  -------------../
3ca0: 2f 20 8a 4a 82 ad 8f 88 97 9d 0d 0a 2f 2f 2d 2d  / .J........//--
3cb0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
3cc0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
3cd0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
3ce0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
3cf0: 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 62 6f 6f 6c 20  -------....bool 
3d00: 47 72 65 65 6e 50 61 64 57 6e 64 3a 3a 53 68 6f  GreenPadWnd::Sho
3d10: 77 4f 70 65 6e 44 6c 67 28 20 50 61 74 68 2a 20  wOpenDlg( Path* 
3d20: 66 6e 2c 20 69 6e 74 2a 20 63 73 20 29 0d 0a 7b  fn, int* cs )..{
3d30: 0d 0a 09 2f 2f 20 5b 4f 70 65 6e 5d 5b 43 61 6e  ...// [Open][Can
3d40: 63 65 6c 5d 20 8a 4a 82 ad 83 74 83 40 83 43 83  cel] .J...t.@.C.
3d50: 8b 96 bc 8e 77 92 e8 83 5f 83 43 83 41 83 8d 83  ....w..._.C.A...
3d60: 4f 82 f0 95 5c 8e a6 0d 0a 09 53 74 72 69 6e 67  O...\.....String
3d70: 20 66 6c 73 74 5b 5d 20 3d 20 7b 0d 0a 09 09 53   flst[] = {....S
3d80: 74 72 69 6e 67 28 49 44 53 5f 54 58 54 46 49 4c  tring(IDS_TXTFIL
3d90: 45 53 29 2c 0d 0a 09 09 53 74 72 69 6e 67 28 63  ES),....String(c
3da0: 66 67 5f 2e 74 78 74 46 69 6c 65 46 69 6c 74 65  fg_.txtFileFilte
3db0: 72 28 29 29 2c 0d 0a 09 09 53 74 72 69 6e 67 28  r()),....String(
3dc0: 49 44 53 5f 41 4c 4c 46 49 4c 45 53 29 2c 0d 0a  IDS_ALLFILES),..
3dd0: 09 09 53 74 72 69 6e 67 28 54 45 58 54 28 22 2a  ..String(TEXT("*
3de0: 2e 2a 22 29 29 0d 0a 09 7d 3b 0d 0a 09 61 61 72  .*"))...};...aar
3df0: 72 3c 54 43 48 41 52 3e 20 66 69 6c 74 20 3d 20  r<TCHAR> filt = 
3e00: 4f 70 65 6e 46 69 6c 65 44 6c 67 3a 3a 43 6f 6e  OpenFileDlg::Con
3e10: 6e 65 63 74 57 69 74 68 4e 75 6c 6c 28 66 6c 73  nectWithNull(fls
3e20: 74 2c 63 6f 75 6e 74 6f 66 28 66 6c 73 74 29 29  t,countof(flst))
3e30: 3b 0d 0a 0d 0a 09 4f 70 65 6e 46 69 6c 65 44 6c  ;.....OpenFileDl
3e40: 67 20 6f 66 64 28 20 63 68 61 72 53 65 74 73 5f  g ofd( charSets_
3e50: 20 29 3b 0d 0a 09 62 6f 6f 6c 20 6f 6b 20 3d 20   );...bool ok = 
3e60: 6f 66 64 2e 44 6f 4d 6f 64 61 6c 28 20 68 77 6e  ofd.DoModal( hwn
3e70: 64 28 29 2c 20 66 69 6c 74 2e 67 65 74 28 29 2c  d(), filt.get(),
3e80: 20 66 69 6c 65 6e 61 6d 65 5f 2e 63 5f 73 74 72   filename_.c_str
3e90: 28 29 20 29 3b 0d 0a 09 69 66 28 20 6f 6b 20 29  () );...if( ok )
3ea0: 0d 0a 09 7b 0d 0a 09 09 2a 66 6e 20 3d 20 6f 66  ...{....*fn = of
3eb0: 64 2e 66 69 6c 65 6e 61 6d 65 28 29 3b 0d 0a 09  d.filename();...
3ec0: 09 2a 63 73 20 3d 20 63 68 61 72 53 65 74 73 5f  .*cs = charSets_
3ed0: 5b 6f 66 64 2e 63 73 69 28 29 5d 2e 49 44 3b 0d  [ofd.csi()].ID;.
3ee0: 0a 09 7d 0d 0a 0d 0a 09 72 65 74 75 72 6e 20 6f  ..}.....return o
3ef0: 6b 3b 0d 0a 7d 0d 0a 0d 0a 62 6f 6f 6c 20 47 72  k;..}....bool Gr
3f00: 65 65 6e 50 61 64 57 6e 64 3a 3a 4f 70 65 6e 28  eenPadWnd::Open(
3f10: 20 63 6f 6e 73 74 20 6b 69 3a 3a 50 61 74 68 26   const ki::Path&
3f20: 20 66 6e 2c 20 69 6e 74 20 63 73 20 29 0d 0a 7b   fn, int cs )..{
3f30: 0d 0a 09 69 66 28 20 69 73 55 6e 74 69 74 6c 65  ...if( isUntitle
3f40: 64 28 29 20 26 26 20 21 65 64 69 74 5f 2e 67 65  d() && !edit_.ge
3f50: 74 44 6f 63 28 29 2e 69 73 4d 6f 64 69 66 69 65  tDoc().isModifie
3f60: 64 28 29 20 29 0d 0a 09 7b 0d 0a 09 09 2f 2f 20  d() )...{....// 
3f70: 96 b3 91 e8 82 c5 96 b3 95 cf 8d 58 82 be 82 c1  ...........X....
3f80: 82 bd 82 e7 8e a9 95 aa 82 c5 8a 4a 82 ad 0d 0a  ...........J....
3f90: 09 09 72 65 74 75 72 6e 20 4f 70 65 6e 42 79 4d  ..return OpenByM
3fa0: 79 73 65 6c 66 28 20 66 6e 2c 20 63 73 20 29 3b  yself( fn, cs );
3fb0: 0d 0a 09 7d 0d 0a 09 65 6c 73 65 0d 0a 09 7b 0d  ...}...else...{.
3fc0: 0a 09 09 2f 2f 20 93 af 82 b6 91 8b 82 c5 8a 4a  ...// .........J
3fd0: 82 ad 83 82 81 5b 83 68 82 c8 82 e7 82 bb 82 a4  .....[.h........
3fe0: 82 b7 82 e9 0d 0a 09 09 69 66 28 20 63 66 67 5f  ........if( cfg_
3ff0: 2e 6f 70 65 6e 53 61 6d 65 28 29 20 29 0d 0a 09  .openSame() )...
4000: 09 09 72 65 74 75 72 6e 20 28 20 41 73 6b 54 6f  ..return ( AskTo
4010: 53 61 76 65 28 29 20 3f 20 4f 70 65 6e 42 79 4d  Save() ? OpenByM
4020: 79 73 65 6c 66 28 20 66 6e 2c 20 63 73 20 29 20  yself( fn, cs ) 
4030: 3a 20 74 72 75 65 20 29 3b 0d 0a 0d 0a 09 09 2f  : true );....../
4040: 2f 20 82 bb 82 a4 82 c5 82 c8 82 af 82 ea 82 ce  / ..............
4050: 91 bc 82 d6 89 f1 82 b7 0d 0a 09 09 53 74 72 69  ............Stri
4060: 6e 67 0d 0a 09 09 09 63 6d 64 20 20 3d 20 54 45  ng.....cmd  = TE
4070: 58 54 28 22 2d 63 22 29 3b 0d 0a 09 09 09 63 6d  XT("-c");.....cm
4080: 64 20 2b 3d 20 53 74 72 69 6e 67 28 29 2e 53 65  d += String().Se
4090: 74 49 6e 74 28 20 63 73 20 29 3b 0d 0a 09 09 09  tInt( cs );.....
40a0: 63 6d 64 20 2b 3d 20 54 45 58 54 28 22 20 5c 22  cmd += TEXT(" \"
40b0: 22 29 3b 0d 0a 09 09 09 63 6d 64 20 2b 3d 20 66  ");.....cmd += f
40c0: 6e 3b 0d 0a 09 09 09 63 6d 64 20 2b 3d 20 54 45  n;.....cmd += TE
40d0: 58 54 28 27 5c 22 27 29 3b 0d 0a 09 09 42 6f 6f  XT('\"');....Boo
40e0: 74 4e 65 77 50 72 6f 63 65 73 73 28 20 63 6d 64  tNewProcess( cmd
40f0: 2e 63 5f 73 74 72 28 29 20 29 3b 0d 0a 09 09 72  .c_str() );....r
4100: 65 74 75 72 6e 20 74 72 75 65 3b 0d 0a 09 7d 0d  eturn true;...}.
4110: 0a 7d 0d 0a 0d 0a 62 6f 6f 6c 20 47 72 65 65 6e  .}....bool Green
4120: 50 61 64 57 6e 64 3a 3a 4f 70 65 6e 42 79 4d 79  PadWnd::OpenByMy
4130: 73 65 6c 66 28 20 63 6f 6e 73 74 20 6b 69 3a 3a  self( const ki::
4140: 50 61 74 68 26 20 66 6e 2c 20 69 6e 74 20 63 73  Path& fn, int cs
4150: 2c 20 62 6f 6f 6c 20 6e 65 65 64 52 65 43 6f 6e  , bool needReCon
4160: 66 20 29 0d 0a 7b 0d 0a 09 2f 2f 20 83 74 83 40  f )..{...// .t.@
4170: 83 43 83 8b 82 f0 8a 4a 82 af 82 c8 82 a9 82 c1  .C.....J........
4180: 82 bd 82 e7 82 bb 82 b1 82 c5 82 a8 82 b5 82 dc  ................
4190: 82 a2 81 42 0d 0a 09 61 70 74 72 3c 54 65 78 74  ...B...aptr<Text
41a0: 46 69 6c 65 52 3e 20 74 66 28 20 6e 65 77 20 54  FileR> tf( new T
41b0: 65 78 74 46 69 6c 65 52 28 63 73 29 20 29 3b 0d  extFileR(cs) );.
41c0: 0a 09 69 66 28 20 21 74 66 2d 3e 4f 70 65 6e 28  ..if( !tf->Open(
41d0: 20 66 6e 2e 63 5f 73 74 72 28 29 20 29 20 29 0d   fn.c_str() ) ).
41e0: 0a 09 7b 0d 0a 09 09 2f 2f 20 45 52 52 4f 52 21  ..{....// ERROR!
41f0: 0d 0a 09 09 4d 73 67 42 6f 78 28 20 53 74 72 69  ....MsgBox( Stri
4200: 6e 67 28 49 44 53 5f 4f 50 45 4e 45 52 52 4f 52  ng(IDS_OPENERROR
4210: 29 2e 63 5f 73 74 72 28 29 20 29 3b 0d 0a 09 09  ).c_str() );....
4220: 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0d 0a 09  return false;...
4230: 7d 0d 0a 0d 0a 09 2f 2f 20 8e a9 95 aa 93 e0 95  }.....// .......
4240: 94 82 cc 8a c7 97 9d 8f ee 95 f1 82 f0 8d 58 90  ..............X.
4250: 56 0d 0a 09 69 66 28 20 66 6e 5b 30 5d 3d 3d 54  V...if( fn[0]==T
4260: 45 58 54 28 27 5c 5c 27 29 20 7c 7c 20 66 6e 5b  EXT('\\') || fn[
4270: 31 5d 3d 3d 54 45 58 54 28 27 3a 27 29 20 29 0d  1]==TEXT(':') ).
4280: 0a 09 09 66 69 6c 65 6e 61 6d 65 5f 20 3d 20 66  ...filename_ = f
4290: 6e 3b 0d 0a 09 65 6c 73 65 0d 0a 09 09 66 69 6c  n;...else....fil
42a0: 65 6e 61 6d 65 5f 20 3d 20 50 61 74 68 28 20 50  ename_ = Path( P
42b0: 61 74 68 3a 3a 43 75 72 20 29 20 2b 20 66 6e 3b  ath::Cur ) + fn;
42c0: 0d 0a 09 69 66 28 20 74 66 2d 3e 73 69 7a 65 28  ...if( tf->size(
42d0: 29 20 29 0d 0a 09 7b 0d 0a 09 09 63 73 69 5f 20  ) )...{....csi_ 
42e0: 20 20 20 20 20 3d 20 63 68 61 72 53 65 74 73 5f       = charSets_
42f0: 2e 66 69 6e 64 43 73 69 28 20 74 66 2d 3e 63 6f  .findCsi( tf->co
4300: 64 65 70 61 67 65 28 29 20 29 3b 0d 0a 09 09 69  depage() );....i
4310: 66 28 20 74 66 2d 3e 6e 6f 6c 62 5f 66 6f 75 6e  f( tf->nolb_foun
4320: 64 28 29 20 29 0d 0a 09 09 09 6c 62 5f 20 20 20  d() ).....lb_   
4330: 20 20 20 20 3d 20 63 66 67 5f 2e 47 65 74 4e 65      = cfg_.GetNe
4340: 77 66 69 6c 65 4c 42 28 29 3b 0d 0a 09 09 65 6c  wfileLB();....el
4350: 73 65 0d 0a 09 09 09 6c 62 5f 20 20 20 20 20 20  se.....lb_      
4360: 20 3d 20 74 66 2d 3e 6c 69 6e 65 62 72 65 61 6b   = tf->linebreak
4370: 28 29 3b 0d 0a 09 7d 0d 0a 09 65 6c 73 65 0d 0a  ();...}...else..
4380: 09 7b 20 2f 2f 20 8b f3 83 74 83 40 83 43 83 8b  .{ // ...t.@.C..
4390: 82 cc 8f ea 8d 87 82 cd 90 56 8b 4b 8d ec 90 ac  .........V.K....
43a0: 82 c6 93 af 82 b6 88 b5 82 a2 0d 0a 09 09 63 73  ..............cs
43b0: 69 5f 20 20 20 20 20 20 3d 20 63 66 67 5f 2e 47  i_      = cfg_.G
43c0: 65 74 4e 65 77 66 69 6c 65 43 73 69 28 29 3b 0d  etNewfileCsi();.
43d0: 0a 09 09 6c 62 5f 20 20 20 20 20 20 20 3d 20 63  ...lb_       = c
43e0: 66 67 5f 2e 47 65 74 4e 65 77 66 69 6c 65 4c 42  fg_.GetNewfileLB
43f0: 28 29 3b 0d 0a 09 7d 0d 0a 09 66 69 6c 65 6e 61  ();...}...filena
4400: 6d 65 5f 2e 42 65 53 68 6f 72 74 4c 6f 6e 67 53  me_.BeShortLongS
4410: 74 79 6c 65 28 29 3b 0d 0a 0d 0a 09 2f 2f 20 83  tyle();.....// .
4420: 4a 83 8c 83 93 83 67 83 66 83 42 83 8c 83 4e 83  J.....g.f.B...N.
4430: 67 83 8a 82 f0 81 41 83 74 83 40 83 43 83 8b 82  g.....A.t.@.C...
4440: cc 82 a0 82 e9 88 ca 92 75 88 c8 8a 4f 82 c9 82  ........u...O...
4450: b5 82 c4 82 a8 82 ad 0d 0a 09 2f 2f 20 81 69 82  ..........// .i.
4460: b1 82 a4 82 b5 82 c8 82 a2 82 c6 81 41 8a 4a 82  ............A.J.
4470: a2 82 c4 82 a2 82 e9 83 74 83 40 83 43 83 8b 82  ........t.@.C...
4480: cc 82 a0 82 e9 83 66 83 42 83 8c 83 4e 83 67 83  ......f.B...N.g.
4490: 8a 82 aa 8d ed 8f 9c 82 c5 82 ab 82 c8 82 a2 81  ................
44a0: 6a 0d 0a 09 3a 3a 53 65 74 43 75 72 72 65 6e 74  j...::SetCurrent
44b0: 44 69 72 65 63 74 6f 72 79 28 20 50 61 74 68 28  Directory( Path(
44c0: 66 69 6c 65 6e 61 6d 65 5f 29 2e 42 65 44 72 69  filename_).BeDri
44d0: 76 65 4f 6e 6c 79 28 29 2e 63 5f 73 74 72 28 29  veOnly().c_str()
44e0: 20 29 3b 0d 0a 0d 0a 09 2f 2f 20 95 b6 8f 91 83   );.....// .....
44f0: 5e 83 43 83 76 82 c9 89 9e 82 b6 82 c4 95 5c 8e  ^.C.v.........\.
4500: a6 82 f0 8d 58 90 56 0d 0a 09 69 66 28 20 6e 65  ....X.V...if( ne
4510: 65 64 52 65 43 6f 6e 66 20 29 0d 0a 09 09 52 65  edReConf )....Re
4520: 6c 6f 61 64 43 6f 6e 66 69 67 28 29 3b 0d 0a 0d  loadConfig();...
4530: 0a 09 2f 2f 20 8a 4a 82 ad 0d 0a 09 65 64 69 74  ..// .J.....edit
4540: 5f 2e 67 65 74 44 6f 63 28 29 2e 43 6c 65 61 72  _.getDoc().Clear
4550: 41 6c 6c 28 29 3b 0d 0a 09 65 64 69 74 5f 2e 67  All();...edit_.g
4560: 65 74 44 6f 63 28 29 2e 4f 70 65 6e 46 69 6c 65  etDoc().OpenFile
4570: 28 20 74 66 20 29 3b 0d 0a 0d 0a 09 2f 2f 20 83  ( tf );.....// .
4580: 5e 83 43 83 67 83 8b 83 6f 81 5b 8d 58 90 56 0d  ^.C.g...o.[.X.V.
4590: 0a 09 55 70 64 61 74 65 57 69 6e 64 6f 77 4e 61  ..UpdateWindowNa
45a0: 6d 65 28 29 3b 0d 0a 0d 0a 09 2f 2f 20 5b 8d c5  me();.....// [..
45b0: 8b df 8e 67 82 c1 82 bd 83 74 83 40 83 43 83 8b  ...g.....t.@.C..
45c0: 5d 82 d6 92 c7 89 c1 0d 0a 09 63 66 67 5f 2e 41  ].........cfg_.A
45d0: 64 64 4d 52 55 28 20 66 69 6c 65 6e 61 6d 65 5f  ddMRU( filename_
45e0: 20 29 3b 0d 0a 09 48 57 4e 44 20 77 6e 64 20 3d   );...HWND wnd =
45f0: 20 4e 55 4c 4c 3b 0d 0a 09 77 68 69 6c 65 28 20   NULL;...while( 
4600: 4e 55 4c 4c 21 3d 28 77 6e 64 3d 3a 3a 46 69 6e  NULL!=(wnd=::Fin
4610: 64 57 69 6e 64 6f 77 45 78 28 20 4e 55 4c 4c 2c  dWindowEx( NULL,
4620: 20 77 6e 64 2c 20 63 6c 61 73 73 4e 61 6d 65 5f   wnd, className_
4630: 2c 20 4e 55 4c 4c 20 29 29 20 29 0d 0a 09 09 53  , NULL )) )....S
4640: 65 6e 64 4d 65 73 73 61 67 65 28 20 77 6e 64 2c  endMessage( wnd,
4650: 20 47 50 4d 5f 4d 52 55 43 48 41 4e 47 45 44 2c   GPM_MRUCHANGED,
4660: 20 30 2c 20 30 20 29 3b 0d 0a 0d 0a 09 72 65 74   0, 0 );.....ret
4670: 75 72 6e 20 74 72 75 65 3b 0d 0a 7d 0d 0a 0d 0a  urn true;..}....
4680: 0d 0a 0d 0a 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ....//----------
4690: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
46a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
46b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
46c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d  ---------------.
46d0: 0a 2f 2f 20 95 db 91 b6 8f 88 97 9d 0d 0a 2f 2f  .// ..........//
46e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
46f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
4700: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
4710: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
4720: 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 62 6f 6f  ---------....boo
4730: 6c 20 47 72 65 65 6e 50 61 64 57 6e 64 3a 3a 53  l GreenPadWnd::S
4740: 68 6f 77 53 61 76 65 44 6c 67 28 29 0d 0a 7b 0d  howSaveDlg()..{.
4750: 0a 09 2f 2f 20 5b 53 61 76 65 5d 5b 43 61 6e 63  ..// [Save][Canc
4760: 65 6c 5d 20 95 db 91 b6 90 e6 83 74 83 40 83 43  el] .......t.@.C
4770: 83 8b 96 bc 8e 77 92 e8 83 5f 83 43 83 41 83 8d  .....w..._.C.A..
4780: 83 4f 82 f0 95 5c 8e a6 0d 0a 0d 0a 09 53 74 72  .O...\.......Str
4790: 69 6e 67 20 66 6c 73 74 5b 5d 20 3d 20 7b 0d 0a  ing flst[] = {..
47a0: 09 09 53 74 72 69 6e 67 28 49 44 53 5f 41 4c 4c  ..String(IDS_ALL
47b0: 46 49 4c 45 53 29 2c 0d 0a 09 09 53 74 72 69 6e  FILES),....Strin
47c0: 67 28 54 45 58 54 28 22 2a 2e 2a 22 29 29 0d 0a  g(TEXT("*.*"))..
47d0: 09 7d 3b 0d 0a 09 61 61 72 72 3c 54 43 48 41 52  .};...aarr<TCHAR
47e0: 3e 20 66 69 6c 74 20 3d 20 53 61 76 65 46 69 6c  > filt = SaveFil
47f0: 65 44 6c 67 3a 3a 43 6f 6e 6e 65 63 74 57 69 74  eDlg::ConnectWit
4800: 68 4e 75 6c 6c 28 20 66 6c 73 74 2c 20 63 6f 75  hNull( flst, cou
4810: 6e 74 6f 66 28 66 6c 73 74 29 20 29 3b 0d 0a 0d  ntof(flst) );...
4820: 0a 09 53 61 76 65 46 69 6c 65 44 6c 67 20 73 66  ..SaveFileDlg sf
4830: 64 28 20 63 68 61 72 53 65 74 73 5f 2c 20 63 73  d( charSets_, cs
4840: 69 5f 2c 20 6c 62 5f 20 29 3b 0d 0a 09 69 66 28  i_, lb_ );...if(
4850: 20 21 73 66 64 2e 44 6f 4d 6f 64 61 6c 28 20 68   !sfd.DoModal( h
4860: 77 6e 64 28 29 2c 20 66 69 6c 74 2e 67 65 74 28  wnd(), filt.get(
4870: 29 2c 20 66 69 6c 65 6e 61 6d 65 5f 2e 63 5f 73  ), filename_.c_s
4880: 74 72 28 29 20 29 20 29 0d 0a 09 09 72 65 74 75  tr() ) )....retu
4890: 72 6e 20 66 61 6c 73 65 3b 0d 0a 0d 0a 09 66 69  rn false;.....fi
48a0: 6c 65 6e 61 6d 65 5f 20 3d 20 73 66 64 2e 66 69  lename_ = sfd.fi
48b0: 6c 65 6e 61 6d 65 28 29 3b 0d 0a 09 63 73 69 5f  lename();...csi_
48c0: 20 20 20 20 20 20 3d 20 73 66 64 2e 63 73 69 28        = sfd.csi(
48d0: 29 3b 0d 0a 09 6c 62 5f 20 20 20 20 20 20 20 3d  );...lb_       =
48e0: 20 73 66 64 2e 6c 62 28 29 3b 0d 0a 0d 0a 09 72   sfd.lb();.....r
48f0: 65 74 75 72 6e 20 74 72 75 65 3b 0d 0a 7d 0d 0a  eturn true;..}..
4900: 0d 0a 62 6f 6f 6c 20 47 72 65 65 6e 50 61 64 57  ..bool GreenPadW
4910: 6e 64 3a 3a 53 61 76 65 5f 73 68 6f 77 44 6c 67  nd::Save_showDlg
4920: 49 66 4e 65 65 64 65 64 28 29 0d 0a 7b 0d 0a 09  IfNeeded()..{...
4930: 62 6f 6f 6c 20 77 61 73 55 6e 74 69 74 6c 65 64  bool wasUntitled
4940: 20 3d 20 69 73 55 6e 74 69 74 6c 65 64 28 29 3b   = isUntitled();
4950: 0d 0a 0d 0a 09 2f 2f 20 5b 53 61 76 65 5d 5b 43  .....// [Save][C
4960: 61 6e 63 65 6c 5d 20 83 74 83 40 83 43 83 8b 96  ancel] .t.@.C...
4970: bc 96 a2 92 e8 82 c8 82 e7 83 5f 83 43 83 41 83  .........._.C.A.
4980: 8d 83 4f 95 5c 8e a6 0d 0a 09 69 66 28 20 69 73  ..O.\.....if( is
4990: 55 6e 74 69 74 6c 65 64 28 29 20 29 0d 0a 09 09  Untitled() )....
49a0: 69 66 28 20 21 53 68 6f 77 53 61 76 65 44 6c 67  if( !ShowSaveDlg
49b0: 28 29 20 29 0d 0a 09 09 09 72 65 74 75 72 6e 20  () ).....return 
49c0: 66 61 6c 73 65 3b 0d 0a 09 69 66 28 20 53 61 76  false;...if( Sav
49d0: 65 28 29 20 29 0d 0a 09 7b 0d 0a 09 09 69 66 28  e() )...{....if(
49e0: 20 77 61 73 55 6e 74 69 74 6c 65 64 20 29 0d 0a   wasUntitled )..
49f0: 09 09 09 52 65 6c 6f 61 64 43 6f 6e 66 69 67 28  ...ReloadConfig(
4a00: 29 3b 20 2f 2f 20 95 b6 8f 91 83 5e 83 43 83 76  ); // .....^.C.v
4a10: 82 c9 89 9e 82 b6 82 c4 95 5c 8e a6 82 f0 8d 58  .........\.....X
4a20: 90 56 0d 0a 09 09 72 65 74 75 72 6e 20 74 72 75  .V....return tru
4a30: 65 3b 0d 0a 09 7d 0d 0a 09 72 65 74 75 72 6e 20  e;...}...return 
4a40: 66 61 6c 73 65 3b 0d 0a 7d 0d 0a 0d 0a 62 6f 6f  false;..}....boo
4a50: 6c 20 47 72 65 65 6e 50 61 64 57 6e 64 3a 3a 41  l GreenPadWnd::A
4a60: 73 6b 54 6f 53 61 76 65 28 29 0d 0a 7b 0d 0a 09  skToSave()..{...
4a70: 2f 2f 20 95 cf 8d 58 82 b3 82 ea 82 c4 82 a2 82  // ...X.........
4a80: bd 82 e7 81 41 0d 0a 09 2f 2f 20 5b 59 65 73 5d  ....A...// [Yes]
4a90: 5b 4e 6f 5d 5b 43 61 6e 63 65 6c 5d 20 95 db 91  [No][Cancel] ...
4aa0: b6 82 b7 82 e9 82 a9 82 c7 82 a4 82 a9 90 71 82  ..............q.
4ab0: cb 82 e9 81 42 0d 0a 09 2f 2f 20 95 db 91 b6 82  ....B...// .....
4ac0: b7 82 e9 82 c8 82 e7 0d 0a 09 2f 2f 20 5b 53 61  ..........// [Sa
4ad0: 76 65 5d 5b 43 61 6e 63 65 6c 5d 20 20 20 20 83  ve][Cancel]    .
4ae0: 74 83 40 83 43 83 8b 96 bc 96 a2 92 e8 82 c8 82  t.@.C...........
4af0: e7 83 5f 83 43 83 41 83 8d 83 4f 95 5c 8e a6 0d  .._.C.A...O.\...
4b00: 0a 0d 0a 09 69 66 28 20 65 64 69 74 5f 2e 67 65  ....if( edit_.ge
4b10: 74 44 6f 63 28 29 2e 69 73 4d 6f 64 69 66 69 65  tDoc().isModifie
4b20: 64 28 29 20 29 0d 0a 09 7b 0d 0a 09 09 69 6e 74  d() )...{....int
4b30: 20 61 6e 73 77 65 72 20 3d 20 4d 73 67 42 6f 78   answer = MsgBox
4b40: 28 0d 0a 09 09 09 53 74 72 69 6e 67 28 49 44 53  (.....String(IDS
4b50: 5f 41 53 4b 54 4f 53 41 56 45 29 2e 63 5f 73 74  _ASKTOSAVE).c_st
4b60: 72 28 29 2c 0d 0a 09 09 09 53 74 72 69 6e 67 28  r(),.....String(
4b70: 49 44 53 5f 41 50 50 4e 41 4d 45 29 2e 63 5f 73  IDS_APPNAME).c_s
4b80: 74 72 28 29 2c 0d 0a 09 09 09 4d 42 5f 59 45 53  tr(),.....MB_YES
4b90: 4e 4f 43 41 4e 43 45 4c 7c 4d 42 5f 49 43 4f 4e  NOCANCEL|MB_ICON
4ba0: 51 55 45 53 54 49 4f 4e 0d 0a 09 09 29 3b 0d 0a  QUESTION....);..
4bb0: 09 09 69 66 28 20 61 6e 73 77 65 72 20 3d 3d 20  ..if( answer == 
4bc0: 49 44 59 45 53 20 29 20 20 20 20 72 65 74 75 72  IDYES )    retur
4bd0: 6e 20 53 61 76 65 5f 73 68 6f 77 44 6c 67 49 66  n Save_showDlgIf
4be0: 4e 65 65 64 65 64 28 29 3b 0d 0a 09 09 69 66 28  Needed();....if(
4bf0: 20 61 6e 73 77 65 72 20 3d 3d 20 49 44 43 41 4e   answer == IDCAN
4c00: 43 45 4c 20 29 20 72 65 74 75 72 6e 20 66 61 6c  CEL ) return fal
4c10: 73 65 3b 0d 0a 09 7d 0d 0a 09 72 65 74 75 72 6e  se;...}...return
4c20: 20 74 72 75 65 3b 0d 0a 7d 0d 0a 0d 0a 62 6f 6f   true;..}....boo
4c30: 6c 20 47 72 65 65 6e 50 61 64 57 6e 64 3a 3a 53  l GreenPadWnd::S
4c40: 61 76 65 28 29 0d 0a 7b 0d 0a 09 54 65 78 74 46  ave()..{...TextF
4c50: 69 6c 65 57 20 74 66 28 20 63 68 61 72 53 65 74  ileW tf( charSet
4c60: 73 5f 5b 63 73 69 5f 5d 2e 49 44 2c 20 6c 62 5f  s_[csi_].ID, lb_
4c70: 20 29 3b 0d 0a 09 69 66 28 20 74 66 2e 4f 70 65   );...if( tf.Ope
4c80: 6e 28 20 66 69 6c 65 6e 61 6d 65 5f 2e 63 5f 73  n( filename_.c_s
4c90: 74 72 28 29 20 29 20 29 0d 0a 09 7b 0d 0a 09 09  tr() ) )...{....
4ca0: 2f 2f 20 96 b3 8e 96 83 74 83 40 83 43 83 8b 82  // .....t.@.C...
4cb0: c9 95 db 91 b6 82 c5 82 ab 82 bd 8f ea 8d 87 0d  ................
4cc0: 0a 09 09 65 64 69 74 5f 2e 67 65 74 44 6f 63 28  ...edit_.getDoc(
4cd0: 29 2e 53 61 76 65 46 69 6c 65 28 20 74 66 20 29  ).SaveFile( tf )
4ce0: 3b 0d 0a 09 09 55 70 64 61 74 65 57 69 6e 64 6f  ;....UpdateWindo
4cf0: 77 4e 61 6d 65 28 29 3b 0d 0a 09 09 2f 2f 20 5b  wName();....// [
4d00: 8d c5 8b df 8e 67 82 c1 82 bd 83 74 83 40 83 43  .....g.....t.@.C
4d10: 83 8b 5d 8d 58 90 56 0d 0a 09 09 63 66 67 5f 2e  ..].X.V....cfg_.
4d20: 41 64 64 4d 52 55 28 20 66 69 6c 65 6e 61 6d 65  AddMRU( filename
4d30: 5f 20 29 3b 0d 0a 09 09 48 57 4e 44 20 77 6e 64  _ );....HWND wnd
4d40: 20 3d 20 4e 55 4c 4c 3b 0d 0a 09 09 77 68 69 6c   = NULL;....whil
4d50: 65 28 20 4e 55 4c 4c 21 3d 28 77 6e 64 3d 3a 3a  e( NULL!=(wnd=::
4d60: 46 69 6e 64 57 69 6e 64 6f 77 45 78 28 20 4e 55  FindWindowEx( NU
4d70: 4c 4c 2c 20 77 6e 64 2c 20 63 6c 61 73 73 4e 61  LL, wnd, classNa
4d80: 6d 65 5f 2c 20 4e 55 4c 4c 20 29 29 20 29 0d 0a  me_, NULL )) )..
4d90: 09 09 09 53 65 6e 64 4d 65 73 73 61 67 65 28 20  ...SendMessage( 
4da0: 77 6e 64 2c 20 47 50 4d 5f 4d 52 55 43 48 41 4e  wnd, GPM_MRUCHAN
4db0: 47 45 44 2c 20 30 2c 20 30 20 29 3b 0d 0a 09 09  GED, 0, 0 );....
4dc0: 72 65 74 75 72 6e 20 74 72 75 65 3b 0d 0a 09 7d  return true;...}
4dd0: 0d 0a 0d 0a 09 2f 2f 20 45 72 72 6f 72 21 0d 0a  .....// Error!..
4de0: 09 4d 73 67 42 6f 78 28 20 53 74 72 69 6e 67 28  .MsgBox( String(
4df0: 49 44 53 5f 53 41 56 45 45 52 52 4f 52 29 2e 63  IDS_SAVEERROR).c
4e00: 5f 73 74 72 28 29 20 29 3b 0d 0a 09 72 65 74 75  _str() );...retu
4e10: 72 6e 20 66 61 6c 73 65 3b 0d 0a 7d 0d 0a 0d 0a  rn false;..}....
4e20: 0d 0a 0d 0a 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ....//----------
4e30: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
4e40: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
4e50: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
4e60: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d  ---------------.
4e70: 0a 2f 2f 20 83 81 83 43 83 93 83 45 83 43 83 93  .// ...C...E.C..
4e80: 83 68 83 45 82 cc 8f 89 8a fa 89 bb 0d 0a 2f 2f  .h.E..........//
4e90: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
4ea0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
4eb0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
4ec0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
4ed0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 47 72 65  ---------....Gre
4ee0: 65 6e 50 61 64 57 6e 64 3a 3a 43 6c 73 4e 61 6d  enPadWnd::ClsNam
4ef0: 65 20 47 72 65 65 6e 50 61 64 57 6e 64 3a 3a 63  e GreenPadWnd::c
4f00: 6c 61 73 73 4e 61 6d 65 5f 20 3d 20 54 45 58 54  lassName_ = TEXT
4f10: 28 22 47 72 65 65 6e 50 61 64 20 4d 61 69 6e 57  ("GreenPad MainW
4f20: 6e 64 22 29 3b 0d 0a 0d 0a 47 72 65 65 6e 50 61  nd");....GreenPa
4f30: 64 57 6e 64 3a 3a 47 72 65 65 6e 50 61 64 57 6e  dWnd::GreenPadWn
4f40: 64 28 29 0d 0a 09 3a 20 57 6e 64 49 6d 70 6c 20  d()...: WndImpl 
4f50: 20 28 20 63 6c 61 73 73 4e 61 6d 65 5f 2c 20 57   ( className_, W
4f60: 53 5f 4f 56 45 52 4c 41 50 50 45 44 57 49 4e 44  S_OVERLAPPEDWIND
4f70: 4f 57 2c 20 57 53 5f 45 58 5f 41 43 43 45 50 54  OW, WS_EX_ACCEPT
4f80: 46 49 4c 45 53 20 29 0d 0a 09 2c 20 63 68 61 72  FILES )..., char
4f90: 53 65 74 73 5f 28 20 63 66 67 5f 2e 47 65 74 43  Sets_( cfg_.GetC
4fa0: 68 61 72 53 65 74 4c 69 73 74 28 29 20 29 0d 0a  harSetList() )..
4fb0: 09 2c 20 63 73 69 5f 20 20 20 20 20 28 20 63 66  ., csi_     ( cf
4fc0: 67 5f 2e 47 65 74 4e 65 77 66 69 6c 65 43 73 69  g_.GetNewfileCsi
4fd0: 28 29 20 29 0d 0a 09 2c 20 6c 62 5f 20 20 20 20  () )..., lb_    
4fe0: 20 20 28 20 63 66 67 5f 2e 47 65 74 4e 65 77 66    ( cfg_.GetNewf
4ff0: 69 6c 65 4c 42 28 29 20 29 0d 0a 09 2c 20 73 65  ileLB() )..., se
5000: 61 72 63 68 5f 20 20 28 20 2a 74 68 69 73 2c 20  arch_  ( *this, 
5010: 65 64 69 74 5f 20 29 0d 0a 7b 0d 0a 09 4c 4f 47  edit_ )..{...LOG
5020: 47 45 52 28 20 22 47 72 65 65 6e 50 61 64 57 6e  GER( "GreenPadWn
5030: 64 3a 3a 43 6f 6e 73 74 72 75 63 74 20 62 65 67  d::Construct beg
5040: 69 6e 22 20 29 3b 0d 0a 0d 0a 09 73 74 61 74 69  in" );.....stati
5050: 63 20 57 4e 44 43 4c 41 53 53 45 58 20 77 63 3b  c WNDCLASSEX wc;
5060: 0d 0a 09 77 63 2e 68 49 63 6f 6e 20 20 20 20 20  ...wc.hIcon     
5070: 20 20 20 20 3d 20 61 70 70 28 29 2e 4c 6f 61 64      = app().Load
5080: 49 63 6f 6e 28 20 49 44 52 5f 4d 41 49 4e 20 29  Icon( IDR_MAIN )
5090: 3b 0d 0a 09 77 63 2e 68 43 75 72 73 6f 72 20 20  ;...wc.hCursor  
50a0: 20 20 20 20 20 3d 20 61 70 70 28 29 2e 4c 6f 61       = app().Loa
50b0: 64 4f 65 6d 43 75 72 73 6f 72 28 20 49 44 43 5f  dOemCursor( IDC_
50c0: 41 52 52 4f 57 20 29 3b 0d 0a 09 77 63 2e 6c 70  ARROW );...wc.lp
50d0: 73 7a 4d 65 6e 75 4e 61 6d 65 20 20 3d 20 4d 41  szMenuName  = MA
50e0: 4b 45 49 4e 54 52 45 53 4f 55 52 43 45 28 20 49  KEINTRESOURCE( I
50f0: 44 52 5f 4d 41 49 4e 20 29 3b 0d 0a 09 77 63 2e  DR_MAIN );...wc.
5100: 6c 70 73 7a 43 6c 61 73 73 4e 61 6d 65 20 3d 20  lpszClassName = 
5110: 63 6c 61 73 73 4e 61 6d 65 5f 3b 0d 0a 09 57 6e  className_;...Wn
5120: 64 49 6d 70 6c 3a 3a 52 65 67 69 73 74 65 72 28  dImpl::Register(
5130: 20 26 77 63 20 29 3b 0d 0a 0d 0a 09 69 6d 65 28   &wc );.....ime(
5140: 29 2e 45 6e 61 62 6c 65 47 6c 6f 62 61 6c 49 4d  ).EnableGlobalIM
5150: 45 28 20 74 72 75 65 20 29 3b 0d 0a 0d 0a 09 4c  E( true );.....L
5160: 4f 47 47 45 52 28 20 22 47 72 65 65 6e 50 61 64  OGGER( "GreenPad
5170: 57 6e 64 3a 3a 43 6f 6e 73 74 72 75 63 74 20 65  Wnd::Construct e
5180: 6e 64 22 20 29 3b 0d 0a 7d 0d 0a 0d 0a 76 6f 69  nd" );..}....voi
5190: 64 20 47 72 65 65 6e 50 61 64 57 6e 64 3a 3a 6f  d GreenPadWnd::o
51a0: 6e 5f 63 72 65 61 74 65 28 20 43 52 45 41 54 45  n_create( CREATE
51b0: 53 54 52 55 43 54 2a 20 63 73 20 29 0d 0a 7b 0d  STRUCT* cs )..{.
51c0: 0a 09 4c 4f 47 47 45 52 28 22 47 72 65 65 6e 50  ..LOGGER("GreenP
51d0: 61 64 57 6e 64 3a 3a 6f 6e 5f 63 72 65 61 74 65  adWnd::on_create
51e0: 20 62 65 67 69 6e 22 29 3b 0d 0a 0d 0a 09 61 63   begin");.....ac
51f0: 63 65 6c 5f 20 3d 20 61 70 70 28 29 2e 4c 6f 61  cel_ = app().Loa
5200: 64 41 63 63 65 6c 28 20 49 44 52 5f 4d 41 49 4e  dAccel( IDR_MAIN
5210: 20 29 3b 0d 0a 09 73 74 62 5f 2e 43 72 65 61 74   );...stb_.Creat
5220: 65 28 20 68 77 6e 64 28 29 20 29 3b 0d 0a 09 65  e( hwnd() );...e
5230: 64 69 74 5f 2e 43 72 65 61 74 65 28 20 4e 55 4c  dit_.Create( NUL
5240: 4c 2c 20 68 77 6e 64 28 29 2c 20 30 2c 20 30 2c  L, hwnd(), 0, 0,
5250: 20 31 30 30 2c 20 31 30 30 20 29 3b 0d 0a 09 4c   100, 100 );...L
5260: 4f 47 47 45 52 28 22 47 72 65 65 6e 50 61 64 57  OGGER("GreenPadW
5270: 6e 64 3a 3a 6f 6e 5f 63 72 65 61 74 65 20 65 64  nd::on_create ed
5280: 69 74 20 63 72 65 61 74 65 64 22 29 3b 0d 0a 09  it created");...
5290: 65 64 69 74 5f 2e 67 65 74 44 6f 63 28 29 2e 41  edit_.getDoc().A
52a0: 64 64 48 61 6e 64 6c 65 72 28 20 74 68 69 73 20  ddHandler( this 
52b0: 29 3b 0d 0a 09 65 64 69 74 5f 2e 67 65 74 43 75  );...edit_.getCu
52c0: 72 73 6f 72 28 29 2e 41 64 64 48 61 6e 64 6c 65  rsor().AddHandle
52d0: 72 28 20 74 68 69 73 20 29 3b 0d 0a 09 73 74 62  r( this );...stb
52e0: 5f 2e 53 65 74 53 74 61 74 75 73 42 61 72 56 69  _.SetStatusBarVi
52f0: 73 69 62 6c 65 28 20 63 66 67 5f 2e 73 68 6f 77  sible( cfg_.show
5300: 53 74 61 74 75 73 42 61 72 28 29 20 29 3b 0d 0a  StatusBar() );..
5310: 0d 0a 09 4c 4f 47 47 45 52 28 22 47 72 65 65 6e  ...LOGGER("Green
5320: 50 61 64 57 6e 64 3a 3a 6f 6e 5f 63 72 65 61 74  PadWnd::on_creat
5330: 65 20 68 61 6c 66 77 61 79 22 29 3b 0d 0a 0d 0a  e halfway");....
5340: 09 73 65 61 72 63 68 5f 2e 4c 6f 61 64 46 72 6f  .search_.LoadFro
5350: 6d 49 4e 49 28 20 63 66 67 5f 2e 67 65 74 49 6d  mINI( cfg_.getIm
5360: 70 6c 28 29 20 29 3b 0d 0a 09 53 65 74 75 70 53  pl() );...SetupS
5370: 75 62 4d 65 6e 75 28 29 3b 0d 0a 09 53 65 74 75  ubMenu();...Setu
5380: 70 4d 52 55 4d 65 6e 75 28 29 3b 0d 0a 0d 0a 09  pMRUMenu();.....
5390: 4c 4f 47 47 45 52 28 22 47 72 65 65 6e 50 61 64  LOGGER("GreenPad
53a0: 57 6e 64 3a 3a 6f 6e 5f 63 72 65 61 74 65 20 6d  Wnd::on_create m
53b0: 65 6e 75 22 29 3b 0d 0a 7d 0d 0a 0d 0a 62 6f 6f  enu");..}....boo
53c0: 6c 20 47 72 65 65 6e 50 61 64 57 6e 64 3a 3a 53  l GreenPadWnd::S
53d0: 74 61 72 74 55 70 28 20 63 6f 6e 73 74 20 50 61  tartUp( const Pa
53e0: 74 68 26 20 66 6e 2c 20 69 6e 74 20 63 73 2c 20  th& fn, int cs, 
53f0: 69 6e 74 20 6c 6e 20 29 0d 0a 7b 0d 0a 09 4c 4f  int ln )..{...LO
5400: 47 47 45 52 28 20 22 47 72 65 65 6e 50 61 64 57  GGER( "GreenPadW
5410: 6e 64 3a 3a 53 74 61 72 74 55 70 20 62 65 67 69  nd::StartUp begi
5420: 6e 22 20 29 3b 0d 0a 09 43 72 65 61 74 65 28 20  n" );...Create( 
5430: 30 2c 20 30 2c 20 63 66 67 5f 2e 47 65 74 57 6e  0, 0, cfg_.GetWn
5440: 64 58 28 29 2c 20 63 66 67 5f 2e 47 65 74 57 6e  dX(), cfg_.GetWn
5450: 64 59 28 29 2c 20 63 66 67 5f 2e 47 65 74 57 6e  dY(), cfg_.GetWn
5460: 64 57 28 29 2c 20 63 66 67 5f 2e 47 65 74 57 6e  dW(), cfg_.GetWn
5470: 64 48 28 29 2c 20 30 20 29 3b 0d 0a 09 4c 4f 47  dH(), 0 );...LOG
5480: 47 45 52 28 20 22 47 72 65 65 6e 50 61 64 57 6e  GER( "GreenPadWn
5490: 64 3a 3a 43 72 65 61 74 65 64 22 20 29 3b 0d 0a  d::Created" );..
54a0: 09 69 66 28 20 66 6e 2e 6c 65 6e 28 29 3d 3d 30  .if( fn.len()==0
54b0: 20 7c 7c 20 21 4f 70 65 6e 42 79 4d 79 73 65 6c   || !OpenByMysel
54c0: 66 28 20 66 6e 2c 20 63 73 20 29 20 29 0d 0a 09  f( fn, cs ) )...
54d0: 7b 0d 0a 09 09 4c 4f 47 47 45 52 28 20 22 66 6f  {....LOGGER( "fo
54e0: 72 20 6e 65 77 20 66 69 6c 65 2e 2e 2e 22 20 29  r new file..." )
54f0: 3b 0d 0a 0d 0a 09 09 2f 2f 20 83 74 83 40 83 43  ;......// .t.@.C
5500: 83 8b 82 f0 8a 4a 82 a9 28 82 af 29 82 c8 82 a9  .....J..(..)....
5510: 82 c1 82 bd 8f ea 8d 87 0d 0a 09 09 52 65 6c 6f  ............Relo
5520: 61 64 43 6f 6e 66 69 67 28 20 66 6e 2e 6c 65 6e  adConfig( fn.len
5530: 28 29 3d 3d 30 20 29 3b 0d 0a 09 09 4c 4f 47 47  ()==0 );....LOGG
5540: 45 52 28 20 22 47 72 65 65 6e 50 61 64 57 6e 64  ER( "GreenPadWnd
5550: 3a 3a 53 74 61 72 74 55 70 20 72 65 6c 6f 61 64  ::StartUp reload
5560: 63 6f 6e 66 69 67 20 65 6e 64 22 20 29 3b 0d 0a  config end" );..
5570: 09 09 55 70 64 61 74 65 57 69 6e 64 6f 77 4e 61  ..UpdateWindowNa
5580: 6d 65 28 29 3b 0d 0a 09 09 4c 4f 47 47 45 52 28  me();....LOGGER(
5590: 20 22 47 72 65 65 6e 50 61 64 57 6e 64 3a 3a 53   "GreenPadWnd::S
55a0: 74 61 72 74 55 70 20 75 70 64 61 74 65 77 69 6e  tartUp updatewin
55b0: 64 6f 77 6e 61 6d 65 20 65 6e 64 22 20 29 3b 0d  downame end" );.
55c0: 0a 09 7d 0d 0a 0d 0a 09 2f 2f 20 8e 77 92 e8 82  ..}.....// .w...
55d0: cc 8d 73 82 d6 83 57 83 83 83 93 83 76 0d 0a 09  ..s...W.....v...
55e0: 69 66 28 20 6c 6e 20 21 3d 20 2d 31 20 29 0d 0a  if( ln != -1 )..
55f0: 09 09 4a 75 6d 70 54 6f 4c 69 6e 65 28 20 6c 6e  ..JumpToLine( ln
5600: 20 29 3b 0d 0a 0d 0a 09 4c 4f 47 47 45 52 28 20   );.....LOGGER( 
5610: 22 47 72 65 65 6e 50 61 64 57 6e 64 3a 3a 53 74  "GreenPadWnd::St
5620: 61 72 74 55 70 20 65 6e 64 22 20 29 3b 0d 0a 09  artUp end" );...
5630: 72 65 74 75 72 6e 20 74 72 75 65 3b 0d 0a 7d 0d  return true;..}.
5640: 0a 0d 0a 76 6f 69 64 20 47 72 65 65 6e 50 61 64  ...void GreenPad
5650: 57 6e 64 3a 3a 53 68 6f 77 55 70 32 28 29 0d 0a  Wnd::ShowUp2()..
5660: 7b 0d 0a 09 57 69 6e 64 6f 77 3a 3a 53 68 6f 77  {...Window::Show
5670: 55 70 28 20 63 66 67 5f 2e 47 65 74 57 6e 64 4d  Up( cfg_.GetWndM
5680: 28 29 20 3f 20 53 57 5f 4d 41 58 49 4d 49 5a 45  () ? SW_MAXIMIZE
5690: 20 3a 20 53 57 5f 53 48 4f 57 20 29 3b 0d 0a 7d   : SW_SHOW );..}
56a0: 0d 0a 0d 0a 0d 0a 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d  ......//--------
56b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
56c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
56d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
56e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
56f0: 2d 0d 0a 2f 2f 20 83 58 83 5e 81 5b 83 67 83 41  -..// .X.^.[.g.A
5700: 83 62 83 76 83 8b 81 5b 83 60 83 93 0d 0a 2f 2f  .b.v...[.`....//
5710: 09 83 52 83 7d 83 93 83 68 83 89 83 43 83 93 82  ..R.}...h...C...
5720: cc 89 f0 90 cd 82 f0 8d 73 82 a4 0d 0a 2f 2f 2d  ........s....//-
5730: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
5740: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
5750: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
5760: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
5770: 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 69 6e 74 20  --------....int 
5780: 6b 6d 61 69 6e 28 29 0d 0a 7b 0d 0a 09 4c 4f 47  kmain()..{...LOG
5790: 47 45 52 28 20 22 6b 6d 61 69 6e 28 29 20 62 65  GER( "kmain() be
57a0: 67 69 6e 22 20 29 3b 0d 0a 0d 0a 09 41 72 67 76  gin" );.....Argv
57b0: 20 20 61 72 67 3b 0d 0a 09 75 6c 6f 6e 67 20 20    arg;...ulong  
57c0: 20 69 3b 0d 0a 0d 0a 09 4c 4f 47 47 45 52 28 20   i;.....LOGGER( 
57d0: 22 61 72 67 76 20 70 72 6f 63 65 73 73 65 64 22  "argv processed"
57e0: 20 29 3b 0d 0a 0d 0a 20 20 2f 2f 2d 2d 20 82 dc   );....  //-- ..
57f0: 82 b8 83 49 83 76 83 56 83 87 83 93 83 58 83 43  ...I.v.V.....X.C
5800: 83 62 83 60 82 f0 8f 88 97 9d 0d 0a 0d 0a 09 69  .b.`...........i
5810: 6e 74 20 6f 70 74 4c 20 3d 20 2d 31 3b 0d 0a 09  nt optL = -1;...
5820: 69 6e 74 20 6f 70 74 43 20 3d 20 30 3b 0d 0a 0d  int optC = 0;...
5830: 0a 09 66 6f 72 28 20 69 3d 31 3b 20 69 3c 61 72  ..for( i=1; i<ar
5840: 67 2e 73 69 7a 65 28 29 20 26 26 20 61 72 67 5b  g.size() && arg[
5850: 69 5d 5b 30 5d 3d 3d 54 45 58 54 28 27 2d 27 29  i][0]==TEXT('-')
5860: 3b 20 2b 2b 69 20 29 0d 0a 09 09 73 77 69 74 63  ; ++i )....switc
5870: 68 28 20 61 72 67 5b 69 5d 5b 31 5d 20 29 0d 0a  h( arg[i][1] )..
5880: 09 09 7b 0d 0a 09 09 63 61 73 65 20 54 45 58 54  ..{....case TEXT
5890: 28 27 63 27 29 3a 0d 0a 09 09 09 6f 70 74 43 20  ('c'):.....optC 
58a0: 3d 20 53 74 72 69 6e 67 3a 3a 47 65 74 49 6e 74  = String::GetInt
58b0: 28 20 61 72 67 5b 69 5d 2b 32 20 29 3b 0d 0a 09  ( arg[i]+2 );...
58c0: 09 09 62 72 65 61 6b 3b 0d 0a 09 09 63 61 73 65  ..break;....case
58d0: 20 54 45 58 54 28 27 6c 27 29 3a 0d 0a 09 09 09   TEXT('l'):.....
58e0: 6f 70 74 4c 20 3d 20 53 74 72 69 6e 67 3a 3a 47  optL = String::G
58f0: 65 74 49 6e 74 28 20 61 72 67 5b 69 5d 2b 32 20  etInt( arg[i]+2 
5900: 29 3b 0d 0a 09 09 09 62 72 65 61 6b 3b 0d 0a 09  );.....break;...
5910: 09 7d 0d 0a 0d 0a 09 4c 4f 47 47 45 52 28 20 22  .}.....LOGGER( "
5920: 6f 70 74 69 6f 6e 20 70 72 6f 63 65 73 73 65 64  option processed
5930: 22 20 29 3b 0d 0a 0d 0a 20 20 2f 2f 2d 2d 20 8e  " );....  //-- .
5940: 9f 82 c9 83 74 83 40 83 43 83 8b 96 bc 0d 0a 0d  ....t.@.C.......
5950: 0a 09 50 61 74 68 20 66 69 6c 65 3b 0d 0a 0d 0a  ..Path file;....
5960: 09 69 66 28 20 69 20 3c 20 61 72 67 2e 73 69 7a  .if( i < arg.siz
5970: 65 28 29 20 29 0d 0a 09 7b 0d 0a 09 09 66 69 6c  e() )...{....fil
5980: 65 20 3d 20 61 72 67 5b 69 5d 3b 0d 0a 09 09 69  e = arg[i];....i
5990: 66 28 20 21 66 69 6c 65 2e 69 73 46 69 6c 65 28  f( !file.isFile(
59a0: 29 20 29 0d 0a 09 09 7b 0d 0a 09 09 09 75 6c 6f  ) )....{.....ulo
59b0: 6e 67 20 6a 3b 20 2f 2f 20 22 22 96 b3 82 b5 82  ng j; // "".....
59c0: c5 94 bc 83 58 83 79 93 fc 82 e8 82 c5 82 e0 82  ....X.y.........
59d0: bb 82 ea 82 c8 82 e8 82 c9 91 ce 8f 88 0d 0a 09  ................
59e0: 09 09 66 6f 72 28 20 6a 3d 69 2b 31 3b 20 6a 3c  ..for( j=i+1; j<
59f0: 61 72 67 2e 73 69 7a 65 28 29 3b 20 2b 2b 6a 20  arg.size(); ++j 
5a00: 29 0d 0a 09 09 09 7b 0d 0a 09 09 09 09 66 69 6c  ).....{......fil
5a10: 65 20 2b 3d 20 27 20 27 3b 0d 0a 09 09 09 09 66  e += ' ';......f
5a20: 69 6c 65 20 2b 3d 20 61 72 67 5b 6a 5d 3b 0d 0a  ile += arg[j];..
5a30: 09 09 09 09 69 66 28 20 66 69 6c 65 2e 69 73 46  ....if( file.isF
5a40: 69 6c 65 28 29 20 29 0d 0a 09 09 09 09 09 62 72  ile() ).......br
5a50: 65 61 6b 3b 0d 0a 09 09 09 7d 0d 0a 0d 0a 09 09  eak;.....}......
5a60: 09 69 66 28 20 6a 3d 3d 61 72 67 2e 73 69 7a 65  .if( j==arg.size
5a70: 28 29 20 29 0d 0a 09 09 09 09 66 69 6c 65 20 3d  () )......file =
5a80: 20 61 72 67 5b 69 5d 3b 0d 0a 09 09 09 65 6c 73   arg[i];.....els
5a90: 65 0d 0a 09 09 09 09 69 3d 6a 3b 0d 0a 09 09 7d  e......i=j;....}
5aa0: 0d 0a 09 7d 0d 0a 0d 0a 09 4c 4f 47 47 45 52 28  ...}.....LOGGER(
5ab0: 20 22 66 69 6c 65 6e 61 6d 65 20 70 72 6f 63 65   "filename proce
5ac0: 73 73 65 64 22 20 29 3b 0d 0a 0d 0a 20 20 2f 2f  ssed" );....  //
5ad0: 2d 2d 20 97 5d 82 c1 82 c4 82 e9 88 f8 90 94 82  -- .]...........
5ae0: aa 82 a0 82 ea 82 ce 81 41 82 bb 82 ea 82 c5 90  ........A.......
5af0: 56 8b 4b 83 76 83 8d 83 5a 83 58 8b 4e 93 ae 0d  V.K.v...Z.X.N...
5b00: 0a 0d 0a 09 69 66 28 20 2b 2b 69 20 3c 20 61 72  ....if( ++i < ar
5b10: 67 2e 73 69 7a 65 28 29 20 29 0d 0a 09 7b 0d 0a  g.size() )...{..
5b20: 09 09 53 74 72 69 6e 67 20 63 6d 64 3b 0d 0a 09  ..String cmd;...
5b30: 09 66 6f 72 28 20 3b 20 69 3c 61 72 67 2e 73 69  .for( ; i<arg.si
5b40: 7a 65 28 29 3b 20 2b 2b 69 20 29 0d 0a 09 09 7b  ze(); ++i )....{
5b50: 0d 0a 09 09 09 63 6d 64 20 2b 3d 20 54 45 58 54  .....cmd += TEXT
5b60: 28 27 5c 22 27 29 3b 0d 0a 09 09 09 63 6d 64 20  ('\"');.....cmd 
5b70: 2b 3d 20 61 72 67 5b 69 5d 3b 0d 0a 09 09 09 63  += arg[i];.....c
5b80: 6d 64 20 2b 3d 20 54 45 58 54 28 22 5c 22 20 22  md += TEXT("\" "
5b90: 29 3b 0d 0a 09 09 7d 0d 0a 09 09 3a 3a 42 6f 6f  );....}....::Boo
5ba0: 74 4e 65 77 50 72 6f 63 65 73 73 28 20 63 6d 64  tNewProcess( cmd
5bb0: 2e 63 5f 73 74 72 28 29 20 29 3b 0d 0a 09 7d 0d  .c_str() );...}.
5bc0: 0a 0d 0a 09 4c 4f 47 47 45 52 28 20 22 6e 65 77  ....LOGGER( "new
5bd0: 70 72 6f 63 65 73 73 20 62 6f 6f 74 65 64 22 20  process booted" 
5be0: 29 3b 0d 0a 0d 0a 20 20 2f 2f 2d 2d 20 83 81 83  );....  //-- ...
5bf0: 43 83 93 83 45 83 43 83 93 83 68 83 45 94 ad 90  C...E.C...h.E...
5c00: 69 0d 0a 0d 0a 09 47 72 65 65 6e 50 61 64 57 6e  i.....GreenPadWn
5c10: 64 20 77 6e 64 3b 0d 0a 09 69 66 28 20 21 77 6e  d wnd;...if( !wn
5c20: 64 2e 53 74 61 72 74 55 70 28 66 69 6c 65 2c 6f  d.StartUp(file,o
5c30: 70 74 43 2c 6f 70 74 4c 29 20 29 0d 0a 09 09 72  ptC,optL) )....r
5c40: 65 74 75 72 6e 20 2d 31 3b 0d 0a 0d 0a 09 4c 4f  eturn -1;.....LO
5c50: 47 47 45 52 28 20 22 6b 6d 61 69 6e 28 29 20 73  GGER( "kmain() s
5c60: 74 61 72 74 75 70 20 6f 6b 22 20 29 3b 0d 0a 0d  tartup ok" );...
5c70: 0a 20 20 2f 2f 2d 2d 20 83 81 83 43 83 93 83 8b  .  //-- ...C....
5c80: 81 5b 83 76 0d 0a 0d 0a 09 77 6e 64 2e 53 68 6f  .[.v.....wnd.Sho
5c90: 77 55 70 32 28 29 3b 0d 0a 09 4c 4f 47 47 45 52  wUp2();...LOGGER
5ca0: 28 20 22 73 68 6f 77 75 70 21 22 20 29 3b 0d 0a  ( "showup!" );..
5cb0: 09 77 6e 64 2e 4d 73 67 4c 6f 6f 70 28 29 3b 0d  .wnd.MsgLoop();.
5cc0: 0a 0d 0a 09 4c 4f 47 47 45 52 28 20 22 66 69 6e  ....LOGGER( "fin
5cd0: 22 20 29 3b 0d 0a 09 72 65 74 75 72 6e 20 30 3b  " );...return 0;
5ce0: 0d 0a 7d 0d 0a                                   ..}..