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§
source§impl GetPropertyRequest
impl GetPropertyRequest
sourcepub fn serialize(self) -> BufWithFds<[Cow<'static, [u8]>; 1]>
pub fn serialize(self) -> BufWithFds<[Cow<'static, [u8]>; 1]>
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§
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<'de> Deserialize<'de> for GetPropertyRequest
impl<'de> Deserialize<'de> for GetPropertyRequest
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
source§impl Hash for GetPropertyRequest
impl Hash for GetPropertyRequest
source§impl Ord for GetPropertyRequest
impl Ord for GetPropertyRequest
source§fn cmp(&self, other: &GetPropertyRequest) -> Ordering
fn cmp(&self, other: &GetPropertyRequest) -> Ordering
1.21.0 · source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the maximum of two values. Read more
source§impl PartialEq for GetPropertyRequest
impl PartialEq for GetPropertyRequest
source§fn 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 ==
.source§impl PartialOrd for GetPropertyRequest
impl PartialOrd for GetPropertyRequest
source§fn partial_cmp(&self, other: &GetPropertyRequest) -> Option<Ordering>
fn partial_cmp(&self, other: &GetPropertyRequest) -> Option<Ordering>
1.0.0 · source§fn 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 moresource§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
source§impl Serialize for GetPropertyRequest
impl Serialize for GetPropertyRequest
impl Copy for GetPropertyRequest
impl Eq for GetPropertyRequest
impl StructuralPartialEq for GetPropertyRequest
Auto Trait Implementations§
impl Freeze for GetPropertyRequest
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