summaryrefslogtreecommitdiff
path: root/include/sway/tree/layout.h
diff options
context:
space:
mode:
authorTony Crisci <[email protected]>2018-03-29 12:15:31 -0400
committerTony Crisci <[email protected]>2018-03-29 14:21:42 -0400
commit874f009866abaf8ca43ed4cd88a69d22a3fbfc5a (patch)
tree05dff1efd73807aded434527ed1774250314116e /include/sway/tree/layout.h
parentb1984133a9addcdae70fb4ac58af2f387fcc3707 (diff)
move tree includes to their own directory
Diffstat (limited to 'include/sway/tree/layout.h')
-rw-r--r--include/sway/tree/layout.h51
1 files changed, 51 insertions, 0 deletions
diff --git a/include/sway/tree/layout.h b/include/sway/tree/layout.h
new file mode 100644
index 00000000..39b7fb24
--- /dev/null
+++ b/include/sway/tree/layout.h
@@ -0,0 +1,51 @@
+#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 init_layout(void);
+
+void add_child(struct sway_container *parent, struct sway_container *child);
+
+swayc_t *add_sibling(swayc_t *parent, swayc_t *child);
+
+struct sway_container *remove_child(struct sway_container *child);
+
+enum swayc_layouts default_layout(struct sway_container *output);
+
+void sort_workspaces(struct sway_container *output);
+
+void arrange_windows(struct sway_container *container,
+ double width, double height);
+
+swayc_t *get_swayc_in_direction(swayc_t *container,
+ struct sway_seat *seat, enum movement_direction dir);
+
+#endif