summaryrefslogtreecommitdiff
path: root/include/sway/tree/layout.h
diff options
context:
space:
mode:
authorDrew DeVault <[email protected]>2018-03-30 00:00:23 -0400
committerGitHub <[email protected]>2018-03-30 00:00:23 -0400
commit7162b9bea4d66d61376ad3605e23e2d83bb95201 (patch)
tree6f7a3121f15503a923c1ce53bf2bee368c6149a6 /include/sway/tree/layout.h
parent472e81f35d689d67cda241acafda91c688d61046 (diff)
parent8f490d7d2dbadfe85dcf3dcd972471e86671442a (diff)
Merge pull request #1654 from acrisci/refactor-2-electric-boogaloo
Revert "Merge pull request #1653 from swaywm/revert-1647-refactor-tree"
Diffstat (limited to 'include/sway/tree/layout.h')
-rw-r--r--include/sway/tree/layout.h52
1 files changed, 52 insertions, 0 deletions
diff --git a/include/sway/tree/layout.h b/include/sway/tree/layout.h
new file mode 100644
index 00000000..ad52bdb0
--- /dev/null
+++ b/include/sway/tree/layout.h
@@ -0,0 +1,52 @@
+#ifndef _SWAY_LAYOUT_H
+#define _SWAY_LAYOUT_H
+
+#include <wlr/types/wlr_output_layout.h>
+#include "sway/tree/container.h"
+
+enum movement_direction {
+ MOVE_LEFT,
+ MOVE_RIGHT,
+ MOVE_UP,
+ MOVE_DOWN,
+ MOVE_PARENT,
+ MOVE_CHILD,
+ MOVE_NEXT,
+ MOVE_PREV,
+ MOVE_FIRST
+};
+
+struct sway_container;
+
+struct sway_root {
+ struct wlr_output_layout *output_layout;
+
+ struct wl_listener output_layout_change;
+
+ struct wl_list unmanaged_views; // sway_view::unmanaged_view_link
+
+ struct {
+ struct wl_signal new_container;
+ } events;
+};
+
+void layout_init(void);
+
+void container_add_child(struct sway_container *parent, struct sway_container *child);
+
+struct sway_container *container_add_sibling(struct sway_container *parent,
+ struct sway_container *child);
+
+struct sway_container *container_remove_child(struct sway_container *child);
+
+enum sway_container_layout container_get_default_layout(struct sway_container *output);
+
+void container_sort_workspaces(struct sway_container *output);
+
+void arrange_windows(struct sway_container *container,
+ double width, double height);
+
+struct sway_container *container_get_in_direction(struct sway_container
+ *container, struct sway_seat *seat, enum movement_direction dir);
+
+#endif