summaryrefslogtreecommitdiffstats
path: root/kturtle/src/value.h
blob: 8c61966ea8e9d839bac63ba5e24a03b3031d04b6 (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
/*
    Copyright (C) 2003 by Walter Schreppers 
    Copyright (C) 2004 by Cies Breijs
 
    This program is free software; you can redistribute it and/or
    modify it under the terms of version 2 of the GNU General Public
    License as published by the Free Software Foundation.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 */
 

#ifndef _VALUE_H_
#define _VALUE_H_

#include <qstring.h>
#include <qtextstream.h>


enum valueType
{
	emptyValue,
	boolValue,
	numberValue,
	stringValue
};

class Value
{
	public:
		Value();
		Value(const Value&);
		~Value() {}
	
	
		void resetValue() { init(); }
		
		int Type() const;
		void setType(int);
	
		void setBool(bool);
		bool Bool() const;
	
		double Number() const;
		void setNumber(double);
		bool setNumber(const QString&);
	
		QString String() const;
		void setString(double);
		void setString(const QString&);
	
		Value& operator=(const Value&);
		Value& operator=(const QString&);
		Value& operator=(double);
	
		Value& operator+(const Value&);
		Value& operator-(const Value&);
		Value& operator*(const Value&);
		Value& operator/(const Value&);
	
		bool operator==(const Value&) const;
		bool operator!=(const Value&) const;
		bool operator< (const Value&) const;
		bool operator<=(const Value&) const;
		bool operator> (const Value&) const;
		bool operator>=(const Value&) const;
		
		
	private:
		void init();
		
		int      type;
		bool     m_bool;
		double   m_double;
		QString  m_string;
};

#endif // _VALUE_H_