home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / dho.zip / DHO / SRC / SOURCE.ZIP / vset.cc < prev    next >
C/C++ Source or Header  |  1995-08-27  |  4KB  |  154 lines

  1. /****************************************/
  2. /*    Developer Helper Object Set       */
  3. /*  (C) 1994-95 Thomas E. Bednarz, Jr.  */
  4. /*     All rights reserved              */
  5. /***************************************/
  6.  
  7. /* $Id: vset.cc 1.8 1995/08/26 23:55:07 teb Exp $ */
  8.  
  9.  
  10. #include"vset.h"
  11. #include<os2.h>
  12.  
  13.  
  14. //-------------------------------------------------------------------
  15. //  TValueSet
  16. TValueSet::TValueSet(ULONG id, TWinBase *parent, USHORT rows, USHORT cols):
  17.     TWinBase(id)
  18. {
  19.    fRows = rows;
  20.    fCols = cols;
  21.    fParent = parent;
  22.    fId = id;
  23.  
  24.    vscData.cbSize = sizeof(VSCDATA);
  25.    vscData.usRowCount = fRows;
  26.    vscData.usColumnCount = fCols;
  27.    ulVSetStyle= 0;
  28.  
  29. //  set default values
  30.    fVSetAttr.items = bitmaps;
  31.    fVSetAttr.itemBorder = TRUE;
  32.    fVSetAttr.setBorder = TRUE;
  33.    fVSetAttr.scaleItems = FALSE;
  34.    fVSetAttr.x= 0;
  35.    fVSetAttr.y = 0;
  36.    fVSetAttr.width = 0;
  37.    fVSetAttr.height = 0;
  38.  
  39. }
  40.  
  41.  
  42. //-------------------------------------------------------------------
  43. //  ~TValueSet
  44. TValueSet::~TValueSet()
  45. {
  46.  
  47. }
  48.  
  49.  
  50. //-------------------------------------------------------------------
  51. //  getNumRows
  52. USHORT TValueSet::getNumRows()
  53. {
  54.    return fRows;
  55. }
  56.  
  57.  
  58. //-------------------------------------------------------------------
  59. //  getNumCols
  60. USHORT TValueSet::getNumCols()
  61. {
  62.    return fCols;
  63. }
  64.  
  65.  
  66. //-------------------------------------------------------------------
  67. //  getClassName
  68. const char *TValueSet::getClassName(void)
  69. {
  70.    return "TValueSet";
  71. }
  72.  
  73.  
  74. //-------------------------------------------------------------------
  75. //  MakeFrame
  76. BOOL TValueSet::init()
  77. {
  78.  
  79.    switch (fVSetAttr.items)
  80.    {
  81.       case colors:
  82.          ulVSetStyle |= VS_RGB;
  83.          break;
  84.       case bitmaps:
  85.          ulVSetStyle |= VS_BITMAP;
  86.          break;
  87.       case icon:
  88.          ulVSetStyle |= VS_ICON;
  89.          break;
  90.       case text:
  91.          ulVSetStyle |= VS_TEXT;
  92.      break;
  93.    }
  94.    
  95.    if (fVSetAttr.itemBorder)
  96.       ulVSetStyle |= VS_ITEMBORDER;
  97.    if (fVSetAttr.setBorder)
  98.       ulVSetStyle |= VS_BORDER;
  99.    if ((fVSetAttr.items == bitmaps) && (fVSetAttr.scaleItems))
  100.       ulVSetStyle |= VS_SCALEBITMAPS ;
  101.  
  102.    fX = fVSetAttr.x;
  103.    fY = fVSetAttr.y;
  104.    fcX = fVSetAttr.width;
  105.    fcY = fVSetAttr.height;
  106.  
  107.    if (fId == FID_CLIENT)
  108.       ulVSetStyle |= FCF_SHELLPOSITION;   
  109.  
  110.       hwnd = WinCreateWindow(fParent->getHWND(),
  111.                          WC_VALUESET, NULL, ulVSetStyle,
  112.                          fX,fY,fcX,fcY, fParent->getHWND(), HWND_TOP,
  113.                          fId, &vscData, NULL);
  114.  
  115.     return (hwnd != NULL);
  116. }
  117.  
  118.  
  119.  
  120. //-------------------------------------------------------------------
  121. //  setItem
  122. void TValueSet::setItem(USHORT row, USHORT col, VOID *item)
  123. {
  124.    WinSendMsg(hwnd, VM_SETITEM,MPFROM2SHORT(row, col),
  125.               MPFROMLONG(item));
  126. }
  127.  
  128.  
  129. //-------------------------------------------------------------------
  130. //  DoControl
  131. MRESULT TValueSet::DoControl(MPARAM mParam1)
  132. {
  133.    if (SHORT2FROMMP(mParam1) == VN_SELECT) 
  134.    {
  135.       ULONG ulRowCol;
  136.       CHAR szBuffer[20];
  137.       ulRowCol = (ULONG) WinSendMsg(hwnd,
  138.                     VM_QUERYSELECTEDITEM,NULL,NULL);
  139.  
  140.       fData = ulRowCol;
  141.       return (MRESULT)TRUE;
  142.    }
  143.    return (MRESULT)FALSE;
  144. }
  145.  
  146. //-------------------------------------------------------------------
  147. //  getSelection
  148. void TValueSet::getSelection(SHORT &row, SHORT &col)
  149. {
  150.    row = SHORT1FROMMP(fData);
  151.    col = SHORT2FROMMP(fData);   
  152. }
  153.     
  154.