1 use xcb;
2 
3 pub const NUM_GLYPHS: u16 = 154;
4 pub const X_CURSOR: u16 = 0;
5 pub const ARROW: u16 = 2;
6 pub const BASED_ARROW_DOWN: u16 = 4;
7 pub const BASED_ARROW_UP: u16 = 6;
8 pub const BOAT: u16 = 8;
9 pub const BOGOSITY: u16 = 10;
10 pub const BOTTOM_LEFT_CORNER: u16 = 12;
11 pub const BOTTOM_RIGHT_CORNER: u16 = 14;
12 pub const BOTTOM_SIDE: u16 = 16;
13 pub const BOTTOM_TEE: u16 = 18;
14 pub const BOX_SPIRAL: u16 = 20;
15 pub const CENTER_PTR: u16 = 22;
16 pub const CIRCLE: u16 = 24;
17 pub const CLOCK: u16 = 26;
18 pub const COFFEE_MUG: u16 = 28;
19 pub const CROSS: u16 = 30;
20 pub const CROSS_REVERSE: u16 = 32;
21 pub const CROSSHAIR: u16 = 34;
22 pub const DIAMOND_CROSS: u16 = 36;
23 pub const DOT: u16 = 38;
24 pub const DOTBOX: u16 = 40;
25 pub const DOUBLE_ARROW: u16 = 42;
26 pub const DRAFT_LARGE: u16 = 44;
27 pub const DRAFT_SMALL: u16 = 46;
28 pub const DRAPED_BOX: u16 = 48;
29 pub const EXCHANGE: u16 = 50;
30 pub const FLEUR: u16 = 52;
31 pub const GOBBLER: u16 = 54;
32 pub const GUMBY: u16 = 56;
33 pub const HAND1: u16 = 58;
34 pub const HAND2: u16 = 60;
35 pub const HEART: u16 = 62;
36 pub const ICON: u16 = 64;
37 pub const IRON_CROSS: u16 = 66;
38 pub const LEFT_PTR: u16 = 68;
39 pub const LEFT_SIDE: u16 = 70;
40 pub const LEFT_TEE: u16 = 72;
41 pub const LEFTBUTTON: u16 = 74;
42 pub const LL_ANGLE: u16 = 76;
43 pub const LR_ANGLE: u16 = 78;
44 pub const MAN: u16 = 80;
45 pub const MIDDLEBUTTON: u16 = 82;
46 pub const MOUSE: u16 = 84;
47 pub const PENCIL: u16 = 86;
48 pub const PIRATE: u16 = 88;
49 pub const PLUS: u16 = 90;
50 pub const QUESTION_ARROW: u16 = 92;
51 pub const RIGHT_PTR: u16 = 94;
52 pub const RIGHT_SIDE: u16 = 96;
53 pub const RIGHT_TEE: u16 = 98;
54 pub const RIGHTBUTTON: u16 = 100;
55 pub const RTL_LOGO: u16 = 102;
56 pub const SAILBOAT: u16 = 104;
57 pub const SB_DOWN_ARROW: u16 = 106;
58 pub const SB_H_DOUBLE_ARROW: u16 = 108;
59 pub const SB_LEFT_ARROW: u16 = 110;
60 pub const SB_RIGHT_ARROW: u16 = 112;
61 pub const SB_UP_ARROW: u16 = 114;
62 pub const SB_V_DOUBLE_ARROW: u16 = 116;
63 pub const SHUTTLE: u16 = 118;
64 pub const SIZING: u16 = 120;
65 pub const SPIDER: u16 = 122;
66 pub const SPRAYCAN: u16 = 124;
67 pub const STAR: u16 = 126;
68 pub const TARGET: u16 = 128;
69 pub const TCROSS: u16 = 130;
70 pub const TOP_LEFT_ARROW: u16 = 132;
71 pub const TOP_LEFT_CORNER: u16 = 134;
72 pub const TOP_RIGHT_CORNER: u16 = 136;
73 pub const TOP_SIDE: u16 = 138;
74 pub const TOP_TEE: u16 = 140;
75 pub const TREK: u16 = 142;
76 pub const UL_ANGLE: u16 = 144;
77 pub const UMBRELLA: u16 = 146;
78 pub const UR_ANGLE: u16 = 148;
79 pub const WATCH: u16 = 150;
80 pub const XTERM: u16 = 152;
81 
create_font_cursor(c: &xcb::Connection, glyph: u16) -> xcb::Cursor82 pub fn create_font_cursor(c: &xcb::Connection, glyph: u16) -> xcb::Cursor {
83 	let font = c.generate_id();
84 	xcb::open_font(c, font, "cursor");
85 
86 	let cursor = c.generate_id();
87 	xcb::create_glyph_cursor(c, cursor, font, font, glyph, glyph + 1,
88 		0, 0, 0, 0xffff, 0xffff, 0xffff);
89 
90 	cursor
91 }
92 
create_font_cursor_checked(c: &xcb::Connection, glyph: u16) -> Result<xcb::Cursor, xcb::GenericError>93 pub fn create_font_cursor_checked(c: &xcb::Connection, glyph: u16) -> Result<xcb::Cursor, xcb::GenericError> {
94 	let font = c.generate_id();
95 	xcb::open_font_checked(c, font, "cursor").request_check()?;
96 
97 	let cursor = c.generate_id();
98 	xcb::create_glyph_cursor(c, cursor, font, font, glyph, glyph + 1,
99 		0, 0, 0, 0xffff, 0xffff, 0xffff).request_check()?;
100 
101 	Ok(cursor)
102 }
103