Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

xkbaddgeomshape(3) [debian man page]

XkbAddGeomShape(3)						   XKB FUNCTIONS						XkbAddGeomShape(3)

NAME
XkbAddGeomShape - Add a shape to a keyboard geometry SYNOPSIS
XkbShapePtr XkbAddGeomShape (XkbGeometryPtr geom, Atom name, int sz_outlines); ARGUMENTS
- geom geometry to be updated - name name of the new shape - sz_outlines number of outlines to be reserved DESCRIPTION
Xkb provides functions to add a single new element to the top-level keyboard geometry. In each case the num_ * fields of the corresponding structure is incremented by 1. These functions do not change sz_* unless there is no more room in the array. Some of these functions fill in the values of the element's structure from the arguments. For other functions, you must explicitly write code to fill the structure's elements. The top-level geometry description includes a list of geometry properties. A geometry property associates an arbitrary string with an equally arbitrary name. Programs that display images of keyboards can use geometry properties as hints, but they are not interpreted by Xkb. No other geometry structures refer to geometry properties. A geometry contains an arbitrary number of shapes, each of which is made up of an arbitrary number of outlines. XkbAddGeomShape adds a shape to a geometry geom by allocating space for sz_outlines outlines for it and giving it the name specified by name. If a shape with name name already exists in the geometry, a pointer to the existing shape is returned. XkbAddGeomShape returns NULL if any of the parame- ters is empty or if it was not able to allocate space. To allocate space for an arbitrary number of geometry shapes, use XkbAllocGe- omShapes. 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; SEE ALSO
XkbAllocGeomShapes(3) X Version 11 libX11 1.5.0 XkbAddGeomShape(3)

Check Out this Related Man Page

XkbComputeShapeBounds(3)					   XKB FUNCTIONS					  XkbComputeShapeBounds(3)

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 rec- tangle 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) X Version 11 libX11 1.5.0 XkbComputeShapeBounds(3)
Man Page