Provided by: libx11-doc_1.8.4-2_all
NAME
XkbComputeShapeBounds - Updates the bounding box of a shape
SYNOPSIS
Bool XkbComputeShapeBounds (XkbShapePtr shape);
ARGUMENTS
shape shape to be examined
DESCRIPTION
Xkb provides a number of convenience functions to help use a keyboard geometry. These include functions to return the bounding box of a shape's top surface and to update the bounding box of a shape row or section. A shape is made up of a number of outlines. Each outline is a polygon made up of a number of points. The bounding box of a shape is a rectangle that contains all the outlines of that shape. A ShapeRec contains a BoundsRec that describes the bounds of the shape. If you add or delete an outline to or from a shape, the bounding box must be updated. XkbComputeShapeBounds updates the BoundsRec contained in the shape by examining all the outlines of the shape and setting the BoundsRec to the minimum x and minimum y, and maximum x and maximum y values found in those outlines. XkbComputeShapeBounds returns False if shape is NULL or if there are no outlines for the shape; otherwise, it returns True. If you add or delete a key to or from a row, or if you update the shape of one of the keys in that row, you may need to update the bounding box of that row. To update the bounding box of a row, use XkbComputeRowBounds.
STRUCTURES
typedef struct _XkbShape { Atom name; /* shape's name */ unsigned short num_outlines; /* number of outlines for the shape */ unsigned short sz_outlines; /* size of the outlines array */ XkbOutlinePtr outlines; /* array of outlines for the shape */ XkbOutlinePtr approx; /* pointer into the array to the approximating outline */ XkbOutlinePtr primary; /* pointer into the array to the primary outline */ XkbBoundsRec bounds; /* bounding box for the shape; encompasses all outlines */ } XkbShapeRec, *XkbShapePtr; typedef struct _XkbBounds { short x1,y1; /* upper left corner of the bounds, in mm/10 */ short x2,y2; /* lower right corner of the bounds, in mm/10 */ } XkbBoundsRec, *XkbBoundsPtr;
SEE ALSO
XkbComputeRowBounds(3)