These are hints for the window manager that indicate what type of function
the window has. The window manager can use this when determining decoration
and behaviour of the window. The hint must be set before mapping the window.

See the extended window manager hints specification for more details about
window types.

Scroll both, pixels and children, by the given amount.
DrawWindow itself does not move. Portions of the window that the
scroll operation brings inm from offscreen areas are invalidated. The
invalidated region may be bigger than what would strictly be necessary. (For
X11, a minimum area will be invalidated if the window has no subwindows, or
if the edges of the window's parent do not extend beyond the edges of the
drawWindow. In other cases, a multi-step process is used to scroll the window
which may produce temporary visual artifacts and unnecessary invalidations.)

Raises DrawWindow to the top of the Z-order (stacking order), so that other
drawWindows with the same parent drawWindow appear below DrawWindow. This is true
whether or not the drawWindows are visible.

If DrawWindow is a toplevel, the window manager may choose to deny the
request to move the drawWindow in the Z-order, drawWindowRaise only requests the
restack, does not guarantee it.

Indicates that the backing store created by the most recent call to
drawWindowBeginPaintRegion should be copied onscreen and deleted, leaving the
next-most-recent backing store or no backing store at all as the active
paint region. See drawWindowBeginPaintRegion for full details. It is an error
to call this function without a matching drawWindowBeginPaintRegion first.

The areas in each expose
event will cover the entire update area for the window (see
drawWindowInvalidateRegion for details). Normally Gtk calls
drawWindowProcessUpdates on your behalf, so there's no need to call this
function unless you want to force expose events to be delivered immediately
and synchronously (vs. the usual case, where Gtk delivers them in an idle
handler). Occasionally this is useful to produce nicer scrolling behavior,
for example.

Sets the shape mask of DrawWindow to the union of shape masks for all
children of DrawWindow, ignoring the shape mask of DrawWindow itself. Contrast
with drawWindowMergeChildShapes which includes the shape mask of DrawWindow in
the masks to be merged.

Merges the shape masks for any child drawWindows into the shape mask for
DrawWindow. i.e. the union of all masks for DrawWindow and its children will
become the new mask for DrawWindow. See drawWindowShapeCombineMask.

This function is distinct from drawWindowSetChildShapes because it includes
DrawWindow's shape mask in the set of shapes to be merged.

Use cursorNewForDisplay or cursorNewFromPixmap to create the cursor.
To make the cursor invisible, use BlankCursor. Passing Nothing means
that the DrawWindow will use the cursor of its parent DrawWindow.
Most DrawWindow should use this default.