swayfx/include/sway/layout.h

44 lines
1 KiB
C
Raw Normal View History

2017-11-20 09:04:28 +11:00
#ifndef _SWAY_LAYOUT_H
#define _SWAY_LAYOUT_H
2017-12-13 06:02:01 +11:00
#include <wlr/types/wlr_output_layout.h>
2018-02-05 05:39:10 +11:00
#include "sway/container.h"
2017-12-13 06:02:01 +11:00
2018-02-15 06:30:27 +11:00
enum movement_direction {
MOVE_LEFT,
MOVE_RIGHT,
MOVE_UP,
MOVE_DOWN,
MOVE_PARENT,
MOVE_CHILD,
MOVE_NEXT,
MOVE_PREV,
MOVE_FIRST
};
2017-11-20 09:04:28 +11:00
struct sway_container;
2017-12-13 06:02:01 +11:00
struct sway_root {
struct wlr_output_layout *output_layout;
struct wl_listener output_layout_change;
2018-01-15 05:19:21 +11:00
struct wl_list unmanaged_views; // sway_view::unmanaged_view_link
2018-02-05 05:39:10 +11:00
struct {
struct wl_signal new_container;
} events;
2017-12-13 06:02:01 +11:00
};
2017-11-20 09:04:28 +11:00
void init_layout(void);
void add_child(struct sway_container *parent, struct sway_container *child);
2018-02-05 05:39:10 +11:00
swayc_t *add_sibling(swayc_t *parent, swayc_t *child);
2017-11-26 08:30:15 +11:00
struct sway_container *remove_child(struct sway_container *child);
2017-11-23 12:39:27 +11:00
enum swayc_layouts default_layout(struct sway_container *output);
void sort_workspaces(struct sway_container *output);
2017-11-26 02:59:49 +11:00
void arrange_windows(struct sway_container *container, double width, double height);
2018-02-15 06:30:27 +11:00
swayc_t *get_swayc_in_direction(swayc_t *container,
struct sway_seat *seat, enum movement_direction dir);
2017-11-20 09:04:28 +11:00
#endif