home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / dho.zip / DHO / SRC / VSET.CC < prev    next >
C/C++ Source or Header  |  1995-09-03  |  4KB  |  161 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.13 1995/09/02 22:43:36 teb Exp teb $ */
  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. //-------------------------------------------------------------------
  44. // 
  45. TValueSet::TValueSet(ULONG id, TWinBase *parent):
  46.     TWinBase(id)
  47.  
  48. {
  49.    fParent = parent;
  50.    hwnd = WinWindowFromID( fParent->getHWND() , fResource);
  51. }
  52.  
  53. //-------------------------------------------------------------------
  54. //  ~TValueSet
  55. TValueSet::~TValueSet()
  56. {
  57.  
  58. }
  59.  
  60.  
  61. //-------------------------------------------------------------------
  62. //  getNumRows
  63. USHORT TValueSet::getNumRows()
  64. {
  65.    return fRows;
  66. }
  67.  
  68.  
  69. //-------------------------------------------------------------------
  70. //  getNumCols
  71. USHORT TValueSet::getNumCols()
  72. {
  73.    return fCols;
  74. }
  75.  
  76.  
  77. //-------------------------------------------------------------------
  78. //  getClassName
  79. const char *TValueSet::getClassName(void)
  80. {
  81.    return "TValueSet";
  82. }
  83.  
  84.  
  85. //-------------------------------------------------------------------
  86. //  MakeFrame
  87. BOOL TValueSet::init()
  88. {
  89.  
  90.    switch (fVSetAttr.items)
  91.    {
  92.       case colors:
  93.          ulVSetStyle |= VS_RGB;
  94.          break;
  95.       case bitmaps:
  96.          ulVSetStyle |= VS_BITMAP;
  97.          break;
  98.       case icon:
  99.          ulVSetStyle |= VS_ICON;
  100.          break;
  101.       case text:
  102.          ulVSetStyle |= VS_TEXT;
  103.       case colorindex:
  104.          ulVSetStyle |= VS_COLORINDEX;
  105.      break;
  106.    }
  107.    
  108.    if (fVSetAttr.itemBorder)
  109.       ulVSetStyle |= VS_ITEMBORDER;
  110.    if (fVSetAttr.setBorder)
  111.       ulVSetStyle |= VS_BORDER;
  112.    if ((fVSetAttr.items == bitmaps) && (fVSetAttr.scaleItems))
  113.       ulVSetStyle |= VS_SCALEBITMAPS ;
  114.  
  115.    fX = fVSetAttr.x;
  116.    fY = fVSetAttr.y;
  117.    fcX = fVSetAttr.width;
  118.    fcY = fVSetAttr.height;
  119.  
  120.    if (fId == FID_CLIENT)
  121.       ulVSetStyle |= FCF_SHELLPOSITION;   
  122.  
  123.       hwnd = WinCreateWindow(fParent->getHWND(),
  124.                          WC_VALUESET, NULL, ulVSetStyle,
  125.                          fX,fY,fcX,fcY, fParent->getHWND(), HWND_TOP,
  126.                          fId, &vscData, NULL);
  127.  
  128.     return (hwnd != (HWND)NULL);
  129. }
  130.  
  131.  
  132.  
  133. //-------------------------------------------------------------------
  134. //  setItem
  135. void TValueSet::setItem(USHORT row, USHORT col, VOID *item)
  136. {
  137.    WinSendMsg(hwnd, VM_SETITEM,MPFROM2SHORT(row, col),
  138.               MPFROMLONG(item));
  139. }
  140.  
  141.  
  142.  
  143. //-------------------------------------------------------------------
  144. //  getSelection
  145. void TValueSet::getSelection(USHORT &row, USHORT &col)
  146. {
  147.   fData = (ULONG)WinSendMsg(hwnd, VM_QUERYSELECTEDITEM,
  148.             NULL, NULL);
  149.    row = SHORT1FROMMP(fData);
  150.    col = SHORT2FROMMP(fData);   
  151. }
  152.     
  153.  
  154. //-------------------------------------------------------------------
  155. //  setSelection
  156. void TValueSet::setSelection(USHORT row, USHORT col)
  157. {
  158.   WinSendMsg(hwnd, VM_SELECTITEM,MPFROM2SHORT(row, col), NULL);
  159.  
  160. }
  161.