File: node-type.h

package info (click to toggle)
labwc 0.9.3-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 2,992 kB
  • sloc: ansic: 34,788; perl: 5,837; xml: 873; sh: 162; python: 131; makefile: 12
file content (75 lines) | stat: -rw-r--r-- 1,952 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
/* SPDX-License-Identifier: GPL-2.0-only */
#ifndef LABWC_NODE_TYPE_H
#define LABWC_NODE_TYPE_H

#include "common/edge.h"

/*
 * In labwc, "node type" indicates the role of a wlr_scene_node in the
 * overall desktop. It also maps more-or-less to the openbox concept of
 * "context" (as used when defining mouse bindings).
 *
 * Some types (BUTTON, BORDER, etc.) refer to groups or categories of
 * other node types rather than individual nodes. These categories are
 * defined as ranges (e.g. BUTTON means anything from BUTTON_FIRST to
 * BUTTON_LAST), therefore order is significant.
 *
 * Be sure to keep node_type_contains() in sync with any changes!
 */
enum lab_node_type {
	LAB_NODE_NONE = 0,

	LAB_NODE_BUTTON_CLOSE = 1,
	LAB_NODE_BUTTON_MAXIMIZE,
	LAB_NODE_BUTTON_ICONIFY,
	LAB_NODE_BUTTON_WINDOW_ICON,
	LAB_NODE_BUTTON_WINDOW_MENU,
	LAB_NODE_BUTTON_SHADE,
	LAB_NODE_BUTTON_OMNIPRESENT,
	LAB_NODE_BUTTON_FIRST = LAB_NODE_BUTTON_CLOSE,
	LAB_NODE_BUTTON_LAST = LAB_NODE_BUTTON_OMNIPRESENT,
	LAB_NODE_BUTTON,

	LAB_NODE_TITLEBAR,
	LAB_NODE_TITLE,

	LAB_NODE_CORNER_TOP_LEFT,
	LAB_NODE_CORNER_TOP_RIGHT,
	LAB_NODE_CORNER_BOTTOM_RIGHT,
	LAB_NODE_CORNER_BOTTOM_LEFT,
	LAB_NODE_BORDER_TOP,
	LAB_NODE_BORDER_RIGHT,
	LAB_NODE_BORDER_BOTTOM,
	LAB_NODE_BORDER_LEFT,
	LAB_NODE_BORDER,

	LAB_NODE_CLIENT,
	LAB_NODE_FRAME,
	LAB_NODE_ROOT,
	LAB_NODE_MENUITEM,
	LAB_NODE_CYCLE_OSD_ITEM,
	LAB_NODE_LAYER_SURFACE,
	LAB_NODE_UNMANAGED,
	LAB_NODE_ALL,

	/* translated to LAB_NODE_CLIENT by get_cursor_context() */
	LAB_NODE_VIEW,
	LAB_NODE_XDG_POPUP,
	LAB_NODE_LAYER_POPUP,
	LAB_NODE_SESSION_LOCK_SURFACE,
	LAB_NODE_IME_POPUP,

	/*
	 * translated to LAB_CORNER_* or LAB_BORDER* by
	 * ssd_get_resizing_type()
	 */
	LAB_NODE_SSD_ROOT,
};

enum lab_node_type node_type_parse(const char *context);

bool node_type_contains(enum lab_node_type whole, enum lab_node_type part);

enum lab_edge node_type_to_edges(enum lab_node_type type);

#endif /* LABWC_NODE_TYPE_H */