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