home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / dho.zip / DHO / SRC / SPINBTN.CC < prev    next >
C/C++ Source or Header  |  1995-08-27  |  3KB  |  108 lines

  1. /****************************************/
  2. /*    Developer Helper Object Set       */
  3. /*  (C) 1994-95 Thomas E. Bednarz, Jr.  */
  4. /*     All rights reserved              */
  5. /***************************************/
  6.  
  7. /* $Id: spinbtn.cc 1.2 1995/08/13 03:21:12 teb Exp $ */
  8.  
  9.  
  10. #include"spinbtn.h"
  11.  
  12.  
  13. //-------------------------------------------------------------------
  14. //   TSpinButton
  15. //       resource control  constructor
  16. TSpinButton::TSpinButton(TWinBase *parent, ULONG resource, LONG min, LONG max):
  17.    TControl(parent, resource)
  18. {
  19.    setLimits(min, max);
  20. }
  21.  
  22. //-------------------------------------------------------------------
  23. //   TSpinButton
  24. //        client window constructor
  25. TSpinButton::TSpinButton(TWinBase *parent, SpinBtnAttr *etr, LONG xPos, LONG yPos,
  26.                   LONG xWidth, LONG yHeight, LONG min, LONG max):
  27.    TControl(parent)
  28. {
  29.    ULONG SpinStyle = SPBS_MASTER;
  30.  
  31.  
  32.    if (etr->lcr == left)
  33.       SpinStyle |= SPBS_JUSTLEFT;
  34.    else if (etr->lcr == right)
  35.       SpinStyle |= SPBS_JUSTLEFT;
  36.    else if (etr->lcr == center)
  37.       SpinStyle |= SPBS_JUSTCENTER;
  38.  
  39.    if (etr->numberic)
  40.       SpinStyle |= SPBS_NUMERICONLY;
  41.    else
  42.       SpinStyle |= SPBS_ALLCHARACTERS;
  43.    if (etr->fastspin)
  44.       SpinStyle |= SPBS_FASTSPIN;
  45.    if (etr->noBorder)
  46.       SpinStyle |= SPBS_NOBORDER;
  47.    if (etr->readOnly)
  48.       SpinStyle |= SPBS_READONLY;
  49.    if (etr->padZeros)
  50.       SpinStyle |= SPBS_PADWITHZEROS;
  51.  
  52.    hwndControl = WinCreateWindow(
  53.                       fParent->getHWND(),
  54.                       WC_SPINBUTTON,
  55.                       (PSZ)NULL,
  56.                       SpinStyle,
  57.                       xPos, yPos, xWidth, yHeight,
  58.                       fParent->getHWND(),
  59.                       HWND_TOP,
  60.                       100, (PVOID)NULL, (PVOID)NULL);
  61.    setLimits(min, max);
  62. }
  63.  
  64.  
  65. //-------------------------------------------------------------------
  66. //   ~TSpinButton
  67. TSpinButton::~TSpinButton()
  68. {
  69.  
  70. }
  71.  
  72.  
  73. //-------------------------------------------------------------------
  74. //   getClassName
  75. const char *TSpinButton::getClassName()
  76. {
  77.    return "TSpinButton";
  78. }
  79.  
  80.  
  81. //-------------------------------------------------------------------
  82. //   setCurrentValue
  83. void TSpinButton::setCurrentValue(LONG cVal)
  84. {
  85.     SendMessage(SPBM_SETCURRENTVALUE, (MPARAM)cVal, (MPARAM)NULL);
  86. }
  87.  
  88.  
  89. //-------------------------------------------------------------------
  90. //   getCurrentValue
  91. LONG TSpinButton::getCurrentValue()
  92. {
  93.    return (LONG)SendMessage(SPBM_QUERYVALUE, NULL, NULL);
  94. }
  95.  
  96.  
  97. //-------------------------------------------------------------------
  98. //   setLimits
  99. void TSpinButton::setLimits(LONG min, LONG max)
  100. {
  101.    fMin = min;
  102.    fMax = max;
  103.  
  104.    SendMessage(SPBM_SETLIMITS, (MPARAM)fMax, (MPARAM) fMin);
  105.  
  106. }
  107.  
  108.