Salome HOME
Initial version
[modules/gui.git] / src / Qtx / QtxStdOperations.h
1 // File:      QtxStdOperations.h
2 // Author:    Alexander SOLOVYOV
3
4 #ifndef __QTX_STD_OPERATIONS_HEADER__
5 #define __QTX_STD_OPERATIONS_HEADER__
6
7 #include "Qtx.h"
8 #include "QtxOperations.h"
9
10 //================================================================
11 // Class    : 
12 // Purpose  : 
13 //================================================================
14 class QTX_EXPORT QtxStdOperations : public QtxOperations
15 {
16 public:
17     QtxStdOperations();
18     virtual ~QtxStdOperations();
19
20     virtual void opersList( QStringList& ) const;
21     virtual void bracketsList( QStringList&, bool open ) const;
22
23     virtual QtxParser::Error isValid( const QString&,
24                                       const QVariant::Type,
25                                       const QVariant::Type ) const;
26 protected: 
27     typedef QValueList< QVariant::Type > ListOfTypes;
28
29     void addOperations( const QStringList& );
30     void addTypes( const ListOfTypes& );
31
32 private:
33     QStringList myOpers;
34     ListOfTypes myTypes;
35 };
36
37 //================================================================
38 // Class    : 
39 // Purpose  : 
40 //================================================================
41 class QTX_EXPORT QtxArithmetics : public QtxStdOperations
42 {
43 public:
44     QtxArithmetics();
45     virtual ~QtxArithmetics();
46
47     virtual bool  createValue( const QString&, QtxValue& ) const;
48     virtual int   prior( const QString&, bool isBin ) const;
49     virtual QtxParser::Error calculate( const QString&, QtxValue&, QtxValue& ) const;
50 };
51
52 //================================================================
53 // Class    : 
54 // Purpose  : 
55 //================================================================
56 class QTX_EXPORT QtxLogic : public QtxStdOperations
57 {
58 public:
59     QtxLogic();
60     virtual ~QtxLogic();
61
62     virtual bool  createValue( const QString&, QtxValue& ) const;
63     virtual int   prior( const QString&, bool isBin ) const;
64     virtual QtxParser::Error calculate( const QString&, QtxValue&, QtxValue& ) const;
65 };
66
67 //================================================================
68 // Class    : 
69 // Purpose  : 
70 //================================================================
71 class QTX_EXPORT QtxFunctions : public QtxStdOperations
72 {
73 public:
74     QtxFunctions();
75     virtual ~QtxFunctions();
76
77     virtual bool  createValue( const QString&, QtxValue& ) const;
78     virtual int   prior( const QString&, bool isBin ) const;
79     virtual QtxParser::Error calculate( const QString&, QtxValue&, QtxValue& ) const;
80 };
81
82 //================================================================
83 // Class    : 
84 // Purpose  : 
85 //================================================================
86 class QTX_EXPORT QtxStrings : public QtxStdOperations
87 {
88 public:
89     QtxStrings();
90     virtual ~QtxStrings();
91
92     virtual bool  createValue( const QString&, QtxValue& ) const;
93     virtual int   prior( const QString&, bool isBin ) const;
94     virtual QtxParser::Error calculate( const QString&, QtxValue&, QtxValue& ) const;
95 };
96
97 //================================================================
98 // Class    : 
99 // Purpose  : 
100 //================================================================
101 class QTX_EXPORT QtxSets : public QtxStdOperations
102 {
103 public:
104     typedef QValueList< QtxValue > ValueSet;
105
106 public:
107     QtxSets();
108     virtual ~QtxSets();
109
110     virtual void bracketsList( QStringList&, bool open ) const;
111     virtual bool createValue( const QString&, QtxValue& ) const;
112     virtual int  prior( const QString&, bool isBin ) const;
113     virtual QtxParser::Error isValid( const QString&,
114                                       const QVariant::Type,
115                                       const QVariant::Type ) const;
116     virtual QtxParser::Error calculate( const QString&, QtxValue&, QtxValue& ) const;
117
118     static void add( ValueSet&, const QtxValue& );
119     static void add( ValueSet&, const ValueSet& );
120     static void remove( ValueSet&, const QtxValue& );
121     static void remove( ValueSet&, const ValueSet& );
122 };
123
124
125 #endif