diff --git a/src/xlib.rs b/src/xlib.rs index f3d549a..6cc4aba 100644 --- a/src/xlib.rs +++ b/src/xlib.rs @@ -1165,6 +1165,50 @@ 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 = + PPosition.bits | PSize.bits | + PMinSize.bits | PMaxSize.bits | PResizeInc.bits | PAspect.bits + } +} + +#[repr(C)] +pub struct XSizeHintInternal { + pub x: c_int, + pub y: c_int +} + +#[repr(C)] +pub struct XSizeHints { + pub flags: XSizeHintFlags, + 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 +1640,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;