From d891acf8f28788a4aee43a73d8d3cb02ba17ee55 Mon Sep 17 00:00:00 2001 From: Simon Wollwage Date: Mon, 15 Dec 2014 05:36:19 +0100 Subject: [PATCH 1/3] added XSizeHint and XGetWMNormalHints --- src/xlib.rs | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/xlib.rs b/src/xlib.rs index f3d549a..922fba4 100644 --- a/src/xlib.rs +++ b/src/xlib.rs @@ -1165,6 +1165,32 @@ pub struct XClassHint { pub res_class: *mut c_char } +#[repr(C)] +pub struct XSizeHintInternal { + pub x: c_int, + pub y: c_int +} + +#[repr(C)] +pub struct XSizeHints { + pub flags: c_long, + pub x: c_int, + pub y: c_int, + pub width: c_int, + pub height: c_int, + pub min_width: c_int, + pub min_height: c_int, + pub max_width: c_int, + pub max_height: c_int, + pub width_inc: c_int, + pub height_inc: c_int, + pub min_aspect: XSizeHintInternal, + pub max_aspect: XSizeHintInternal, + pub base_width: c_int, + pub base_height: c_int, + pub win_gravity: c_int +} + pub static ZPixmap: c_int = 2; // depth == drawable depth #[link(name="X11")] @@ -1596,6 +1622,8 @@ extern { pub fn XGetWindowAttributes(arg0: *mut Display, arg1: Window, arg2: *mut XWindowAttributes) -> c_int; + pub fn XGetWMNormalHints(arg0: *mut Display, arg1: Window, arg2: *mut XSizeHints, arg3: *mut c_long) -> c_int; + pub fn XGrabButton(arg0: *mut Display, arg1: c_uint, arg2: c_uint, arg3: Window, arg4: c_int, arg5: c_uint, arg6: c_int, arg7: c_int, arg8: Window, arg9: Cursor) -> c_int; pub fn XGrabKey(arg0: *mut Display, arg1: c_int, arg2: c_uint, arg3: Window, arg4: c_int, arg5: c_int, arg6: c_int) -> c_int; From 409c817a3ad04a9015eaedf97ebca2a8d5d4c08e Mon Sep 17 00:00:00 2001 From: Simon Wollwage Date: Mon, 15 Dec 2014 08:32:55 +0100 Subject: [PATCH 2/3] added XSizeHintFlags --- src/xlib.rs | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/xlib.rs b/src/xlib.rs index 922fba4..7561e36 100644 --- a/src/xlib.rs +++ b/src/xlib.rs @@ -1165,6 +1165,25 @@ pub struct XClassHint { pub res_class: *mut c_char } +bitflags! { + flags XSizeHintFlags: c_long { + const USPosition = 0x00000001, + const USSize = 0x00000002, + const PPosition = 0x00000004, + const PSize = 0x00000008, + const PMinSize = 0x00000010, + const PMaxSize = 0x00000020, + const PResizeInc = 0x00000040, + const PAspect = 0x00000080, + const PBaseSize = 0x00000100, + const PWinGravity = 0x00000200, + const PAllHints = + USPosition.bits | USSize.bits | PPosition.bits | PSize.bits | + PMinSize.bits | PMaxSize.bits | PResizeInc.bits | PAspect.bits | + PBaseSize.bits | PWinGravity.bits + } +} + #[repr(C)] pub struct XSizeHintInternal { pub x: c_int, @@ -1173,7 +1192,7 @@ pub struct XSizeHintInternal { #[repr(C)] pub struct XSizeHints { - pub flags: c_long, + pub flags: XSizeHintFlags, pub x: c_int, pub y: c_int, pub width: c_int, From 60c2c9923f2476e61cfa94080b1b3a6806a9e9f4 Mon Sep 17 00:00:00 2001 From: Simon Wollwage Date: Mon, 15 Dec 2014 08:34:27 +0100 Subject: [PATCH 3/3] added XSizeHintFlags --- src/xlib.rs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/xlib.rs b/src/xlib.rs index 7561e36..6cc4aba 100644 --- a/src/xlib.rs +++ b/src/xlib.rs @@ -1178,9 +1178,8 @@ bitflags! { const PBaseSize = 0x00000100, const PWinGravity = 0x00000200, const PAllHints = - USPosition.bits | USSize.bits | PPosition.bits | PSize.bits | - PMinSize.bits | PMaxSize.bits | PResizeInc.bits | PAspect.bits | - PBaseSize.bits | PWinGravity.bits + PPosition.bits | PSize.bits | + PMinSize.bits | PMaxSize.bits | PResizeInc.bits | PAspect.bits } }