summaryrefslogtreecommitdiff
path: root/include/compmatch.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/compmatch.h')
-rw-r--r--include/compmatch.h52
1 files changed, 52 insertions, 0 deletions
diff --git a/include/compmatch.h b/include/compmatch.h
new file mode 100644
index 0000000..8582b2e
--- /dev/null
+++ b/include/compmatch.h
@@ -0,0 +1,52 @@
+#ifndef _COMPMATCH_H
+#define _COMPMATCH_H
+
+#include <compiz-core.h>
+
+class PrivateMatch;
+class CompWindow;
+class CompDisplay;
+
+class CompMatch {
+ public:
+
+ class Expression {
+ public:
+ virtual bool evaluate (CompWindow *window) = 0;
+ };
+
+ public:
+ CompMatch ();
+ CompMatch (const CompString);
+ CompMatch (const CompMatch &);
+ ~CompMatch ();
+
+ void update (CompDisplay *display);
+ bool evaluate (CompWindow *window);
+
+ CompString toString ();
+
+ CompDisplay *display ();
+
+ CompMatch & operator= (const CompMatch &);
+ CompMatch & operator&= (const CompMatch &);
+ CompMatch & operator|= (const CompMatch &);
+
+ const CompMatch & operator& (const CompMatch &);
+ const CompMatch & operator| (const CompMatch &);
+ const CompMatch & operator! ();
+
+ CompMatch & operator= (const CompString &);
+ CompMatch & operator&= (const CompString &);
+ CompMatch & operator|= (const CompString &);
+
+ const CompMatch & operator& (const CompString &);
+ const CompMatch & operator| (const CompString &);
+
+ bool operator== (const CompMatch &);
+
+ private:
+ PrivateMatch *priv;
+};
+
+#endif \ No newline at end of file