summaryrefslogtreecommitdiffstats
path: root/include/container.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/container.h')
-rw-r--r--include/container.h21
1 files changed, 19 insertions, 2 deletions
diff --git a/include/container.h b/include/container.h
index 26da851e..d1905720 100644
--- a/include/container.h
+++ b/include/container.h
@@ -2,9 +2,12 @@
2#define _SWAY_CONTAINER_H 2#define _SWAY_CONTAINER_H
3#include <sys/types.h> 3#include <sys/types.h>
4#include <wlc/wlc.h> 4#include <wlc/wlc.h>
5
6#include "list.h"
7
5typedef struct sway_container swayc_t; 8typedef struct sway_container swayc_t;
6 9
7#include "layout.h" 10extern swayc_t root_container;
8 11
9/** 12/**
10 * Different kinds of containers. 13 * Different kinds of containers.
@@ -56,6 +59,7 @@ struct sway_container {
56 59
57 enum swayc_types type; 60 enum swayc_types type;
58 enum swayc_layouts layout; 61 enum swayc_layouts layout;
62 enum swayc_layouts prev_layout;
59 63
60 /** 64 /**
61 * Width and height of this container, without borders or gaps. 65 * Width and height of this container, without borders or gaps.
@@ -75,6 +79,12 @@ struct sway_container {
75 double x, y; 79 double x, y;
76 80
77 /** 81 /**
82 * Cached geometry used to store view/container geometry when switching
83 * between tabbed/stacked and horizontal/vertical layouts.
84 */
85 struct wlc_geometry cached_geometry;
86
87 /**
78 * False if this view is invisible. It could be in the scratchpad or on a 88 * False if this view is invisible. It could be in the scratchpad or on a
79 * workspace that is not shown. 89 * workspace that is not shown.
80 */ 90 */
@@ -119,7 +129,7 @@ struct sway_container {
119 * If this container is a view, this may be set to the window's decoration 129 * If this container is a view, this may be set to the window's decoration
120 * buffer (or NULL). 130 * buffer (or NULL).
121 */ 131 */
122 unsigned char *border; 132 struct border *border;
123 enum swayc_border_types border_type; 133 enum swayc_border_types border_type;
124 struct wlc_geometry border_geometry; 134 struct wlc_geometry border_geometry;
125 struct wlc_geometry title_bar_geometry; 135 struct wlc_geometry title_bar_geometry;
@@ -240,6 +250,13 @@ bool swayc_is_parent_of(swayc_t *parent, swayc_t *child);
240 * Returns true if the child is a desecendant of the parent. 250 * Returns true if the child is a desecendant of the parent.
241 */ 251 */
242bool swayc_is_child_of(swayc_t *child, swayc_t *parent); 252bool swayc_is_child_of(swayc_t *child, swayc_t *parent);
253
254/**
255 * Returns the top most tabbed or stacked parent container. Returns NULL if
256 * view is not in a tabbed/stacked layout.
257 */
258swayc_t *swayc_tabbed_stacked_parent(swayc_t *view);
259
243/** 260/**
244 * Returns the gap (padding) of the container. 261 * Returns the gap (padding) of the container.
245 * 262 *