summaryrefslogtreecommitdiff
path: root/src/privatematch.h
diff options
context:
space:
mode:
authorDennis Kasprzyk <onestone@opencompositing.org>2008-08-14 13:56:14 +0200
committerDennis kasprzyk <onestone@opencompositing.org>2008-08-14 13:56:14 +0200
commitfa7e9361989282eddfc3012ffc392fadebf2b3c5 (patch)
tree9f9d6926eae7c793e4b9e878da65406e872b754a /src/privatematch.h
parentc9b8f6dff3c7457f5e05802335327200fa169110 (diff)
downloadzcomp-fa7e9361989282eddfc3012ffc392fadebf2b3c5.tar.gz
zcomp-fa7e9361989282eddfc3012ffc392fadebf2b3c5.tar.bz2
Implementation of CompMatch as C++ class.
Diffstat (limited to 'src/privatematch.h')
-rw-r--r--src/privatematch.h57
1 files changed, 57 insertions, 0 deletions
diff --git a/src/privatematch.h b/src/privatematch.h
new file mode 100644
index 0000000..764bec4
--- /dev/null
+++ b/src/privatematch.h
@@ -0,0 +1,57 @@
+#ifndef _PRIVATEMATCH_H
+#define _PRIVATEMATCH_H
+
+#include <compmatch.h>
+#include <boost/shared_ptr.hpp>
+
+#define MATCH_OP_AND_MASK (1 << 0)
+#define MATCH_OP_NOT_MASK (1 << 1)
+
+class MatchOp {
+ public:
+ typedef enum {
+ TypeNone,
+ TypeGroup,
+ TypeExp
+ } Type;
+
+ typedef std::list<MatchOp> List;
+
+ MatchOp ();
+ virtual ~MatchOp ();
+
+ virtual Type type () { return TypeNone; };
+
+ unsigned int flags;
+};
+
+class MatchExpOp : public MatchOp {
+ public:
+ MatchExpOp ();
+
+ MatchOp::Type type () { return MatchOp::TypeExp; };
+
+ CompString value;
+
+ boost::shared_ptr<CompMatch::Expression> e;
+};
+
+class MatchGroupOp : public MatchOp {
+ public:
+ MatchGroupOp ();
+
+ MatchOp::Type type () { return MatchOp::TypeGroup; };
+
+ MatchOp::List op;
+};
+
+class PrivateMatch {
+ public:
+ PrivateMatch ();
+
+ public:
+ MatchGroupOp op;
+ CompDisplay *display;
+};
+
+#endif