1 | // x11-rs: Rust bindings for X11 libraries |
2 | // The X11 libraries are available under the MIT license. |
3 | // These bindings are public domain. |
4 | |
5 | use std::os::raw::*; |
6 | |
7 | use super::xlib::{Display, Region, Visual, XRectangle}; |
8 | use super::xrender::{XGlyphInfo, XRenderColor}; |
9 | |
10 | // |
11 | // external types |
12 | // |
13 | |
14 | // freetype |
15 | pub enum FT_FaceRec {} |
16 | pub type FT_UInt = c_uint; |
17 | |
18 | // fontconfig |
19 | pub type FcChar32 = c_uint; |
20 | pub enum FcCharSet {} |
21 | pub enum FcPattern {} |
22 | |
23 | #[repr (C)] |
24 | pub enum FcEndian { |
25 | Big, |
26 | Little, |
27 | } |
28 | |
29 | #[repr (C)] |
30 | pub enum FcResult { |
31 | Match, |
32 | NoMatch, |
33 | TypeMismatch, |
34 | NoId, |
35 | OutOfMemory, |
36 | } |
37 | |
38 | // |
39 | // functions |
40 | // |
41 | |
42 | x11_link! { Xft, xft, ["libXft.so.2" , "libXft.so" ], 77, |
43 | pub fn XftCharExists (_2: *mut Display, _1: *mut XftFont, _0: c_uint) -> c_int, |
44 | pub fn XftCharFontSpecRender (_7: *mut Display, _6: c_int, _5: c_ulong, _4: c_ulong, _3: c_int, _2: c_int, _1: *const XftCharFontSpec, _0: c_int) -> (), |
45 | pub fn XftCharIndex (_2: *mut Display, _1: *mut XftFont, _0: c_uint) -> c_uint, |
46 | pub fn XftCharSpecRender (_8: *mut Display, _7: c_int, _6: c_ulong, _5: *mut XftFont, _4: c_ulong, _3: c_int, _2: c_int, _1: *const XftCharSpec, _0: c_int) -> (), |
47 | pub fn XftColorAllocName (_4: *mut Display, _3: *const Visual, _2: c_ulong, _1: *const c_char, _0: *mut XftColor) -> c_int, |
48 | pub fn XftColorAllocValue (_4: *mut Display, _3: *mut Visual, _2: c_ulong, _1: *const XRenderColor, _0: *mut XftColor) -> c_int, |
49 | pub fn XftColorFree (_3: *mut Display, _2: *mut Visual, _1: c_ulong, _0: *mut XftColor) -> (), |
50 | pub fn XftDefaultHasRender (_0: *mut Display) -> c_int, |
51 | pub fn XftDefaultSet (_1: *mut Display, _0: *mut FcPattern) -> c_int, |
52 | pub fn XftDefaultSubstitute (_2: *mut Display, _1: c_int, _0: *mut FcPattern) -> (), |
53 | pub fn XftDrawChange (_1: *mut XftDraw, _0: c_ulong) -> (), |
54 | pub fn XftDrawCharFontSpec (_3: *mut XftDraw, _2: *const XftColor, _1: *const XftCharFontSpec, _0: c_int) -> (), |
55 | pub fn XftDrawCharSpec (_4: *mut XftDraw, _3: *const XftColor, _2: *mut XftFont, _1: *const XftCharSpec, _0: c_int) -> (), |
56 | pub fn XftDrawColormap (_0: *mut XftDraw) -> c_ulong, |
57 | pub fn XftDrawCreate (_3: *mut Display, _2: c_ulong, _1: *mut Visual, _0: c_ulong) -> *mut XftDraw, |
58 | pub fn XftDrawCreateAlpha (_2: *mut Display, _1: c_ulong, _0: c_int) -> *mut XftDraw, |
59 | pub fn XftDrawCreateBitmap (_1: *mut Display, _0: c_ulong) -> *mut XftDraw, |
60 | pub fn XftDrawDestroy (_0: *mut XftDraw) -> (), |
61 | pub fn XftDrawDisplay (_0: *mut XftDraw) -> *mut Display, |
62 | pub fn XftDrawDrawable (_0: *mut XftDraw) -> c_ulong, |
63 | pub fn XftDrawGlyphFontSpec (_3: *mut XftDraw, _2: *const XftColor, _1: *const XftGlyphFontSpec, _0: c_int) -> (), |
64 | pub fn XftDrawGlyphs (_6: *mut XftDraw, _5: *const XftColor, _4: *mut XftFont, _3: c_int, _2: c_int, _1: *const c_uint, _0: c_int) -> (), |
65 | pub fn XftDrawGlyphSpec (_4: *mut XftDraw, _3: *const XftColor, _2: *mut XftFont, _1: *const XftGlyphSpec, _0: c_int) -> (), |
66 | pub fn XftDrawPicture (_0: *mut XftDraw) -> c_ulong, |
67 | pub fn XftDrawRect (_5: *mut XftDraw, _4: *const XftColor, _3: c_int, _2: c_int, _1: c_uint, _0: c_uint) -> (), |
68 | pub fn XftDrawSetClip (_1: *mut XftDraw, _0: Region) -> c_int, |
69 | pub fn XftDrawSetClipRectangles (_4: *mut XftDraw, _3: c_int, _2: c_int, _1: *const XRectangle, _0: c_int) -> c_int, |
70 | pub fn XftDrawSetSubwindowMode (_1: *mut XftDraw, _0: c_int) -> (), |
71 | pub fn XftDrawSrcPicture (_1: *mut XftDraw, _0: *const XftColor) -> c_ulong, |
72 | pub fn XftDrawString16 (_6: *mut XftDraw, _5: *const XftColor, _4: *mut XftFont, _3: c_int, _2: c_int, _1: *const c_ushort, _0: c_int) -> (), |
73 | pub fn XftDrawString32 (_6: *mut XftDraw, _5: *const XftColor, _4: *mut XftFont, _3: c_int, _2: c_int, _1: *const c_uint, _0: c_int) -> (), |
74 | pub fn XftDrawString8 (_6: *mut XftDraw, _5: *const XftColor, _4: *mut XftFont, _3: c_int, _2: c_int, _1: *const c_uchar, _0: c_int) -> (), |
75 | pub fn XftDrawStringUtf16 (_7: *mut XftDraw, _6: *const XftColor, _5: *mut XftFont, _4: c_int, _3: c_int, _2: *const c_uchar, _1: FcEndian, _0: c_int) -> (), |
76 | pub fn XftDrawStringUtf8 (_6: *mut XftDraw, _5: *const XftColor, _4: *mut XftFont, _3: c_int, _2: c_int, _1: *const c_uchar, _0: c_int) -> (), |
77 | pub fn XftDrawVisual (_0: *mut XftDraw) -> *mut Visual, |
78 | pub fn XftFontCheckGlyph (_5: *mut Display, _4: *mut XftFont, _3: c_int, _2: c_uint, _1: *mut c_uint, _0: *mut c_int) -> c_int, |
79 | pub fn XftFontClose (_1: *mut Display, _0: *mut XftFont) -> (), |
80 | pub fn XftFontCopy (_1: *mut Display, _0: *mut XftFont) -> *mut XftFont, |
81 | pub fn XftFontInfoCreate (_1: *mut Display, _0: *const FcPattern) -> *mut XftFontInfo, |
82 | pub fn XftFontInfoDestroy (_1: *mut Display, _0: *mut XftFontInfo) -> (), |
83 | pub fn XftFontInfoEqual (_1: *const XftFontInfo, _0: *const XftFontInfo) -> c_int, |
84 | pub fn XftFontInfoHash (_0: *const XftFontInfo) -> c_uint, |
85 | pub fn XftFontLoadGlyphs (_4: *mut Display, _3: *mut XftFont, _2: c_int, _1: *const c_uint, _0: c_int) -> (), |
86 | pub fn XftFontMatch (_3: *mut Display, _2: c_int, _1: *const FcPattern, _0: *mut FcResult) -> *mut FcPattern, |
87 | pub fn XftFontOpenInfo (_2: *mut Display, _1: *mut FcPattern, _0: *mut XftFontInfo) -> *mut XftFont, |
88 | pub fn XftFontOpenName (_2: *mut Display, _1: c_int, _0: *const c_char) -> *mut XftFont, |
89 | pub fn XftFontOpenPattern (_1: *mut Display, _0: *mut FcPattern) -> *mut XftFont, |
90 | pub fn XftFontOpenXlfd (_2: *mut Display, _1: c_int, _0: *const c_char) -> *mut XftFont, |
91 | pub fn XftFontUnloadGlyphs (_3: *mut Display, _2: *mut XftFont, _1: *const c_uint, _0: c_int) -> (), |
92 | pub fn XftGetVersion () -> c_int, |
93 | pub fn XftGlyphExtents (_4: *mut Display, _3: *mut XftFont, _2: *const c_uint, _1: c_int, _0: *mut XGlyphInfo) -> (), |
94 | pub fn XftGlyphFontSpecRender (_7: *mut Display, _6: c_int, _5: c_ulong, _4: c_ulong, _3: c_int, _2: c_int, _1: *const XftGlyphFontSpec, _0: c_int) -> (), |
95 | pub fn XftGlyphRender (_10: *mut Display, _9: c_int, _8: c_ulong, _7: *mut XftFont, _6: c_ulong, _5: c_int, _4: c_int, _3: c_int, _2: c_int, _1: *const c_uint, _0: c_int) -> (), |
96 | pub fn XftGlyphSpecRender (_8: *mut Display, _7: c_int, _6: c_ulong, _5: *mut XftFont, _4: c_ulong, _3: c_int, _2: c_int, _1: *const XftGlyphSpec, _0: c_int) -> (), |
97 | pub fn XftInit (_0: *const c_char) -> c_int, |
98 | pub fn XftInitFtLibrary () -> c_int, |
99 | pub fn XftLockFace (_0: *mut XftFont) -> *mut FT_FaceRec, |
100 | pub fn XftNameParse (_0: *const c_char) -> *mut FcPattern, |
101 | pub fn XftNameUnparse (_2: *mut FcPattern, _1: *mut c_char, _0: c_int) -> c_int, |
102 | pub fn XftTextExtents16 (_4: *mut Display, _3: *mut XftFont, _2: *const c_ushort, _1: c_int, _0: *mut XGlyphInfo) -> (), |
103 | pub fn XftTextExtents32 (_4: *mut Display, _3: *mut XftFont, _2: *const c_uint, _1: c_int, _0: *mut XGlyphInfo) -> (), |
104 | pub fn XftTextExtents8 (_4: *mut Display, _3: *mut XftFont, _2: *const c_uchar, _1: c_int, _0: *mut XGlyphInfo) -> (), |
105 | pub fn XftTextExtentsUtf16 (_5: *mut Display, _4: *mut XftFont, _3: *const c_uchar, _2: FcEndian, _1: c_int, _0: *mut XGlyphInfo) -> (), |
106 | pub fn XftTextExtentsUtf8 (_4: *mut Display, _3: *mut XftFont, _2: *const c_uchar, _1: c_int, _0: *mut XGlyphInfo) -> (), |
107 | pub fn XftTextRender16 (_10: *mut Display, _9: c_int, _8: c_ulong, _7: *mut XftFont, _6: c_ulong, _5: c_int, _4: c_int, _3: c_int, _2: c_int, _1: *const c_ushort, _0: c_int) -> (), |
108 | pub fn XftTextRender16BE (_10: *mut Display, _9: c_int, _8: c_ulong, _7: *mut XftFont, _6: c_ulong, _5: c_int, _4: c_int, _3: c_int, _2: c_int, _1: *const c_uchar, _0: c_int) -> (), |
109 | pub fn XftTextRender16LE (_10: *mut Display, _9: c_int, _8: c_ulong, _7: *mut XftFont, _6: c_ulong, _5: c_int, _4: c_int, _3: c_int, _2: c_int, _1: *const c_uchar, _0: c_int) -> (), |
110 | pub fn XftTextRender32 (_10: *mut Display, _9: c_int, _8: c_ulong, _7: *mut XftFont, _6: c_ulong, _5: c_int, _4: c_int, _3: c_int, _2: c_int, _1: *const c_uint, _0: c_int) -> (), |
111 | pub fn XftTextRender32BE (_10: *mut Display, _9: c_int, _8: c_ulong, _7: *mut XftFont, _6: c_ulong, _5: c_int, _4: c_int, _3: c_int, _2: c_int, _1: *const c_uchar, _0: c_int) -> (), |
112 | pub fn XftTextRender32LE (_10: *mut Display, _9: c_int, _8: c_ulong, _7: *mut XftFont, _6: c_ulong, _5: c_int, _4: c_int, _3: c_int, _2: c_int, _1: *const c_uchar, _0: c_int) -> (), |
113 | pub fn XftTextRender8 (_10: *mut Display, _9: c_int, _8: c_ulong, _7: *mut XftFont, _6: c_ulong, _5: c_int, _4: c_int, _3: c_int, _2: c_int, _1: *const c_uchar, _0: c_int) -> (), |
114 | pub fn XftTextRenderUtf16 (_11: *mut Display, _10: c_int, _9: c_ulong, _8: *mut XftFont, _7: c_ulong, _6: c_int, _5: c_int, _4: c_int, _3: c_int, _2: *const c_uchar, _1: FcEndian, _0: c_int) -> (), |
115 | pub fn XftTextRenderUtf8 (_10: *mut Display, _9: c_int, _8: c_ulong, _7: *mut XftFont, _6: c_ulong, _5: c_int, _4: c_int, _3: c_int, _2: c_int, _1: *const c_uchar, _0: c_int) -> (), |
116 | pub fn XftUnlockFace (_0: *mut XftFont) -> (), |
117 | pub fn XftXlfdParse (_2: *const c_char, _1: c_int, _0: c_int) -> *mut FcPattern, |
118 | variadic: |
119 | pub fn XftFontOpen (_1: *mut Display, _0: c_int) -> *mut XftFont, |
120 | pub fn XftListFonts (_1: *mut Display, _0: c_int) -> *mut XftFontSet, |
121 | globals: |
122 | } |
123 | |
124 | // |
125 | // types |
126 | // |
127 | |
128 | pub enum XftFontInfo {} |
129 | |
130 | #[derive (Debug, Clone, Copy, PartialEq)] |
131 | #[repr (C)] |
132 | pub struct XftFont { |
133 | pub ascent: c_int, |
134 | pub descent: c_int, |
135 | pub height: c_int, |
136 | pub max_advance_width: c_int, |
137 | pub charset: *mut FcCharSet, |
138 | pub pattern: *mut FcPattern, |
139 | } |
140 | |
141 | pub enum XftDraw {} |
142 | |
143 | #[derive (Debug, Clone, Copy, PartialEq)] |
144 | #[repr (C)] |
145 | pub struct XftColor { |
146 | pub pixel: c_ulong, |
147 | pub color: XRenderColor, |
148 | } |
149 | |
150 | #[derive (Debug, Clone, Copy, PartialEq)] |
151 | #[repr (C)] |
152 | pub struct XftCharSpec { |
153 | pub ucs4: FcChar32, |
154 | pub x: c_short, |
155 | pub y: c_short, |
156 | } |
157 | |
158 | #[derive (Debug, Clone, Copy, PartialEq)] |
159 | #[repr (C)] |
160 | pub struct XftCharFontSpec { |
161 | pub font: *mut XftFont, |
162 | pub ucs4: FcChar32, |
163 | pub x: c_short, |
164 | pub y: c_short, |
165 | } |
166 | |
167 | #[derive (Debug, Clone, Copy, PartialEq)] |
168 | #[repr (C)] |
169 | pub struct XftFontSet { |
170 | pub nfont: c_int, |
171 | pub sfont: c_int, |
172 | pub fonts: *mut *mut XftPattern, |
173 | } |
174 | |
175 | #[derive (Debug, Clone, Copy, PartialEq)] |
176 | #[repr (C)] |
177 | pub struct XftGlyphSpec { |
178 | pub glyph: FT_UInt, |
179 | pub x: c_short, |
180 | pub y: c_short, |
181 | } |
182 | |
183 | #[derive (Debug, Clone, Copy, PartialEq)] |
184 | #[repr (C)] |
185 | pub struct XftGlyphFontSpec { |
186 | pub font: *mut XftFont, |
187 | pub glyph: FT_UInt, |
188 | pub x: c_short, |
189 | pub y: c_short, |
190 | } |
191 | |
192 | pub enum XftPattern {} |
193 | |
194 | // |
195 | // constants |
196 | // |
197 | |
198 | // font attributes |
199 | pub const XFT_FAMILY: &str = "family" ; |
200 | pub const XFT_STYLE: &str = "style" ; |
201 | pub const XFT_SLANT: &str = "slant" ; |
202 | pub const XFT_WEIGHT: &str = "weight" ; |
203 | pub const XFT_SIZE: &str = "size" ; |
204 | pub const XFT_PIXEL_SIZE: &str = "pixelsize" ; |
205 | pub const XFT_SPACING: &str = "spacing" ; |
206 | pub const XFT_FOUNDRY: &str = "foundry" ; |
207 | pub const XFT_ANTIALIAS: &str = "antialias" ; |
208 | |
209 | // slant values |
210 | pub const XFT_SLANT_ROMAN: c_int = 0; |
211 | pub const XFT_SLANT_ITALIC: c_int = 100; |
212 | pub const XFT_SLANT_OBLIQUE: c_int = 110; |
213 | |
214 | // attribute types |
215 | pub const XftTypeVoid: c_int = 0; |
216 | pub const XftTypeInteger: c_int = 1; |
217 | pub const XftTypeDouble: c_int = 2; |
218 | pub const XftTypeString: c_int = 3; |
219 | pub const XftTypeBool: c_int = 4; |
220 | pub const XftTypeMatrix: c_int = 5; |
221 | |