0000: 0d 0a 23 69 6e 63 6c 75 64 65 20 22 73 74 64 61 ..#include "stda
0010: 66 78 2e 68 22 0d 0a 23 69 6e 63 6c 75 64 65 20 fx.h"..#include
0020: 22 43 6f 6e 66 69 67 4d 61 6e 61 67 65 72 2e 68 "ConfigManager.h
0030: 22 0d 0a 23 69 6e 63 6c 75 64 65 20 22 72 73 72 "..#include "rsr
0040: 63 2f 72 65 73 6f 75 72 63 65 2e 68 22 0d 0a 23 c/resource.h"..#
0050: 69 6e 63 6c 75 64 65 20 22 52 53 65 61 72 63 68 include "RSearch
0060: 2e 68 22 0d 0a 75 73 69 6e 67 20 6e 61 6d 65 73 .h"..using names
0070: 70 61 63 65 20 6b 69 3b 0d 0a 75 73 69 6e 67 20 pace ki;..using
0080: 6e 61 6d 65 73 70 61 63 65 20 65 64 69 74 77 69 namespace editwi
0090: 6e 67 3b 0d 0a 0d 0a 0d 0a 0d 0a 76 6f 69 64 20 ng;........void
00a0: 42 6f 6f 74 4e 65 77 50 72 6f 63 65 73 73 28 20 BootNewProcess(
00b0: 63 6f 6e 73 74 20 54 43 48 41 52 2a 20 63 6d 64 const TCHAR* cmd
00c0: 20 29 3b 20 2f 2f 20 69 6e 20 47 70 4d 61 69 6e ); // in GpMain
00d0: 2e 63 70 70 0d 0a 0d 0a 2f 2f 2d 2d 2d 2d 2d 2d .cpp....//------
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 0d 0a 2f 2f 20 90 dd 92 e8 8d 80 96 da ---..// ........
0130: 8a c7 97 9d 81 42 0d 0a 2f 2f 20 53 65 74 44 6f .....B..// SetDo
0140: 63 54 79 70 65 82 c5 90 d8 82 e8 91 d6 82 a6 82 cType...........
0150: e9 82 c6 81 41 95 b6 8f 91 83 5e 83 43 83 76 88 ....A.....^.C.v.
0160: cb 91 b6 82 cc 8d 80 96 da 82 f0 8e a9 93 ae 82 ................
0170: c5 0d 0a 2f 2f 20 93 fc 82 ea 91 d6 82 a6 82 bd ...// ..........
0180: 82 e8 90 46 81 58 81 42 0d 0a 2f 2f 2d 2d 2d 2d ...F.X.B..//----
0190: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
01a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
01b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
01c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
01d0: 2d 2d 2d 2d 2d 0d 0a 0d 0a 43 6f 6e 66 69 67 4d -----....ConfigM
01e0: 61 6e 61 67 65 72 3a 3a 43 6f 6e 66 69 67 4d 61 anager::ConfigMa
01f0: 6e 61 67 65 72 28 29 0d 0a 7b 0d 0a 09 2f 2f 20 nager()..{...//
0200: 83 66 83 74 83 48 83 8b 83 67 82 cc 83 8c 83 43 .f.t.H...g.....C
0210: 83 41 83 45 83 67 90 dd 92 e8 82 cd 89 bd 82 e6 .A.E.g..........
0220: 82 e8 82 e0 90 e6 82 c9 93 c7 82 f1 82 c5 82 a8 ................
0230: 82 ad 0d 0a 09 44 6f 63 54 79 70 65 20 64 3b 0d .....DocType d;.
0240: 0a 09 64 2e 6e 61 6d 65 2e 4c 6f 61 64 28 20 49 ..d.name.Load( I
0250: 44 53 5f 44 45 46 41 55 4c 54 20 29 3b 0d 0a 09 DS_DEFAULT );...
0260: 64 2e 6c 61 79 66 69 6c 65 20 20 20 3d 20 54 45 d.layfile = TE
0270: 58 54 28 22 64 65 66 61 75 6c 74 2e 6c 61 79 22 XT("default.lay"
0280: 29 3b 0d 0a 09 4c 6f 61 64 4c 61 79 6f 75 74 28 );...LoadLayout(
0290: 20 26 64 20 29 3b 0d 0a 09 64 74 4c 69 73 74 5f &d );...dtList_
02a0: 2e 41 64 64 28 20 64 20 29 3b 0d 0a 09 63 75 72 .Add( d );...cur
02b0: 44 74 5f 20 3d 20 64 74 4c 69 73 74 5f 2e 62 65 Dt_ = dtList_.be
02c0: 67 69 6e 28 29 3b 0d 0a 0d 0a 09 2f 2f 20 69 6e gin();.....// in
02d0: 69 93 c7 82 dd 8d 9e 82 dd 0d 0a 09 4c 6f 61 64 i...........Load
02e0: 49 6e 69 28 29 3b 0d 0a 09 53 65 74 44 6f 63 54 Ini();...SetDocT
02f0: 79 70 65 42 79 4e 61 6d 65 28 20 6e 65 77 66 69 ypeByName( newfi
0300: 6c 65 44 6f 63 74 79 70 65 5f 20 29 3b 0d 0a 7d leDoctype_ );..}
0310: 0d 0a 0d 0a 43 6f 6e 66 69 67 4d 61 6e 61 67 65 ....ConfigManage
0320: 72 3a 3a 7e 43 6f 6e 66 69 67 4d 61 6e 61 67 65 r::~ConfigManage
0330: 72 28 29 0d 0a 7b 0d 0a 09 2f 2f 20 69 6e 69 95 r()..{...// ini.
0340: db 91 b6 0d 0a 09 53 61 76 65 49 6e 69 28 29 3b ......SaveIni();
0350: 0d 0a 7d 0d 0a 0d 0a 76 6f 69 64 20 43 6f 6e 66 ..}....void Conf
0360: 69 67 4d 61 6e 61 67 65 72 3a 3a 53 65 74 44 6f igManager::SetDo
0370: 63 54 79 70 65 42 79 4e 61 6d 65 28 20 63 6f 6e cTypeByName( con
0380: 73 74 20 6b 69 3a 3a 53 74 72 69 6e 67 26 20 6e st ki::String& n
0390: 61 6d 20 29 0d 0a 7b 0d 0a 09 63 75 72 44 74 5f am )..{...curDt_
03a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 64 = d
03b0: 74 4c 69 73 74 5f 2e 62 65 67 69 6e 28 29 3b 0d tList_.begin();.
03c0: 0a 09 44 74 4c 69 73 74 3a 3a 69 74 65 72 61 74 ..DtList::iterat
03d0: 6f 72 20 62 20 3d 20 64 74 4c 69 73 74 5f 2e 62 or b = dtList_.b
03e0: 65 67 69 6e 28 29 3b 0d 0a 09 44 74 4c 69 73 74 egin();...DtList
03f0: 3a 3a 69 74 65 72 61 74 6f 72 20 65 20 3d 20 64 ::iterator e = d
0400: 74 4c 69 73 74 5f 2e 65 6e 64 28 29 3b 0d 0a 09 tList_.end();...
0410: 66 6f 72 28 20 3b 20 62 21 3d 65 3b 20 2b 2b 62 for( ; b!=e; ++b
0420: 20 29 0d 0a 09 09 69 66 28 20 62 2d 3e 6e 61 6d )....if( b->nam
0430: 65 20 3d 3d 20 6e 61 6d 20 29 0d 0a 09 09 7b 0d e == nam )....{.
0440: 0a 09 09 09 63 75 72 44 74 5f 20 3d 20 62 3b 0d ....curDt_ = b;.
0450: 0a 09 09 09 62 72 65 61 6b 3b 0d 0a 09 09 7d 0d ....break;....}.
0460: 0a 09 4c 6f 61 64 4c 61 79 6f 75 74 28 20 26 2a ..LoadLayout( &*
0470: 63 75 72 44 74 5f 20 29 3b 0d 0a 7d 0d 0a 0d 0a curDt_ );..}....
0480: 69 6e 74 20 43 6f 6e 66 69 67 4d 61 6e 61 67 65 int ConfigManage
0490: 72 3a 3a 53 65 74 44 6f 63 54 79 70 65 28 20 63 r::SetDocType( c
04a0: 6f 6e 73 74 20 50 61 74 68 26 20 66 6e 61 6d 65 onst Path& fname
04b0: 20 29 0d 0a 7b 0d 0a 09 63 6f 6e 73 74 20 75 6e )..{...const un
04c0: 69 63 6f 64 65 2a 20 75 6e 61 6d 65 20 3d 20 66 icode* uname = f
04d0: 6e 61 6d 65 2e 43 6f 6e 76 54 6f 57 43 68 61 72 name.ConvToWChar
04e0: 28 29 3b 0d 0a 0d 0a 09 69 6e 74 20 63 74 20 3d ();.....int ct =
04f0: 20 31 3b 0d 0a 09 44 74 4c 69 73 74 3a 3a 69 74 1;...DtList::it
0500: 65 72 61 74 6f 72 20 69 3d 64 74 4c 69 73 74 5f erator i=dtList_
0510: 2e 62 65 67 69 6e 28 29 2c 20 65 3d 64 74 4c 69 .begin(), e=dtLi
0520: 73 74 5f 2e 65 6e 64 28 29 3b 0d 0a 09 69 66 28 st_.end();...if(
0530: 20 66 6e 61 6d 65 2e 6c 65 6e 28 29 20 3e 20 30 fname.len() > 0
0540: 20 29 0d 0a 09 7b 0d 0a 09 09 66 6f 72 28 20 2b )...{....for( +
0550: 2b 69 3b 20 69 21 3d 65 3b 20 2b 2b 69 2c 20 2b +i; i!=e; ++i, +
0560: 2b 63 74 20 29 0d 0a 09 09 09 69 66 28 20 69 2d +ct ).....if( i-
0570: 3e 70 61 74 74 65 72 6e 2e 6c 65 6e 28 29 20 3e >pattern.len() >
0580: 20 30 20 29 0d 0a 09 09 09 7b 0d 0a 09 09 09 09 0 ).....{......
0590: 63 6f 6e 73 74 20 75 6e 69 63 6f 64 65 2a 20 75 const unicode* u
05a0: 70 61 74 20 3d 20 69 2d 3e 70 61 74 74 65 72 6e pat = i->pattern
05b0: 2e 43 6f 6e 76 54 6f 57 43 68 61 72 28 29 3b 0d .ConvToWChar();.
05c0: 0a 09 09 09 09 62 6f 6f 6c 20 62 20 3d 20 4d 61 .....bool b = Ma
05d0: 74 63 68 44 6f 63 54 79 70 65 28 20 75 6e 61 6d tchDocType( unam
05e0: 65 2c 20 75 70 61 74 20 29 3b 0d 0a 09 09 09 09 e, upat );......
05f0: 69 2d 3e 70 61 74 74 65 72 6e 2e 46 72 65 65 57 i->pattern.FreeW
0600: 43 4d 65 6d 28 20 75 70 61 74 20 29 3b 0d 0a 09 CMem( upat );...
0610: 09 09 09 69 66 28 20 62 20 29 20 62 72 65 61 6b ...if( b ) break
0620: 3b 0d 0a 09 09 09 7d 0d 0a 09 09 69 66 28 20 69 ;.....}....if( i
0630: 20 3d 3d 20 65 20 29 0d 0a 09 09 09 63 74 3d 30 == e ).....ct=0
0640: 2c 20 69 3d 64 74 4c 69 73 74 5f 2e 62 65 67 69 , i=dtList_.begi
0650: 6e 28 29 3b 20 2f 2f 20 93 4b 90 d8 82 c8 82 cc n(); // .K......
0660: 82 aa 8c a9 82 c2 82 a9 82 e7 82 c8 82 af 82 ea ................
0670: 82 ce 5b 95 57 8f 80 5d 81 42 0d 0a 09 7d 0d 0a ..[.W..].B...}..
0680: 09 65 6c 73 65 0d 0a 09 7b 0d 0a 09 09 63 74 20 .else...{....ct
0690: 3d 20 30 3b 0d 0a 09 7d 0d 0a 0d 0a 09 53 65 74 = 0;...}.....Set
06a0: 44 6f 63 54 79 70 65 42 79 4e 61 6d 65 28 20 69 DocTypeByName( i
06b0: 2d 3e 6e 61 6d 65 20 29 3b 0d 0a 0d 0a 09 66 6e ->name );.....fn
06c0: 61 6d 65 2e 46 72 65 65 57 43 4d 65 6d 28 20 75 ame.FreeWCMem( u
06d0: 6e 61 6d 65 20 29 3b 0d 0a 09 72 65 74 75 72 6e name );...return
06e0: 20 63 74 3b 0d 0a 7d 0d 0a 0d 0a 62 6f 6f 6c 20 ct;..}....bool
06f0: 43 6f 6e 66 69 67 4d 61 6e 61 67 65 72 3a 3a 4d ConfigManager::M
0700: 61 74 63 68 44 6f 63 54 79 70 65 0d 0a 09 28 20 atchDocType...(
0710: 63 6f 6e 73 74 20 75 6e 69 63 6f 64 65 2a 20 66 const unicode* f
0720: 6e 61 6d 65 2c 20 63 6f 6e 73 74 20 75 6e 69 63 name, const unic
0730: 6f 64 65 2a 20 70 61 74 20 29 0d 0a 7b 0d 0a 09 ode* pat )..{...
0740: 2f 2f 20 70 61 74 74 65 72 6e 20 82 c6 20 66 6e // pattern .. fn
0750: 61 6d 65 20 82 c6 82 cc 83 7d 83 62 83 60 82 f0 ame .....}.b.`..
0760: 82 c6 82 c1 82 c4 94 bb 92 e8 81 63 0d 0a 09 72 ...........c...r
0770: 65 74 75 72 6e 20 72 65 67 5f 6d 61 74 63 68 28 eturn reg_match(
0780: 20 70 61 74 2c 20 66 6e 61 6d 65 2c 20 66 61 6c pat, fname, fal
0790: 73 65 20 29 3b 0d 0a 7d 0d 0a 0d 0a 0d 0a 0d 0a se );..}........
07a0: 2f 2f 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 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
07d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
07e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 2f 2f 20 -----------..//
07f0: 90 dd 92 e8 83 5f 83 43 83 41 83 8d 83 4f 8a d6 ....._.C.A...O..
0800: 98 41 0d 0a 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .A..//----------
0810: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0820: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0830: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0840: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d ---------------.
0850: 0a 0d 0a 73 74 72 75 63 74 20 43 6f 6e 66 69 67 ...struct Config
0860: 44 6c 67 20 3a 20 70 75 62 6c 69 63 20 6b 69 3a Dlg : public ki:
0870: 3a 44 6c 67 49 6d 70 6c 0d 0a 7b 0d 0a 70 72 69 :DlgImpl..{..pri
0880: 76 61 74 65 3a 0d 0a 09 74 79 70 65 64 65 66 20 vate:...typedef
0890: 43 6f 6e 66 69 67 4d 61 6e 61 67 65 72 3a 3a 44 ConfigManager::D
08a0: 74 4c 69 73 74 3a 3a 69 74 65 72 61 74 6f 72 20 tList::iterator
08b0: 44 54 49 3b 0d 0a 09 75 6c 6f 6e 67 20 63 75 72 DTI;...ulong cur
08c0: 53 65 6c 5f 3b 0d 0a 09 76 6f 69 64 20 53 61 76 Sel_;...void Sav
08d0: 65 44 74 28 29 0d 0a 09 7b 0d 0a 09 09 44 54 49 eDt()...{....DTI
08e0: 20 70 3d 6d 79 44 74 6c 5f 2e 62 65 67 69 6e 28 p=myDtl_.begin(
08f0: 29 2c 20 65 3d 6d 79 44 74 6c 5f 2e 65 6e 64 28 ), e=myDtl_.end(
0900: 29 3b 0d 0a 09 09 66 6f 72 28 20 75 6c 6f 6e 67 );....for( ulong
0910: 20 63 74 3d 30 3b 20 70 21 3d 65 20 26 26 20 63 ct=0; p!=e && c
0920: 74 21 3d 63 75 72 53 65 6c 5f 3b 20 2b 2b 63 74 t!=curSel_; ++ct
0930: 2c 2b 2b 70 20 29 3b 0d 0a 09 09 69 66 28 20 70 ,++p );....if( p
0940: 3d 3d 65 20 29 20 72 65 74 75 72 6e 3b 0d 0a 0d ==e ) return;...
0950: 0a 09 09 54 43 48 41 52 20 62 75 66 5b 32 35 36 ...TCHAR buf[256
0960: 5d 3b 0d 0a 09 09 53 65 6e 64 4d 73 67 54 6f 49 ];....SendMsgToI
0970: 74 65 6d 28 49 44 43 5f 44 54 5f 50 41 54 2c 20 tem(IDC_DT_PAT,
0980: 57 4d 5f 47 45 54 54 45 58 54 2c 0d 0a 09 09 09 WM_GETTEXT,.....
0990: 63 6f 75 6e 74 6f 66 28 62 75 66 29 2c 72 65 69 countof(buf),rei
09a0: 6e 74 65 72 70 72 65 74 5f 63 61 73 74 3c 4c 50 nterpret_cast<LP
09b0: 41 52 41 4d 3e 28 62 75 66 29 29 3b 0d 0a 09 09 ARAM>(buf));....
09c0: 70 2d 3e 70 61 74 74 65 72 6e 20 3d 20 62 75 66 p->pattern = buf
09d0: 3b 0d 0a 0d 0a 09 09 53 65 6e 64 4d 73 67 54 6f ;......SendMsgTo
09e0: 49 74 65 6d 28 49 44 43 5f 50 41 54 5f 4b 57 44 Item(IDC_PAT_KWD
09f0: 2c 20 43 42 5f 47 45 54 4c 42 54 45 58 54 2c 0d , CB_GETLBTEXT,.
0a00: 0a 09 09 09 53 65 6e 64 4d 73 67 54 6f 49 74 65 ....SendMsgToIte
0a10: 6d 28 49 44 43 5f 50 41 54 5f 4b 57 44 2c 20 43 m(IDC_PAT_KWD, C
0a20: 42 5f 47 45 54 43 55 52 53 45 4c 29 2c 0d 0a 09 B_GETCURSEL),...
0a30: 09 09 72 65 69 6e 74 65 72 70 72 65 74 5f 63 61 ..reinterpret_ca
0a40: 73 74 3c 4c 50 41 52 41 4d 3e 28 62 75 66 29 20 st<LPARAM>(buf)
0a50: 29 3b 0d 0a 09 09 70 2d 3e 6b 77 64 66 69 6c 65 );....p->kwdfile
0a60: 20 3d 20 62 75 66 3b 0d 0a 0d 0a 09 09 53 65 6e = buf;......Sen
0a70: 64 4d 73 67 54 6f 49 74 65 6d 28 49 44 43 5f 50 dMsgToItem(IDC_P
0a80: 41 54 5f 4c 41 59 2c 20 43 42 5f 47 45 54 4c 42 AT_LAY, CB_GETLB
0a90: 54 45 58 54 2c 0d 0a 09 09 09 53 65 6e 64 4d 73 TEXT,.....SendMs
0aa0: 67 54 6f 49 74 65 6d 28 49 44 43 5f 50 41 54 5f gToItem(IDC_PAT_
0ab0: 4c 41 59 2c 20 43 42 5f 47 45 54 43 55 52 53 45 LAY, CB_GETCURSE
0ac0: 4c 29 2c 0d 0a 09 09 09 72 65 69 6e 74 65 72 70 L),.....reinterp
0ad0: 72 65 74 5f 63 61 73 74 3c 4c 50 41 52 41 4d 3e ret_cast<LPARAM>
0ae0: 28 62 75 66 29 20 29 3b 0d 0a 09 09 70 2d 3e 6c (buf) );....p->l
0af0: 61 79 66 69 6c 65 20 3d 20 62 75 66 3b 0d 0a 09 ayfile = buf;...
0b00: 7d 0d 0a 09 76 6f 69 64 20 53 65 6c 44 74 28 75 }...void SelDt(u
0b10: 6c 6f 6e 67 20 69 29 0d 0a 09 7b 0d 0a 09 09 44 long i)...{....D
0b20: 54 49 20 70 3d 6d 79 44 74 6c 5f 2e 62 65 67 69 TI p=myDtl_.begi
0b30: 6e 28 29 2c 20 65 3d 6d 79 44 74 6c 5f 2e 65 6e n(), e=myDtl_.en
0b40: 64 28 29 3b 0d 0a 09 09 66 6f 72 28 20 75 6c 6f d();....for( ulo
0b50: 6e 67 20 63 74 3d 30 3b 20 70 21 3d 65 20 26 26 ng ct=0; p!=e &&
0b60: 20 63 74 21 3d 69 3b 20 2b 2b 63 74 2c 2b 2b 70 ct!=i; ++ct,++p
0b70: 20 29 3b 0d 0a 09 09 69 66 28 20 70 3d 3d 65 20 );....if( p==e
0b80: 29 20 72 65 74 75 72 6e 3b 0d 0a 0d 0a 09 09 63 ) return;......c
0b90: 75 72 53 65 6c 5f 20 3d 20 69 3b 0d 0a 09 09 53 urSel_ = i;....S
0ba0: 65 6e 64 4d 73 67 54 6f 49 74 65 6d 28 49 44 43 endMsgToItem(IDC
0bb0: 5f 44 54 5f 50 41 54 2c 20 57 4d 5f 53 45 54 54 _DT_PAT, WM_SETT
0bc0: 45 58 54 2c 20 70 2d 3e 70 61 74 74 65 72 6e 2e EXT, p->pattern.
0bd0: 63 5f 73 74 72 28 29 29 3b 0d 0a 09 09 69 66 28 c_str());....if(
0be0: 20 70 2d 3e 6b 77 64 66 69 6c 65 2e 6c 65 6e 28 p->kwdfile.len(
0bf0: 29 3d 3d 30 20 29 0d 0a 09 09 09 53 65 6e 64 4d )==0 ).....SendM
0c00: 73 67 54 6f 49 74 65 6d 28 49 44 43 5f 50 41 54 sgToItem(IDC_PAT
0c10: 5f 4b 57 44 2c 20 43 42 5f 53 45 54 43 55 52 53 _KWD, CB_SETCURS
0c20: 45 4c 29 3b 0d 0a 09 09 65 6c 73 65 0d 0a 09 09 EL);....else....
0c30: 09 53 65 6e 64 4d 73 67 54 6f 49 74 65 6d 28 49 .SendMsgToItem(I
0c40: 44 43 5f 50 41 54 5f 4b 57 44 2c 43 42 5f 53 45 DC_PAT_KWD,CB_SE
0c50: 4c 45 43 54 53 54 52 49 4e 47 2c 70 2d 3e 6b 77 LECTSTRING,p->kw
0c60: 64 66 69 6c 65 2e 63 5f 73 74 72 28 29 29 3b 0d dfile.c_str());.
0c70: 0a 09 09 53 65 6e 64 4d 73 67 54 6f 49 74 65 6d ...SendMsgToItem
0c80: 28 49 44 43 5f 50 41 54 5f 4c 41 59 2c 43 42 5f (IDC_PAT_LAY,CB_
0c90: 53 45 4c 45 43 54 53 54 52 49 4e 47 2c 70 2d 3e SELECTSTRING,p->
0ca0: 6c 61 79 66 69 6c 65 2e 63 5f 73 74 72 28 29 29 layfile.c_str())
0cb0: 3b 0d 0a 09 7d 0d 0a 09 76 6f 69 64 20 6f 6e 5f ;...}...void on_
0cc0: 64 65 6c 64 6f 63 74 79 70 65 28 29 0d 0a 09 7b deldoctype()...{
0cd0: 0d 0a 09 09 75 6c 6f 6e 67 20 63 74 3b 0d 0a 09 ....ulong ct;...
0ce0: 09 44 54 49 20 70 3d 6d 79 44 74 6c 5f 2e 62 65 .DTI p=myDtl_.be
0cf0: 67 69 6e 28 29 2c 20 65 3d 6d 79 44 74 6c 5f 2e gin(), e=myDtl_.
0d00: 65 6e 64 28 29 3b 0d 0a 09 09 66 6f 72 28 20 63 end();....for( c
0d10: 74 3d 30 3b 20 70 21 3d 65 20 26 26 20 63 74 21 t=0; p!=e && ct!
0d20: 3d 63 75 72 53 65 6c 5f 3b 20 2b 2b 63 74 2c 2b =curSel_; ++ct,+
0d30: 2b 70 20 29 3b 0d 0a 09 09 69 66 28 20 70 3d 3d +p );....if( p==
0d40: 65 20 29 20 72 65 74 75 72 6e 3b 0d 0a 0d 0a 09 e ) return;.....
0d50: 09 53 74 72 69 6e 67 20 6d 73 67 20 3d 20 54 45 .String msg = TE
0d60: 58 54 28 22 5b 22 29 3b 0d 0a 09 09 6d 73 67 20 XT("[");....msg
0d70: 2b 3d 20 70 2d 3e 6e 61 6d 65 2c 20 6d 73 67 20 += p->name, msg
0d80: 2b 3d 20 54 45 58 54 28 22 5d 22 29 2c 20 6d 73 += TEXT("]"), ms
0d90: 67 20 2b 3d 20 53 74 72 69 6e 67 28 49 44 53 5f g += String(IDS_
0da0: 4f 4b 54 4f 44 45 4c 29 3b 0d 0a 09 09 69 66 28 OKTODEL);....if(
0db0: 20 49 44 4e 4f 20 3d 3d 0d 0a 09 09 09 4d 73 67 IDNO ==.....Msg
0dc0: 42 6f 78 28 20 6d 73 67 2e 63 5f 73 74 72 28 29 Box( msg.c_str()
0dd0: 2c 20 53 74 72 69 6e 67 28 49 44 53 5f 41 50 50 , String(IDS_APP
0de0: 4e 41 4d 45 29 2e 63 5f 73 74 72 28 29 2c 20 4d NAME).c_str(), M
0df0: 42 5f 59 45 53 4e 4f 20 29 20 29 0d 0a 09 09 09 B_YESNO ) ).....
0e00: 72 65 74 75 72 6e 3b 0d 0a 0d 0a 09 09 6d 79 44 return;......myD
0e10: 74 6c 5f 2e 44 65 6c 28 70 29 3b 0d 0a 09 09 53 tl_.Del(p);....S
0e20: 65 6e 64 4d 73 67 54 6f 49 74 65 6d 28 20 49 44 endMsgToItem( ID
0e30: 43 5f 44 4f 43 54 59 50 45 4c 49 53 54 2c 20 4c C_DOCTYPELIST, L
0e40: 42 5f 44 45 4c 45 54 45 53 54 52 49 4e 47 2c 20 B_DELETESTRING,
0e50: 63 74 20 29 3b 0d 0a 09 09 53 65 6c 44 74 28 30 ct );....SelDt(0
0e60: 29 3b 0d 0a 09 09 69 66 28 20 63 74 2b 31 20 3d );....if( ct+1 =
0e70: 3d 20 28 75 6c 6f 6e 67 29 53 65 6e 64 4d 73 67 = (ulong)SendMsg
0e80: 54 6f 49 74 65 6d 28 49 44 43 5f 4e 45 57 44 54 ToItem(IDC_NEWDT
0e90: 2c 43 42 5f 47 45 54 43 55 52 53 45 4c 29 20 29 ,CB_GETCURSEL) )
0ea0: 0d 0a 09 09 09 53 65 6e 64 4d 73 67 54 6f 49 74 .....SendMsgToIt
0eb0: 65 6d 28 20 49 44 43 5f 4e 45 57 44 54 2c 20 43 em( IDC_NEWDT, C
0ec0: 42 5f 53 45 54 43 55 52 53 45 4c 20 29 3b 0d 0a B_SETCURSEL );..
0ed0: 09 09 53 65 6e 64 4d 73 67 54 6f 49 74 65 6d 28 ..SendMsgToItem(
0ee0: 20 49 44 43 5f 4e 45 57 44 54 2c 20 43 42 5f 44 IDC_NEWDT, CB_D
0ef0: 45 4c 45 54 45 53 54 52 49 4e 47 2c 20 63 74 2b ELETESTRING, ct+
0f00: 31 20 29 3b 0d 0a 09 7d 0d 0a 09 76 6f 69 64 20 1 );...}...void
0f10: 6f 6e 5f 6e 65 77 64 6f 63 74 79 70 65 28 29 0d on_newdoctype().
0f20: 0a 09 7b 0d 0a 09 09 73 74 72 75 63 74 20 4e 65 ..{....struct Ne
0f30: 77 44 6f 63 54 79 70 65 44 6c 67 20 3a 20 70 75 wDocTypeDlg : pu
0f40: 62 6c 69 63 20 44 6c 67 49 6d 70 6c 0d 0a 09 09 blic DlgImpl....
0f50: 7b 0d 0a 09 09 09 4e 65 77 44 6f 63 54 79 70 65 {.....NewDocType
0f60: 44 6c 67 28 48 57 4e 44 20 77 6e 64 29 0d 0a 09 Dlg(HWND wnd)...
0f70: 09 09 09 3a 20 44 6c 67 49 6d 70 6c 28 49 44 44 ...: DlgImpl(IDD
0f80: 5f 41 44 44 44 4f 43 54 59 50 45 29 20 7b 20 47 _ADDDOCTYPE) { G
0f90: 6f 4d 6f 64 61 6c 28 77 6e 64 29 3b 20 7d 0d 0a oModal(wnd); }..
0fa0: 09 09 09 76 69 72 74 75 61 6c 20 62 6f 6f 6c 20 ...virtual bool
0fb0: 6f 6e 5f 6f 6b 28 29 0d 0a 09 09 09 7b 0d 0a 09 on_ok().....{...
0fc0: 09 09 09 54 43 48 41 52 20 62 75 66 5b 4d 41 58 ...TCHAR buf[MAX
0fd0: 5f 50 41 54 48 5d 3b 0d 0a 09 09 09 09 53 65 6e _PATH];......Sen
0fe0: 64 4d 73 67 54 6f 49 74 65 6d 28 49 44 43 5f 4e dMsgToItem(IDC_N
0ff0: 41 4d 45 2c 20 57 4d 5f 47 45 54 54 45 58 54 2c AME, WM_GETTEXT,
1000: 0d 0a 09 09 09 09 09 63 6f 75 6e 74 6f 66 28 62 .......countof(b
1010: 75 66 29 2c 72 65 69 6e 74 65 72 70 72 65 74 5f uf),reinterpret_
1020: 63 61 73 74 3c 4c 50 41 52 41 4d 3e 28 62 75 66 cast<LPARAM>(buf
1030: 29 29 3b 0d 0a 09 09 09 09 6e 61 6d 65 20 3d 20 ));......name =
1040: 62 75 66 3b 0d 0a 09 09 09 09 53 65 6e 64 4d 73 buf;......SendMs
1050: 67 54 6f 49 74 65 6d 28 49 44 43 5f 45 58 54 2c gToItem(IDC_EXT,
1060: 20 57 4d 5f 47 45 54 54 45 58 54 2c 0d 0a 09 09 WM_GETTEXT,....
1070: 09 09 09 63 6f 75 6e 74 6f 66 28 62 75 66 29 2c ...countof(buf),
1080: 72 65 69 6e 74 65 72 70 72 65 74 5f 63 61 73 74 reinterpret_cast
1090: 3c 4c 50 41 52 41 4d 3e 28 62 75 66 29 29 3b 0d <LPARAM>(buf));.
10a0: 0a 09 09 09 09 65 78 74 3d 62 75 66 3b 0d 0a 09 .....ext=buf;...
10b0: 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 0d ...return true;.
10c0: 0a 09 09 09 7d 0d 0a 09 09 09 53 74 72 69 6e 67 ....}.....String
10d0: 20 6e 61 6d 65 3b 0d 0a 09 09 09 53 74 72 69 6e name;.....Strin
10e0: 67 20 65 78 74 3b 0d 0a 09 09 7d 20 64 6c 67 28 g ext;....} dlg(
10f0: 20 68 77 6e 64 28 29 20 29 3b 0d 0a 09 09 69 66 hwnd() );....if
1100: 28 20 49 44 4f 4b 20 3d 3d 20 64 6c 67 2e 65 6e ( IDOK == dlg.en
1110: 64 63 6f 64 65 28 29 20 29 0d 0a 09 09 7b 0d 0a dcode() )....{..
1120: 09 09 09 43 6f 6e 66 69 67 4d 61 6e 61 67 65 72 ...ConfigManager
1130: 3a 3a 44 6f 63 54 79 70 65 20 6e 64 74 3b 0d 0a ::DocType ndt;..
1140: 09 09 09 54 43 48 41 52 20 62 75 66 5b 32 30 30 ...TCHAR buf[200
1150: 5d 3b 0d 0a 09 09 09 53 65 6e 64 4d 73 67 54 6f ];.....SendMsgTo
1160: 49 74 65 6d 28 49 44 43 5f 50 41 54 5f 4b 57 44 Item(IDC_PAT_KWD
1170: 2c 20 43 42 5f 47 45 54 4c 42 54 45 58 54 2c 0d , CB_GETLBTEXT,.
1180: 0a 09 09 09 09 53 65 6e 64 4d 73 67 54 6f 49 74 .....SendMsgToIt
1190: 65 6d 28 49 44 43 5f 50 41 54 5f 4b 57 44 2c 20 em(IDC_PAT_KWD,
11a0: 43 42 5f 47 45 54 43 55 52 53 45 4c 29 2c 0d 0a CB_GETCURSEL),..
11b0: 09 09 09 09 72 65 69 6e 74 65 72 70 72 65 74 5f ....reinterpret_
11c0: 63 61 73 74 3c 4c 50 41 52 41 4d 3e 28 62 75 66 cast<LPARAM>(buf
11d0: 29 20 29 3b 0d 0a 09 09 09 6e 64 74 2e 6b 77 64 ) );.....ndt.kwd
11e0: 66 69 6c 65 20 3d 20 62 75 66 3b 0d 0a 09 09 09 file = buf;.....
11f0: 53 65 6e 64 4d 73 67 54 6f 49 74 65 6d 28 49 44 SendMsgToItem(ID
1200: 43 5f 50 41 54 5f 4c 41 59 2c 20 43 42 5f 47 45 C_PAT_LAY, CB_GE
1210: 54 4c 42 54 45 58 54 2c 0d 0a 09 09 09 09 53 65 TLBTEXT,......Se
1220: 6e 64 4d 73 67 54 6f 49 74 65 6d 28 49 44 43 5f ndMsgToItem(IDC_
1230: 50 41 54 5f 4c 41 59 2c 20 43 42 5f 47 45 54 43 PAT_LAY, CB_GETC
1240: 55 52 53 45 4c 29 2c 0d 0a 09 09 09 09 72 65 69 URSEL),......rei
1250: 6e 74 65 72 70 72 65 74 5f 63 61 73 74 3c 4c 50 nterpret_cast<LP
1260: 41 52 41 4d 3e 28 62 75 66 29 20 29 3b 0d 0a 09 ARAM>(buf) );...
1270: 09 09 6e 64 74 2e 6c 61 79 66 69 6c 65 20 3d 20 ..ndt.layfile =
1280: 62 75 66 3b 0d 0a 09 09 09 6e 64 74 2e 6e 61 6d buf;.....ndt.nam
1290: 65 20 3d 20 64 6c 67 2e 6e 61 6d 65 3b 0d 0a 09 e = dlg.name;...
12a0: 09 09 6e 64 74 2e 70 61 74 74 65 72 6e 20 3d 20 ..ndt.pattern =
12b0: 54 45 58 54 28 22 2e 2a 5c 5c 2e 22 29 2b 64 6c TEXT(".*\\.")+dl
12c0: 67 2e 65 78 74 2b 54 45 58 54 28 22 24 22 29 3b g.ext+TEXT("$");
12d0: 0d 0a 09 09 09 6d 79 44 74 6c 5f 2e 41 64 64 28 .....myDtl_.Add(
12e0: 6e 64 74 29 3b 0d 0a 09 09 09 53 65 6e 64 4d 73 ndt);.....SendMs
12f0: 67 54 6f 49 74 65 6d 28 20 49 44 43 5f 44 4f 43 gToItem( IDC_DOC
1300: 54 59 50 45 4c 49 53 54 2c 20 4c 42 5f 41 44 44 TYPELIST, LB_ADD
1310: 53 54 52 49 4e 47 2c 0d 0a 09 09 09 09 6e 64 74 STRING,......ndt
1320: 2e 6e 61 6d 65 2e 63 5f 73 74 72 28 29 20 29 3b .name.c_str() );
1330: 0d 0a 09 09 09 53 65 6e 64 4d 73 67 54 6f 49 74 .....SendMsgToIt
1340: 65 6d 28 20 49 44 43 5f 4e 45 57 44 54 2c 20 43 em( IDC_NEWDT, C
1350: 42 5f 41 44 44 53 54 52 49 4e 47 2c 0d 0a 09 09 B_ADDSTRING,....
1360: 09 09 6e 64 74 2e 6e 61 6d 65 2e 63 5f 73 74 72 ..ndt.name.c_str
1370: 28 29 20 29 3b 0d 0a 09 09 7d 0d 0a 09 7d 0d 0a () );....}...}..
1380: 0d 0a 70 75 62 6c 69 63 3a 0d 0a 09 43 6f 6e 66 ..public:...Conf
1390: 69 67 44 6c 67 28 20 43 6f 6e 66 69 67 4d 61 6e igDlg( ConfigMan
13a0: 61 67 65 72 26 20 63 66 67 2c 20 48 57 4e 44 20 ager& cfg, HWND
13b0: 77 6e 64 20 29 0d 0a 09 09 3a 20 63 66 67 5f 28 wnd )....: cfg_(
13c0: 20 63 66 67 20 29 0d 0a 09 09 2c 20 44 6c 67 49 cfg )...., DlgI
13d0: 6d 70 6c 28 20 49 44 44 5f 43 4f 4e 46 49 47 20 mpl( IDD_CONFIG
13e0: 29 0d 0a 09 09 2c 20 63 75 72 53 65 6c 5f 28 20 )...., curSel_(
13f0: 30 78 66 66 66 66 66 66 66 66 20 29 0d 0a 09 7b 0xffffffff )...{
1400: 0d 0a 09 09 66 6f 72 28 20 44 54 49 20 69 3d 2b ....for( DTI i=+
1410: 2b 63 66 67 5f 2e 64 74 4c 69 73 74 5f 2e 62 65 +cfg_.dtList_.be
1420: 67 69 6e 28 29 3b 20 69 21 3d 63 66 67 5f 2e 64 gin(); i!=cfg_.d
1430: 74 4c 69 73 74 5f 2e 65 6e 64 28 29 3b 20 2b 2b tList_.end(); ++
1440: 69 20 29 0d 0a 09 09 09 6d 79 44 74 6c 5f 2e 41 i ).....myDtl_.A
1450: 64 64 28 20 2a 69 20 29 3b 0d 0a 09 09 47 6f 4d dd( *i );....GoM
1460: 6f 64 61 6c 28 20 77 6e 64 20 29 3b 0d 0a 09 7d odal( wnd );...}
1470: 0d 0a 0d 0a 70 72 69 76 61 74 65 3a 0d 0a 09 76 ....private:...v
1480: 6f 69 64 20 6f 6e 5f 69 6e 69 74 28 29 0d 0a 09 oid on_init()...
1490: 7b 0d 0a 09 09 53 65 6e 64 4d 73 67 54 6f 49 74 {....SendMsgToIt
14a0: 65 6d 28 49 44 43 5f 4c 41 54 45 53 54 5f 4e 55 em(IDC_LATEST_NU
14b0: 4d 2c 20 57 4d 5f 53 45 54 54 45 58 54 2c 0d 0a M, WM_SETTEXT,..
14c0: 09 09 09 53 74 72 69 6e 67 28 29 2e 53 65 74 49 ...String().SetI
14d0: 6e 74 28 63 66 67 5f 2e 6d 72 75 73 5f 29 2e 63 nt(cfg_.mrus_).c
14e0: 5f 73 74 72 28 29 20 29 3b 0d 0a 09 09 69 66 28 _str() );....if(
14f0: 20 63 66 67 5f 2e 75 6e 64 6f 4c 69 6d 69 74 28 cfg_.undoLimit(
1500: 29 20 3d 3d 20 2d 31 20 29 0d 0a 09 09 7b 0d 0a ) == -1 )....{..
1510: 09 09 09 53 65 6e 64 4d 73 67 54 6f 49 74 65 6d ...SendMsgToItem
1520: 28 49 44 43 5f 55 4e 44 4f 4c 49 4d 31 2c 20 42 (IDC_UNDOLIM1, B
1530: 4d 5f 53 45 54 43 48 45 43 4b 2c 20 42 53 54 5f M_SETCHECK, BST_
1540: 43 48 45 43 4b 45 44 29 3b 0d 0a 09 09 09 53 65 CHECKED);.....Se
1550: 6e 64 4d 73 67 54 6f 49 74 65 6d 28 49 44 43 5f ndMsgToItem(IDC_
1560: 55 4e 44 4f 5f 43 54 2c 20 57 4d 5f 53 45 54 54 UNDO_CT, WM_SETT
1570: 45 58 54 2c 20 54 45 58 54 28 22 32 30 22 29 20 EXT, TEXT("20")
1580: 29 3b 0d 0a 09 09 7d 0d 0a 09 09 65 6c 73 65 0d );....}....else.
1590: 0a 09 09 7b 0d 0a 09 09 09 53 65 6e 64 4d 73 67 ...{.....SendMsg
15a0: 54 6f 49 74 65 6d 28 49 44 43 5f 55 4e 44 4f 4c ToItem(IDC_UNDOL
15b0: 49 4d 32 2c 20 42 4d 5f 53 45 54 43 48 45 43 4b IM2, BM_SETCHECK
15c0: 2c 20 42 53 54 5f 43 48 45 43 4b 45 44 29 3b 0d , BST_CHECKED);.
15d0: 0a 09 09 09 53 65 6e 64 4d 73 67 54 6f 49 74 65 ....SendMsgToIte
15e0: 6d 28 49 44 43 5f 55 4e 44 4f 5f 43 54 2c 20 57 m(IDC_UNDO_CT, W
15f0: 4d 5f 53 45 54 54 45 58 54 2c 0d 0a 09 09 09 09 M_SETTEXT,......
1600: 53 74 72 69 6e 67 28 29 2e 53 65 74 49 6e 74 28 String().SetInt(
1610: 63 66 67 5f 2e 75 6e 64 6f 4c 69 6d 69 74 28 29 cfg_.undoLimit()
1620: 29 2e 63 5f 73 74 72 28 29 20 29 3b 0d 0a 09 09 ).c_str() );....
1630: 7d 0d 0a 09 09 69 66 28 20 63 66 67 5f 2e 63 6f }....if( cfg_.co
1640: 75 6e 74 42 79 55 6e 69 63 6f 64 65 28 29 20 29 untByUnicode() )
1650: 0d 0a 09 09 7b 0d 0a 09 09 09 53 65 6e 64 4d 73 ....{.....SendMs
1660: 67 54 6f 49 74 65 6d 28 49 44 43 5f 43 4f 55 4e gToItem(IDC_COUN
1670: 54 42 59 4c 45 54 54 45 52 2c 20 20 42 4d 5f 53 TBYLETTER, BM_S
1680: 45 54 43 48 45 43 4b 2c 20 42 53 54 5f 43 48 45 ETCHECK, BST_CHE
1690: 43 4b 45 44 29 3b 0d 0a 09 09 09 53 65 6e 64 4d CKED);.....SendM
16a0: 73 67 54 6f 49 74 65 6d 28 49 44 43 5f 43 4f 55 sgToItem(IDC_COU
16b0: 4e 54 42 59 4c 45 54 54 45 52 32 2c 20 42 4d 5f NTBYLETTER2, BM_
16c0: 53 45 54 43 48 45 43 4b 29 3b 0d 0a 09 09 7d 0d SETCHECK);....}.
16d0: 0a 09 09 65 6c 73 65 0d 0a 09 09 7b 0d 0a 09 09 ...else....{....
16e0: 09 53 65 6e 64 4d 73 67 54 6f 49 74 65 6d 28 49 .SendMsgToItem(I
16f0: 44 43 5f 43 4f 55 4e 54 42 59 4c 45 54 54 45 52 DC_COUNTBYLETTER
1700: 2c 20 20 42 4d 5f 53 45 54 43 48 45 43 4b 29 3b , BM_SETCHECK);
1710: 0d 0a 09 09 09 53 65 6e 64 4d 73 67 54 6f 49 74 .....SendMsgToIt
1720: 65 6d 28 49 44 43 5f 43 4f 55 4e 54 42 59 4c 45 em(IDC_COUNTBYLE
1730: 54 54 45 52 32 2c 20 42 4d 5f 53 45 54 43 48 45 TTER2, BM_SETCHE
1740: 43 4b 2c 20 42 53 54 5f 43 48 45 43 4b 45 44 29 CK, BST_CHECKED)
1750: 3b 0d 0a 09 09 7d 0d 0a 0d 0a 09 09 53 65 6e 64 ;....}......Send
1760: 4d 73 67 54 6f 49 74 65 6d 28 49 44 43 5f 54 58 MsgToItem(IDC_TX
1770: 54 46 49 4c 54 2c 20 57 4d 5f 53 45 54 54 45 58 TFILT, WM_SETTEX
1780: 54 2c 0d 0a 09 09 09 63 66 67 5f 2e 74 78 74 46 T,.....cfg_.txtF
1790: 69 6c 65 46 69 6c 74 65 72 28 29 2e 63 5f 73 74 ileFilter().c_st
17a0: 72 28 29 20 29 3b 0d 0a 09 09 53 65 6e 64 4d 73 r() );....SendMs
17b0: 67 54 6f 49 74 65 6d 28 49 44 43 5f 45 58 54 47 gToItem(IDC_EXTG
17c0: 52 45 50 2c 20 57 4d 5f 53 45 54 54 45 58 54 2c REP, WM_SETTEXT,
17d0: 0d 0a 09 09 09 63 66 67 5f 2e 67 72 65 70 45 78 .....cfg_.grepEx
17e0: 65 28 29 2e 63 5f 73 74 72 28 29 20 29 3b 0d 0a e().c_str() );..
17f0: 0d 0a 09 09 69 66 28 20 63 66 67 5f 2e 6f 70 65 ....if( cfg_.ope
1800: 6e 53 61 6d 65 28 29 20 29 0d 0a 09 09 09 53 65 nSame() ).....Se
1810: 6e 64 4d 73 67 54 6f 49 74 65 6d 28 49 44 43 5f ndMsgToItem(IDC_
1820: 4f 50 45 4e 53 41 4d 45 2c 20 42 4d 5f 53 45 54 OPENSAME, BM_SET
1830: 43 48 45 43 4b 2c 20 42 53 54 5f 43 48 45 43 4b CHECK, BST_CHECK
1840: 45 44 29 3b 0d 0a 09 09 69 66 28 20 63 66 67 5f ED);....if( cfg_
1850: 2e 72 65 6d 65 6d 62 65 72 57 69 6e 64 6f 77 53 .rememberWindowS
1860: 69 7a 65 5f 20 29 0d 0a 09 09 09 53 65 6e 64 4d ize_ ).....SendM
1870: 73 67 54 6f 49 74 65 6d 28 49 44 43 5f 52 45 4d sgToItem(IDC_REM
1880: 53 49 5a 45 2c 20 42 4d 5f 53 45 54 43 48 45 43 SIZE, BM_SETCHEC
1890: 4b 2c 20 42 53 54 5f 43 48 45 43 4b 45 44 29 3b K, BST_CHECKED);
18a0: 0d 0a 09 09 69 66 28 20 63 66 67 5f 2e 72 65 6d ....if( cfg_.rem
18b0: 65 6d 62 65 72 57 69 6e 64 6f 77 50 6c 61 63 65 emberWindowPlace
18c0: 5f 20 29 0d 0a 09 09 09 53 65 6e 64 4d 73 67 54 _ ).....SendMsgT
18d0: 6f 49 74 65 6d 28 49 44 43 5f 52 45 4d 50 4c 41 oItem(IDC_REMPLA
18e0: 43 45 2c 20 42 4d 5f 53 45 54 43 48 45 43 4b 2c CE, BM_SETCHECK,
18f0: 20 42 53 54 5f 43 48 45 43 4b 45 44 29 3b 0d 0a BST_CHECKED);..
1900: 0d 0a 09 09 43 68 61 72 53 65 74 4c 69 73 74 26 ....CharSetList&
1910: 20 63 73 6c 20 3d 20 63 66 67 5f 2e 47 65 74 43 csl = cfg_.GetC
1920: 68 61 72 53 65 74 4c 69 73 74 28 29 3b 0d 0a 09 harSetList();...
1930: 09 66 6f 72 28 75 6c 6f 6e 67 20 69 3d 31 3b 20 .for(ulong i=1;
1940: 69 3c 63 73 6c 2e 73 69 7a 65 28 29 3b 20 2b 2b i<csl.size(); ++
1950: 69 29 0d 0a 09 09 09 53 65 6e 64 4d 73 67 54 6f i).....SendMsgTo
1960: 49 74 65 6d 28 20 49 44 43 5f 4e 45 57 43 53 2c Item( IDC_NEWCS,
1970: 20 43 42 5f 41 44 44 53 54 52 49 4e 47 2c 20 63 CB_ADDSTRING, c
1980: 73 6c 5b 69 5d 2e 6c 6f 6e 67 4e 61 6d 65 20 29 sl[i].longName )
1990: 3b 0d 0a 09 09 53 65 6e 64 4d 73 67 54 6f 49 74 ;....SendMsgToIt
19a0: 65 6d 28 20 49 44 43 5f 4e 45 57 43 53 2c 20 43 em( IDC_NEWCS, C
19b0: 42 5f 53 45 54 43 55 52 53 45 4c 2c 20 63 73 6c B_SETCURSEL, csl
19c0: 2e 66 69 6e 64 43 73 69 28 63 66 67 5f 2e 6e 65 .findCsi(cfg_.ne
19d0: 77 66 69 6c 65 43 68 61 72 73 65 74 5f 29 2d 31 wfileCharset_)-1
19e0: 20 29 3b 0d 0a 09 09 53 65 6e 64 4d 73 67 54 6f );....SendMsgTo
19f0: 49 74 65 6d 28 20 49 44 43 5f 4e 45 57 4c 42 2c Item( IDC_NEWLB,
1a00: 20 43 42 5f 41 44 44 53 54 52 49 4e 47 2c 20 54 CB_ADDSTRING, T
1a10: 45 58 54 28 22 43 52 22 29 20 29 3b 0d 0a 09 09 EXT("CR") );....
1a20: 53 65 6e 64 4d 73 67 54 6f 49 74 65 6d 28 20 49 SendMsgToItem( I
1a30: 44 43 5f 4e 45 57 4c 42 2c 20 43 42 5f 41 44 44 DC_NEWLB, CB_ADD
1a40: 53 54 52 49 4e 47 2c 20 54 45 58 54 28 22 4c 46 STRING, TEXT("LF
1a50: 22 29 20 29 3b 0d 0a 09 09 53 65 6e 64 4d 73 67 ") );....SendMsg
1a60: 54 6f 49 74 65 6d 28 20 49 44 43 5f 4e 45 57 4c ToItem( IDC_NEWL
1a70: 42 2c 20 43 42 5f 41 44 44 53 54 52 49 4e 47 2c B, CB_ADDSTRING,
1a80: 20 54 45 58 54 28 22 43 52 4c 46 22 29 20 29 3b TEXT("CRLF") );
1a90: 0d 0a 09 09 53 65 6e 64 4d 73 67 54 6f 49 74 65 ....SendMsgToIte
1aa0: 6d 28 20 49 44 43 5f 4e 45 57 4c 42 2c 20 43 42 m( IDC_NEWLB, CB
1ab0: 5f 53 45 54 43 55 52 53 45 4c 2c 20 63 66 67 5f _SETCURSEL, cfg_
1ac0: 2e 6e 65 77 66 69 6c 65 4c 42 5f 20 29 3b 0d 0a .newfileLB_ );..
1ad0: 0d 0a 09 09 75 6c 6f 6e 67 20 6e 66 64 5f 69 64 ....ulong nfd_id
1ae0: 78 3d 30 2c 20 6e 66 64 5f 63 6e 74 3d 31 3b 0d x=0, nfd_cnt=1;.
1af0: 0a 09 09 53 65 6e 64 4d 73 67 54 6f 49 74 65 6d ...SendMsgToItem
1b00: 28 20 49 44 43 5f 4e 45 57 44 54 2c 20 43 42 5f ( IDC_NEWDT, CB_
1b10: 41 44 44 53 54 52 49 4e 47 2c 0d 0a 09 09 09 63 ADDSTRING,.....c
1b20: 66 67 5f 2e 64 74 4c 69 73 74 5f 2e 62 65 67 69 fg_.dtList_.begi
1b30: 6e 28 29 2d 3e 6e 61 6d 65 2e 63 5f 73 74 72 28 n()->name.c_str(
1b40: 29 20 29 3b 0d 0a 09 09 66 6f 72 28 20 44 54 49 ) );....for( DTI
1b50: 20 69 3d 6d 79 44 74 6c 5f 2e 62 65 67 69 6e 28 i=myDtl_.begin(
1b60: 29 2c 20 65 3d 6d 79 44 74 6c 5f 2e 65 6e 64 28 ), e=myDtl_.end(
1b70: 29 3b 20 69 21 3d 65 3b 20 2b 2b 69 2c 2b 2b 6e ); i!=e; ++i,++n
1b80: 66 64 5f 63 6e 74 20 29 0d 0a 09 09 7b 0d 0a 09 fd_cnt )....{...
1b90: 09 09 53 65 6e 64 4d 73 67 54 6f 49 74 65 6d 28 ..SendMsgToItem(
1ba0: 20 49 44 43 5f 44 4f 43 54 59 50 45 4c 49 53 54 IDC_DOCTYPELIST
1bb0: 2c 20 4c 42 5f 41 44 44 53 54 52 49 4e 47 2c 0d , LB_ADDSTRING,.
1bc0: 0a 09 09 09 09 69 2d 3e 6e 61 6d 65 2e 63 5f 73 .....i->name.c_s
1bd0: 74 72 28 29 20 29 3b 0d 0a 09 09 09 53 65 6e 64 tr() );.....Send
1be0: 4d 73 67 54 6f 49 74 65 6d 28 20 49 44 43 5f 4e MsgToItem( IDC_N
1bf0: 45 57 44 54 2c 20 43 42 5f 41 44 44 53 54 52 49 EWDT, CB_ADDSTRI
1c00: 4e 47 2c 0d 0a 09 09 09 09 69 2d 3e 6e 61 6d 65 NG,......i->name
1c10: 2e 63 5f 73 74 72 28 29 20 29 3b 0d 0a 09 09 09 .c_str() );.....
1c20: 69 66 28 20 69 2d 3e 6e 61 6d 65 20 3d 3d 20 63 if( i->name == c
1c30: 66 67 5f 2e 6e 65 77 66 69 6c 65 44 6f 63 74 79 fg_.newfileDocty
1c40: 70 65 5f 20 29 0d 0a 09 09 09 09 6e 66 64 5f 69 pe_ )......nfd_i
1c50: 64 78 20 3d 20 6e 66 64 5f 63 6e 74 3b 0d 0a 09 dx = nfd_cnt;...
1c60: 09 7d 0d 0a 09 09 53 65 6e 64 4d 73 67 54 6f 49 .}....SendMsgToI
1c70: 74 65 6d 28 20 49 44 43 5f 4e 45 57 44 54 2c 20 tem( IDC_NEWDT,
1c80: 43 42 5f 53 45 54 43 55 52 53 45 4c 2c 20 6e 66 CB_SETCURSEL, nf
1c90: 64 5f 69 64 78 20 29 3b 0d 0a 0d 0a 09 09 46 69 d_idx );......Fi
1ca0: 6e 64 46 69 6c 65 20 66 3b 0d 0a 09 09 57 49 4e ndFile f;....WIN
1cb0: 33 32 5f 46 49 4e 44 5f 44 41 54 41 20 66 64 3b 32_FIND_DATA fd;
1cc0: 0d 0a 09 09 66 2e 42 65 67 69 6e 28 20 28 50 61 ....f.Begin( (Pa
1cd0: 74 68 28 50 61 74 68 3a 3a 45 78 65 29 2b 3d 54 th(Path::Exe)+=T
1ce0: 45 58 54 28 22 74 79 70 65 5c 5c 2a 2e 6b 77 64 EXT("type\\*.kwd
1cf0: 22 29 29 2e 63 5f 73 74 72 28 29 20 29 3b 0d 0a ")).c_str() );..
1d00: 09 09 53 65 6e 64 4d 73 67 54 6f 49 74 65 6d 28 ..SendMsgToItem(
1d10: 20 49 44 43 5f 50 41 54 5f 4b 57 44 2c 20 43 42 IDC_PAT_KWD, CB
1d20: 5f 41 44 44 53 54 52 49 4e 47 2c 20 54 45 58 54 _ADDSTRING, TEXT
1d30: 28 22 22 29 20 29 3b 0d 0a 09 09 77 68 69 6c 65 ("") );....while
1d40: 28 20 66 2e 4e 65 78 74 28 26 66 64 29 20 29 0d ( f.Next(&fd) ).
1d50: 0a 09 09 09 53 65 6e 64 4d 73 67 54 6f 49 74 65 ....SendMsgToIte
1d60: 6d 28 20 49 44 43 5f 50 41 54 5f 4b 57 44 2c 20 m( IDC_PAT_KWD,
1d70: 43 42 5f 41 44 44 53 54 52 49 4e 47 2c 20 66 64 CB_ADDSTRING, fd
1d80: 2e 63 46 69 6c 65 4e 61 6d 65 20 29 3b 0d 0a 09 .cFileName );...
1d90: 09 66 2e 42 65 67 69 6e 28 20 28 50 61 74 68 28 .f.Begin( (Path(
1da0: 50 61 74 68 3a 3a 45 78 65 29 2b 3d 54 45 58 54 Path::Exe)+=TEXT
1db0: 28 22 74 79 70 65 5c 5c 2a 2e 6c 61 79 22 29 29 ("type\\*.lay"))
1dc0: 2e 63 5f 73 74 72 28 29 20 29 3b 0d 0a 09 09 77 .c_str() );....w
1dd0: 68 69 6c 65 28 20 66 2e 4e 65 78 74 28 26 66 64 hile( f.Next(&fd
1de0: 29 20 29 0d 0a 09 09 09 53 65 6e 64 4d 73 67 54 ) ).....SendMsgT
1df0: 6f 49 74 65 6d 28 20 49 44 43 5f 50 41 54 5f 4c oItem( IDC_PAT_L
1e00: 41 59 2c 20 43 42 5f 41 44 44 53 54 52 49 4e 47 AY, CB_ADDSTRING
1e10: 2c 20 66 64 2e 63 46 69 6c 65 4e 61 6d 65 20 29 , fd.cFileName )
1e20: 3b 0d 0a 0d 0a 09 09 53 65 6c 44 74 28 30 29 3b ;......SelDt(0);
1e30: 0d 0a 0d 0a 09 09 53 65 74 43 65 6e 74 65 72 28 ......SetCenter(
1e40: 20 68 77 6e 64 28 29 2c 20 3a 3a 47 65 74 50 61 hwnd(), ::GetPa
1e50: 72 65 6e 74 28 68 77 6e 64 28 29 29 20 29 3b 0d rent(hwnd()) );.
1e60: 0a 09 7d 0d 0a 0d 0a 09 62 6f 6f 6c 20 6f 6e 5f ..}.....bool on_
1e70: 63 6f 6d 6d 61 6e 64 28 20 55 49 4e 54 20 63 6d command( UINT cm
1e80: 64 2c 20 55 49 4e 54 20 69 64 2c 20 48 57 4e 44 d, UINT id, HWND
1e90: 20 63 74 72 6c 20 29 0d 0a 09 7b 0d 0a 09 09 73 ctrl )...{....s
1ea0: 77 69 74 63 68 28 20 63 6d 64 20 29 0d 0a 09 09 witch( cmd )....
1eb0: 7b 0d 0a 09 09 63 61 73 65 20 4c 42 4e 5f 53 45 {....case LBN_SE
1ec0: 4c 43 48 41 4e 47 45 3a 0d 0a 09 09 09 53 61 76 LCHANGE:.....Sav
1ed0: 65 44 74 28 29 3b 0d 0a 09 09 09 53 65 6c 44 74 eDt();.....SelDt
1ee0: 28 20 28 75 6c 6f 6e 67 29 53 65 6e 64 4d 73 67 ( (ulong)SendMsg
1ef0: 54 6f 49 74 65 6d 28 20 49 44 43 5f 44 4f 43 54 ToItem( IDC_DOCT
1f00: 59 50 45 4c 49 53 54 2c 20 4c 42 5f 47 45 54 43 YPELIST, LB_GETC
1f10: 55 52 53 45 4c 20 29 20 29 3b 0d 0a 09 09 09 62 URSEL ) );.....b
1f20: 72 65 61 6b 3b 0d 0a 09 09 64 65 66 61 75 6c 74 reak;....default
1f30: 3a 0d 0a 09 09 09 54 43 48 41 52 20 62 75 66 5b :.....TCHAR buf[
1f40: 32 35 36 5d 3b 0d 0a 09 09 09 73 77 69 74 63 68 256];.....switch
1f50: 28 20 69 64 20 29 0d 0a 09 09 09 7b 0d 0a 09 09 ( id ).....{....
1f60: 09 63 61 73 65 20 49 44 43 5f 45 44 49 54 4b 57 .case IDC_EDITKW
1f70: 44 3a 0d 0a 09 09 09 09 53 65 6e 64 4d 73 67 54 D:......SendMsgT
1f80: 6f 49 74 65 6d 28 49 44 43 5f 50 41 54 5f 4b 57 oItem(IDC_PAT_KW
1f90: 44 2c 20 43 42 5f 47 45 54 4c 42 54 45 58 54 2c D, CB_GETLBTEXT,
1fa0: 0d 0a 09 09 09 09 09 53 65 6e 64 4d 73 67 54 6f .......SendMsgTo
1fb0: 49 74 65 6d 28 49 44 43 5f 50 41 54 5f 4b 57 44 Item(IDC_PAT_KWD
1fc0: 2c 20 43 42 5f 47 45 54 43 55 52 53 45 4c 29 2c , CB_GETCURSEL),
1fd0: 0d 0a 09 09 09 09 09 72 65 69 6e 74 65 72 70 72 .......reinterpr
1fe0: 65 74 5f 63 61 73 74 3c 4c 50 41 52 41 4d 3e 28 et_cast<LPARAM>(
1ff0: 62 75 66 29 20 29 3b 0d 0a 09 09 09 09 69 66 28 buf) );......if(
2000: 20 62 75 66 5b 30 5d 20 21 3d 20 54 45 58 54 28 buf[0] != TEXT(
2010: 27 5c 30 27 29 20 29 0d 0a 09 09 09 09 09 42 6f '\0') ).......Bo
2020: 6f 74 4e 65 77 50 72 6f 63 65 73 73 28 20 28 54 otNewProcess( (T
2030: 45 58 54 28 22 5c 22 22 29 2b 50 61 74 68 28 50 EXT("\"")+Path(P
2040: 61 74 68 3a 3a 45 78 65 29 2b 0d 0a 09 09 09 09 ath::Exe)+......
2050: 09 09 54 45 58 54 28 22 74 79 70 65 5c 5c 22 29 ..TEXT("type\\")
2060: 2b 62 75 66 2b 54 45 58 54 28 22 5c 22 22 29 20 +buf+TEXT("\"")
2070: 29 2e 63 5f 73 74 72 28 29 29 3b 0d 0a 09 09 09 ).c_str());.....
2080: 09 62 72 65 61 6b 3b 0d 0a 09 09 09 63 61 73 65 .break;.....case
2090: 20 49 44 43 5f 45 44 49 54 4c 41 59 3a 0d 0a 09 IDC_EDITLAY:...
20a0: 09 09 09 53 65 6e 64 4d 73 67 54 6f 49 74 65 6d ...SendMsgToItem
20b0: 28 49 44 43 5f 50 41 54 5f 4c 41 59 2c 20 43 42 (IDC_PAT_LAY, CB
20c0: 5f 47 45 54 4c 42 54 45 58 54 2c 0d 0a 09 09 09 _GETLBTEXT,.....
20d0: 09 09 53 65 6e 64 4d 73 67 54 6f 49 74 65 6d 28 ..SendMsgToItem(
20e0: 49 44 43 5f 50 41 54 5f 4c 41 59 2c 20 43 42 5f IDC_PAT_LAY, CB_
20f0: 47 45 54 43 55 52 53 45 4c 29 2c 0d 0a 09 09 09 GETCURSEL),.....
2100: 09 09 72 65 69 6e 74 65 72 70 72 65 74 5f 63 61 ..reinterpret_ca
2110: 73 74 3c 4c 50 41 52 41 4d 3e 28 62 75 66 29 20 st<LPARAM>(buf)
2120: 29 3b 0d 0a 09 09 09 09 42 6f 6f 74 4e 65 77 50 );......BootNewP
2130: 72 6f 63 65 73 73 28 20 28 54 45 58 54 28 22 5c rocess( (TEXT("\
2140: 22 22 29 2b 50 61 74 68 28 50 61 74 68 3a 3a 45 "")+Path(Path::E
2150: 78 65 29 2b 0d 0a 09 09 09 09 09 54 45 58 54 28 xe)+.......TEXT(
2160: 22 74 79 70 65 5c 5c 22 29 2b 62 75 66 2b 54 45 "type\\")+buf+TE
2170: 58 54 28 22 5c 22 22 29 20 29 2e 63 5f 73 74 72 XT("\"") ).c_str
2180: 28 29 29 3b 0d 0a 09 09 09 09 62 72 65 61 6b 3b ());......break;
2190: 0d 0a 09 09 09 63 61 73 65 20 49 44 43 5f 4e 45 .....case IDC_NE
21a0: 57 44 4f 43 54 59 50 45 3a 0d 0a 09 09 09 09 6f WDOCTYPE:......o
21b0: 6e 5f 6e 65 77 64 6f 63 74 79 70 65 28 29 3b 0d n_newdoctype();.
21c0: 0a 09 09 09 09 62 72 65 61 6b 3b 0d 0a 09 09 09 .....break;.....
21d0: 63 61 73 65 20 49 44 43 5f 44 45 4c 44 4f 43 54 case IDC_DELDOCT
21e0: 59 50 45 3a 0d 0a 09 09 09 09 6f 6e 5f 64 65 6c YPE:......on_del
21f0: 64 6f 63 74 79 70 65 28 29 3b 0d 0a 09 09 09 09 doctype();......
2200: 62 72 65 61 6b 3b 0d 0a 09 09 09 64 65 66 61 75 break;.....defau
2210: 6c 74 3a 0d 0a 09 09 09 09 72 65 74 75 72 6e 20 lt:......return
2220: 66 61 6c 73 65 3b 0d 0a 09 09 09 7d 0d 0a 09 09 false;.....}....
2230: 09 62 72 65 61 6b 3b 0d 0a 09 09 7d 0d 0a 09 09 .break;....}....
2240: 72 65 74 75 72 6e 20 74 72 75 65 3b 0d 0a 09 7d return true;...}
2250: 0d 0a 0d 0a 09 62 6f 6f 6c 20 6f 6e 5f 6f 6b 28 .....bool on_ok(
2260: 29 0d 0a 09 7b 0d 0a 09 09 54 43 48 41 52 20 62 )...{....TCHAR b
2270: 75 66 5b 31 30 30 5d 3b 0d 0a 09 09 53 65 6e 64 uf[100];....Send
2280: 4d 73 67 54 6f 49 74 65 6d 28 49 44 43 5f 4c 41 MsgToItem(IDC_LA
2290: 54 45 53 54 5f 4e 55 4d 2c 20 57 4d 5f 47 45 54 TEST_NUM, WM_GET
22a0: 54 45 58 54 2c 0d 0a 09 09 09 63 6f 75 6e 74 6f TEXT,.....counto
22b0: 66 28 62 75 66 29 2c 72 65 69 6e 74 65 72 70 72 f(buf),reinterpr
22c0: 65 74 5f 63 61 73 74 3c 4c 50 41 52 41 4d 3e 28 et_cast<LPARAM>(
22d0: 62 75 66 29 29 3b 0d 0a 09 09 63 66 67 5f 2e 6d buf));....cfg_.m
22e0: 72 75 73 5f 20 3d 20 53 74 72 69 6e 67 3a 3a 47 rus_ = String::G
22f0: 65 74 49 6e 74 28 62 75 66 29 3b 0d 0a 09 09 63 etInt(buf);....c
2300: 66 67 5f 2e 6d 72 75 73 5f 20 3d 20 4d 69 6e 28 fg_.mrus_ = Min(
2310: 4d 61 78 28 30 2c 20 63 66 67 5f 2e 6d 72 75 73 Max(0, cfg_.mrus
2320: 5f 29 2c 20 32 30 29 3b 0d 0a 0d 0a 09 09 69 66 _), 20);......if
2330: 28 20 42 53 54 5f 43 48 45 43 4b 45 44 20 3d 3d ( BST_CHECKED ==
2340: 20 53 65 6e 64 4d 73 67 54 6f 49 74 65 6d 28 49 SendMsgToItem(I
2350: 44 43 5f 55 4e 44 4f 4c 49 4d 31 2c 20 42 4d 5f DC_UNDOLIM1, BM_
2360: 47 45 54 43 48 45 43 4b 29 20 29 0d 0a 09 09 7b GETCHECK) )....{
2370: 0d 0a 09 09 09 63 66 67 5f 2e 75 6e 64 6f 4c 69 .....cfg_.undoLi
2380: 6d 69 74 5f 20 3d 20 2d 31 3b 0d 0a 09 09 7d 0d mit_ = -1;....}.
2390: 0a 09 09 65 6c 73 65 0d 0a 09 09 7b 0d 0a 09 09 ...else....{....
23a0: 09 53 65 6e 64 4d 73 67 54 6f 49 74 65 6d 28 49 .SendMsgToItem(I
23b0: 44 43 5f 55 4e 44 4f 5f 43 54 2c 20 57 4d 5f 47 DC_UNDO_CT, WM_G
23c0: 45 54 54 45 58 54 2c 0d 0a 09 09 09 09 63 6f 75 ETTEXT,......cou
23d0: 6e 74 6f 66 28 62 75 66 29 2c 72 65 69 6e 74 65 ntof(buf),reinte
23e0: 72 70 72 65 74 5f 63 61 73 74 3c 4c 50 41 52 41 rpret_cast<LPARA
23f0: 4d 3e 28 62 75 66 29 29 3b 0d 0a 09 09 09 63 66 M>(buf));.....cf
2400: 67 5f 2e 75 6e 64 6f 4c 69 6d 69 74 5f 20 3d 20 g_.undoLimit_ =
2410: 53 74 72 69 6e 67 3a 3a 47 65 74 49 6e 74 28 62 String::GetInt(b
2420: 75 66 29 3b 0d 0a 09 09 7d 0d 0a 0d 0a 09 09 53 uf);....}......S
2430: 65 6e 64 4d 73 67 54 6f 49 74 65 6d 28 49 44 43 endMsgToItem(IDC
2440: 5f 54 58 54 46 49 4c 54 2c 20 57 4d 5f 47 45 54 _TXTFILT, WM_GET
2450: 54 45 58 54 2c 0d 0a 09 09 09 63 6f 75 6e 74 6f TEXT,.....counto
2460: 66 28 62 75 66 29 2c 72 65 69 6e 74 65 72 70 72 f(buf),reinterpr
2470: 65 74 5f 63 61 73 74 3c 4c 50 41 52 41 4d 3e 28 et_cast<LPARAM>(
2480: 62 75 66 29 29 3b 0d 0a 09 09 63 66 67 5f 2e 74 buf));....cfg_.t
2490: 78 74 46 69 6c 74 65 72 5f 20 3d 20 62 75 66 3b xtFilter_ = buf;
24a0: 0d 0a 0d 0a 09 09 53 65 6e 64 4d 73 67 54 6f 49 ......SendMsgToI
24b0: 74 65 6d 28 49 44 43 5f 45 58 54 47 52 45 50 2c tem(IDC_EXTGREP,
24c0: 20 57 4d 5f 47 45 54 54 45 58 54 2c 0d 0a 09 09 WM_GETTEXT,....
24d0: 09 63 6f 75 6e 74 6f 66 28 62 75 66 29 2c 72 65 .countof(buf),re
24e0: 69 6e 74 65 72 70 72 65 74 5f 63 61 73 74 3c 4c interpret_cast<L
24f0: 50 41 52 41 4d 3e 28 62 75 66 29 29 3b 0d 0a 09 PARAM>(buf));...
2500: 09 63 66 67 5f 2e 67 72 65 70 45 78 65 5f 20 3d .cfg_.grepExe_ =
2510: 20 62 75 66 3b 0d 0a 0d 0a 09 09 63 66 67 5f 2e buf;......cfg_.
2520: 6f 70 65 6e 53 61 6d 65 5f 20 3d 0d 0a 09 09 09 openSame_ =.....
2530: 28 20 42 53 54 5f 43 48 45 43 4b 45 44 3d 3d 53 ( BST_CHECKED==S
2540: 65 6e 64 4d 73 67 54 6f 49 74 65 6d 28 49 44 43 endMsgToItem(IDC
2550: 5f 4f 50 45 4e 53 41 4d 45 2c 20 42 4d 5f 47 45 _OPENSAME, BM_GE
2560: 54 43 48 45 43 4b 29 20 29 3b 0d 0a 09 09 63 66 TCHECK) );....cf
2570: 67 5f 2e 72 65 6d 65 6d 62 65 72 57 69 6e 64 6f g_.rememberWindo
2580: 77 53 69 7a 65 5f 20 3d 0d 0a 09 09 09 28 20 42 wSize_ =.....( B
2590: 53 54 5f 43 48 45 43 4b 45 44 3d 3d 53 65 6e 64 ST_CHECKED==Send
25a0: 4d 73 67 54 6f 49 74 65 6d 28 49 44 43 5f 52 45 MsgToItem(IDC_RE
25b0: 4d 53 49 5a 45 2c 20 42 4d 5f 47 45 54 43 48 45 MSIZE, BM_GETCHE
25c0: 43 4b 29 20 29 3b 0d 0a 09 09 63 66 67 5f 2e 72 CK) );....cfg_.r
25d0: 65 6d 65 6d 62 65 72 57 69 6e 64 6f 77 50 6c 61 ememberWindowPla
25e0: 63 65 5f 20 3d 0d 0a 09 09 09 28 20 42 53 54 5f ce_ =.....( BST_
25f0: 43 48 45 43 4b 45 44 3d 3d 53 65 6e 64 4d 73 67 CHECKED==SendMsg
2600: 54 6f 49 74 65 6d 28 49 44 43 5f 52 45 4d 50 4c ToItem(IDC_REMPL
2610: 41 43 45 2c 20 42 4d 5f 47 45 54 43 48 45 43 4b ACE, BM_GETCHECK
2620: 29 20 29 3b 0d 0a 0d 0a 09 09 63 66 67 5f 2e 63 ) );......cfg_.c
2630: 6f 75 6e 74 62 79 75 6e 69 63 6f 64 65 5f 20 3d ountbyunicode_ =
2640: 0d 0a 09 09 09 28 20 42 53 54 5f 43 48 45 43 4b .....( BST_CHECK
2650: 45 44 3d 3d 53 65 6e 64 4d 73 67 54 6f 49 74 65 ED==SendMsgToIte
2660: 6d 28 49 44 43 5f 43 4f 55 4e 54 42 59 4c 45 54 m(IDC_COUNTBYLET
2670: 54 45 52 2c 20 42 4d 5f 47 45 54 43 48 45 43 4b TER, BM_GETCHECK
2680: 29 20 29 3b 0d 0a 0d 0a 09 09 63 66 67 5f 2e 6e ) );......cfg_.n
2690: 65 77 66 69 6c 65 43 68 61 72 73 65 74 5f 20 3d ewfileCharset_ =
26a0: 20 63 66 67 5f 2e 47 65 74 43 68 61 72 53 65 74 cfg_.GetCharSet
26b0: 4c 69 73 74 28 29 5b 31 2b 53 65 6e 64 4d 73 67 List()[1+SendMsg
26c0: 54 6f 49 74 65 6d 28 49 44 43 5f 4e 45 57 43 53 ToItem(IDC_NEWCS
26d0: 2c 20 43 42 5f 47 45 54 43 55 52 53 45 4c 29 5d , CB_GETCURSEL)]
26e0: 2e 49 44 3b 0d 0a 09 09 63 66 67 5f 2e 6e 65 77 .ID;....cfg_.new
26f0: 66 69 6c 65 4c 42 5f 20 3d 20 28 6c 62 63 6f 64 fileLB_ = (lbcod
2700: 65 29 20 53 65 6e 64 4d 73 67 54 6f 49 74 65 6d e) SendMsgToItem
2710: 28 49 44 43 5f 4e 45 57 4c 42 2c 20 43 42 5f 47 (IDC_NEWLB, CB_G
2720: 45 54 43 55 52 53 45 4c 29 3b 0d 0a 09 09 73 69 ETCURSEL);....si
2730: 7a 65 5f 74 20 6e 66 64 5f 69 64 78 3d 53 65 6e ze_t nfd_idx=Sen
2740: 64 4d 73 67 54 6f 49 74 65 6d 28 49 44 43 5f 4e dMsgToItem(IDC_N
2750: 45 57 44 54 2c 20 43 42 5f 47 45 54 43 55 52 53 EWDT, CB_GETCURS
2760: 45 4c 29 2c 20 6e 66 64 5f 63 6e 74 3d 31 3b 0d EL), nfd_cnt=1;.
2770: 0a 09 09 63 66 67 5f 2e 6e 65 77 66 69 6c 65 44 ...cfg_.newfileD
2780: 6f 63 74 79 70 65 5f 20 3d 20 53 74 72 69 6e 67 octype_ = String
2790: 28 29 3b 0d 0a 0d 0a 09 09 53 61 76 65 44 74 28 ();......SaveDt(
27a0: 29 3b 0d 0a 09 09 63 66 67 5f 2e 64 74 4c 69 73 );....cfg_.dtLis
27b0: 74 5f 2e 44 65 6c 41 66 74 65 72 28 20 2b 2b 63 t_.DelAfter( ++c
27c0: 66 67 5f 2e 64 74 4c 69 73 74 5f 2e 62 65 67 69 fg_.dtList_.begi
27d0: 6e 28 29 20 29 3b 0d 0a 09 09 66 6f 72 28 20 44 n() );....for( D
27e0: 54 49 20 69 3d 6d 79 44 74 6c 5f 2e 62 65 67 69 TI i=myDtl_.begi
27f0: 6e 28 29 2c 20 65 3d 6d 79 44 74 6c 5f 2e 65 6e n(), e=myDtl_.en
2800: 64 28 29 3b 20 69 21 3d 65 3b 20 2b 2b 69 2c 20 d(); i!=e; ++i,
2810: 2b 2b 6e 66 64 5f 63 6e 74 20 29 0d 0a 09 09 7b ++nfd_cnt )....{
2820: 0d 0a 09 09 09 63 66 67 5f 2e 64 74 4c 69 73 74 .....cfg_.dtList
2830: 5f 2e 41 64 64 28 20 2a 69 20 29 3b 0d 0a 09 09 _.Add( *i );....
2840: 09 69 66 28 20 6e 66 64 5f 69 64 78 20 3d 3d 20 .if( nfd_idx ==
2850: 6e 66 64 5f 63 6e 74 20 29 0d 0a 09 09 09 09 63 nfd_cnt )......c
2860: 66 67 5f 2e 6e 65 77 66 69 6c 65 44 6f 63 74 79 fg_.newfileDocty
2870: 70 65 5f 20 3d 20 69 2d 3e 6e 61 6d 65 3b 0d 0a pe_ = i->name;..
2880: 09 09 7d 0d 0a 09 09 72 65 74 75 72 6e 20 74 72 ..}....return tr
2890: 75 65 3b 0d 0a 09 7d 0d 0a 0d 0a 70 72 69 76 61 ue;...}....priva
28a0: 74 65 3a 0d 0a 09 43 6f 6e 66 69 67 4d 61 6e 61 te:...ConfigMana
28b0: 67 65 72 26 20 63 66 67 5f 3b 0d 0a 09 43 6f 6e ger& cfg_;...Con
28c0: 66 69 67 4d 61 6e 61 67 65 72 3a 3a 44 74 4c 69 figManager::DtLi
28d0: 73 74 20 6d 79 44 74 6c 5f 3b 0d 0a 7d 3b 0d 0a st myDtl_;..};..
28e0: 0d 0a 62 6f 6f 6c 20 43 6f 6e 66 69 67 4d 61 6e ..bool ConfigMan
28f0: 61 67 65 72 3a 3a 44 6f 44 69 61 6c 6f 67 28 20 ager::DoDialog(
2900: 63 6f 6e 73 74 20 6b 69 3a 3a 57 69 6e 64 6f 77 const ki::Window
2910: 26 20 70 61 72 65 6e 74 20 29 0d 0a 7b 0d 0a 09 & parent )..{...
2920: 4c 6f 61 64 49 6e 69 28 29 3b 0d 0a 09 7b 0d 0a LoadIni();...{..
2930: 09 09 43 6f 6e 66 69 67 44 6c 67 20 64 6c 67 28 ..ConfigDlg dlg(
2940: 2a 74 68 69 73 2c 20 70 61 72 65 6e 74 2e 68 77 *this, parent.hw
2950: 6e 64 28 29 29 3b 0d 0a 09 09 69 66 28 20 49 44 nd());....if( ID
2960: 4f 4b 20 21 3d 20 64 6c 67 2e 65 6e 64 63 6f 64 OK != dlg.endcod
2970: 65 28 29 20 29 0d 0a 09 09 09 72 65 74 75 72 6e e() ).....return
2980: 20 66 61 6c 73 65 3b 0d 0a 09 09 63 75 72 44 74 false;....curDt
2990: 5f 20 3d 20 64 74 4c 69 73 74 5f 2e 62 65 67 69 _ = dtList_.begi
29a0: 6e 28 29 3b 20 2f 2f 20 82 c6 82 e8 82 a0 82 a6 n(); // ........
29b0: 82 b8 0d 0a 09 7d 0d 0a 09 53 61 76 65 49 6e 69 .....}...SaveIni
29c0: 28 29 3b 0d 0a 09 72 65 74 75 72 6e 20 74 72 75 ();...return tru
29d0: 65 3b 0d 0a 7d 0d 0a 0d 0a 0d 0a 0d 0a 2f 2f 2d e;..}........//-
29e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
29f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
2a00: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
2a10: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
2a20: 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 2f 2f 20 2a 2e 6c --------..// *.l
2a30: 61 79 20 83 74 83 40 83 43 83 8b 82 a9 82 e7 82 ay .t.@.C.......
2a40: cc 93 c7 82 dd 8d 9e 82 dd 8f 88 97 9d 0d 0a 2f .............../
2a50: 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d /---------------
2a60: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
2a70: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
2a80: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
2a90: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 6e 61 ----------....na
2aa0: 6d 65 73 70 61 63 65 20 7b 0d 0a 09 73 74 61 74 mespace {...stat
2ab0: 69 63 20 75 6c 6f 6e 67 20 54 6f 42 79 74 65 28 ic ulong ToByte(
2ac0: 20 75 6e 69 63 6f 64 65 2a 20 73 74 72 20 29 0d unicode* str ).
2ad0: 0a 09 7b 0d 0a 09 09 75 6c 6f 6e 67 20 63 20 3d ..{....ulong c =
2ae0: 20 73 74 72 5b 30 5d 3b 0d 0a 09 09 09 20 69 66 str[0];..... if
2af0: 28 20 4c 27 61 27 20 3c 3d 20 73 74 72 5b 30 5d ( L'a' <= str[0]
2b00: 20 29 20 63 20 2d 3d 20 28 4c 27 61 27 20 2d 20 ) c -= (L'a' -
2b10: 31 30 29 3b 0d 0a 09 09 65 6c 73 65 20 69 66 28 10);....else if(
2b20: 20 4c 27 41 27 20 3c 3d 20 73 74 72 5b 30 5d 20 L'A' <= str[0]
2b30: 29 20 63 20 2d 3d 20 28 4c 27 41 27 20 2d 20 31 ) c -= (L'A' - 1
2b40: 30 29 3b 0d 0a 09 09 65 6c 73 65 20 20 20 20 20 0);....else
2b50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2b60: 20 63 20 2d 3d 20 20 4c 27 30 27 3b 0d 0a 09 09 c -= L'0';....
2b70: 63 20 3d 20 63 2a 31 36 20 2b 20 73 74 72 5b 31 c = c*16 + str[1
2b80: 5d 3b 0d 0a 09 09 09 20 69 66 28 20 4c 27 61 27 ];..... if( L'a'
2b90: 20 3c 3d 20 73 74 72 5b 31 5d 20 29 20 63 20 2d <= str[1] ) c -
2ba0: 3d 20 28 4c 27 61 27 20 2d 20 31 30 29 3b 0d 0a = (L'a' - 10);..
2bb0: 09 09 65 6c 73 65 20 69 66 28 20 4c 27 41 27 20 ..else if( L'A'
2bc0: 3c 3d 20 73 74 72 5b 31 5d 20 29 20 63 20 2d 3d <= str[1] ) c -=
2bd0: 20 28 4c 27 41 27 20 2d 20 31 30 29 3b 0d 0a 09 (L'A' - 10);...
2be0: 09 65 6c 73 65 20 20 20 20 20 20 20 20 20 20 20 .else
2bf0: 20 20 20 20 20 20 20 20 20 20 20 63 20 2d 3d 20 c -=
2c00: 20 4c 27 30 27 3b 0d 0a 09 09 72 65 74 75 72 6e L'0';....return
2c10: 20 63 3b 0d 0a 09 7d 0d 0a 09 73 74 61 74 69 63 c;...}...static
2c20: 20 75 6c 6f 6e 67 20 47 65 74 43 6f 6c 6f 72 28 ulong GetColor(
2c30: 20 75 6e 69 63 6f 64 65 2a 20 73 74 72 20 29 0d unicode* str ).
2c40: 0a 09 7b 0d 0a 09 09 72 65 74 75 72 6e 20 54 6f ..{....return To
2c50: 42 79 74 65 28 73 74 72 29 20 2b 20 28 54 6f 42 Byte(str) + (ToB
2c60: 79 74 65 28 73 74 72 2b 32 29 3c 3c 38 29 20 2b yte(str+2)<<8) +
2c70: 20 28 54 6f 42 79 74 65 28 73 74 72 2b 34 29 3c (ToByte(str+4)<
2c80: 3c 31 36 29 3b 0d 0a 09 7d 0d 0a 09 73 74 61 74 <16);...}...stat
2c90: 69 63 20 69 6e 74 20 47 65 74 49 6e 74 28 20 75 ic int GetInt( u
2ca0: 6e 69 63 6f 64 65 2a 20 73 74 72 20 29 0d 0a 09 nicode* str )...
2cb0: 7b 0d 0a 09 09 69 6e 74 20 63 20 3d 20 30 3b 0d {....int c = 0;.
2cc0: 0a 09 09 69 6e 74 20 73 20 3d 20 31 3b 0d 0a 09 ...int s = 1;...
2cd0: 09 69 66 28 20 2a 73 74 72 20 3d 3d 20 4c 27 2d .if( *str == L'-
2ce0: 27 20 29 0d 0a 09 09 09 73 3d 2d 31 2c 20 2b 2b ' ).....s=-1, ++
2cf0: 73 74 72 3b 0d 0a 09 09 66 6f 72 28 20 3b 20 2a str;....for( ; *
2d00: 73 74 72 21 3d 4c 27 5c 30 27 3b 20 2b 2b 73 74 str!=L'\0'; ++st
2d10: 72 20 29 0d 0a 09 09 09 63 20 3d 20 63 20 2a 20 r ).....c = c *
2d20: 31 30 20 2b 20 2a 73 74 72 20 2d 20 4c 27 30 27 10 + *str - L'0'
2d30: 3b 0d 0a 09 09 72 65 74 75 72 6e 20 63 2a 73 3b ;....return c*s;
2d40: 0d 0a 09 7d 0d 0a 7d 0d 0a 0d 0a 76 6f 69 64 20 ...}..}....void
2d50: 43 6f 6e 66 69 67 4d 61 6e 61 67 65 72 3a 3a 4c ConfigManager::L
2d60: 6f 61 64 4c 61 79 6f 75 74 28 20 43 6f 6e 66 69 oadLayout( Confi
2d70: 67 4d 61 6e 61 67 65 72 3a 3a 44 6f 63 54 79 70 gManager::DocTyp
2d80: 65 2a 20 64 74 20 29 0d 0a 7b 0d 0a 20 20 2f 2f e* dt )..{.. //
2d90: 20 82 50 81 44 8f c8 97 aa 92 6c 82 c6 82 b5 82 .P.D.....l.....
2da0: c4 81 63 0d 0a 0d 0a 09 44 74 4c 69 73 74 3a 3a ..c.....DtList::
2db0: 69 74 65 72 61 74 6f 72 20 72 65 66 20 3d 20 64 iterator ref = d
2dc0: 74 4c 69 73 74 5f 2e 62 65 67 69 6e 28 29 3b 0d tList_.begin();.
2dd0: 0a 09 69 66 28 20 72 65 66 20 21 3d 20 64 74 4c ..if( ref != dtL
2de0: 69 73 74 5f 2e 65 6e 64 28 29 20 29 0d 0a 09 7b ist_.end() )...{
2df0: 0d 0a 09 09 2f 2f 20 64 65 66 61 75 6c 74 2e 6c ....// default.l
2e00: 61 79 82 aa 83 8d 81 5b 83 68 82 b3 82 ea 82 c4 ay.....[.h......
2e10: 82 a2 82 ea 82 ce 82 bb 82 ea 82 f0 8e 67 82 a4 .............g..
2e20: 0d 0a 09 09 64 74 2d 3e 76 63 20 20 20 20 20 20 ....dt->vc
2e30: 20 20 3d 20 72 65 66 2d 3e 76 63 3b 0d 0a 09 09 = ref->vc;....
2e40: 64 74 2d 3e 77 72 61 70 57 69 64 74 68 20 3d 20 dt->wrapWidth =
2e50: 72 65 66 2d 3e 77 72 61 70 57 69 64 74 68 3b 0d ref->wrapWidth;.
2e60: 0a 09 09 64 74 2d 3e 77 72 61 70 54 79 70 65 20 ...dt->wrapType
2e70: 20 3d 20 72 65 66 2d 3e 77 72 61 70 54 79 70 65 = ref->wrapType
2e80: 3b 0d 0a 09 09 64 74 2d 3e 73 68 6f 77 4c 4e 20 ;....dt->showLN
2e90: 20 20 20 3d 20 72 65 66 2d 3e 73 68 6f 77 4c 4e = ref->showLN
2ea0: 3b 0d 0a 09 7d 0d 0a 09 65 6c 73 65 0d 0a 09 7b ;...}...else...{
2eb0: 0d 0a 09 09 2f 2f 20 91 67 82 dd 8d 9e 82 dd 82 ....// .g.......
2ec0: cc 83 66 83 74 83 48 83 8b 83 67 90 dd 92 e8 82 ..f.t.H...g.....
2ed0: f0 83 8d 81 5b 83 68 0d 0a 09 09 64 74 2d 3e 76 ....[.h....dt->v
2ee0: 63 2e 53 65 74 46 6f 6e 74 28 20 54 45 58 54 28 c.SetFont( TEXT(
2ef0: 22 46 69 78 65 64 53 79 73 22 29 2c 20 31 34 20 "FixedSys"), 14
2f00: 29 3b 0d 0a 09 09 64 74 2d 3e 76 63 2e 53 65 74 );....dt->vc.Set
2f10: 54 61 62 53 74 65 70 28 20 34 20 29 3b 0d 0a 09 TabStep( 4 );...
2f20: 09 64 74 2d 3e 76 63 2e 63 6f 6c 6f 72 5b 54 58 .dt->vc.color[TX
2f30: 54 5d 20 3d 20 52 47 42 28 30 2c 30 2c 30 29 3b T] = RGB(0,0,0);
2f40: 0d 0a 09 09 64 74 2d 3e 76 63 2e 63 6f 6c 6f 72 ....dt->vc.color
2f50: 5b 4b 57 44 5d 20 3d 20 52 47 42 28 30 2c 39 30 [KWD] = RGB(0,90
2f60: 2c 32 33 30 29 3b 0d 0a 09 09 64 74 2d 3e 76 63 ,230);....dt->vc
2f70: 2e 63 6f 6c 6f 72 5b 43 4d 54 5d 20 3d 20 52 47 .color[CMT] = RG
2f80: 42 28 30 2c 30 2c 30 29 3b 0d 0a 09 09 64 74 2d B(0,0,0);....dt-
2f90: 3e 76 63 2e 63 6f 6c 6f 72 5b 42 47 5d 20 20 3d >vc.color[BG] =
2fa0: 20 52 47 42 28 32 35 35 2c 32 35 35 2c 32 35 35 RGB(255,255,255
2fb0: 29 3b 0d 0a 09 09 64 74 2d 3e 76 63 2e 63 6f 6c );....dt->vc.col
2fc0: 6f 72 5b 43 54 4c 5d 20 3d 20 52 47 42 28 32 34 or[CTL] = RGB(24
2fd0: 30 2c 32 30 30 2c 32 34 30 29 3b 0d 0a 09 09 64 0,200,240);....d
2fe0: 74 2d 3e 76 63 2e 63 6f 6c 6f 72 5b 4c 4e 5d 20 t->vc.color[LN]
2ff0: 20 3d 20 52 47 42 28 30 2c 30 2c 30 29 3b 0d 0a = RGB(0,0,0);..
3000: 09 09 64 74 2d 3e 76 63 2e 73 63 5b 73 63 45 4f ..dt->vc.sc[scEO
3010: 46 5d 20 20 3d 20 64 74 2d 3e 76 63 2e 73 63 5b F] = dt->vc.sc[
3020: 73 63 45 4f 4c 5d 3d 74 72 75 65 3b 0d 0a 09 09 scEOL]=true;....
3030: 64 74 2d 3e 76 63 2e 73 63 5b 73 63 48 53 50 5d dt->vc.sc[scHSP]
3040: 20 20 3d 20 64 74 2d 3e 76 63 2e 73 63 5b 73 63 = dt->vc.sc[sc
3050: 5a 53 50 5d 3d 64 74 2d 3e 76 63 2e 73 63 5b 73 ZSP]=dt->vc.sc[s
3060: 63 54 41 42 5d 3d 66 61 6c 73 65 3b 0d 0a 09 09 cTAB]=false;....
3070: 64 74 2d 3e 77 72 61 70 57 69 64 74 68 20 20 3d dt->wrapWidth =
3080: 20 38 30 3b 0d 0a 09 09 64 74 2d 3e 77 72 61 70 80;....dt->wrap
3090: 54 79 70 65 20 20 20 3d 20 2d 31 3b 0d 0a 09 09 Type = -1;....
30a0: 64 74 2d 3e 73 68 6f 77 4c 4e 20 20 20 20 20 3d dt->showLN =
30b0: 20 66 61 6c 73 65 3b 0d 0a 09 7d 0d 0a 0d 0a 20 false;...}....
30c0: 20 2f 2f 20 82 51 81 44 2a 2e 6c 61 79 83 74 83 // .Q.D*.lay.t.
30d0: 40 83 43 83 8b 82 a9 82 e7 82 cc 93 c7 82 dd 8d @.C.............
30e0: 9e 82 dd 0d 0a 0d 0a 09 54 65 78 74 46 69 6c 65 ........TextFile
30f0: 52 20 74 66 28 20 55 54 46 31 36 4c 45 20 29 3b R tf( UTF16LE );
3100: 0d 0a 09 69 66 28 20 74 66 2e 4f 70 65 6e 28 20 ...if( tf.Open(
3110: 28 50 61 74 68 28 50 61 74 68 3a 3a 45 78 65 29 (Path(Path::Exe)
3120: 2b 54 45 58 54 28 22 74 79 70 65 5c 5c 22 29 2b +TEXT("type\\")+
3130: 64 74 2d 3e 6c 61 79 66 69 6c 65 29 2e 63 5f 73 dt->layfile).c_s
3140: 74 72 28 29 20 29 20 29 0d 0a 09 7b 0d 0a 09 09 tr() ) )...{....
3150: 53 74 72 69 6e 67 20 66 6f 6e 74 6e 61 6d 65 3b String fontname;
3160: 0d 0a 09 09 69 6e 74 20 20 20 20 66 6f 6e 74 73 ....int fonts
3170: 69 7a 65 3d 30 3b 0d 0a 09 09 69 6e 74 20 20 20 ize=0;....int
3180: 20 78 3b 0d 0a 09 09 62 6f 6f 6c 20 20 20 63 6c x;....bool cl
3190: 66 6f 75 6e 64 20 3d 20 66 61 6c 73 65 3b 0d 0a found = false;..
31a0: 0d 0a 09 09 75 6e 69 63 6f 64 65 20 62 75 66 5b ....unicode buf[
31b0: 31 30 32 34 5d 2c 20 2a 70 74 72 3d 62 75 66 2b 1024], *ptr=buf+
31c0: 33 3b 0d 0a 09 09 77 68 69 6c 65 28 20 74 66 2e 3;....while( tf.
31d0: 73 74 61 74 65 28 29 20 21 3d 20 30 20 29 20 2f state() != 0 ) /
31e0: 2f 20 21 45 4f 46 0d 0a 09 09 7b 0d 0a 09 09 09 / !EOF....{.....
31f0: 73 69 7a 65 5f 74 20 6c 65 6e 20 3d 20 74 66 2e size_t len = tf.
3200: 52 65 61 64 4c 69 6e 65 28 20 62 75 66 2c 20 63 ReadLine( buf, c
3210: 6f 75 6e 74 6f 66 28 62 75 66 29 2d 31 20 29 3b ountof(buf)-1 );
3220: 0d 0a 09 09 09 69 66 28 20 6c 65 6e 3c 3d 33 20 .....if( len<=3
3230: 7c 7c 20 62 75 66 5b 32 5d 21 3d 4c 27 3d 27 20 || buf[2]!=L'='
3240: 29 0d 0a 09 09 09 09 63 6f 6e 74 69 6e 75 65 3b )......continue;
3250: 0d 0a 09 09 09 62 75 66 5b 6c 65 6e 5d 20 3d 20 .....buf[len] =
3260: 4c 27 5c 30 27 3b 0d 0a 0d 0a 09 09 09 73 77 69 L'\0';.......swi
3270: 74 63 68 28 20 28 62 75 66 5b 30 5d 3c 3c 31 36 tch( (buf[0]<<16
3280: 29 7c 62 75 66 5b 31 5d 20 29 0d 0a 09 09 09 7b )|buf[1] ).....{
3290: 0d 0a 09 09 09 63 61 73 65 20 30 78 30 30 36 33 .....case 0x0063
32a0: 30 30 37 34 3a 20 2f 2f 20 63 74 3a 20 43 4f 4c 0074: // ct: COL
32b0: 4f 52 2d 54 45 58 54 0d 0a 09 09 09 09 64 74 2d OR-TEXT......dt-
32c0: 3e 76 63 2e 63 6f 6c 6f 72 5b 54 58 54 5d 20 3d >vc.color[TXT] =
32d0: 20 47 65 74 43 6f 6c 6f 72 28 70 74 72 29 3b 0d GetColor(ptr);.
32e0: 0a 09 09 09 09 62 72 65 61 6b 3b 0d 0a 09 09 09 .....break;.....
32f0: 63 61 73 65 20 30 78 30 30 36 33 30 30 36 42 3a case 0x0063006B:
3300: 20 2f 2f 20 63 6b 3a 20 43 4f 4c 4f 52 2d 4b 45 // ck: COLOR-KE
3310: 59 57 4f 52 44 0d 0a 09 09 09 09 64 74 2d 3e 76 YWORD......dt->v
3320: 63 2e 63 6f 6c 6f 72 5b 4b 57 44 5d 20 3d 20 47 c.color[KWD] = G
3330: 65 74 43 6f 6c 6f 72 28 70 74 72 29 3b 0d 0a 09 etColor(ptr);...
3340: 09 09 09 62 72 65 61 6b 3b 0d 0a 09 09 09 63 61 ...break;.....ca
3350: 73 65 20 30 78 30 30 36 33 30 30 36 32 3a 20 2f se 0x00630062: /
3360: 2f 20 63 62 3a 20 43 4f 4c 4f 52 2d 42 41 43 4b / cb: COLOR-BACK
3370: 47 52 4f 55 4e 44 0d 0a 09 09 09 09 64 74 2d 3e GROUND......dt->
3380: 76 63 2e 63 6f 6c 6f 72 5b 42 47 20 5d 20 3d 20 vc.color[BG ] =
3390: 47 65 74 43 6f 6c 6f 72 28 70 74 72 29 3b 0d 0a GetColor(ptr);..
33a0: 09 09 09 09 62 72 65 61 6b 3b 0d 0a 09 09 09 63 ....break;.....c
33b0: 61 73 65 20 30 78 30 30 36 33 30 30 36 33 3a 20 ase 0x00630063:
33c0: 2f 2f 20 63 63 3a 20 43 4f 4c 4f 52 2d 43 4f 4d // cc: COLOR-COM
33d0: 4d 45 4e 54 0d 0a 09 09 09 09 64 74 2d 3e 76 63 MENT......dt->vc
33e0: 2e 63 6f 6c 6f 72 5b 43 4d 54 5d 20 3d 20 47 65 .color[CMT] = Ge
33f0: 74 43 6f 6c 6f 72 28 70 74 72 29 3b 0d 0a 09 09 tColor(ptr);....
3400: 09 09 62 72 65 61 6b 3b 0d 0a 09 09 09 63 61 73 ..break;.....cas
3410: 65 20 30 78 30 30 36 33 30 30 36 45 3a 20 2f 2f e 0x0063006E: //
3420: 20 63 6e 3a 20 43 4f 4c 4f 52 2d 43 4f 4e 54 52 cn: COLOR-CONTR
3430: 4f 4c 0d 0a 09 09 09 09 64 74 2d 3e 76 63 2e 63 OL......dt->vc.c
3440: 6f 6c 6f 72 5b 43 54 4c 5d 20 3d 20 47 65 74 43 olor[CTL] = GetC
3450: 6f 6c 6f 72 28 70 74 72 29 3b 0d 0a 09 09 09 09 olor(ptr);......
3460: 62 72 65 61 6b 3b 0d 0a 09 09 09 63 61 73 65 20 break;.....case
3470: 30 78 30 30 36 33 30 30 36 43 3a 20 2f 2f 20 63 0x0063006C: // c
3480: 6c 3a 20 43 4f 4c 4f 52 2d 4c 49 4e 45 0d 0a 09 l: COLOR-LINE...
3490: 09 09 09 63 6c 66 6f 75 6e 64 20 3d 20 74 72 75 ...clfound = tru
34a0: 65 3b 0d 0a 09 09 09 09 64 74 2d 3e 76 63 2e 63 e;......dt->vc.c
34b0: 6f 6c 6f 72 5b 4c 4e 5d 20 3d 20 47 65 74 43 6f olor[LN] = GetCo
34c0: 6c 6f 72 28 70 74 72 29 3b 0d 0a 09 09 09 09 62 lor(ptr);......b
34d0: 72 65 61 6b 3b 0d 0a 09 09 09 63 61 73 65 20 30 reak;.....case 0
34e0: 78 30 30 36 36 30 30 37 34 3a 20 2f 2f 20 66 74 x00660074: // ft
34f0: 3a 20 46 4f 4e 54 0d 0a 09 09 09 09 66 6f 6e 74 : FONT......font
3500: 6e 61 6d 65 20 3d 20 70 74 72 3b 0d 0a 09 09 09 name = ptr;.....
3510: 09 62 72 65 61 6b 3b 0d 0a 09 09 09 63 61 73 65 .break;.....case
3520: 20 30 78 30 30 37 33 30 30 37 41 3a 20 2f 2f 20 0x0073007A: //
3530: 73 7a 3a 20 53 49 5a 45 0d 0a 09 09 09 09 66 6f sz: SIZE......fo
3540: 6e 74 73 69 7a 65 20 3d 20 47 65 74 49 6e 74 28 ntsize = GetInt(
3550: 70 74 72 29 3b 0d 0a 09 09 09 09 62 72 65 61 6b ptr);......break
3560: 3b 0d 0a 09 09 09 63 61 73 65 20 30 78 30 30 37 ;.....case 0x007
3570: 34 30 30 36 32 3a 20 2f 2f 20 74 62 3a 20 54 41 40062: // tb: TA
3580: 42 0d 0a 09 09 09 09 64 74 2d 3e 76 63 2e 53 65 B......dt->vc.Se
3590: 74 54 61 62 53 74 65 70 28 20 47 65 74 49 6e 74 tTabStep( GetInt
35a0: 28 70 74 72 29 20 29 3b 0d 0a 09 09 09 09 62 72 (ptr) );......br
35b0: 65 61 6b 3b 0d 0a 09 09 09 63 61 73 65 20 30 78 eak;.....case 0x
35c0: 30 30 37 33 30 30 36 33 3a 20 2f 2f 20 73 63 3a 00730063: // sc:
35d0: 20 53 50 45 43 49 41 4c 2d 43 48 41 52 0d 0a 09 SPECIAL-CHAR...
35e0: 09 09 09 78 20 3d 20 47 65 74 49 6e 74 28 70 74 ...x = GetInt(pt
35f0: 72 29 3b 0d 0a 09 09 09 09 64 74 2d 3e 76 63 2e r);......dt->vc.
3600: 73 63 5b 73 63 5a 53 50 5d 20 3d 20 28 30 21 3d sc[scZSP] = (0!=
3610: 78 25 31 30 29 3b 20 78 2f 3d 31 30 3b 0d 0a 09 x%10); x/=10;...
3620: 09 09 09 64 74 2d 3e 76 63 2e 73 63 5b 73 63 48 ...dt->vc.sc[scH
3630: 53 50 5d 20 3d 20 28 30 21 3d 78 25 31 30 29 3b SP] = (0!=x%10);
3640: 20 78 2f 3d 31 30 3b 0d 0a 09 09 09 09 64 74 2d x/=10;......dt-
3650: 3e 76 63 2e 73 63 5b 73 63 54 41 42 5d 20 3d 20 >vc.sc[scTAB] =
3660: 28 30 21 3d 78 25 31 30 29 3b 20 78 2f 3d 31 30 (0!=x%10); x/=10
3670: 3b 0d 0a 09 09 09 09 64 74 2d 3e 76 63 2e 73 63 ;......dt->vc.sc
3680: 5b 73 63 45 4f 4c 5d 20 3d 20 28 30 21 3d 78 25 [scEOL] = (0!=x%
3690: 31 30 29 3b 20 78 2f 3d 31 30 3b 0d 0a 09 09 09 10); x/=10;.....
36a0: 09 64 74 2d 3e 76 63 2e 73 63 5b 73 63 45 4f 46 .dt->vc.sc[scEOF
36b0: 5d 20 3d 20 28 30 21 3d 78 25 31 30 29 3b 0d 0a ] = (0!=x%10);..
36c0: 09 09 09 09 62 72 65 61 6b 3b 0d 0a 09 09 09 63 ....break;.....c
36d0: 61 73 65 20 30 78 30 30 37 37 30 30 37 30 3a 20 ase 0x00770070:
36e0: 2f 2f 20 77 70 3a 20 57 52 41 50 2d 54 59 50 45 // wp: WRAP-TYPE
36f0: 0d 0a 09 09 09 09 64 74 2d 3e 77 72 61 70 54 79 ......dt->wrapTy
3700: 70 65 20 3d 20 47 65 74 49 6e 74 28 70 74 72 29 pe = GetInt(ptr)
3710: 3b 0d 0a 09 09 09 09 62 72 65 61 6b 3b 0d 0a 09 ;......break;...
3720: 09 09 63 61 73 65 20 30 78 30 30 37 37 30 30 37 ..case 0x0077007
3730: 37 3a 20 2f 2f 20 77 77 3a 20 57 52 41 50 2d 57 7: // ww: WRAP-W
3740: 49 44 54 48 0d 0a 09 09 09 09 64 74 2d 3e 77 72 IDTH......dt->wr
3750: 61 70 57 69 64 74 68 20 3d 20 47 65 74 49 6e 74 apWidth = GetInt
3760: 28 70 74 72 29 3b 0d 0a 09 09 09 09 62 72 65 61 (ptr);......brea
3770: 6b 3b 0d 0a 09 09 09 63 61 73 65 20 30 78 30 30 k;.....case 0x00
3780: 36 43 30 30 36 45 3a 20 2f 2f 20 6c 6e 3a 20 4c 6C006E: // ln: L
3790: 49 4e 45 2d 4e 4f 0d 0a 09 09 09 09 64 74 2d 3e INE-NO......dt->
37a0: 73 68 6f 77 4c 4e 20 3d 20 28 30 21 3d 47 65 74 showLN = (0!=Get
37b0: 49 6e 74 28 70 74 72 29 29 3b 0d 0a 09 09 09 09 Int(ptr));......
37c0: 62 72 65 61 6b 3b 0d 0a 09 09 09 7d 0d 0a 09 09 break;.....}....
37d0: 7d 0d 0a 0d 0a 09 09 69 66 28 20 21 63 6c 66 6f }......if( !clfo
37e0: 75 6e 64 20 29 0d 0a 09 09 09 64 74 2d 3e 76 63 und ).....dt->vc
37f0: 2e 63 6f 6c 6f 72 5b 4c 4e 5d 20 3d 20 64 74 2d .color[LN] = dt-
3800: 3e 76 63 2e 63 6f 6c 6f 72 5b 54 58 54 5d 3b 0d >vc.color[TXT];.
3810: 0a 09 09 69 66 28 20 66 6f 6e 74 6e 61 6d 65 2e ...if( fontname.
3820: 6c 65 6e 28 29 21 3d 30 20 26 26 20 66 6f 6e 74 len()!=0 && font
3830: 73 69 7a 65 21 3d 30 20 29 0d 0a 09 09 09 64 74 size!=0 ).....dt
3840: 2d 3e 76 63 2e 53 65 74 46 6f 6e 74 28 20 66 6f ->vc.SetFont( fo
3850: 6e 74 6e 61 6d 65 2e 63 5f 73 74 72 28 29 2c 20 ntname.c_str(),
3860: 66 6f 6e 74 73 69 7a 65 20 29 3b 0d 0a 09 7d 0d fontsize );...}.
3870: 0a 7d 0d 0a 0d 0a 0d 0a 0d 0a 2f 2f 2d 2d 2d 2d .}........//----
3880: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
3890: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
38a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
38b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
38c0: 2d 2d 2d 2d 2d 0d 0a 2f 2f 20 2a 2e 69 6e 69 20 -----..// *.ini
38d0: 83 74 83 40 83 43 83 8b 82 a9 82 e7 82 cc 93 c7 .t.@.C..........
38e0: 82 dd 8d 9e 82 dd 2f 8f 91 82 ab 8d 9e 82 dd 8f ....../.........
38f0: 88 97 9d 0d 0a 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d .....//---------
3900: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
3910: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
3920: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
3930: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
3940: 0d 0a 0d 0a 73 74 61 74 69 63 20 63 6f 6e 73 74 ....static const
3950: 20 54 43 48 41 52 20 73 5f 73 68 61 72 65 64 43 TCHAR s_sharedC
3960: 6f 6e 66 69 67 53 65 63 74 69 6f 6e 5b 5d 20 3d onfigSection[] =
3970: 20 54 45 58 54 28 22 53 68 61 72 65 64 43 6f 6e TEXT("SharedCon
3980: 66 69 67 22 29 3b 0d 0a 0d 0a 76 6f 69 64 20 43 fig");....void C
3990: 6f 6e 66 69 67 4d 61 6e 61 67 65 72 3a 3a 4c 6f onfigManager::Lo
39a0: 61 64 49 6e 69 28 29 0d 0a 7b 0d 0a 09 7b 0d 0a adIni()..{...{..
39b0: 09 09 46 69 6c 65 57 20 66 70 3b 0d 0a 09 09 50 ..FileW fp;....P
39c0: 61 74 68 20 69 6e 69 70 61 74 68 28 50 61 74 68 ath inipath(Path
39d0: 3a 3a 45 78 65 29 3b 0d 0a 09 09 69 6e 69 70 61 ::Exe);....inipa
39e0: 74 68 2b 3d 50 61 74 68 28 50 61 74 68 3a 3a 45 th+=Path(Path::E
39f0: 78 65 4e 61 6d 65 29 2e 62 6f 64 79 28 29 3b 0d xeName).body();.
3a00: 0a 09 09 69 6e 69 70 61 74 68 2b 3d 54 45 58 54 ...inipath+=TEXT
3a10: 28 22 2e 69 6e 69 22 29 3b 0d 0a 09 09 69 66 28 (".ini");....if(
3a20: 20 21 69 6e 69 70 61 74 68 2e 65 78 69 73 74 28 !inipath.exist(
3a30: 29 20 26 26 20 66 70 2e 4f 70 65 6e 28 69 6e 69 ) && fp.Open(ini
3a40: 70 61 74 68 2e 63 5f 73 74 72 28 29 29 20 29 0d path.c_str()) ).
3a50: 0a 09 09 7b 0d 0a 09 09 09 73 74 61 74 69 63 20 ...{.....static
3a60: 63 6f 6e 73 74 20 63 68 61 72 20 73 5f 64 65 66 const char s_def
3a70: 61 75 6c 74 49 6e 69 5b 5d 20 3d 0d 0a 09 09 09 aultIni[] =.....
3a80: 22 5b 44 6f 63 54 79 70 65 5d 5c 72 5c 6e 22 0d "[DocType]\r\n".
3a90: 0a 09 09 09 22 31 3d 43 2f 43 2b 2b 5c 72 5c 6e ...."1=C/C++\r\n
3aa0: 22 0d 0a 09 09 09 22 32 3d 43 23 5c 72 5c 6e 22 "....."2=C#\r\n"
3ab0: 0d 0a 09 09 09 22 33 3d 44 5c 72 5c 6e 22 0d 0a ....."3=D\r\n"..
3ac0: 09 09 09 22 34 3d 4a 61 76 61 5c 72 5c 6e 22 0d ..."4=Java\r\n".
3ad0: 0a 09 09 09 22 35 3d 48 54 4d 4c 5c 72 5c 6e 22 ...."5=HTML\r\n"
3ae0: 0d 0a 09 09 09 22 36 3d 43 53 53 5c 72 5c 6e 22 ....."6=CSS\r\n"
3af0: 0d 0a 09 09 09 22 37 3d 50 65 72 6c 5c 72 5c 6e ....."7=Perl\r\n
3b00: 22 0d 0a 09 09 09 22 38 3d 52 75 62 79 5c 72 5c "....."8=Ruby\r\
3b10: 6e 22 0d 0a 09 09 09 22 39 3d 50 48 50 5c 72 5c n"....."9=PHP\r\
3b20: 6e 22 0d 0a 09 09 09 22 31 30 3d 50 79 74 68 6f n"....."10=Pytho
3b30: 6e 5c 72 5c 6e 22 0d 0a 09 09 09 22 31 31 3d 48 n\r\n"....."11=H
3b40: 61 73 6b 65 6c 6c 5c 72 5c 6e 22 0d 0a 09 09 09 askell\r\n".....
3b50: 22 31 32 3d 4f 43 61 6d 6c 5c 72 5c 6e 22 0d 0a "12=OCaml\r\n"..
3b60: 09 09 09 22 31 33 3d 49 4e 49 5c 72 5c 6e 22 0d ..."13=INI\r\n".
3b70: 0a 09 09 09 22 31 34 3d 55 6e 69 63 6f 64 65 54 ...."14=UnicodeT
3b80: 65 78 74 5c 72 5c 6e 22 0d 0a 09 09 09 22 5c 72 ext\r\n"....."\r
3b90: 5c 6e 22 0d 0a 09 09 09 22 5b 43 2f 43 2b 2b 5d \n"....."[C/C++]
3ba0: 5c 72 5c 6e 22 0d 0a 09 09 09 22 50 61 74 74 65 \r\n"....."Patte
3bb0: 72 6e 3d 2e 2a 28 5c 5c 2e 28 63 7c 63 70 70 7c rn=.*(\\.(c|cpp|
3bc0: 63 78 78 7c 63 63 7c 68 7c 68 70 70 29 7c 69 6e cxx|cc|h|hpp)|in
3bd0: 63 6c 75 64 65 5c 5c 5c 5c 5b 5e 5c 5c 2e 5d 2b clude\\\\[^\\.]+
3be0: 29 24 5c 72 5c 6e 22 0d 0a 09 09 09 22 4b 65 79 )$\r\n"....."Key
3bf0: 77 6f 72 64 3d 43 2e 6b 77 64 5c 72 5c 6e 22 0d word=C.kwd\r\n".
3c00: 0a 09 09 09 22 4c 61 79 6f 75 74 3d 70 72 6f 67 ...."Layout=prog
3c10: 72 61 6d 2e 6c 61 79 5c 72 5c 6e 22 0d 0a 09 09 ram.lay\r\n"....
3c20: 09 22 5c 72 5c 6e 22 0d 0a 09 09 09 22 5b 4a 61 ."\r\n"....."[Ja
3c30: 76 61 5d 5c 72 5c 6e 22 0d 0a 09 09 09 22 50 61 va]\r\n"....."Pa
3c40: 74 74 65 72 6e 3d 2e 2a 5c 5c 2e 6a 61 76 61 24 ttern=.*\\.java$
3c50: 5c 72 5c 6e 22 0d 0a 09 09 09 22 4b 65 79 77 6f \r\n"....."Keywo
3c60: 72 64 3d 4a 61 76 61 2e 6b 77 64 5c 72 5c 6e 22 rd=Java.kwd\r\n"
3c70: 0d 0a 09 09 09 22 4c 61 79 6f 75 74 3d 70 72 6f ....."Layout=pro
3c80: 67 72 61 6d 2e 6c 61 79 5c 72 5c 6e 22 0d 0a 09 gram.lay\r\n"...
3c90: 09 09 22 5c 72 5c 6e 22 0d 0a 09 09 09 22 5b 48 .."\r\n"....."[H
3ca0: 54 4d 4c 5d 5c 72 5c 6e 22 0d 0a 09 09 09 22 50 TML]\r\n"....."P
3cb0: 61 74 74 65 72 6e 3d 2e 2a 28 5c 5c 2e 68 74 6d attern=.*(\\.htm
3cc0: 6c 7c 5c 5c 2e 68 74 6d 7c 74 65 6d 70 6f 72 61 l|\\.htm|tempora
3cd0: 72 79 20 69 6e 74 65 72 6e 65 74 20 66 69 6c 65 ry internet file
3ce0: 73 5c 5c 5c 5c 2e 2b 29 24 5c 72 5c 6e 22 0d 0a s\\\\.+)$\r\n"..
3cf0: 09 09 09 22 4b 65 79 77 6f 72 64 3d 48 54 4d 4c ..."Keyword=HTML
3d00: 2e 6b 77 64 5c 72 5c 6e 22 0d 0a 09 09 09 22 4c .kwd\r\n"....."L
3d10: 61 79 6f 75 74 3d 68 74 6d 6c 2e 6c 61 79 5c 72 ayout=html.lay\r
3d20: 5c 6e 22 0d 0a 09 09 09 22 5c 72 5c 6e 22 0d 0a \n"....."\r\n"..
3d30: 09 09 09 22 5b 43 53 53 5d 5c 72 5c 6e 22 0d 0a ..."[CSS]\r\n"..
3d40: 09 09 09 22 50 61 74 74 65 72 6e 3d 2e 2a 5c 5c ..."Pattern=.*\\
3d50: 2e 63 73 73 24 5c 72 5c 6e 22 0d 0a 09 09 09 22 .css$\r\n"....."
3d60: 4b 65 79 77 6f 72 64 3d 43 53 53 2e 6b 77 64 5c Keyword=CSS.kwd\
3d70: 72 5c 6e 22 0d 0a 09 09 09 22 4c 61 79 6f 75 74 r\n"....."Layout
3d80: 3d 70 72 6f 67 72 61 6d 2e 6c 61 79 5c 72 5c 6e =program.lay\r\n
3d90: 22 0d 0a 09 09 09 22 5c 72 5c 6e 22 0d 0a 09 09 "....."\r\n"....
3da0: 09 22 5b 50 48 50 5d 5c 72 5c 6e 22 0d 0a 09 09 ."[PHP]\r\n"....
3db0: 09 22 50 61 74 74 65 72 6e 3d 2e 2a 5c 5c 2e 28 ."Pattern=.*\\.(
3dc0: 70 68 70 7c 70 68 70 33 7c 70 68 70 34 29 24 5c php|php3|php4)$\
3dd0: 72 5c 6e 22 0d 0a 09 09 09 22 4b 65 79 77 6f 72 r\n"....."Keywor
3de0: 64 3d 50 48 50 2e 6b 77 64 5c 72 5c 6e 22 0d 0a d=PHP.kwd\r\n"..
3df0: 09 09 09 22 4c 61 79 6f 75 74 3d 70 72 6f 67 72 ..."Layout=progr
3e00: 61 6d 2e 6c 61 79 5c 72 5c 6e 22 0d 0a 09 09 09 am.lay\r\n".....
3e10: 22 5c 72 5c 6e 22 0d 0a 09 09 09 22 5b 50 79 74 "\r\n"....."[Pyt
3e20: 68 6f 6e 5d 5c 72 5c 6e 22 0d 0a 09 09 09 22 50 hon]\r\n"....."P
3e30: 61 74 74 65 72 6e 3d 2e 2a 5c 5c 2e 70 79 24 5c attern=.*\\.py$\
3e40: 72 5c 6e 22 0d 0a 09 09 09 22 4b 65 79 77 6f 72 r\n"....."Keywor
3e50: 64 3d 50 79 74 68 6f 6e 2e 6b 77 64 5c 72 5c 6e d=Python.kwd\r\n
3e60: 22 0d 0a 09 09 09 22 4c 61 79 6f 75 74 3d 70 72 "....."Layout=pr
3e70: 6f 67 72 61 6d 2e 6c 61 79 5c 72 5c 6e 22 0d 0a ogram.lay\r\n"..
3e80: 09 09 09 22 5c 72 5c 6e 22 0d 0a 09 09 09 22 5b ..."\r\n"....."[
3e90: 52 75 62 79 5d 5c 72 5c 6e 22 0d 0a 09 09 09 22 Ruby]\r\n"....."
3ea0: 50 61 74 74 65 72 6e 3d 2e 2a 5c 5c 2e 72 62 24 Pattern=.*\\.rb$
3eb0: 5c 72 5c 6e 22 0d 0a 09 09 09 22 4b 65 79 77 6f \r\n"....."Keywo
3ec0: 72 64 3d 52 75 62 79 2e 6b 77 64 5c 72 5c 6e 22 rd=Ruby.kwd\r\n"
3ed0: 0d 0a 09 09 09 22 4c 61 79 6f 75 74 3d 70 72 6f ....."Layout=pro
3ee0: 67 72 61 6d 2e 6c 61 79 5c 72 5c 6e 22 0d 0a 09 gram.lay\r\n"...
3ef0: 09 09 22 5c 72 5c 6e 22 0d 0a 09 09 09 22 5b 44 .."\r\n"....."[D
3f00: 5d 5c 72 5c 6e 22 0d 0a 09 09 09 22 50 61 74 74 ]\r\n"....."Patt
3f10: 65 72 6e 3d 2e 2a 5c 5c 2e 64 24 5c 72 5c 6e 22 ern=.*\\.d$\r\n"
3f20: 0d 0a 09 09 09 22 4b 65 79 77 6f 72 64 3d 44 2e ....."Keyword=D.
3f30: 6b 77 64 5c 72 5c 6e 22 0d 0a 09 09 09 22 4c 61 kwd\r\n"....."La
3f40: 79 6f 75 74 3d 70 72 6f 67 72 61 6d 2e 6c 61 79 yout=program.lay
3f50: 5c 72 5c 6e 22 0d 0a 09 09 09 22 5c 72 5c 6e 22 \r\n"....."\r\n"
3f60: 0d 0a 09 09 09 22 5b 48 61 73 6b 65 6c 6c 5d 5c ....."[Haskell]\
3f70: 72 5c 6e 22 0d 0a 09 09 09 22 50 61 74 74 65 72 r\n"....."Patter
3f80: 6e 3d 2e 2a 5c 5c 2e 6c 3f 68 73 24 5c 72 5c 6e n=.*\\.l?hs$\r\n
3f90: 22 0d 0a 09 09 09 22 4b 65 79 77 6f 72 64 3d 48 "....."Keyword=H
3fa0: 61 73 6b 65 6c 6c 2e 6b 77 64 5c 72 5c 6e 22 0d askell.kwd\r\n".
3fb0: 0a 09 09 09 22 4c 61 79 6f 75 74 3d 70 72 6f 67 ...."Layout=prog
3fc0: 72 61 6d 2e 6c 61 79 5c 72 5c 6e 22 0d 0a 09 09 ram.lay\r\n"....
3fd0: 09 22 5c 72 5c 6e 22 0d 0a 09 09 09 22 5b 4f 43 ."\r\n"....."[OC
3fe0: 61 6d 6c 5d 5c 72 5c 6e 22 0d 0a 09 09 09 22 50 aml]\r\n"....."P
3ff0: 61 74 74 65 72 6e 3d 2e 2a 5c 5c 2e 6d 6c 69 3f attern=.*\\.mli?
4000: 24 5c 72 5c 6e 22 0d 0a 09 09 09 22 4b 65 79 77 $\r\n"....."Keyw
4010: 6f 72 64 3d 4f 43 61 6d 6c 2e 6b 77 64 5c 72 5c ord=OCaml.kwd\r\
4020: 6e 22 0d 0a 09 09 09 22 4c 61 79 6f 75 74 3d 70 n"....."Layout=p
4030: 72 6f 67 72 61 6d 2e 6c 61 79 5c 72 5c 6e 22 0d rogram.lay\r\n".
4040: 0a 09 09 09 22 5c 72 5c 6e 22 0d 0a 09 09 09 22 ...."\r\n"....."
4050: 5b 43 23 5d 5c 72 5c 6e 22 0d 0a 09 09 09 22 50 [C#]\r\n"....."P
4060: 61 74 74 65 72 6e 3d 2e 2a 5c 5c 2e 63 73 24 5c attern=.*\\.cs$\
4070: 72 5c 6e 22 0d 0a 09 09 09 22 4b 65 79 77 6f 72 r\n"....."Keywor
4080: 64 3d 43 23 2e 6b 77 64 5c 72 5c 6e 22 0d 0a 09 d=C#.kwd\r\n"...
4090: 09 09 22 4c 61 79 6f 75 74 3d 70 72 6f 67 72 61 .."Layout=progra
40a0: 6d 2e 6c 61 79 5c 72 5c 6e 22 0d 0a 09 09 09 22 m.lay\r\n"....."
40b0: 5c 72 5c 6e 22 0d 0a 09 09 09 22 5b 49 4e 49 5d \r\n"....."[INI]
40c0: 5c 72 5c 6e 22 0d 0a 09 09 09 22 50 61 74 74 65 \r\n"....."Patte
40d0: 72 6e 3d 2e 2a 5c 5c 2e 69 6e 69 24 5c 72 5c 6e rn=.*\\.ini$\r\n
40e0: 22 0d 0a 09 09 09 22 4b 65 79 77 6f 72 64 3d 69 "....."Keyword=i
40f0: 6e 69 2e 6b 77 64 5c 72 5c 6e 22 0d 0a 09 09 09 ni.kwd\r\n".....
4100: 22 5c 72 5c 6e 22 0d 0a 09 09 09 22 5b 50 65 72 "\r\n"....."[Per
4110: 6c 5d 5c 72 5c 6e 22 0d 0a 09 09 09 22 50 61 74 l]\r\n"....."Pat
4120: 74 65 72 6e 3d 2e 2a 5c 5c 2e 28 70 6c 7c 70 6d tern=.*\\.(pl|pm
4130: 7c 63 67 69 29 24 5c 72 5c 6e 22 0d 0a 09 09 09 |cgi)$\r\n".....
4140: 22 4b 65 79 77 6f 72 64 3d 70 65 72 6c 2e 6b 77 "Keyword=perl.kw
4150: 64 5c 72 5c 6e 22 0d 0a 09 09 09 22 4c 61 79 6f d\r\n"....."Layo
4160: 75 74 3d 70 72 6f 67 72 61 6d 2e 6c 61 79 5c 72 ut=program.lay\r
4170: 5c 6e 22 0d 0a 09 09 09 22 5c 72 5c 6e 22 0d 0a \n"....."\r\n"..
4180: 09 09 09 22 5b 55 6e 69 63 6f 64 65 54 65 78 74 ..."[UnicodeText
4190: 5d 5c 72 5c 6e 22 0d 0a 09 09 09 22 4c 61 79 6f ]\r\n"....."Layo
41a0: 75 74 3d 75 6e 69 74 65 78 74 2e 6c 61 79 5c 72 ut=unitext.lay\r
41b0: 5c 6e 22 0d 0a 09 09 09 22 5c 72 5c 6e 22 3b 0d \n"....."\r\n";.
41c0: 0a 09 09 09 66 70 2e 57 72 69 74 65 28 20 73 5f ....fp.Write( s_
41d0: 64 65 66 61 75 6c 74 49 6e 69 2c 20 73 69 7a 65 defaultIni, size
41e0: 6f 66 28 73 5f 64 65 66 61 75 6c 74 49 6e 69 29 of(s_defaultIni)
41f0: 2d 31 20 29 3b 0d 0a 09 09 7d 0d 0a 09 7d 0d 0a -1 );....}...}..
4200: 0d 0a 09 2f 2f 20 8b a4 92 ca 82 cc 90 dd 92 e8 ...// ..........
4210: 82 cc 93 c7 82 dd 8e e6 82 e8 83 5a 83 4e 83 56 ...........Z.N.V
4220: 83 87 83 93 0d 0a 09 73 68 61 72 65 64 43 6f 6e .......sharedCon
4230: 66 69 67 4d 6f 64 65 5f 20 3d 20 69 6e 69 5f 2e figMode_ = ini_.
4240: 48 61 73 53 65 63 74 69 6f 6e 45 6e 61 62 6c 65 HasSectionEnable
4250: 64 28 20 73 5f 73 68 61 72 65 64 43 6f 6e 66 69 d( s_sharedConfi
4260: 67 53 65 63 74 69 6f 6e 20 29 3b 0d 0a 09 69 66 gSection );...if
4270: 28 20 73 68 61 72 65 64 43 6f 6e 66 69 67 4d 6f ( sharedConfigMo
4280: 64 65 5f 20 29 0d 0a 09 09 69 6e 69 5f 2e 53 65 de_ )....ini_.Se
4290: 74 53 65 63 74 69 6f 6e 28 20 73 5f 73 68 61 72 tSection( s_shar
42a0: 65 64 43 6f 6e 66 69 67 53 65 63 74 69 6f 6e 20 edConfigSection
42b0: 29 3b 0d 0a 09 65 6c 73 65 0d 0a 09 09 69 6e 69 );...else....ini
42c0: 5f 2e 53 65 74 53 65 63 74 69 6f 6e 41 73 55 73 _.SetSectionAsUs
42d0: 65 72 4e 61 6d 65 28 29 3b 0d 0a 0d 0a 09 2f 2f erName();.....//
42e0: 20 8b a4 92 ca 82 cc 90 dd 92 e8 0d 0a 09 75 6e .............un
42f0: 64 6f 4c 69 6d 69 74 5f 20 3d 20 69 6e 69 5f 2e doLimit_ = ini_.
4300: 47 65 74 49 6e 74 28 20 54 45 58 54 28 22 55 6e GetInt( TEXT("Un
4310: 64 6f 4c 69 6d 69 74 22 29 2c 20 2d 31 20 29 3b doLimit"), -1 );
4320: 0d 0a 09 74 78 74 46 69 6c 74 65 72 5f 20 3d 20 ...txtFilter_ =
4330: 69 6e 69 5f 2e 47 65 74 53 74 72 28 20 54 45 58 ini_.GetStr( TEX
4340: 54 28 22 54 78 74 46 69 6c 74 65 72 22 29 2c 0d T("TxtFilter"),.
4350: 0a 09 09 54 45 58 54 28 22 2a 2e 74 78 74 3b 2a ...TEXT("*.txt;*
4360: 2e 68 74 6d 3b 2a 2e 68 74 6d 6c 3b 2a 2e 63 73 .htm;*.html;*.cs
4370: 73 3b 2a 2e 6a 73 3b 2a 2e 64 3b 2a 2e 63 3b 2a s;*.js;*.d;*.c;*
4380: 2e 63 70 70 3b 2a 2e 63 63 3b 2a 2e 63 78 78 3b .cpp;*.cc;*.cxx;
4390: 2a 2e 68 3b 2a 2e 68 70 70 3b 2a 2e 70 68 70 3b *.h;*.hpp;*.php;
43a0: 2a 2e 70 68 70 33 3b 2a 2e 69 6e 69 22 29 20 29 *.php3;*.ini") )
43b0: 3b 0d 0a 09 67 72 65 70 45 78 65 5f 20 20 20 3d ;...grepExe_ =
43c0: 20 69 6e 69 5f 2e 47 65 74 53 74 72 28 20 54 45 ini_.GetStr( TE
43d0: 58 54 28 22 47 72 65 70 45 78 65 22 29 2c 20 54 XT("GrepExe"), T
43e0: 45 58 54 28 22 22 29 20 29 3b 0d 0a 09 6f 70 65 EXT("") );...ope
43f0: 6e 53 61 6d 65 5f 20 20 3d 20 69 6e 69 5f 2e 47 nSame_ = ini_.G
4400: 65 74 42 6f 6f 6c 28 20 54 45 58 54 28 22 4f 70 etBool( TEXT("Op
4410: 65 6e 53 61 6d 65 22 29 2c 20 66 61 6c 73 65 20 enSame"), false
4420: 29 3b 0d 0a 09 63 6f 75 6e 74 62 79 75 6e 69 63 );...countbyunic
4430: 6f 64 65 5f 20 3d 20 69 6e 69 5f 2e 47 65 74 42 ode_ = ini_.GetB
4440: 6f 6f 6c 28 20 54 45 58 54 28 22 43 6f 75 6e 74 ool( TEXT("Count
4450: 55 6e 69 22 29 2c 20 66 61 6c 73 65 20 29 3b 0d Uni"), false );.
4460: 0a 09 73 68 6f 77 53 74 61 74 75 73 42 61 72 5f ..showStatusBar_
4470: 20 3d 20 69 6e 69 5f 2e 47 65 74 42 6f 6f 6c 28 = ini_.GetBool(
4480: 20 54 45 58 54 28 22 53 74 61 74 75 73 42 61 72 TEXT("StatusBar
4490: 22 29 2c 20 74 72 75 65 20 29 3b 0d 0a 0d 0a 09 "), true );.....
44a0: 2f 2f 20 77 6e 64 0d 0a 09 72 65 6d 65 6d 62 65 // wnd...remembe
44b0: 72 57 69 6e 64 6f 77 53 69 7a 65 5f 20 20 3d 20 rWindowSize_ =
44c0: 69 6e 69 5f 2e 47 65 74 42 6f 6f 6c 28 20 54 45 ini_.GetBool( TE
44d0: 58 54 28 22 52 65 6d 65 6d 62 65 72 57 69 6e 64 XT("RememberWind
44e0: 6f 77 53 69 7a 65 22 29 2c 20 66 61 6c 73 65 20 owSize"), false
44f0: 29 3b 0d 0a 09 72 65 6d 65 6d 62 65 72 57 69 6e );...rememberWin
4500: 64 6f 77 50 6c 61 63 65 5f 20 3d 20 69 6e 69 5f dowPlace_ = ini_
4510: 2e 47 65 74 42 6f 6f 6c 28 20 54 45 58 54 28 22 .GetBool( TEXT("
4520: 52 65 6d 65 6d 62 65 72 57 69 6e 64 6f 77 50 6f RememberWindowPo
4530: 73 22 29 2c 20 66 61 6c 73 65 20 29 3b 0d 0a 09 s"), false );...
4540: 77 6e 64 58 5f 20 3d 20 69 6e 69 5f 2e 47 65 74 wndX_ = ini_.Get
4550: 49 6e 74 28 20 54 45 58 54 28 22 57 6e 64 58 22 Int( TEXT("WndX"
4560: 29 2c 20 43 57 5f 55 53 45 44 45 46 41 55 4c 54 ), CW_USEDEFAULT
4570: 20 29 3b 0d 0a 09 77 6e 64 59 5f 20 3d 20 69 6e );...wndY_ = in
4580: 69 5f 2e 47 65 74 49 6e 74 28 20 54 45 58 54 28 i_.GetInt( TEXT(
4590: 22 57 6e 64 59 22 29 2c 20 43 57 5f 55 53 45 44 "WndY"), CW_USED
45a0: 45 46 41 55 4c 54 20 29 3b 0d 0a 09 77 6e 64 57 EFAULT );...wndW
45b0: 5f 20 3d 20 69 6e 69 5f 2e 47 65 74 49 6e 74 28 _ = ini_.GetInt(
45c0: 20 54 45 58 54 28 22 57 6e 64 57 22 29 2c 20 43 TEXT("WndW"), C
45d0: 57 5f 55 53 45 44 45 46 41 55 4c 54 20 29 3b 0d W_USEDEFAULT );.
45e0: 0a 09 77 6e 64 48 5f 20 3d 20 69 6e 69 5f 2e 47 ..wndH_ = ini_.G
45f0: 65 74 49 6e 74 28 20 54 45 58 54 28 22 57 6e 64 etInt( TEXT("Wnd
4600: 48 22 29 2c 20 43 57 5f 55 53 45 44 45 46 41 55 H"), CW_USEDEFAU
4610: 4c 54 20 29 3b 0d 0a 09 77 6e 64 4d 5f 20 3d 20 LT );...wndM_ =
4620: 69 6e 69 5f 2e 47 65 74 42 6f 6f 6c 28 20 54 45 ini_.GetBool( TE
4630: 58 54 28 22 57 6e 64 4d 22 29 2c 20 66 61 6c 73 XT("WndM"), fals
4640: 65 20 29 3b 0d 0a 0d 0a 09 2f 2f 20 54 4f 44 4f e );.....// TODO
4650: 3a 20 4d 52 55 0d 0a 09 6d 72 75 73 5f 20 3d 20 : MRU...mrus_ =
4660: 69 6e 69 5f 2e 47 65 74 49 6e 74 28 20 54 45 58 ini_.GetInt( TEX
4670: 54 28 22 4d 52 55 22 29 2c 20 34 20 29 3b 0d 0a T("MRU"), 4 );..
4680: 09 6d 72 75 73 5f 20 3d 20 4d 69 6e 28 4d 61 78 .mrus_ = Min(Max
4690: 28 30 2c 20 6d 72 75 73 5f 29 2c 20 32 30 29 3b (0, mrus_), 20);
46a0: 0d 0a 0d 0a 09 2f 2f 20 90 56 8b 4b 83 74 83 40 .....// .V.K.t.@
46b0: 83 43 83 8b 8a d6 8c 57 0d 0a 09 6e 65 77 66 69 .C.....W...newfi
46c0: 6c 65 43 68 61 72 73 65 74 5f 20 3d 20 69 6e 69 leCharset_ = ini
46d0: 5f 2e 47 65 74 49 6e 74 28 20 54 45 58 54 28 22 _.GetInt( TEXT("
46e0: 4e 65 77 66 69 6c 65 43 68 61 72 73 65 74 22 29 NewfileCharset")
46f0: 2c 20 63 68 61 72 53 65 74 73 5f 2e 64 65 66 61 , charSets_.defa
4700: 75 6c 74 43 73 28 29 20 29 3b 0d 0a 09 69 66 28 ultCs() );...if(
4710: 6e 65 77 66 69 6c 65 43 68 61 72 73 65 74 5f 20 newfileCharset_
4720: 3d 3d 20 2d 31 29 20 6e 65 77 66 69 6c 65 43 68 == -1) newfileCh
4730: 61 72 73 65 74 5f 20 3d 20 31 32 35 32 3b 20 2f arset_ = 1252; /
4740: 2f 20 31 2e 30 37 2e 34 20 62 75 67 66 69 78 0d / 1.07.4 bugfix.
4750: 0a 09 6e 65 77 66 69 6c 65 44 6f 63 74 79 70 65 ..newfileDoctype
4760: 5f 20 3d 20 69 6e 69 5f 2e 47 65 74 53 74 72 28 _ = ini_.GetStr(
4770: 20 54 45 58 54 28 22 4e 65 77 66 69 6c 65 44 6f TEXT("NewfileDo
4780: 63 74 79 70 65 22 29 2c 20 53 74 72 69 6e 67 28 ctype"), String(
4790: 29 20 29 3b 0d 0a 09 6e 65 77 66 69 6c 65 4c 42 ) );...newfileLB
47a0: 5f 20 20 20 20 20 20 3d 20 28 6c 62 63 6f 64 65 _ = (lbcode
47b0: 29 20 69 6e 69 5f 2e 47 65 74 49 6e 74 28 20 54 ) ini_.GetInt( T
47c0: 45 58 54 28 22 4e 65 77 66 69 6c 65 4c 42 22 29 EXT("NewfileLB")
47d0: 2c 20 43 52 4c 46 20 29 3b 0d 0a 0d 0a 09 2f 2f , CRLF );.....//
47e0: 20 95 b6 8f 91 83 5e 83 43 83 76 83 8a 83 58 83 .....^.C.v...X.
47f0: 67 82 cc 82 4f 94 d4 88 c8 8a 4f 82 cc 83 4e 83 g...O.....O...N.
4800: 8a 83 41 0d 0a 09 64 74 4c 69 73 74 5f 2e 44 65 ..A...dtList_.De
4810: 6c 41 66 74 65 72 28 20 2b 2b 64 74 4c 69 73 74 lAfter( ++dtList
4820: 5f 2e 62 65 67 69 6e 28 29 20 29 3b 0d 0a 0d 0a _.begin() );....
4830: 09 53 74 72 69 6e 67 20 73 2c 20 72 3b 0d 0a 09 .String s, r;...
4840: 66 6f 72 28 20 69 6e 74 20 69 3d 31 3b 20 74 72 for( int i=1; tr
4850: 75 65 3b 20 2b 2b 69 20 29 0d 0a 09 7b 0d 0a 09 ue; ++i )...{...
4860: 09 2f 2f 20 95 b6 8f 91 83 5e 83 43 83 76 96 bc .// .....^.C.v..
4870: 82 f0 93 c7 82 dd 8d 9e 82 dd 0d 0a 09 09 69 6e ..............in
4880: 69 5f 2e 53 65 74 53 65 63 74 69 6f 6e 28 20 54 i_.SetSection( T
4890: 45 58 54 28 22 44 6f 63 54 79 70 65 22 29 20 29 EXT("DocType") )
48a0: 3b 0d 0a 09 09 73 2e 53 65 74 49 6e 74 28 69 29 ;....s.SetInt(i)
48b0: 3b 0d 0a 09 09 72 20 3d 20 69 6e 69 5f 2e 47 65 ;....r = ini_.Ge
48c0: 74 53 74 72 28 20 73 2e 63 5f 73 74 72 28 29 2c tStr( s.c_str(),
48d0: 20 53 74 72 69 6e 67 28 29 20 29 3b 0d 0a 09 09 String() );....
48e0: 69 66 28 20 72 2e 6c 65 6e 28 29 20 3d 3d 20 30 if( r.len() == 0
48f0: 20 29 0d 0a 09 09 09 62 72 65 61 6b 3b 0d 0a 0d ).....break;...
4900: 0a 09 09 2f 2f 20 82 bb 82 cc 95 b6 8f 91 83 5e ...// .........^
4910: 83 43 83 76 82 f0 8e c0 8d db 82 c9 93 c7 82 dd .C.v............
4920: 8d 9e 82 dd 0d 0a 09 09 69 6e 69 5f 2e 53 65 74 ........ini_.Set
4930: 53 65 63 74 69 6f 6e 28 20 72 2e 63 5f 73 74 72 Section( r.c_str
4940: 28 29 20 29 3b 0d 0a 09 09 7b 0d 0a 09 09 09 44 () );....{.....D
4950: 6f 63 54 79 70 65 20 64 3b 0d 0a 09 09 09 64 2e ocType d;.....d.
4960: 6e 61 6d 65 20 20 20 20 20 20 3d 20 72 3b 0d 0a name = r;..
4970: 09 09 09 64 2e 6c 61 79 66 69 6c 65 20 20 20 3d ...d.layfile =
4980: 20 69 6e 69 5f 2e 47 65 74 53 74 72 28 20 54 45 ini_.GetStr( TE
4990: 58 54 28 22 4c 61 79 6f 75 74 22 29 2c 54 45 58 XT("Layout"),TEX
49a0: 54 28 22 64 65 66 61 75 6c 74 2e 6c 61 79 22 29 T("default.lay")
49b0: 29 3b 0d 0a 09 09 09 64 2e 6b 77 64 66 69 6c 65 );.....d.kwdfile
49c0: 20 20 20 3d 20 69 6e 69 5f 2e 47 65 74 53 74 72 = ini_.GetStr
49d0: 28 20 54 45 58 54 28 22 4b 65 79 77 6f 72 64 22 ( TEXT("Keyword"
49e0: 29 2c 20 53 74 72 69 6e 67 28 29 20 29 3b 0d 0a ), String() );..
49f0: 09 09 09 64 2e 70 61 74 74 65 72 6e 20 20 20 3d ...d.pattern =
4a00: 20 69 6e 69 5f 2e 47 65 74 53 74 72 28 20 54 45 ini_.GetStr( TE
4a10: 58 54 28 22 50 61 74 74 65 72 6e 22 29 2c 20 53 XT("Pattern"), S
4a20: 74 72 69 6e 67 28 29 20 29 3b 0d 0a 09 09 09 64 tring() );.....d
4a30: 74 4c 69 73 74 5f 2e 41 64 64 28 20 64 20 29 3b tList_.Add( d );
4a40: 0d 0a 09 09 7d 0d 0a 09 7d 0d 0a 7d 0d 0a 0d 0a ....}...}..}....
4a50: 76 6f 69 64 20 43 6f 6e 66 69 67 4d 61 6e 61 67 void ConfigManag
4a60: 65 72 3a 3a 53 61 76 65 49 6e 69 28 29 0d 0a 7b er::SaveIni()..{
4a70: 0d 0a 09 7b 0d 0a 09 09 50 61 74 68 20 69 6e 69 ...{....Path ini
4a80: 70 61 74 68 28 50 61 74 68 3a 3a 45 78 65 29 3b path(Path::Exe);
4a90: 0d 0a 09 09 69 6e 69 70 61 74 68 2b 3d 50 61 74 ....inipath+=Pat
4aa0: 68 28 50 61 74 68 3a 3a 45 78 65 4e 61 6d 65 29 h(Path::ExeName)
4ab0: 2e 62 6f 64 79 28 29 3b 0d 0a 09 09 69 6e 69 70 .body();....inip
4ac0: 61 74 68 2b 3d 54 45 58 54 28 22 2e 69 6e 69 22 ath+=TEXT(".ini"
4ad0: 29 3b 0d 0a 09 09 69 66 28 20 69 6e 69 70 61 74 );....if( inipat
4ae0: 68 2e 69 73 52 65 61 64 4f 6e 6c 79 28 29 20 29 h.isReadOnly() )
4af0: 0d 0a 09 09 09 72 65 74 75 72 6e 3b 0d 0a 09 7d .....return;...}
4b00: 0d 0a 0d 0a 09 2f 2f 20 8b a4 92 ca 82 cc 90 dd .....// ........
4b10: 92 e8 82 cc 8f 91 82 ab 8d 9e 82 dd 83 5a 83 4e .............Z.N
4b20: 83 56 83 87 83 93 0d 0a 09 69 66 28 20 73 68 61 .V.......if( sha
4b30: 72 65 64 43 6f 6e 66 69 67 4d 6f 64 65 5f 20 29 redConfigMode_ )
4b40: 0d 0a 09 09 69 6e 69 5f 2e 53 65 74 53 65 63 74 ....ini_.SetSect
4b50: 69 6f 6e 28 20 73 5f 73 68 61 72 65 64 43 6f 6e ion( s_sharedCon
4b60: 66 69 67 53 65 63 74 69 6f 6e 20 29 3b 0d 0a 09 figSection );...
4b70: 65 6c 73 65 0d 0a 09 09 69 6e 69 5f 2e 53 65 74 else....ini_.Set
4b80: 53 65 63 74 69 6f 6e 41 73 55 73 65 72 4e 61 6d SectionAsUserNam
4b90: 65 28 29 3b 0d 0a 0d 0a 09 2f 2f 20 8b a4 92 ca e();.....// ....
4ba0: 82 cc 90 dd 92 e8 0d 0a 09 69 6e 69 5f 2e 50 75 .........ini_.Pu
4bb0: 74 49 6e 74 28 20 54 45 58 54 28 22 55 6e 64 6f tInt( TEXT("Undo
4bc0: 4c 69 6d 69 74 22 29 2c 20 75 6e 64 6f 4c 69 6d Limit"), undoLim
4bd0: 69 74 5f 20 29 3b 0d 0a 09 69 6e 69 5f 2e 50 75 it_ );...ini_.Pu
4be0: 74 53 74 72 28 20 54 45 58 54 28 22 54 78 74 46 tStr( TEXT("TxtF
4bf0: 69 6c 74 65 72 22 29 2c 20 74 78 74 46 69 6c 74 ilter"), txtFilt
4c00: 65 72 5f 2e 63 5f 73 74 72 28 29 20 29 3b 0d 0a er_.c_str() );..
4c10: 09 69 6e 69 5f 2e 50 75 74 53 74 72 28 20 54 45 .ini_.PutStr( TE
4c20: 58 54 28 22 47 72 65 70 45 78 65 22 29 2c 20 67 XT("GrepExe"), g
4c30: 72 65 70 45 78 65 5f 2e 63 5f 73 74 72 28 29 20 repExe_.c_str()
4c40: 29 3b 0d 0a 09 69 6e 69 5f 2e 50 75 74 42 6f 6f );...ini_.PutBoo
4c50: 6c 28 20 54 45 58 54 28 22 4f 70 65 6e 53 61 6d l( TEXT("OpenSam
4c60: 65 22 29 2c 20 6f 70 65 6e 53 61 6d 65 5f 20 29 e"), openSame_ )
4c70: 3b 0d 0a 09 69 6e 69 5f 2e 50 75 74 42 6f 6f 6c ;...ini_.PutBool
4c80: 28 20 54 45 58 54 28 22 43 6f 75 6e 74 55 6e 69 ( TEXT("CountUni
4c90: 22 29 2c 20 63 6f 75 6e 74 62 79 75 6e 69 63 6f "), countbyunico
4ca0: 64 65 5f 20 29 3b 0d 0a 09 69 6e 69 5f 2e 50 75 de_ );...ini_.Pu
4cb0: 74 42 6f 6f 6c 28 20 54 45 58 54 28 22 53 74 61 tBool( TEXT("Sta
4cc0: 74 75 73 42 61 72 22 29 2c 20 73 68 6f 77 53 74 tusBar"), showSt
4cd0: 61 74 75 73 42 61 72 5f 20 29 3b 0d 0a 0d 0a 09 atusBar_ );.....
4ce0: 2f 2f 20 57 6e 64 0d 0a 09 69 6e 69 5f 2e 50 75 // Wnd...ini_.Pu
4cf0: 74 42 6f 6f 6c 28 20 54 45 58 54 28 22 52 65 6d tBool( TEXT("Rem
4d00: 65 6d 62 65 72 57 69 6e 64 6f 77 53 69 7a 65 22 emberWindowSize"
4d10: 29 2c 20 72 65 6d 65 6d 62 65 72 57 69 6e 64 6f ), rememberWindo
4d20: 77 53 69 7a 65 5f 20 29 3b 0d 0a 09 69 6e 69 5f wSize_ );...ini_
4d30: 2e 50 75 74 42 6f 6f 6c 28 20 54 45 58 54 28 22 .PutBool( TEXT("
4d40: 52 65 6d 65 6d 62 65 72 57 69 6e 64 6f 77 50 6f RememberWindowPo
4d50: 73 22 29 2c 20 72 65 6d 65 6d 62 65 72 57 69 6e s"), rememberWin
4d60: 64 6f 77 50 6c 61 63 65 5f 20 29 3b 0d 0a 09 69 dowPlace_ );...i
4d70: 6e 69 5f 2e 50 75 74 49 6e 74 28 20 54 45 58 54 ni_.PutInt( TEXT
4d80: 28 22 57 6e 64 58 22 29 2c 20 77 6e 64 58 5f 20 ("WndX"), wndX_
4d90: 29 3b 0d 0a 09 69 6e 69 5f 2e 50 75 74 49 6e 74 );...ini_.PutInt
4da0: 28 20 54 45 58 54 28 22 57 6e 64 59 22 29 2c 20 ( TEXT("WndY"),
4db0: 77 6e 64 59 5f 20 29 3b 0d 0a 09 69 6e 69 5f 2e wndY_ );...ini_.
4dc0: 50 75 74 49 6e 74 28 20 54 45 58 54 28 22 57 6e PutInt( TEXT("Wn
4dd0: 64 57 22 29 2c 20 77 6e 64 57 5f 20 29 3b 0d 0a dW"), wndW_ );..
4de0: 09 69 6e 69 5f 2e 50 75 74 49 6e 74 28 20 54 45 .ini_.PutInt( TE
4df0: 58 54 28 22 57 6e 64 48 22 29 2c 20 77 6e 64 48 XT("WndH"), wndH
4e00: 5f 20 29 3b 0d 0a 09 69 6e 69 5f 2e 50 75 74 42 _ );...ini_.PutB
4e10: 6f 6f 6c 28 20 54 45 58 54 28 22 57 6e 64 4d 22 ool( TEXT("WndM"
4e20: 29 2c 20 77 6e 64 4d 5f 20 29 3b 0d 0a 0d 0a 09 ), wndM_ );.....
4e30: 2f 2f 20 90 56 8b 4b 83 74 83 40 83 43 83 8b 8a // .V.K.t.@.C...
4e40: d6 8c 57 0d 0a 09 69 6e 69 5f 2e 50 75 74 49 6e ..W...ini_.PutIn
4e50: 74 28 20 54 45 58 54 28 22 4e 65 77 66 69 6c 65 t( TEXT("Newfile
4e60: 43 68 61 72 73 65 74 22 29 2c 20 6e 65 77 66 69 Charset"), newfi
4e70: 6c 65 43 68 61 72 73 65 74 5f 20 29 3b 0d 0a 09 leCharset_ );...
4e80: 69 6e 69 5f 2e 50 75 74 53 74 72 28 20 54 45 58 ini_.PutStr( TEX
4e90: 54 28 22 4e 65 77 66 69 6c 65 44 6f 63 74 79 70 T("NewfileDoctyp
4ea0: 65 22 29 2c 20 6e 65 77 66 69 6c 65 44 6f 63 74 e"), newfileDoct
4eb0: 79 70 65 5f 2e 63 5f 73 74 72 28 29 20 29 3b 0d ype_.c_str() );.
4ec0: 0a 09 69 6e 69 5f 2e 50 75 74 49 6e 74 28 20 54 ..ini_.PutInt( T
4ed0: 45 58 54 28 22 4e 65 77 66 69 6c 65 4c 42 22 29 EXT("NewfileLB")
4ee0: 2c 20 20 20 20 20 20 6e 65 77 66 69 6c 65 4c 42 , newfileLB
4ef0: 5f 20 20 20 20 20 20 29 3b 0d 0a 0d 0a 09 2f 2f _ );.....//
4f00: 20 4d 52 55 0d 0a 09 69 6e 69 5f 2e 50 75 74 49 MRU...ini_.PutI
4f10: 6e 74 28 20 54 45 58 54 28 22 4d 52 55 22 29 2c nt( TEXT("MRU"),
4f20: 20 6d 72 75 73 5f 20 29 3b 0d 0a 0d 0a 09 2f 2f mrus_ );.....//
4f30: 20 44 6f 63 54 79 70 65 0d 0a 09 66 6f 72 28 44 DocType...for(D
4f40: 74 4c 69 73 74 3a 3a 69 74 65 72 61 74 6f 72 20 tList::iterator
4f50: 69 3d 2b 2b 64 74 4c 69 73 74 5f 2e 62 65 67 69 i=++dtList_.begi
4f60: 6e 28 29 3b 20 69 21 3d 64 74 4c 69 73 74 5f 2e n(); i!=dtList_.
4f70: 65 6e 64 28 29 3b 20 2b 2b 69 20 29 0d 0a 09 7b end(); ++i )...{
4f80: 0d 0a 09 09 69 6e 69 5f 2e 53 65 74 53 65 63 74 ....ini_.SetSect
4f90: 69 6f 6e 28 20 69 2d 3e 6e 61 6d 65 2e 63 5f 73 ion( i->name.c_s
4fa0: 74 72 28 29 20 29 3b 0d 0a 09 09 69 6e 69 5f 2e tr() );....ini_.
4fb0: 50 75 74 53 74 72 28 20 54 45 58 54 28 22 50 61 PutStr( TEXT("Pa
4fc0: 74 74 65 72 6e 22 29 2c 20 69 2d 3e 70 61 74 74 ttern"), i->patt
4fd0: 65 72 6e 2e 63 5f 73 74 72 28 29 20 29 3b 0d 0a ern.c_str() );..
4fe0: 09 09 69 6e 69 5f 2e 50 75 74 53 74 72 28 20 54 ..ini_.PutStr( T
4ff0: 45 58 54 28 22 4b 65 79 77 6f 72 64 22 29 2c 20 EXT("Keyword"),
5000: 69 2d 3e 6b 77 64 66 69 6c 65 2e 63 5f 73 74 72 i->kwdfile.c_str
5010: 28 29 20 29 3b 0d 0a 09 09 69 6e 69 5f 2e 50 75 () );....ini_.Pu
5020: 74 53 74 72 28 20 54 45 58 54 28 22 4c 61 79 6f tStr( TEXT("Layo
5030: 75 74 22 29 2c 20 69 2d 3e 6c 61 79 66 69 6c 65 ut"), i->layfile
5040: 2e 63 5f 73 74 72 28 29 20 29 3b 0d 0a 09 7d 0d .c_str() );...}.
5050: 0a 0d 0a 09 75 6c 6f 6e 67 20 63 74 3d 31 3b 0d ....ulong ct=1;.
5060: 0a 09 69 6e 69 5f 2e 53 65 74 53 65 63 74 69 6f ..ini_.SetSectio
5070: 6e 28 20 54 45 58 54 28 22 44 6f 63 54 79 70 65 n( TEXT("DocType
5080: 22 29 20 29 3b 0d 0a 09 66 6f 72 28 44 74 4c 69 ") );...for(DtLi
5090: 73 74 3a 3a 69 74 65 72 61 74 6f 72 20 69 3d 2b st::iterator i=+
50a0: 2b 64 74 4c 69 73 74 5f 2e 62 65 67 69 6e 28 29 +dtList_.begin()
50b0: 3b 20 69 21 3d 64 74 4c 69 73 74 5f 2e 65 6e 64 ; i!=dtList_.end
50c0: 28 29 3b 20 2b 2b 69 2c 2b 2b 63 74 29 0d 0a 09 (); ++i,++ct)...
50d0: 09 69 6e 69 5f 2e 50 75 74 53 74 72 28 20 53 74 .ini_.PutStr( St
50e0: 72 69 6e 67 28 29 2e 53 65 74 49 6e 74 28 63 74 ring().SetInt(ct
50f0: 29 2e 63 5f 73 74 72 28 29 2c 20 69 2d 3e 6e 61 ).c_str(), i->na
5100: 6d 65 2e 63 5f 73 74 72 28 29 20 29 3b 0d 0a 09 me.c_str() );...
5110: 69 6e 69 5f 2e 50 75 74 53 74 72 28 20 53 74 72 ini_.PutStr( Str
5120: 69 6e 67 28 29 2e 53 65 74 49 6e 74 28 63 74 29 ing().SetInt(ct)
5130: 2e 63 5f 73 74 72 28 29 2c 20 54 45 58 54 28 22 .c_str(), TEXT("
5140: 22 29 20 29 3b 0d 0a 7d 0d 0a 0d 0a 0d 0a 0d 0a ") );..}........
5150: 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d //--------------
5160: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
5170: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
5180: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
5190: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 2f 2f 20 -----------..//
51a0: 5b 8d c5 8b df 8e 67 82 c1 82 bd 83 74 83 40 83 [.....g.....t.@.
51b0: 43 83 8b 5d 8a d6 8c 57 0d 0a 2f 2f 2d 2d 2d 2d C..]...W..//----
51c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
51d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
51e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
51f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
5200: 2d 2d 2d 2d 2d 0d 0a 0d 0a 6e 61 6d 65 73 70 61 -----....namespa
5210: 63 65 20 7b 0d 0a 09 73 74 61 74 69 63 20 63 6f ce {...static co
5220: 6e 73 74 20 54 43 48 41 52 2a 20 63 6f 6e 73 74 nst TCHAR* const
5230: 20 73 5f 6d 72 75 6c 6f 63 6b 20 3d 20 54 45 58 s_mrulock = TEX
5240: 54 28 22 47 72 65 65 6e 50 61 64 5f 4d 52 55 4d T("GreenPad_MRUM
5250: 75 74 65 78 22 29 3b 0d 0a 7d 0d 0a 0d 0a 76 6f utex");..}....vo
5260: 69 64 20 43 6f 6e 66 69 67 4d 61 6e 61 67 65 72 id ConfigManager
5270: 3a 3a 41 64 64 4d 52 55 28 20 63 6f 6e 73 74 20 ::AddMRU( const
5280: 6b 69 3a 3a 50 61 74 68 26 20 66 6e 61 6d 65 20 ki::Path& fname
5290: 29 0d 0a 7b 0d 0a 09 4d 75 74 65 78 20 6d 78 28 )..{...Mutex mx(
52a0: 73 5f 6d 72 75 6c 6f 63 6b 29 3b 0d 0a 0d 0a 09 s_mrulock);.....
52b0: 2f 2f 20 83 81 83 82 83 8a 93 e0 82 cc 4d 52 55 // ..........MRU
52c0: 83 8a 83 58 83 67 82 f0 8d 58 90 56 0d 0a 09 7b ...X.g...X.V...{
52d0: 0d 0a 09 09 69 6e 74 20 69 3b 0d 0a 09 09 66 6f ....int i;....fo
52e0: 72 28 20 69 3d 30 3b 20 69 3c 63 6f 75 6e 74 6f r( i=0; i<counto
52f0: 66 28 6d 72 75 5f 29 3b 20 2b 2b 69 20 29 0d 0a f(mru_); ++i )..
5300: 09 09 09 69 66 28 20 6d 72 75 5f 5b 69 5d 20 3d ...if( mru_[i] =
5310: 3d 20 66 6e 61 6d 65 20 29 0d 0a 09 09 09 7b 2b = fname ).....{+
5320: 2b 69 3b 20 62 72 65 61 6b 3b 7d 0d 0a 09 09 66 +i; break;}....f
5330: 6f 72 28 20 2d 2d 69 3b 20 69 3e 30 3b 20 2d 2d or( --i; i>0; --
5340: 69 20 29 0d 0a 09 09 09 6d 72 75 5f 5b 69 5d 20 i ).....mru_[i]
5350: 3d 20 6d 72 75 5f 5b 69 2d 31 5d 3b 0d 0a 09 09 = mru_[i-1];....
5360: 6d 72 75 5f 5b 30 5d 20 3d 20 66 6e 61 6d 65 3b mru_[0] = fname;
5370: 0d 0a 09 7d 0d 0a 0d 0a 09 2f 2f 20 69 6e 69 82 ...}.....// ini.
5380: d6 95 db 91 b6 0d 0a 09 7b 0d 0a 09 09 69 6e 69 ........{....ini
5390: 5f 2e 53 65 74 53 65 63 74 69 6f 6e 41 73 55 73 _.SetSectionAsUs
53a0: 65 72 4e 61 6d 65 28 29 3b 0d 0a 09 09 63 6f 6e erName();....con
53b0: 73 74 20 53 74 72 69 6e 67 20 6b 65 79 20 3d 20 st String key =
53c0: 54 45 58 54 28 22 4d 52 55 22 29 3b 0d 0a 09 09 TEXT("MRU");....
53d0: 66 6f 72 28 20 69 6e 74 20 69 3d 30 3b 20 69 3c for( int i=0; i<
53e0: 63 6f 75 6e 74 6f 66 28 6d 72 75 5f 29 3b 20 2b countof(mru_); +
53f0: 2b 69 20 29 0d 0a 09 09 09 69 6e 69 5f 2e 50 75 +i ).....ini_.Pu
5400: 74 50 61 74 68 28 0d 0a 09 09 09 09 28 6b 65 79 tPath(......(key
5410: 2b 53 74 72 69 6e 67 28 29 2e 53 65 74 49 6e 74 +String().SetInt
5420: 28 69 2b 31 29 29 2e 63 5f 73 74 72 28 29 2c 20 (i+1)).c_str(),
5430: 6d 72 75 5f 5b 69 5d 20 29 3b 0d 0a 09 7d 0d 0a mru_[i] );...}..
5440: 7d 0d 0a 0d 0a 76 6f 69 64 20 43 6f 6e 66 69 67 }....void Config
5450: 4d 61 6e 61 67 65 72 3a 3a 53 65 74 55 70 4d 52 Manager::SetUpMR
5460: 55 4d 65 6e 75 28 20 48 4d 45 4e 55 20 6d 2c 20 UMenu( HMENU m,
5470: 55 49 4e 54 20 69 64 20 29 0d 0a 7b 0d 0a 09 4d UINT id )..{...M
5480: 75 74 65 78 20 6d 78 28 73 5f 6d 72 75 6c 6f 63 utex mx(s_mruloc
5490: 6b 29 3b 0d 0a 0d 0a 09 2f 2f 20 69 6e 69 82 a9 k);.....// ini..
54a0: 82 e7 93 c7 82 dd 8d 9e 82 dd 0d 0a 09 7b 0d 0a .............{..
54b0: 09 09 69 6e 69 5f 2e 53 65 74 53 65 63 74 69 6f ..ini_.SetSectio
54c0: 6e 41 73 55 73 65 72 4e 61 6d 65 28 29 3b 0d 0a nAsUserName();..
54d0: 09 09 63 6f 6e 73 74 20 53 74 72 69 6e 67 20 6b ..const String k
54e0: 65 79 20 3d 20 54 45 58 54 28 22 4d 52 55 22 29 ey = TEXT("MRU")
54f0: 3b 0d 0a 09 09 66 6f 72 28 20 69 6e 74 20 69 3d ;....for( int i=
5500: 30 3b 20 69 3c 63 6f 75 6e 74 6f 66 28 6d 72 75 0; i<countof(mru
5510: 5f 29 3b 20 2b 2b 69 20 29 0d 0a 09 09 09 6d 72 _); ++i ).....mr
5520: 75 5f 5b 69 5d 20 3d 20 69 6e 69 5f 2e 47 65 74 u_[i] = ini_.Get
5530: 50 61 74 68 28 0d 0a 09 09 09 09 28 6b 65 79 2b Path(......(key+
5540: 53 74 72 69 6e 67 28 29 2e 53 65 74 49 6e 74 28 String().SetInt(
5550: 69 2b 31 29 29 2e 63 5f 73 74 72 28 29 2c 20 50 i+1)).c_str(), P
5560: 61 74 68 28 29 20 29 3b 0d 0a 09 7d 0d 0a 0d 0a ath() );...}....
5570: 09 2f 2f 20 91 53 8d 80 96 da 82 f0 8d ed 8f 9c .// .S..........
5580: 0d 0a 09 77 68 69 6c 65 28 20 3a 3a 44 65 6c 65 ...while( ::Dele
5590: 74 65 4d 65 6e 75 28 20 6d 2c 20 30 2c 20 4d 46 teMenu( m, 0, MF
55a0: 5f 42 59 50 4f 53 49 54 49 4f 4e 20 29 20 29 3b _BYPOSITION ) );
55b0: 0d 0a 0d 0a 09 2f 2f 20 83 81 83 6a 83 85 81 5b .....// ...j...[
55c0: 8d 5c 92 7a 0d 0a 09 4d 45 4e 55 49 54 45 4d 49 .\.z...MENUITEMI
55d0: 4e 46 4f 20 6d 69 20 3d 20 7b 20 73 69 7a 65 6f NFO mi = { sizeo
55e0: 66 28 4d 45 4e 55 49 54 45 4d 49 4e 46 4f 29 20 f(MENUITEMINFO)
55f0: 7d 3b 0d 0a 09 6d 69 2e 66 4d 61 73 6b 20 3d 20 };...mi.fMask =
5600: 4d 49 49 4d 5f 49 44 20 7c 20 4d 49 49 4d 5f 54 MIIM_ID | MIIM_T
5610: 59 50 45 3b 0d 0a 09 6d 69 2e 66 54 79 70 65 20 YPE;...mi.fType
5620: 3d 20 4d 46 54 5f 53 54 52 49 4e 47 3b 0d 0a 09 = MFT_STRING;...
5630: 66 6f 72 28 20 69 6e 74 20 69 3d 30 3b 20 69 3c for( int i=0; i<
5640: 63 6f 75 6e 74 6f 66 28 6d 72 75 5f 29 3b 20 2b countof(mru_); +
5650: 2b 69 20 29 0d 0a 09 7b 0d 0a 09 09 69 66 28 20 +i )...{....if(
5660: 69 3e 3d 6d 72 75 73 5f 20 7c 7c 20 6d 72 75 5f i>=mrus_ || mru_
5670: 5b 69 5d 2e 6c 65 6e 28 29 3d 3d 30 20 29 0d 0a [i].len()==0 )..
5680: 09 09 7b 0d 0a 09 09 09 69 66 28 20 69 3d 3d 30 ..{.....if( i==0
5690: 20 29 0d 0a 09 09 09 7b 0d 0a 09 09 09 09 6d 69 ).....{......mi
56a0: 2e 66 4d 61 73 6b 20 20 20 20 20 7c 3d 20 4d 49 .fMask |= MI
56b0: 49 4d 5f 53 54 41 54 45 3b 0d 0a 09 09 09 09 6d IM_STATE;......m
56c0: 69 2e 77 49 44 20 20 20 20 20 20 20 20 3d 20 69 i.wID = i
56d0: 64 3b 0d 0a 09 09 09 09 6d 69 2e 66 53 74 61 74 d;......mi.fStat
56e0: 65 20 20 20 20 20 3d 20 4d 46 53 5f 44 49 53 41 e = MFS_DISA
56f0: 42 4c 45 44 3b 0d 0a 09 09 09 09 6d 69 2e 64 77 BLED;......mi.dw
5700: 54 79 70 65 44 61 74 61 20 3d 20 54 45 58 54 28 TypeData = TEXT(
5710: 22 6e 6f 20 66 69 6c 65 73 22 29 3b 0d 0a 09 09 "no files");....
5720: 09 09 6d 69 2e 63 63 68 20 20 20 20 20 20 20 20 ..mi.cch
5730: 3d 20 30 3b 0d 0a 09 09 09 09 3a 3a 49 6e 73 65 = 0;......::Inse
5740: 72 74 4d 65 6e 75 49 74 65 6d 28 20 6d 2c 20 30 rtMenuItem( m, 0
5750: 2c 20 4d 46 5f 42 59 50 4f 53 49 54 49 4f 4e 2c , MF_BYPOSITION,
5760: 20 26 6d 69 20 29 3b 0d 0a 09 09 09 7d 0d 0a 09 &mi );.....}...
5770: 09 09 62 72 65 61 6b 3b 0d 0a 09 09 7d 0d 0a 09 ..break;....}...
5780: 09 53 74 72 69 6e 67 20 63 70 74 20 3d 20 6d 72 .String cpt = mr
5790: 75 5f 5b 69 5d 2e 43 6f 6d 70 61 63 74 49 66 50 u_[i].CompactIfP
57a0: 6f 73 73 69 62 6c 65 28 36 30 29 3b 0d 0a 09 09 ossible(60);....
57b0: 6d 69 2e 77 49 44 20 20 20 20 20 20 20 20 3d 20 mi.wID =
57c0: 69 64 20 2b 20 69 3b 0d 0a 09 09 6d 69 2e 64 77 id + i;....mi.dw
57d0: 54 79 70 65 44 61 74 61 20 3d 20 63 6f 6e 73 74 TypeData = const
57e0: 5f 63 61 73 74 3c 54 43 48 41 52 2a 3e 28 63 70 _cast<TCHAR*>(cp
57f0: 74 2e 63 5f 73 74 72 28 29 29 3b 0d 0a 09 09 6d t.c_str());....m
5800: 69 2e 63 63 68 20 20 20 20 20 20 20 20 3d 20 63 i.cch = c
5810: 70 74 2e 6c 65 6e 28 29 3b 0d 0a 09 09 3a 3a 49 pt.len();....::I
5820: 6e 73 65 72 74 4d 65 6e 75 49 74 65 6d 28 20 6d nsertMenuItem( m
5830: 2c 20 69 2c 20 4d 46 5f 42 59 50 4f 53 49 54 49 , i, MF_BYPOSITI
5840: 4f 4e 2c 20 26 6d 69 20 29 3b 0d 0a 09 7d 0d 0a ON, &mi );...}..
5850: 7d 0d 0a 0d 0a 50 61 74 68 20 43 6f 6e 66 69 67 }....Path Config
5860: 4d 61 6e 61 67 65 72 3a 3a 47 65 74 4d 52 55 28 Manager::GetMRU(
5870: 20 69 6e 74 20 6e 6f 20 29 20 63 6f 6e 73 74 0d int no ) const.
5880: 0a 7b 0d 0a 09 72 65 74 75 72 6e 20 28 30 3c 3d .{...return (0<=
5890: 6e 6f 20 26 26 20 6e 6f 3c 6d 72 75 73 5f 20 3f no && no<mrus_ ?
58a0: 20 6d 72 75 5f 5b 6e 6f 5d 20 3a 20 50 61 74 68 mru_[no] : Path
58b0: 28 29 29 3b 0d 0a 7d 0d 0a 0d 0a 0d 0a 2f 2f 2d ());..}......//-
58c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
58d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
58e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
58f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
5900: 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 2f 2f 20 83 45 83 --------..// .E.
5910: 43 83 93 83 68 83 45 83 54 83 43 83 59 95 9c 8c C...h.E.T.C.Y...
5920: b3 8f 88 97 9d 0d 0a 2f 2f 2d 2d 2d 2d 2d 2d 2d .......//-------
5930: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
5940: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
5950: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
5960: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
5970: 2d 2d 0d 0a 0d 0a 76 6f 69 64 20 43 6f 6e 66 69 --....void Confi
5980: 67 4d 61 6e 61 67 65 72 3a 3a 52 65 6d 65 6d 62 gManager::Rememb
5990: 65 72 57 6e 64 28 20 6b 69 3a 3a 57 69 6e 64 6f erWnd( ki::Windo
59a0: 77 2a 20 77 6e 64 20 29 0d 0a 7b 0d 0a 09 52 45 w* wnd )..{...RE
59b0: 43 54 20 72 63 3b 0d 0a 09 77 6e 64 2d 3e 67 65 CT rc;...wnd->ge
59c0: 74 50 6f 73 28 26 72 63 29 3b 0d 0a 09 57 49 4e tPos(&rc);...WIN
59d0: 44 4f 57 50 4c 41 43 45 4d 45 4e 54 20 77 70 20 DOWPLACEMENT wp
59e0: 3d 20 7b 73 69 7a 65 6f 66 28 77 70 29 7d 3b 0d = {sizeof(wp)};.
59f0: 0a 09 3a 3a 47 65 74 57 69 6e 64 6f 77 50 6c 61 ..::GetWindowPla
5a00: 63 65 6d 65 6e 74 28 20 77 6e 64 2d 3e 68 77 6e cement( wnd->hwn
5a10: 64 28 29 2c 20 26 77 70 20 29 3b 0d 0a 0d 0a 09 d(), &wp );.....
5a20: 69 66 28 20 77 70 2e 73 68 6f 77 43 6d 64 3d 3d if( wp.showCmd==
5a30: 53 57 5f 53 48 4f 57 4e 4f 52 4d 41 4c 20 7c 7c SW_SHOWNORMAL ||
5a40: 20 77 70 2e 73 68 6f 77 43 6d 64 20 3d 3d 20 53 wp.showCmd == S
5a50: 57 5f 4d 41 58 49 4d 49 5a 45 20 29 0d 0a 09 09 W_MAXIMIZE )....
5a60: 77 6e 64 4d 5f 20 3d 20 28 77 70 2e 73 68 6f 77 wndM_ = (wp.show
5a70: 43 6d 64 20 3d 3d 20 53 57 5f 4d 41 58 49 4d 49 Cmd == SW_MAXIMI
5a80: 5a 45 29 3b 0d 0a 09 69 66 28 20 77 70 2e 73 68 ZE);...if( wp.sh
5a90: 6f 77 43 6d 64 3d 3d 53 57 5f 53 48 4f 57 4e 4f owCmd==SW_SHOWNO
5aa0: 52 4d 41 4c 20 29 0d 0a 09 7b 0d 0a 09 09 77 6e RMAL )...{....wn
5ab0: 64 58 5f 20 3d 20 72 63 2e 6c 65 66 74 3b 0d 0a dX_ = rc.left;..
5ac0: 09 09 77 6e 64 59 5f 20 3d 20 72 63 2e 74 6f 70 ..wndY_ = rc.top
5ad0: 3b 0d 0a 09 09 77 6e 64 57 5f 20 3d 20 72 63 2e ;....wndW_ = rc.
5ae0: 72 69 67 68 74 2d 20 72 63 2e 6c 65 66 74 3b 0d right- rc.left;.
5af0: 0a 09 09 77 6e 64 48 5f 20 3d 20 72 63 2e 62 6f ...wndH_ = rc.bo
5b00: 74 74 6f 6d 20 2d 20 72 63 2e 74 6f 70 3b 0d 0a ttom - rc.top;..
5b10: 09 7d 0d 0a 09 2f 2f 69 66 28 20 74 68 69 73 2d .}...//if( this-
5b20: 3e 72 65 6d 65 6d 62 65 72 57 69 6e 64 6f 77 50 >rememberWindowP
5b30: 6c 61 63 65 5f 20 7c 7c 20 74 68 69 73 2d 3e 72 lace_ || this->r
5b40: 65 6d 65 6d 62 65 72 57 69 6e 64 6f 77 53 69 7a ememberWindowSiz
5b50: 65 5f 20 29 0d 0a 09 2f 2f 09 53 61 76 65 49 6e e_ )...//.SaveIn
5b60: 69 28 29 3b 0d 0a 7d 0d 0a 0d 0a 2f 2f 2d 2d 2d i();..}....//---
5b70: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
5b80: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
5b90: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
5ba0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
5bb0: 2d 2d 2d 2d 2d 2d 0d 0a 2f 2f 20 5b 95 b6 8f 91 ------..// [....
5bc0: 83 5e 83 43 83 76 5d 83 54 83 75 83 81 83 6a 83 .^.C.v].T.u...j.
5bd0: 85 81 5b 82 cc 8d ec 90 ac 0d 0a 2f 2f 2d 2d 2d ..[........//---
5be0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
5bf0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
5c00: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
5c10: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
5c20: 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 76 6f 69 64 20 43 ------....void C
5c30: 6f 6e 66 69 67 4d 61 6e 61 67 65 72 3a 3a 53 65 onfigManager::Se
5c40: 74 44 6f 63 54 79 70 65 4d 65 6e 75 28 20 48 4d tDocTypeMenu( HM
5c50: 45 4e 55 20 6d 2c 20 55 49 4e 54 20 69 64 73 74 ENU m, UINT idst
5c60: 61 72 74 20 29 0d 0a 7b 0d 0a 09 2f 2f 20 91 53 art )..{...// .S
5c70: 8d 80 96 da 82 f0 8d ed 8f 9c 0d 0a 09 77 68 69 .............whi
5c80: 6c 65 28 20 3a 3a 44 65 6c 65 74 65 4d 65 6e 75 le( ::DeleteMenu
5c90: 28 20 6d 2c 20 30 2c 20 4d 46 5f 42 59 50 4f 53 ( m, 0, MF_BYPOS
5ca0: 49 54 49 4f 4e 20 29 20 29 3b 0d 0a 0d 0a 09 2f ITION ) );...../
5cb0: 2f 20 8f 87 82 c9 92 c7 89 c1 0d 0a 09 4d 45 4e / ...........MEN
5cc0: 55 49 54 45 4d 49 4e 46 4f 20 6d 69 20 3d 20 7b UITEMINFO mi = {
5cd0: 20 73 69 7a 65 6f 66 28 4d 45 4e 55 49 54 45 4d sizeof(MENUITEM
5ce0: 49 4e 46 4f 29 20 7d 3b 0d 0a 09 6d 69 2e 66 4d INFO) };...mi.fM
5cf0: 61 73 6b 20 3d 20 4d 49 49 4d 5f 49 44 20 7c 20 ask = MIIM_ID |
5d00: 4d 49 49 4d 5f 53 54 41 54 45 20 7c 20 4d 49 49 MIIM_STATE | MII
5d10: 4d 5f 54 59 50 45 3b 0d 0a 09 6d 69 2e 66 54 79 M_TYPE;...mi.fTy
5d20: 70 65 20 3d 20 4d 46 54 5f 53 54 52 49 4e 47 20 pe = MFT_STRING
5d30: 7c 20 4d 46 54 5f 52 41 44 49 4f 43 48 45 43 4b | MFT_RADIOCHECK
5d40: 3b 0d 0a 0d 0a 09 44 74 4c 69 73 74 3a 3a 69 74 ;.....DtList::it
5d50: 65 72 61 74 6f 72 20 69 3d 64 74 4c 69 73 74 5f erator i=dtList_
5d60: 2e 62 65 67 69 6e 28 29 2c 20 65 3d 64 74 4c 69 .begin(), e=dtLi
5d70: 73 74 5f 2e 65 6e 64 28 29 3b 0d 0a 09 66 6f 72 st_.end();...for
5d80: 28 20 69 6e 74 20 63 74 3d 30 3b 20 69 21 3d 65 ( int ct=0; i!=e
5d90: 3b 20 2b 2b 69 2c 20 2b 2b 63 74 20 29 0d 0a 09 ; ++i, ++ct )...
5da0: 7b 0d 0a 09 09 6d 69 2e 77 49 44 20 20 20 20 20 {....mi.wID
5db0: 20 20 20 3d 20 69 64 73 74 61 72 74 20 2b 20 63 = idstart + c
5dc0: 74 3b 0d 0a 09 09 6d 69 2e 66 53 74 61 74 65 20 t;....mi.fState
5dd0: 20 20 20 20 3d 20 28 69 3d 3d 63 75 72 44 74 5f = (i==curDt_
5de0: 20 3f 20 4d 46 53 5f 43 48 45 43 4b 45 44 20 3a ? MFS_CHECKED :
5df0: 20 4d 46 53 5f 55 4e 43 48 45 43 4b 45 44 29 3b MFS_UNCHECKED);
5e00: 0d 0a 09 09 6d 69 2e 64 77 54 79 70 65 44 61 74 ....mi.dwTypeDat
5e10: 61 20 3d 20 63 6f 6e 73 74 5f 63 61 73 74 3c 54 a = const_cast<T
5e20: 43 48 41 52 2a 3e 28 69 2d 3e 6e 61 6d 65 2e 63 CHAR*>(i->name.c
5e30: 5f 73 74 72 28 29 29 3b 0d 0a 09 09 6d 69 2e 63 _str());....mi.c
5e40: 63 68 20 20 20 20 20 20 20 20 3d 20 69 2d 3e 6e ch = i->n
5e50: 61 6d 65 2e 6c 65 6e 28 29 3b 0d 0a 09 09 3a 3a ame.len();....::
5e60: 49 6e 73 65 72 74 4d 65 6e 75 49 74 65 6d 28 20 InsertMenuItem(
5e70: 6d 2c 20 63 74 2c 20 4d 46 5f 42 59 50 4f 53 49 m, ct, MF_BYPOSI
5e80: 54 49 4f 4e 2c 20 26 6d 69 20 29 3b 0d 0a 09 7d TION, &mi );...}
5e90: 0d 0a 7d 0d 0a 0d 0a 76 6f 69 64 20 43 6f 6e 66 ..}....void Conf
5ea0: 69 67 4d 61 6e 61 67 65 72 3a 3a 53 65 74 44 6f igManager::SetDo
5eb0: 63 54 79 70 65 42 79 4d 65 6e 75 28 20 69 6e 74 cTypeByMenu( int
5ec0: 20 70 6f 73 2c 20 48 4d 45 4e 55 20 6d 20 29 0d pos, HMENU m ).
5ed0: 0a 7b 0d 0a 09 4d 45 4e 55 49 54 45 4d 49 4e 46 .{...MENUITEMINF
5ee0: 4f 20 6d 69 20 3d 20 7b 20 73 69 7a 65 6f 66 28 O mi = { sizeof(
5ef0: 4d 45 4e 55 49 54 45 4d 49 4e 46 4f 29 20 7d 3b MENUITEMINFO) };
5f00: 0d 0a 09 6d 69 2e 66 4d 61 73 6b 20 20 3d 20 4d ...mi.fMask = M
5f10: 49 49 4d 5f 53 54 41 54 45 3b 0d 0a 0d 0a 09 44 IIM_STATE;.....D
5f20: 74 4c 69 73 74 3a 3a 69 74 65 72 61 74 6f 72 20 tList::iterator
5f30: 69 3d 64 74 4c 69 73 74 5f 2e 62 65 67 69 6e 28 i=dtList_.begin(
5f40: 29 2c 20 65 3d 64 74 4c 69 73 74 5f 2e 65 6e 64 ), e=dtList_.end
5f50: 28 29 3b 0d 0a 09 66 6f 72 28 20 69 6e 74 20 63 ();...for( int c
5f60: 74 3d 30 3b 20 69 21 3d 65 3b 20 2b 2b 69 2c 20 t=0; i!=e; ++i,
5f70: 2b 2b 63 74 20 29 0d 0a 09 7b 0d 0a 09 09 6d 69 ++ct )...{....mi
5f80: 2e 66 53 74 61 74 65 20 20 20 20 20 3d 20 28 63 .fState = (c
5f90: 74 3d 3d 70 6f 73 20 3f 20 4d 46 53 5f 43 48 45 t==pos ? MFS_CHE
5fa0: 43 4b 45 44 20 3a 20 4d 46 53 5f 55 4e 43 48 45 CKED : MFS_UNCHE
5fb0: 43 4b 45 44 29 3b 0d 0a 09 09 3a 3a 53 65 74 4d CKED);....::SetM
5fc0: 65 6e 75 49 74 65 6d 49 6e 66 6f 28 20 6d 2c 20 enuItemInfo( m,
5fd0: 63 74 2c 20 4d 46 5f 42 59 50 4f 53 49 54 49 4f ct, MF_BYPOSITIO
5fe0: 4e 2c 20 26 6d 69 20 29 3b 0d 0a 09 09 69 66 28 N, &mi );....if(
5ff0: 20 63 74 20 3d 3d 20 70 6f 73 20 29 0d 0a 09 09 ct == pos )....
6000: 7b 0d 0a 09 09 09 63 75 72 44 74 5f 20 3d 20 69 {.....curDt_ = i
6010: 3b 0d 0a 09 09 09 4c 6f 61 64 4c 61 79 6f 75 74 ;.....LoadLayout
6020: 28 20 26 2a 63 75 72 44 74 5f 20 29 3b 0d 0a 09 ( &*curDt_ );...
6030: 09 7d 0d 0a 09 7d 0d 0a 7d 0d 0a 0d 0a 76 6f 69 .}...}..}....voi
6040: 64 20 43 6f 6e 66 69 67 4d 61 6e 61 67 65 72 3a d ConfigManager:
6050: 3a 43 68 65 63 6b 4d 65 6e 75 28 20 48 4d 45 4e :CheckMenu( HMEN
6060: 55 20 6d 2c 20 69 6e 74 20 70 6f 73 20 29 0d 0a U m, int pos )..
6070: 7b 0d 0a 09 4d 45 4e 55 49 54 45 4d 49 4e 46 4f {...MENUITEMINFO
6080: 20 6d 69 20 3d 20 7b 20 73 69 7a 65 6f 66 28 4d mi = { sizeof(M
6090: 45 4e 55 49 54 45 4d 49 4e 46 4f 29 20 7d 3b 0d ENUITEMINFO) };.
60a0: 0a 09 6d 69 2e 66 4d 61 73 6b 20 20 3d 20 4d 49 ..mi.fMask = MI
60b0: 49 4d 5f 53 54 41 54 45 3b 0d 0a 0d 0a 09 44 74 IM_STATE;.....Dt
60c0: 4c 69 73 74 3a 3a 69 74 65 72 61 74 6f 72 20 69 List::iterator i
60d0: 3d 64 74 4c 69 73 74 5f 2e 62 65 67 69 6e 28 29 =dtList_.begin()
60e0: 2c 20 65 3d 64 74 4c 69 73 74 5f 2e 65 6e 64 28 , e=dtList_.end(
60f0: 29 3b 0d 0a 09 66 6f 72 28 20 69 6e 74 20 63 74 );...for( int ct
6100: 3d 30 3b 20 69 21 3d 65 3b 20 2b 2b 69 2c 20 2b =0; i!=e; ++i, +
6110: 2b 63 74 20 29 0d 0a 09 7b 0d 0a 09 09 6d 69 2e +ct )...{....mi.
6120: 66 53 74 61 74 65 20 20 20 20 20 3d 20 28 63 74 fState = (ct
6130: 3d 3d 70 6f 73 20 3f 20 4d 46 53 5f 43 48 45 43 ==pos ? MFS_CHEC
6140: 4b 45 44 20 3a 20 4d 46 53 5f 55 4e 43 48 45 43 KED : MFS_UNCHEC
6150: 4b 45 44 29 3b 0d 0a 09 09 3a 3a 53 65 74 4d 65 KED);....::SetMe
6160: 6e 75 49 74 65 6d 49 6e 66 6f 28 20 6d 2c 20 63 nuItemInfo( m, c
6170: 74 2c 20 4d 46 5f 42 59 50 4f 53 49 54 49 4f 4e t, MF_BYPOSITION
6180: 2c 20 26 6d 69 20 29 3b 0d 0a 09 7d 0d 0a 7d 0d , &mi );...}..}.
6190: 0a 0d 0a ...