home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 26 / CD_ASCQ_26_1295.iso / vrac / tvme30.zip / TFILENM.CPP < prev    next >
C/C++ Source or Header  |  1995-08-02  |  2KB  |  71 lines

  1. // File    : TFILENM.CPP
  2. // Author  : Eric Woodruff,  CIS ID: 72134,1150
  3. // Updated : Wed 08/02/95 17:54:19
  4. // Note    : Copyright 1994-95, Eric Woodruff, All rights reserved
  5. // Compiler: Borland C++ 3.1 to 4.xx
  6. //
  7. // This is a simple filename/directory name inputline class.
  8. // It is the same as TInputLine, except it accepts only valid string input
  9. // for a filename or directory name.
  10. //
  11.  
  12. #include <ctype.h>
  13. #include <string.h>
  14.  
  15. #define Uses_MsgBox
  16. #define Uses_TEvent
  17. #define Uses_TInputLine
  18. #define Uses_TKeys
  19. #define Uses_TStreamableClass
  20. #define Uses_ipstream
  21. #define Uses_opstream
  22. #include <tv.h>
  23.  
  24. __link( RView )
  25.  
  26. #define Uses_TFilename
  27. #include <tintfile.h>
  28.  
  29. TStreamableClass RFilename( TFilename::name, TFilename::build,
  30.     __DELTA(TFilename) );
  31.  
  32. const char * const _NEAR TFilename::name = "TFilename";
  33.  
  34. void TFilename::handleEvent(TEvent& event)
  35. {
  36.     if(event.what == evKeyDown)
  37.         switch (event.keyDown.keyCode)
  38.         {
  39.             case kbTab:
  40.             case kbShiftTab:
  41.             case kbBack:
  42.             case kbEnter:
  43.             case kbEsc:
  44.                 break;      // Let TInputLine have these.
  45.  
  46.             default:
  47.                 char key;
  48.                 key = event.keyDown.charScan.charCode =
  49.                     toupper(event.keyDown.charScan.charCode);
  50.  
  51.                 if(key)
  52.                 {
  53.                     // Filter out invalid characters.
  54.                     if(key < 33 || key > 126 || strchr("\'\"`,+/|=[]<>", key))
  55.                         clearEvent(event);
  56.                 }
  57.                 break;
  58.         }
  59.  
  60.     TInputLine::handleEvent(event);
  61. }
  62.  
  63. TStreamable *TFilename::build()
  64. {
  65.     return new TFilename( streamableInit );
  66. }
  67.  
  68. TFilename::TFilename( StreamableInit ) : TInputLine( streamableInit )
  69. {
  70. }
  71.