aboutsummaryrefslogtreecommitdiffstats
path: root/include/sway/criteria.h
diff options
context:
space:
mode:
authorLibravatar Drew DeVault <sir@cmpwn.com>2016-09-01 08:18:37 -0400
committerLibravatar Drew DeVault <sir@cmpwn.com>2016-09-01 08:18:37 -0400
commit416417a54c5875abcdc257b6ad10ff086c35eefc (patch)
tree00f20884a05d05e620a4a24bba8595557cd41405 /include/sway/criteria.h
parentMerge pull request #876 from zandrmartin/patch-1 (diff)
downloadsway-416417a54c5875abcdc257b6ad10ff086c35eefc.tar.gz
sway-416417a54c5875abcdc257b6ad10ff086c35eefc.tar.zst
sway-416417a54c5875abcdc257b6ad10ff086c35eefc.zip
Reorganize includes
Diffstat (limited to 'include/sway/criteria.h')
-rw-r--r--include/sway/criteria.h36
1 files changed, 36 insertions, 0 deletions
diff --git a/include/sway/criteria.h b/include/sway/criteria.h
new file mode 100644
index 00000000..5c71d172
--- /dev/null
+++ b/include/sway/criteria.h
@@ -0,0 +1,36 @@
1#ifndef _SWAY_CRITERIA_H
2#define _SWAY_CRITERIA_H
3
4#include "container.h"
5#include "list.h"
6
7/**
8 * Maps criteria (as a list of criteria tokens) to a command list.
9 *
10 * A list of tokens together represent a single criteria string (e.g.
11 * '[class="abc" title="xyz"]' becomes two criteria tokens).
12 *
13 * for_window: Views matching all criteria will have the bound command list
14 * executed on them.
15 *
16 * Set via `for_window <criteria> <cmd list>`.
17 */
18struct criteria {
19 list_t *tokens; // struct crit_token, contains compiled regex.
20 char *crit_raw; // entire criteria string (for logging)
21
22 char *cmdlist;
23};
24
25int criteria_cmp(const void *item, const void *data);
26void free_criteria(struct criteria *crit);
27
28// Pouplate list with crit_tokens extracted from criteria string, returns error
29// string or NULL if successful.
30char *extract_crit_tokens(list_t *tokens, const char *criteria);
31
32// Returns list of criteria that match given container. These criteria have
33// been set with `for_window` commands and have an associated cmdlist.
34list_t *criteria_for(swayc_t *cont);
35
36#endif