Hex Artifact Content

Not logged in

Artifact 21ba63c586f76d543ccadfadc81a200d13e09ea2:


0000: 23 69 66 6e 64 65 66 20 5f 4b 49 4c 49 42 5f 43  #ifndef _KILIB_C
0010: 54 52 4c 5f 48 5f 0d 0a 23 64 65 66 69 6e 65 20  TRL_H_..#define 
0020: 5f 4b 49 4c 49 42 5f 43 54 52 4c 5f 48 5f 0d 0a  _KILIB_CTRL_H_..
0030: 23 69 6e 63 6c 75 64 65 20 22 77 69 6e 64 6f 77  #include "window
0040: 2e 68 22 0d 0a 23 69 66 6e 64 65 66 20 5f 5f 63  .h"..#ifndef __c
0050: 63 64 6f 63 5f 5f 0d 0a 6e 61 6d 65 73 70 61 63  cdoc__..namespac
0060: 65 20 6b 69 20 7b 0d 0a 23 65 6e 64 69 66 0d 0a  e ki {..#endif..
0070: 0d 0a 0d 0a 0d 0a 2f 2f 3d 3d 3d 3d 3d 3d 3d 3d  ......//========
0080: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0090: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
00a0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
00b0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
00c0: 3d 0d 0a 2f 2f 40 7b 20 40 70 6b 67 20 6b 69 2e  =..//@{ @pkg ki.
00d0: 57 69 6e 64 6f 77 20 2f 2f 40 7d 0d 0a 2f 2f 40  Window //@}..//@
00e0: 7b 0d 0a 2f 2f 09 83 58 83 65 81 5b 83 5e 83 58  {..//..X.e.[.^.X
00f0: 83 6f 81 5b 0d 0a 2f 2f 40 7d 0d 0a 2f 2f 3d 3d  .o.[..//@}..//==
0100: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0110: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0120: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0130: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0140: 3d 3d 3d 3d 3d 3d 3d 0d 0a 0d 0a 63 6c 61 73 73  =======....class
0150: 20 53 74 61 74 75 73 42 61 72 20 3a 20 70 75 62   StatusBar : pub
0160: 6c 69 63 20 57 69 6e 64 6f 77 0d 0a 7b 0d 0a 70  lic Window..{..p
0170: 75 62 6c 69 63 3a 0d 0a 0d 0a 09 53 74 61 74 75  ublic:.....Statu
0180: 73 42 61 72 28 29 3b 0d 0a 09 62 6f 6f 6c 20 43  sBar();...bool C
0190: 72 65 61 74 65 28 20 48 57 4e 44 20 70 61 72 65  reate( HWND pare
01a0: 6e 74 20 29 3b 0d 0a 09 69 6e 74 20 20 41 75 74  nt );...int  Aut
01b0: 6f 52 65 73 69 7a 65 28 20 62 6f 6f 6c 20 6d 61  oResize( bool ma
01c0: 78 69 6d 69 7a 65 64 20 29 3b 0d 0a 09 76 6f 69  ximized );...voi
01d0: 64 20 53 65 74 54 65 78 74 28 20 63 6f 6e 73 74  d SetText( const
01e0: 20 54 43 48 41 52 2a 20 73 74 72 2c 20 69 6e 74   TCHAR* str, int
01f0: 20 70 61 72 74 3d 30 20 29 3b 0d 0a 09 76 6f 69   part=0 );...voi
0200: 64 20 53 65 74 54 69 70 54 65 78 74 28 20 63 6f  d SetTipText( co
0210: 6e 73 74 20 54 43 48 41 52 2a 20 74 69 70 2c 20  nst TCHAR* tip, 
0220: 69 6e 74 20 70 61 72 74 3d 30 20 29 3b 0d 0a 09  int part=0 );...
0230: 76 6f 69 64 20 53 65 74 50 61 72 74 73 28 20 69  void SetParts( i
0240: 6e 74 20 6e 2c 20 69 6e 74 2a 20 70 61 72 74 73  nt n, int* parts
0250: 20 29 3b 0d 0a 09 76 6f 69 64 20 53 65 74 53 74   );...void SetSt
0260: 61 74 75 73 42 61 72 56 69 73 69 62 6c 65 28 62  atusBarVisible(b
0270: 6f 6f 6c 20 62 3d 74 72 75 65 29 3b 0d 0a 0d 0a  ool b=true);....
0280: 70 75 62 6c 69 63 3a 0d 0a 0d 0a 09 69 6e 74 20  public:.....int 
0290: 77 69 64 74 68 28 29 20 63 6f 6e 73 74 3b 0d 0a  width() const;..
02a0: 09 62 6f 6f 6c 20 69 73 53 74 61 74 75 73 42 61  .bool isStatusBa
02b0: 72 56 69 73 69 62 6c 65 28 29 20 63 6f 6e 73 74  rVisible() const
02c0: 3b 0d 0a 0d 0a 70 72 69 76 61 74 65 3a 0d 0a 0d  ;....private:...
02d0: 0a 09 76 69 72 74 75 61 6c 20 62 6f 6f 6c 20 50  ..virtual bool P
02e0: 72 65 54 72 61 6e 73 6c 61 74 65 4d 65 73 73 61  reTranslateMessa
02f0: 67 65 28 20 4d 53 47 2a 20 29 3b 0d 0a 0d 0a 70  ge( MSG* );....p
0300: 72 69 76 61 74 65 3a 0d 0a 0d 0a 09 69 6e 74 20  rivate:.....int 
0310: 77 69 64 74 68 5f 3b 0d 0a 09 62 6f 6f 6c 20 76  width_;...bool v
0320: 69 73 69 62 6c 65 5f 3b 0d 0a 7d 3b 0d 0a 0d 0a  isible_;..};....
0330: 0d 0a 0d 0a 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ....//----------
0340: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0350: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0360: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0370: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d  ---------------.
0380: 0a 23 69 66 6e 64 65 66 20 5f 5f 63 63 64 6f 63  .#ifndef __ccdoc
0390: 5f 5f 0d 0a 0d 0a 69 6e 6c 69 6e 65 20 69 6e 74  __....inline int
03a0: 20 53 74 61 74 75 73 42 61 72 3a 3a 77 69 64 74   StatusBar::widt
03b0: 68 28 29 20 63 6f 6e 73 74 0d 0a 09 7b 20 72 65  h() const...{ re
03c0: 74 75 72 6e 20 77 69 64 74 68 5f 3b 20 7d 0d 0a  turn width_; }..
03d0: 0d 0a 69 6e 6c 69 6e 65 20 62 6f 6f 6c 20 53 74  ..inline bool St
03e0: 61 74 75 73 42 61 72 3a 3a 69 73 53 74 61 74 75  atusBar::isStatu
03f0: 73 42 61 72 56 69 73 69 62 6c 65 28 29 20 63 6f  sBarVisible() co
0400: 6e 73 74 0d 0a 09 7b 20 72 65 74 75 72 6e 20 76  nst...{ return v
0410: 69 73 69 62 6c 65 5f 3b 20 7d 0d 0a 0d 0a 69 6e  isible_; }....in
0420: 6c 69 6e 65 20 76 6f 69 64 20 53 74 61 74 75 73  line void Status
0430: 42 61 72 3a 3a 53 65 74 50 61 72 74 73 28 20 69  Bar::SetParts( i
0440: 6e 74 20 6e 2c 20 69 6e 74 2a 20 70 61 72 74 73  nt n, int* parts
0450: 20 29 0d 0a 09 7b 20 53 65 6e 64 4d 73 67 28 20   )...{ SendMsg( 
0460: 53 42 5f 53 45 54 50 41 52 54 53 2c 20 6e 2c 20  SB_SETPARTS, n, 
0470: 72 65 69 6e 74 65 72 70 72 65 74 5f 63 61 73 74  reinterpret_cast
0480: 3c 4c 50 41 52 41 4d 3e 28 70 61 72 74 73 29 20  <LPARAM>(parts) 
0490: 29 3b 20 7d 0d 0a 0d 0a 69 6e 6c 69 6e 65 20 76  ); }....inline v
04a0: 6f 69 64 20 53 74 61 74 75 73 42 61 72 3a 3a 53  oid StatusBar::S
04b0: 65 74 54 65 78 74 28 20 63 6f 6e 73 74 20 54 43  etText( const TC
04c0: 48 41 52 2a 20 73 74 72 2c 20 69 6e 74 20 70 61  HAR* str, int pa
04d0: 72 74 20 29 0d 0a 09 7b 20 53 65 6e 64 4d 73 67  rt )...{ SendMsg
04e0: 28 20 53 42 5f 53 45 54 54 45 58 54 2c 20 70 61  ( SB_SETTEXT, pa
04f0: 72 74 2c 20 72 65 69 6e 74 65 72 70 72 65 74 5f  rt, reinterpret_
0500: 63 61 73 74 3c 4c 50 41 52 41 4d 3e 28 73 74 72  cast<LPARAM>(str
0510: 29 20 29 3b 20 7d 0d 0a 0d 0a 69 6e 6c 69 6e 65  ) ); }....inline
0520: 20 76 6f 69 64 20 53 74 61 74 75 73 42 61 72 3a   void StatusBar:
0530: 3a 53 65 74 53 74 61 74 75 73 42 61 72 56 69 73  :SetStatusBarVis
0540: 69 62 6c 65 28 62 6f 6f 6c 20 62 29 0d 0a 09 7b  ible(bool b)...{
0550: 20 3a 3a 53 68 6f 77 57 69 6e 64 6f 77 28 20 68   ::ShowWindow( h
0560: 77 6e 64 28 29 2c 20 62 3f 53 57 5f 53 48 4f 57  wnd(), b?SW_SHOW
0570: 3a 53 57 5f 48 49 44 45 20 29 3b 20 76 69 73 69  :SW_HIDE ); visi
0580: 62 6c 65 5f 3d 62 3b 20 7d 0d 0a 0d 0a 0d 0a 0d  ble_=b; }.......
0590: 0a 23 65 6e 64 69 66 20 2f 2f 20 5f 5f 63 63 64  .#endif // __ccd
05a0: 6f 63 5f 5f 0d 0a 2f 2f 3d 3d 3d 3d 3d 3d 3d 3d  oc__..//========
05b0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
05c0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
05d0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
05e0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
05f0: 3d 0d 0a 2f 2f 40 7b 0d 0a 2f 2f 09 83 52 83 93  =..//@{..//..R..
0600: 83 7b 83 7b 83 62 83 4e 83 58 0d 0a 2f 2f 40 7d  .{.{.b.N.X..//@}
0610: 0d 0a 2f 2f 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ..//============
0620: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0630: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0640: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0650: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0d 0a 0d  =============...
0660: 0a 63 6c 61 73 73 20 43 6f 6d 62 6f 42 6f 78 20  .class ComboBox 
0670: 3a 20 70 75 62 6c 69 63 20 57 69 6e 64 6f 77 0d  : public Window.
0680: 0a 7b 0d 0a 70 75 62 6c 69 63 3a 0d 0a 09 65 78  .{..public:...ex
0690: 70 6c 69 63 69 74 20 43 6f 6d 62 6f 42 6f 78 28  plicit ComboBox(
06a0: 20 48 57 4e 44 20 63 62 20 29 3b 0d 0a 09 65 78   HWND cb );...ex
06b0: 70 6c 69 63 69 74 20 43 6f 6d 62 6f 42 6f 78 28  plicit ComboBox(
06c0: 20 48 57 4e 44 20 64 6c 67 2c 20 55 49 4e 54 20   HWND dlg, UINT 
06d0: 69 64 20 29 3b 0d 0a 09 76 6f 69 64 20 41 64 64  id );...void Add
06e0: 28 20 63 6f 6e 73 74 20 54 43 48 41 52 2a 20 73  ( const TCHAR* s
06f0: 74 72 20 29 3b 0d 0a 09 76 6f 69 64 20 53 65 6c  tr );...void Sel
0700: 65 63 74 28 20 63 6f 6e 73 74 20 54 43 48 41 52  ect( const TCHAR
0710: 2a 20 73 74 72 20 29 3b 0d 0a 09 69 6e 74 20 47  * str );...int G
0720: 65 74 43 75 72 53 65 6c 28 29 3b 0d 0a 70 72 69  etCurSel();..pri
0730: 76 61 74 65 3a 0d 0a 09 76 69 72 74 75 61 6c 20  vate:...virtual 
0740: 62 6f 6f 6c 20 50 72 65 54 72 61 6e 73 6c 61 74  bool PreTranslat
0750: 65 4d 65 73 73 61 67 65 28 20 4d 53 47 2a 20 29  eMessage( MSG* )
0760: 3b 0d 0a 7d 3b 0d 0a 0d 0a 0d 0a 0d 0a 2f 2f 2d  ;..};........//-
0770: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0780: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0790: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
07a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
07b0: 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 23 69 66 6e 64 65  --------..#ifnde
07c0: 66 20 5f 5f 63 63 64 6f 63 5f 5f 0d 0a 0d 0a 69  f __ccdoc__....i
07d0: 6e 6c 69 6e 65 20 43 6f 6d 62 6f 42 6f 78 3a 3a  nline ComboBox::
07e0: 43 6f 6d 62 6f 42 6f 78 28 20 48 57 4e 44 20 63  ComboBox( HWND c
07f0: 62 20 29 0d 0a 09 7b 20 53 65 74 48 77 6e 64 28  b )...{ SetHwnd(
0800: 63 62 29 3b 20 7d 0d 0a 0d 0a 69 6e 6c 69 6e 65  cb); }....inline
0810: 20 43 6f 6d 62 6f 42 6f 78 3a 3a 43 6f 6d 62 6f   ComboBox::Combo
0820: 42 6f 78 28 20 48 57 4e 44 20 64 6c 67 2c 20 55  Box( HWND dlg, U
0830: 49 4e 54 20 69 64 20 29 0d 0a 09 7b 20 53 65 74  INT id )...{ Set
0840: 48 77 6e 64 28 20 3a 3a 47 65 74 44 6c 67 49 74  Hwnd( ::GetDlgIt
0850: 65 6d 28 64 6c 67 2c 69 64 29 20 29 3b 20 7d 0d  em(dlg,id) ); }.
0860: 0a 0d 0a 69 6e 6c 69 6e 65 20 76 6f 69 64 20 43  ...inline void C
0870: 6f 6d 62 6f 42 6f 78 3a 3a 41 64 64 28 20 63 6f  omboBox::Add( co
0880: 6e 73 74 20 54 43 48 41 52 2a 20 73 74 72 20 29  nst TCHAR* str )
0890: 0d 0a 09 7b 20 53 65 6e 64 4d 73 67 28 20 43 42  ...{ SendMsg( CB
08a0: 5f 41 44 44 53 54 52 49 4e 47 2c 20 30 2c 20 72  _ADDSTRING, 0, r
08b0: 65 69 6e 74 65 72 70 72 65 74 5f 63 61 73 74 3c  einterpret_cast<
08c0: 4c 50 41 52 41 4d 3e 28 73 74 72 29 20 29 3b 20  LPARAM>(str) ); 
08d0: 7d 0d 0a 0d 0a 69 6e 6c 69 6e 65 20 69 6e 74 20  }....inline int 
08e0: 43 6f 6d 62 6f 42 6f 78 3a 3a 47 65 74 43 75 72  ComboBox::GetCur
08f0: 53 65 6c 28 29 0d 0a 09 7b 20 72 65 74 75 72 6e  Sel()...{ return
0900: 20 28 69 6e 74 29 20 53 65 6e 64 4d 73 67 28 20   (int) SendMsg( 
0910: 43 42 5f 47 45 54 43 55 52 53 45 4c 20 29 3b 20  CB_GETCURSEL ); 
0920: 7d 0d 0a 0d 0a 0d 0a 0d 0a 2f 2f 3d 3d 3d 3d 3d  }........//=====
0930: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0940: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0950: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0960: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0970: 3d 3d 3d 3d 0d 0a 0d 0a 23 65 6e 64 69 66 20 2f  ====....#endif /
0980: 2f 20 5f 5f 63 63 64 6f 63 5f 5f 0d 0a 7d 20 20  / __ccdoc__..}  
0990: 20 20 20 20 2f 2f 20 6e 61 6d 65 73 70 61 63 65      // namespace
09a0: 20 6b 69 0d 0a 23 65 6e 64 69 66 20 2f 2f 20 5f   ki..#endif // _
09b0: 4b 49 4c 49 42 5f 43 54 52 4c 5f 48 5f 0d 0a     KILIB_CTRL_H_..