Struct redwm::imports::GetPropertyRequest [−][src]
pub struct GetPropertyRequest { pub delete: bool, pub window: u32, pub property: u32, pub type_: u32, 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: u32
property: u32
type_: u32
long_offset: u32
long_length: u32
Implementations
pub fn send<Conn>(
self,
conn: &Conn
) -> Result<Cookie<'_, Conn, GetPropertyReply>, ConnectionError> where
Conn: RequestConnection + ?Sized,
pub fn try_parse_request(
header: RequestHeader,
value: &[u8]
) -> Result<GetPropertyRequest, ParseError>
pub fn try_parse_request(
header: RequestHeader,
value: &[u8]
) -> Result<GetPropertyRequest, ParseError>
Parse this request given its header, its body, and any fds that go along with it
Trait Implementations
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
This method tests for !=
.
type Reply = GetPropertyReply
type Reply = GetPropertyReply
The kind of reply that this request generates.
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
Mutably borrows from an owned value. Read more