Hex Artifact Content

Not logged in

Artifact 122ddf24e552b592691e73e6a2781ba2f43c49bf:


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