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§
Trait Implementations§
source§impl Clone for GetPropertyRequest
impl Clone for GetPropertyRequest
source§fn clone(&self) -> GetPropertyRequest
fn clone(&self) -> GetPropertyRequest
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl Debug for GetPropertyRequest
impl Debug for GetPropertyRequest
source§impl Default for GetPropertyRequest
impl Default for GetPropertyRequest
source§fn default() -> GetPropertyRequest
fn default() -> GetPropertyRequest
Returns the “default value” for a type. Read more
source§impl ReplyRequest for GetPropertyRequest
impl ReplyRequest for GetPropertyRequest
§type Reply = GetPropertyReply
type Reply = GetPropertyReply
The kind of reply that this request generates.
source§impl Request for GetPropertyRequest
impl Request for GetPropertyRequest
impl Copy 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§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more