]> git.sur5r.net Git - i3/i3/blobdiff - include/match.h
Merge branch 'release-4.16.1'
[i3/i3] / include / match.h
index 4f0e9bdc291f3f17df7d9f80dec5dbbf8f355a0f..043c3a8f114e77401a5a5df2f8792b8780e4f150 100644 (file)
@@ -1,7 +1,21 @@
-#ifndef _MATCH_H
-#define _MATCH_H
-
 /*
+ * vim:ts=4:sw=4:expandtab
+ *
+ * i3 - an improved dynamic tiling window manager
+ * © 2009 Michael Stapelberg and contributors (see also: LICENSE)
+ *
+ * A "match" is a data structure which acts like a mask or expression to match
+ * certain windows or not. For example, when using commands, you can specify a
+ * command like this: [title="*Firefox*"] kill. The title member of the match
+ * data structure will then be filled and i3 will check each window using
+ * match_matches_window() to find the windows affected by this command.
+ *
+ */
+#pragma once
+
+#include <config.h>
+
+/**
  * Initializes the Match data structure. This function is necessary because the
  * members representing boolean values (like dock) need to be initialized with
  * -1 instead of 0.
@@ -16,6 +30,12 @@ void match_init(Match *match);
  */
 bool match_is_empty(Match *match);
 
+/**
+ * Copies the data of a match from src to dest.
+ *
+ */
+void match_copy(Match *dest, Match *src);
+
 /**
  * Check if a match data structure matches the given window.
  *
@@ -23,9 +43,13 @@ bool match_is_empty(Match *match);
 bool match_matches_window(Match *match, i3Window *window);
 
 /**
- * Returns the first match in 'assignments' that matches the given window.
+ * Frees the given match. It must not be used afterwards!
  *
  */
-Match *match_by_assignment(i3Window *window);
+void match_free(Match *match);
 
-#endif
+/**
+ * Interprets a ctype=cvalue pair and adds it to the given match specification.
+ *
+ */
+void match_parse_property(Match *match, const char *ctype, const char *cvalue);