home *** CD-ROM | disk | FTP | other *** search
/ POINT Software Programming / PPROG1.ISO / c / actlib11 / tvtools / incalc.cpp < prev    next >
C/C++ Source or Header  |  1993-01-19  |  2KB  |  66 lines

  1. /*  Copyright (C) 1993   Marc Stern  (internet: stern@mble.philips.be)  */
  2.  
  3. #define Uses_TStreamable
  4. #define Uses_MsgBox
  5. #define Uses_TInputCalcul
  6. #include <math.h>
  7. #include "calc.h"
  8. #include "tvtools.h"
  9. __link( RInputLine )
  10.  
  11.  
  12. #include <string.h>
  13. #include <stdio.h>
  14. #include <values.h>
  15. #include <stdlib.h>
  16. #include <strstream.h>
  17.  
  18.  
  19. // TInputCalcul
  20.  
  21. const char *const TInputCalcul::name = "TInputCalcul";
  22.  
  23. TStreamable *TInputCalcul::build()
  24. {
  25.   return new TInputCalcul( streamableInit );
  26. }
  27.  
  28. TInputCalcul::TInputCalcul( const TRect& bounds, int aMaxLen )
  29.              :TInputRegExp( bounds, aMaxLen, "-+*/%<>=.0-9" )
  30. {
  31. }
  32.  
  33. TInputCalcul::TInputCalcul(  int x, int y, int aMaxLen )
  34.              :TInputRegExp( x, y, aMaxLen, "-+*/%<>=.0-9" )
  35. {
  36. }
  37.  
  38. TStreamableClass RInputCalcul( TInputCalcul::name,
  39.                                TInputCalcul::build,
  40.                                __DELTA(TInputCalcul)
  41.                              );
  42.  
  43.  
  44. Boolean TInputCalcul::valid( ushort command )
  45. {
  46.   switch( command )
  47.         {
  48.           case cmReleasedFocus: return True;
  49.  
  50.           case cmQuit :
  51.           case cmClose:
  52.           case cmOK   : if ( calc(data) >= HUGE_VAL )
  53.                            {
  54.                              select();
  55.                              messageBox( "\03Cannot calculate this.",
  56.                                          mfError | mfOKButton
  57.                                        );
  58.                              return False;
  59.                            }
  60.                         break;
  61.         }
  62.  
  63.   return TInputRegExp::valid(command);
  64. }
  65.  
  66.