home *** CD-ROM | disk | FTP | other *** search
/ POINT Software Programming / PPROG1.ISO / c / actlib11 / tvtools / combowin.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  1993-01-14  |  1.1 KB  |  54 lines

  1. /*  Copyright (C) 1993   Marc Stern  (internet: stern@mble.philips.be)  */
  2.  
  3. #define Uses_TComboBox
  4. #include "tvtools.h"
  5.  
  6.  
  7. #define cpComboWindow "\x13\x13\x15\x04\x05\x1A\x14"
  8.  
  9.  
  10. TComboWindow::TComboWindow( const TRect& bounds, TGenCollection *aList ) :
  11.           TWindow( bounds, 0, wnNoNumber) ,
  12.           TWindowInit( &TComboWindow::initFrame )
  13. {
  14.   setState( sfShadow, False );
  15.   flags = 0;
  16.  
  17.   TRect r = getExtent();
  18.   r.a.x = r.b.x - 1;
  19.  
  20.   TScrollBar  *sb = new TScrollBar(r);
  21.   insert( sb );
  22.  
  23.   r = getExtent();
  24.   r.b.x--;
  25.  
  26.   viewer = new TComboViewer( r, aList, sb );
  27.   insert( viewer );
  28. }
  29.  
  30.  
  31. TPalette& TComboWindow::getPalette() const
  32. {
  33.    static TPalette palette( cpComboWindow, sizeof(cpComboWindow)-1 );
  34.    return palette;
  35. }
  36.  
  37.  
  38. void TComboWindow::getSelection( char *dest )
  39. {
  40.   viewer->getData( dest, viewer->focused, 255 );
  41. }
  42.  
  43.  
  44. void TComboWindow::handleEvent( TEvent& event )
  45. {
  46.   if ( (event.what == evMouseDown) && !containsMouse(event) )
  47.      {
  48.        endModal( cmCancel );
  49.        clearEvent( event );
  50.      }
  51.  
  52.   TWindow::handleEvent( event );
  53. }
  54.