Provided by: libx11-doc_1.6.4-3ubuntu0.4_all bug

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)