summaryrefslogtreecommitdiff
path: root/tvision/classes/tfilterv.cc
blob: 68b746a107c7a034b81875a092ef74d91b0eb23f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
/*
 *      Turbo Vision - Version 2.0
 *
 *      Copyright (c) 1994 by Borland International
 *      All Rights Reserved.
 *

Modified by Robert H”hne to be used for RHIDE.
Modified by Salvador E. Tropea (to be compatible with TV 2.0)

 *
 *
 */
#define Uses_string
#define Uses_limits
#define Uses_stdio
#define Uses_ipstream
#define Uses_opstream
#define Uses_TFilterValidator
#define Uses_MsgBox
#include <tv.h>

TFilterValidator::TFilterValidator() :
  TValidator(),
  validChars(NULL)
{
}

TFilterValidator::TFilterValidator(const char * chars) :
  TValidator()
{
  validChars = newStr(chars);
}

TFilterValidator::~TFilterValidator()
{
  delete[] validChars;
}

Boolean TFilterValidator::isValid(const char *S)
{
  int i=0;
  while (S[i])
  {
    if (!strchr(validChars,S[i])) return False;
    i++;
  }
  return True;
}

Boolean TFilterValidator::isValidInput(char *S,Boolean)
{
  return TFilterValidator::isValid(S);
}

void TFilterValidator::error()
{
  messageBox(__("Invalid character in input"),mfError | mfOKButton);
}

#if !defined( NO_STREAM )
TFilterValidator::TFilterValidator(StreamableInit) :
  TValidator(streamableInit)
{
}

TStreamable * TFilterValidator::build()
{
  return (TStreamable *) new TFilterValidator(streamableInit);
}

void TFilterValidator::write(opstream & os)
{
  TValidator::write(os);
  os.writeString(validChars);
}

void * TFilterValidator::read(ipstream & is)
{
  TValidator::read(is);
  validChars = is.readString();
  return this;
}
#endif // NO_STREAM