swayfx/sway/layout.h

60 lines
1.2 KiB
C
Raw Normal View History

#ifndef _SWAY_LAYOUT_H
#define _SWAY_LAYOUT_H
#include <wlc/wlc.h>
#include "list.h"
struct sway_container {
2015-08-09 07:44:51 +10:00
wlc_handle handle;
enum {
C_ROOT,
C_OUTPUT,
C_WORKSPACE,
C_CONTAINER,
C_VIEW
} type;
enum {
L_NONE,
L_HORIZ,
L_VERT,
L_STACKED,
L_TABBED,
L_FLOATING
} layout;
// Not including borders or margins
int width, height;
2015-08-09 08:17:08 +10:00
int x, y;
int weight;
2015-08-09 07:44:51 +10:00
char *name;
2015-08-06 22:40:16 +10:00
list_t *children;
2015-08-09 07:44:51 +10:00
struct sway_container *parent;
2015-08-09 07:44:51 +10:00
struct sway_container *focused;
};
2015-08-09 07:44:51 +10:00
typedef struct sway_container swayc_t;
extern swayc_t root_container;
2015-08-06 22:40:16 +10:00
void init_layout();
2015-08-09 08:17:08 +10:00
void add_child(swayc_t *parent, swayc_t *child);
2015-08-06 22:40:16 +10:00
void add_output(wlc_handle output);
void destroy_output(wlc_handle output);
2015-08-09 07:44:51 +10:00
void destroy_view(swayc_t *view);
void add_view(wlc_handle view);
2015-08-09 07:44:51 +10:00
void focus_view(swayc_t *view);
2015-08-09 08:17:08 +10:00
void arrange_windows(swayc_t *container, int width, int height);
2015-08-09 23:23:10 +10:00
swayc_t *find_container(swayc_t *container, bool (*test)(swayc_t *view, void *data), void *data);
swayc_t *get_focused_container(swayc_t *parent);
2015-08-09 07:44:51 +10:00
swayc_t *get_swayc_for_handle(wlc_handle handle, swayc_t *parent);
#endif