Struct x11rb_protocol::protocol::xproto::GetPropertyRequest
source · [−]pub struct GetPropertyRequest {
pub delete: bool,
pub window: Window,
pub property: Atom,
pub type_: Atom,
pub long_offset: u32,
pub long_length: u32,
}
Expand description
Gets a window property.
Gets the specified property
from the specified window
. Properties are for
example the window title (WM_NAME
) or its minimum size (WM_NORMAL_HINTS
).
Protocols such as EWMH also use properties - for example EWMH defines the
window title, encoded as UTF-8 string, in the _NET_WM_NAME
property.
TODO: talk about type
TODO: talk about delete
TODO: talk about the offset/length thing. what’s a valid use case?
Fields
window
- The window whose property you want to get.delete
- Whether the property should actually be deleted. For deleting a property, the specifiedtype
has to match the actual property type.property
- The property you want to get (an atom).type
- The type of the property you want to get (an atom).long_offset
- Specifies the offset (in 32-bit multiples) in the specified property where the data is to be retrieved.long_length
- Specifies how many 32-bit multiples of data should be retrieved (e.g. if you setlong_length
to 4, you will receive 16 bytes of data).
Errors
Window
- The specifiedwindow
does not exist.Atom
-property
ortype
do not refer to a valid atom.Value
- The specifiedlong_offset
is beyond the actual property length (e.g. the property has a length of 3 bytes and you are settinglong_offset
to 1, resulting in a byte offset of 4).
See
InternAtom
: requestxprop
: program
Example
/*
* Prints the WM_NAME property of the window.
*
*/
void my_example(xcb_connection_t *c, xcb_window_t window) {
xcb_get_property_cookie_t cookie;
xcb_get_property_reply_t *reply;
/* These atoms are predefined in the X11 protocol. */
xcb_atom_t property = XCB_ATOM_WM_NAME;
xcb_atom_t type = XCB_ATOM_STRING;
// TODO: a reasonable long_length for WM_NAME?
cookie = xcb_get_property(c, 0, window, property, type, 0, 0);
if ((reply = xcb_get_property_reply(c, cookie, NULL))) {
int len = xcb_get_property_value_length(reply);
if (len == 0) {
printf("TODO\\n");
free(reply);
return;
}
printf("WM_NAME is %.*s\\n", len,
(char*)xcb_get_property_value(reply));
}
free(reply);
}
Fields
delete: bool
window: Window
property: Atom
type_: Atom
long_offset: u32
long_length: u32
Implementations
sourceimpl GetPropertyRequest
impl GetPropertyRequest
sourcepub fn serialize(self) -> BufWithFds<PiecewiseBuf<'static>>
pub fn serialize(self) -> BufWithFds<PiecewiseBuf<'static>>
Serialize this request into bytes for the provided connection
sourcepub fn try_parse_request(
header: RequestHeader,
value: &[u8]
) -> Result<Self, ParseError>
pub fn try_parse_request(
header: RequestHeader,
value: &[u8]
) -> Result<Self, ParseError>
Parse this request given its header, its body, and any fds that go along with it
Trait Implementations
sourceimpl Clone for GetPropertyRequest
impl Clone for GetPropertyRequest
sourcefn clone(&self) -> GetPropertyRequest
fn clone(&self) -> GetPropertyRequest
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl Debug for GetPropertyRequest
impl Debug for GetPropertyRequest
sourceimpl Default for GetPropertyRequest
impl Default for GetPropertyRequest
sourcefn default() -> GetPropertyRequest
fn default() -> GetPropertyRequest
Returns the “default value” for a type. Read more
sourceimpl Hash for GetPropertyRequest
impl Hash for GetPropertyRequest
sourceimpl Ord for GetPropertyRequest
impl Ord for GetPropertyRequest
sourceimpl PartialEq<GetPropertyRequest> for GetPropertyRequest
impl PartialEq<GetPropertyRequest> for GetPropertyRequest
sourcefn eq(&self, other: &GetPropertyRequest) -> bool
fn eq(&self, other: &GetPropertyRequest) -> bool
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
sourcefn ne(&self, other: &GetPropertyRequest) -> bool
fn ne(&self, other: &GetPropertyRequest) -> bool
This method tests for !=
.
sourceimpl PartialOrd<GetPropertyRequest> for GetPropertyRequest
impl PartialOrd<GetPropertyRequest> for GetPropertyRequest
sourcefn partial_cmp(&self, other: &GetPropertyRequest) -> Option<Ordering>
fn partial_cmp(&self, other: &GetPropertyRequest) -> Option<Ordering>
This method returns an ordering between self
and other
values if one exists. Read more
1.0.0 · sourcefn lt(&self, other: &Rhs) -> bool
fn lt(&self, other: &Rhs) -> bool
This method tests less than (for self
and other
) and is used by the <
operator. Read more
1.0.0 · sourcefn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
sourceimpl ReplyRequest for GetPropertyRequest
impl ReplyRequest for GetPropertyRequest
type Reply = GetPropertyReply
type Reply = GetPropertyReply
The kind of reply that this request generates.
sourceimpl Request for GetPropertyRequest
impl Request for GetPropertyRequest
impl Copy for GetPropertyRequest
impl Eq for GetPropertyRequest
impl StructuralEq for GetPropertyRequest
impl StructuralPartialEq for GetPropertyRequest
Auto Trait Implementations
impl RefUnwindSafe for GetPropertyRequest
impl Send for GetPropertyRequest
impl Sync for GetPropertyRequest
impl Unpin for GetPropertyRequest
impl UnwindSafe for GetPropertyRequest
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more