6
6
and \code{GDK_NONE} will be stored in \code{actual.property.type}.}
7
7
\usage{gdkPropertyGet(object, property, type, offset, length, pdelete)}
9
\item{\verb{object}}{[\verb{\link{GdkWindow}}] a \verb{\link{GdkWindow}}.}
10
\item{\verb{property}}{[\verb{\link{GdkAtom}}] the property to retrieve.}
11
\item{\verb{type}}{[\verb{\link{GdkAtom}}] the desired property type, or \code{GDK_NONE}, if any type of data
9
\item{\verb{object}}{a \code{\link{GdkWindow}}.}
10
\item{\verb{property}}{the property to retrieve.}
11
\item{\verb{type}}{the desired property type, or \code{GDK_NONE}, if any type of data
12
12
is acceptable. If this does not match the actual
13
13
type, then \code{actual.format} and \code{actual.length} will
14
14
be filled in, a warning will be printed to stderr
15
15
and no data will be returned.}
16
\item{\verb{offset}}{[numeric] the offset into the property at which to begin
16
\item{\verb{offset}}{the offset into the property at which to begin
17
17
retrieving data, in 4 byte units.}
18
\item{\verb{length}}{[numeric] the length of the data to retrieve in bytes. Data is
19
considered to be retrieved in 4 byte chunks, so \code{length}
20
will be rounded up to the next highest 4 byte boundary
21
(so be careful not to pass a value that might overflow
18
\item{\verb{length}}{the length of the data to retrieve in bytes. Data is
19
considered to be retrieved in 4 byte chunks, so \code{length}
20
will be rounded up to the next highest 4 byte boundary
21
(so be careful not to pass a value that might overflow
23
\item{\verb{pdelete}}{[integer] if \code{TRUE}, delete the property after retrieving the
23
\item{\verb{pdelete}}{if \code{TRUE}, delete the property after retrieving the
27
27
A list containing the following elements:
28
\item{retval}{[logical] \code{TRUE} if data was sucessfully received and stored
28
\item{retval}{[logical] \code{TRUE} if data was successfully received and stored
29
29
in \code{data}, otherwise \code{FALSE}.}
30
\item{\verb{actual.property.type}}{[\verb{\link{GdkAtom}}] location to store the actual type of
30
\item{\verb{actual.property.type}}{location to store the actual type of
32
\item{\verb{actual.format}}{[integer] location to store the actual return format of the
32
\item{\verb{actual.format}}{location to store the actual return format of the
33
33
data; either 8, 16 or 32 bits.}
34
\item{\verb{actual.length}}{[integer] location to store the length of the retrieved data, in
34
\item{\verb{actual.length}}{location to store the length of the retrieved data, in
35
35
bytes. Data returned in the 32 bit format is stored
36
36
in a long variable, so the actual number of 32 bit
37
37
elements should be be calculated via
38
38
\code{actual.length}/sizeof(glong) to ensure portability to
40
\item{\verb{data}}{[raw] location to store a pointer to the data. The retrieved
40
\item{\verb{data}}{location to store a pointer to the data. The retrieved
41
41
data should be freed with \code{gFree()} when you are finished
44
44
\note{The \code{xgetwindowproperty()} function that \code{\link{gdkPropertyGet}}
45
uses has a very confusing and complicated set of semantics.
45
uses has a very confusing and complicated set of semantics.
46
46
Unfortunately, \code{\link{gdkPropertyGet}} makes the situation
47
47
worse instead of better (the semantics should be considered
48
48
undefined), and also prints warnings to stderr in cases where it
49
should return a useful error to the program. You are advised to use
50
\code{xgetwindowproperty()} directly until a replacement function for
49
should return a useful error to the program. You are advised to use
50
\code{xgetwindowproperty()} directly until a replacement function for
51
51
\code{\link{gdkPropertyGet}}
53
53
\author{Derived by RGtkGen from GTK+ documentation}