* include/data.h: This file defines all data structures used by i3
*
*/
-#ifndef I3_DATA_H
-#define I3_DATA_H
+#pragma once
#define SN_API_NOT_YET_FROZEN 1
#include <libsn/sn-launcher.h>
*
*/
struct Binding {
+ /* The type of input this binding is for. (Mouse bindings are not yet
+ * implemented. All bindings are currently assumed to be keyboard bindings.) */
+ enum {
+ /* Created with "bindsym", "bindcode", and "bind" */
+ B_KEYBOARD = 0,
+ /* Created with "bindmouse" (not yet implemented). */
+ B_MOUSE = 1,
+ } input_type;
+
/** If true, the binding should be executed upon a KeyRelease event, not a
* KeyPress (the default). */
enum {
struct regex *class;
struct regex *instance;
struct regex *mark;
- struct regex *role;
+ struct regex *window_role;
enum {
U_DONTCHECK = -1,
U_LATEST = 0,
TAILQ_ENTRY(Assignment) assignments;
};
+/** Fullscreen modes. Used by Con.fullscreen_mode. */
+typedef enum { CF_NONE = 0, CF_OUTPUT = 1, CF_GLOBAL = 2 } fullscreen_mode_t;
+
/**
* A 'Con' represents everything from the X11 root window down to a single X11 window.
*
double percent;
- /* proportional width/height, calculated from WM_NORMAL_HINTS, used to
- * apply an aspect ratio to windows (think of MPlayer) */
- int proportional_width;
- int proportional_height;
+ /* aspect ratio from WM_NORMAL_HINTS (MPlayer uses this for example) */
+ double aspect_ratio;
/* the wanted size of the window, used in combination with size
* increments (see below). */
int base_width;
TAILQ_HEAD(swallow_head, Match) swallow_head;
- enum { CF_NONE = 0, CF_OUTPUT = 1, CF_GLOBAL = 2 } fullscreen_mode;
+ fullscreen_mode_t fullscreen_mode;
/* layout is the layout of this container: one of split[v|h], stacked or
* tabbed. Special containers in the tree (above workspaces) have special
* layouts like dockarea or output.
/* Depth of the container window */
uint16_t depth;
};
-
-#endif