home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 7 / 07.iso / c / c082_122 / 10.ddi / TVSRC.ZIP / TDIALOG.CPP < prev    next >
Encoding:
C/C++ Source or Header  |  1992-06-10  |  3.2 KB  |  101 lines

  1. /*------------------------------------------------------------*/
  2. /* filename -       tdialog.cpp                               */
  3. /*                                                            */
  4. /* function(s)                                                */
  5. /*                  TDialog member functions                  */
  6. /*------------------------------------------------------------*/
  7.  
  8. /*------------------------------------------------------------*/
  9. /*                                                            */
  10. /*    Turbo Vision -  Version 1.0                             */
  11. /*                                                            */
  12. /*                                                            */
  13. /*    Copyright (c) 1991 by Borland International             */
  14. /*    All Rights Reserved.                                    */
  15. /*                                                            */
  16. /*------------------------------------------------------------*/
  17.  
  18. #define Uses_TKeys
  19. #define Uses_TDialog
  20. #define Uses_TEvent
  21. #include <tv.h>
  22.  
  23. #define cpDialog "\x20\x21\x22\x23\x24\x25\x26\x27\x28\x29\x2A\x2B\x2C\x2D\x2E\x2F"\
  24.                  "\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x3A\x3B\x3C\x3D\x3E\x3F"
  25.  
  26. TDialog::TDialog( const TRect& bounds, const char *aTitle ) :
  27.     TWindow( bounds, aTitle, wnNoNumber ),
  28.     TWindowInit( &TDialog::initFrame )
  29. {
  30.      growMode = 0;
  31.      flags = wfMove | wfClose;
  32. }
  33.  
  34. TPalette& TDialog::getPalette() const
  35. {
  36.     static TPalette palette( cpDialog, sizeof( cpDialog )-1 );
  37.     return palette;
  38. }
  39.  
  40. void TDialog::handleEvent(TEvent& event)
  41. {
  42.     TWindow::handleEvent(event);
  43.     switch (event.what)
  44.         {
  45.         case evKeyDown:
  46.             switch (event.keyDown.keyCode)
  47.                 {
  48.                 case kbEsc:
  49.                     event.what = evCommand;
  50.                     event.message.command = cmCancel;
  51.                     event.message.infoPtr = 0;
  52.                     putEvent(event);
  53.                     clearEvent(event);
  54.                     break;
  55.                 case kbEnter:
  56.                     event.what = evBroadcast;
  57.                     event.message.command = cmDefault;
  58.                     event.message.infoPtr = 0;
  59.                     putEvent(event);
  60.                     clearEvent(event);
  61.                     break;
  62.                 }
  63.             break;
  64.  
  65.         case evCommand:
  66.             switch( event.message.command )
  67.                 {
  68.                 case cmOK:
  69.                 case cmCancel:
  70.                 case cmYes:
  71.                 case cmNo:
  72.                     if( (state & sfModal) != 0 )
  73.                         {
  74.                         endModal(event.message.command);
  75.                         clearEvent(event);
  76.                         }
  77.                     break;
  78.                 }
  79.             break;
  80.         }
  81. }
  82.  
  83. Boolean TDialog::valid( ushort command )
  84. {
  85.     if( command == cmCancel )
  86.         return True;
  87.     else
  88.         return TGroup::valid( command );
  89. }
  90.  
  91. TStreamable *TDialog::build()
  92. {
  93.     return new TDialog( streamableInit );
  94. }
  95.  
  96. TDialog::TDialog( StreamableInit ) :
  97.     TWindow( streamableInit ),
  98.     TWindowInit( 0 )
  99. {
  100. }
  101.