![]() |
![]() |
![]() |
Libwnck Reference Manual | ![]() |
---|---|---|---|---|
Miscellaneous FunctionsMiscellaneous Functions — reading resource usage of X clients, and other additional features. |
#include <libwnck/libwnck.h> void wnck_gtk_window_set_dock_type (GtkWindow *window); enum WnckClientType; void wnck_set_client_type (WnckClientType ewmh_sourceindication_client_type); WnckResourceUsage; void wnck_xid_read_resource_usage (GdkDisplay *gdk_display, gulong xid, WnckResourceUsage *usage); void wnck_pid_read_resource_usage (GdkDisplay *gdk_display, gulong pid, WnckResourceUsage *usage);
These functions are utility functions providing some additional features to libwcnk users, like functions to read resource usage of X clients.
void wnck_gtk_window_set_dock_type (GtkWindow *window);
wnck_gtk_window_set_dock_type
is deprecated and should not be used in newly-written code. Use gdk_window_set_type_hint()
instead.
Sets the semantic type of window
to WNCK_WINDOW_DOCK
.
window : |
a GtkWindow .
|
typedef enum { WNCK_CLIENT_TYPE_APPLICATION = 1, WNCK_CLIENT_TYPE_PAGER = 2 } WnckClientType;
Type describing the role of the libwnck user.
WNCK_CLIENT_TYPE_APPLICATION |
the libwnck user is a normal application. |
WNCK_CLIENT_TYPE_PAGER |
the libwnck user is an utility application dealing with window management, like pagers and taskbars. |
Since 2.14
void wnck_set_client_type (WnckClientType ewmh_sourceindication_client_type);
Sets the role of the libwnck user. For applications providing some window
management features, like pagers or tasklists, it is important to set the
role to WNCK_CLIENT_TYPE_PAGER
for libwnck to properly work.
ewmh_sourceindication_client_type : |
a role for the client. |
Since 2.14
typedef struct { gulong total_bytes_estimate; gulong pixmap_bytes; unsigned int n_pixmaps; unsigned int n_windows; unsigned int n_gcs; unsigned int n_pictures; unsigned int n_glyphsets; unsigned int n_fonts; unsigned int n_colormap_entries; unsigned int n_passive_grabs; unsigned int n_cursors; unsigned int n_other; } WnckResourceUsage;
The WnckResourceUsage struct contains information about the total resource usage of an X client, and the number of resources allocated for each resource type.
gulong total_bytes_estimate ; |
estimation of the total number of bytes allocated in the X server. |
gulong pixmap_bytes ; |
number of bytes allocated in the X server for resources of type Pixmap. |
unsigned int n_pixmaps ; |
number of Pixmap resources allocated. |
unsigned int n_windows ; |
number of Window resources allocated. |
unsigned int n_gcs ; |
number of GContext resources allocated. |
unsigned int n_pictures ; |
number of Picture resources allocated. |
unsigned int n_glyphsets ; |
number of Glyphset resources allocated. |
unsigned int n_fonts ; |
number of Font resources allocated. |
unsigned int n_colormap_entries ; |
number of Colormap resources allocated. |
unsigned int n_passive_grabs ; |
number of PassiveGrab resources allocated. |
unsigned int n_cursors ; |
number of Cursor resources allocated. |
unsigned int n_other ; |
number of other resources allocated. |
Since 2.6
void wnck_xid_read_resource_usage (GdkDisplay *gdk_display, gulong xid, WnckResourceUsage *usage);
Looks for the X resource usage of the application owning the X window ID
xid
on display gdisplay
. If no resource usage can be found, then all
fields of usage
are set to 0.
To properly work, this function requires the XRes extension on the X server.
gdk_display : |
a GdkDisplay .
|
xid : |
an X window ID. |
usage : |
return location for the X resource usage of the application owning
the X window ID xid .
|
Since 2.6
void wnck_pid_read_resource_usage (GdkDisplay *gdk_display, gulong pid, WnckResourceUsage *usage);
Looks for the X resource usage of the application with process ID pid
on
display gdisplay
. If no resource usage can be found, then all fields of
usage
are set to 0.
In order to find the resource usage of an application that does not have an
X window visible to libwnck (panel applets do not have any toplevel windows,
for example), wnck_pid_read_resource_usage()
walks through the whole tree of
X windows. Since this walk is expensive in CPU, a cache is created. This
cache is updated in the background. This means there is a non-null
probability that no resource usage will be found for an application, even if
it is an X client. If this happens, calling wnck_pid_read_resource_usage()
again after a few seconds should work.
To properly work, this function requires the XRes extension on the X server.
gdk_display : |
a GdkDisplay .
|
pid : |
a process ID. |
usage : |
return location for the X resource usage of the application with
process ID pid .
|
Since 2.6