aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/sway/output.h12
-rw-r--r--include/sway/tree/container.h11
-rw-r--r--include/sway/tree/root.h15
-rw-r--r--include/sway/tree/workspace.h6
4 files changed, 35 insertions, 9 deletions
diff --git a/include/sway/output.h b/include/sway/output.h
index 8bdd1919..d0d034b3 100644
--- a/include/sway/output.h
+++ b/include/sway/output.h
@@ -95,4 +95,16 @@ void output_drag_icons_for_each_surface(struct sway_output *output,
95 struct wl_list *drag_icons, sway_surface_iterator_func_t iterator, 95 struct wl_list *drag_icons, sway_surface_iterator_func_t iterator,
96 void *user_data); 96 void *user_data);
97 97
98void output_for_each_workspace(struct sway_container *output,
99 void (*f)(struct sway_container *con, void *data), void *data);
100
101void output_for_each_container(struct sway_container *output,
102 void (*f)(struct sway_container *con, void *data), void *data);
103
104struct sway_container *output_find_workspace(struct sway_container *output,
105 bool (*test)(struct sway_container *con, void *data), void *data);
106
107struct sway_container *output_find_container(struct sway_container *output,
108 bool (*test)(struct sway_container *con, void *data), void *data);
109
98#endif 110#endif
diff --git a/include/sway/tree/container.h b/include/sway/tree/container.h
index d866ec03..c8410801 100644
--- a/include/sway/tree/container.h
+++ b/include/sway/tree/container.h
@@ -214,15 +214,11 @@ struct sway_container *container_destroy(struct sway_container *container);
214 214
215struct sway_container *container_close(struct sway_container *container); 215struct sway_container *container_close(struct sway_container *container);
216 216
217void container_descendants(struct sway_container *root,
218 enum sway_container_type type,
219 void (*func)(struct sway_container *item, void *data), void *data);
220
221/** 217/**
222 * Search a container's descendants a container based on test criteria. Returns 218 * Search a container's descendants a container based on test criteria. Returns
223 * the first container that passes the test. 219 * the first container that passes the test.
224 */ 220 */
225struct sway_container *container_find(struct sway_container *container, 221struct sway_container *container_find_child(struct sway_container *container,
226 bool (*test)(struct sway_container *view, void *data), void *data); 222 bool (*test)(struct sway_container *view, void *data), void *data);
227 223
228/** 224/**
@@ -244,10 +240,7 @@ struct sway_container *tiling_container_at(
244 struct sway_container *con, double lx, double ly, 240 struct sway_container *con, double lx, double ly,
245 struct wlr_surface **surface, double *sx, double *sy); 241 struct wlr_surface **surface, double *sx, double *sy);
246 242
247/** 243void container_for_each_child(struct sway_container *container,
248 * Apply the function for each child of the container depth first.
249 */
250void container_for_each_descendant(struct sway_container *container,
251 void (*f)(struct sway_container *container, void *data), void *data); 244 void (*f)(struct sway_container *container, void *data), void *data);
252 245
253/** 246/**
diff --git a/include/sway/tree/root.h b/include/sway/tree/root.h
index edb7c817..d1f04a96 100644
--- a/include/sway/tree/root.h
+++ b/include/sway/tree/root.h
@@ -58,4 +58,19 @@ struct sway_container *root_workspace_for_pid(pid_t pid);
58 58
59void root_record_workspace_pid(pid_t pid); 59void root_record_workspace_pid(pid_t pid);
60 60
61void root_for_each_workspace(void (*f)(struct sway_container *con, void *data),
62 void *data);
63
64void root_for_each_container(void (*f)(struct sway_container *con, void *data),
65 void *data);
66
67struct sway_container *root_find_output(
68 bool (*test)(struct sway_container *con, void *data), void *data);
69
70struct sway_container *root_find_workspace(
71 bool (*test)(struct sway_container *con, void *data), void *data);
72
73struct sway_container *root_find_container(
74 bool (*test)(struct sway_container *con, void *data), void *data);
75
61#endif 76#endif
diff --git a/include/sway/tree/workspace.h b/include/sway/tree/workspace.h
index 5b43ae87..c9dbb538 100644
--- a/include/sway/tree/workspace.h
+++ b/include/sway/tree/workspace.h
@@ -50,6 +50,12 @@ struct sway_container *workspace_output_get_highest_available(
50 50
51void workspace_detect_urgent(struct sway_container *workspace); 51void workspace_detect_urgent(struct sway_container *workspace);
52 52
53void workspace_for_each_container(struct sway_container *ws,
54 void (*f)(struct sway_container *con, void *data), void *data);
55
56struct sway_container *workspace_find_container(struct sway_container *ws,
57 bool (*test)(struct sway_container *con, void *data), void *data);
58
53/** 59/**
54 * Wrap the workspace's tiling children in a new container. 60 * Wrap the workspace's tiling children in a new container.
55 * The new container will be the only direct tiling child of the workspace. 61 * The new container will be the only direct tiling child of the workspace.