~ctwm/ctwm/trunk

614.1.1 by Maxime Soulé
First step of xrandr integration
1
/*
2
 * Copyright notice...
3
 */
4
5
#ifndef _CTWM_R_STRUCTS_H
6
#define _CTWM_R_STRUCTS_H
7
614.1.32 by Matthew Fuller
Doc up the R* structs.
8
9
/**
10
 * A particular extent of space.
11
 *
12
 * This defines an area on the abstract display.  It commonly represents
13
 * a monitor when defining our screen layout, and is also used to
14
 * represent a window when we're manipulating it on our screen space.
15
 */
614.2.3 by Matthew Fuller
Swap to standard location for the typedefs.
16
struct RArea {
614.1.32 by Matthew Fuller
Doc up the R* structs.
17
	int x; ///< X position
18
	int y; ///< Y position
19
	int width;  ///< X dimension
20
	int height; ///< Y dimension
614.2.3 by Matthew Fuller
Swap to standard location for the typedefs.
21
};
614.1.1 by Maxime Soulé
First step of xrandr integration
22
614.1.32 by Matthew Fuller
Doc up the R* structs.
23
24
/**
25
 * A set of RArea's.
26
 *
27
 * This is generally used to define a contiguous region formed of various
28
 * stitched-together subareas.
29
 */
614.2.3 by Matthew Fuller
Swap to standard location for the typedefs.
30
struct RAreaList {
614.1.32 by Matthew Fuller
Doc up the R* structs.
31
	int len; ///< How many we're using
32
	int cap; ///< How many we have space for
33
	RArea *areas; ///< Array of RArea members of this list
614.2.3 by Matthew Fuller
Swap to standard location for the typedefs.
34
};
35
36
614.1.32 by Matthew Fuller
Doc up the R* structs.
37
/**
38
 * The layout of our display.
39
 *
40
 * This may encompass multiple monitors, of differing sizes.  It's
41
 * generally only used by a few vars at startup describing the layout,
42
 * which gets referred to when we need to find various borders of our
43
 * output.
44
 */
614.2.3 by Matthew Fuller
Swap to standard location for the typedefs.
45
struct RLayout {
614.1.32 by Matthew Fuller
Doc up the R* structs.
46
	RAreaList *monitors; ///< List of all output monitors
47
	RAreaList *horiz; ///< List of all unique horizontal regions
48
	RAreaList *vert;  ///< List of all unique vertical regions
49
614.1.131 by Matthew Fuller
Tweak wording to make this doc a little more readable. Using '->' as
50
	/// List of names of the monitors.  `names[i]` corresponds with
51
	/// `monitors->areas[i]`.  This is used for looking up geometries
52
	/// with output names via RLayoutXParseGeometry(); e.g,
53
	/// "HDMI1:800x600+20+50".
614.1.23 by Maxime Soulé
Some geometries can be relative to a monitor
54
	char **names;
614.2.3 by Matthew Fuller
Swap to standard location for the typedefs.
55
};
614.1.1 by Maxime Soulé
First step of xrandr integration
56
57
#endif  /* _CTWM_R_STRUCTS_H */