diff options
Diffstat (limited to 'libX11/man/xkb/XkbAddGeomShape.man')
-rw-r--r-- | libX11/man/xkb/XkbAddGeomShape.man | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/libX11/man/xkb/XkbAddGeomShape.man b/libX11/man/xkb/XkbAddGeomShape.man new file mode 100644 index 000000000..8743aa537 --- /dev/null +++ b/libX11/man/xkb/XkbAddGeomShape.man @@ -0,0 +1,103 @@ +.\" Copyright (c) 1999 - Sun Microsystems, Inc. +.\" All rights reserved. +.\" +.\" Permission is hereby granted, free of charge, to any person obtaining a +.\" copy of this software and associated documentation files (the +.\" "Software"), to deal in the Software without restriction, including +.\" without limitation the rights to use, copy, modify, merge, publish, +.\" distribute, and/or sell copies of the Software, and to permit persons +.\" to whom the Software is furnished to do so, provided that the above +.\" copyright notice(s) and this permission notice appear in all copies of +.\" the Software and that both the above copyright notice(s) and this +.\" permission notice appear in supporting documentation. +.\" +.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL +.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING +.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, +.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION +.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +.\" +.\" Except as contained in this notice, the name of a copyright holder +.\" shall not be used in advertising or otherwise to promote the sale, use +.\" or other dealings in this Software without prior written authorization +.\" of the copyright holder. +.\" +.TH XkbAddGeomShape __libmansuffix__ __xorgversion__ "XKB FUNCTIONS" +.SH NAME +XkbAddGeomShape \- Add a shape to a keyboard geometry +.SH SYNOPSIS +.B XkbShapePtr XkbAddGeomShape +( +.I geom, +.I name, +.I sz_outlines +) +.br + XkbGeometryPtr \fIgeom\fP\^; +.br + Atom \fIname\fP\^; +.br + int \fIsz_outlines\fP\^; +.if n .ti +5n +.if t .ti +.5i +.SH ARGUMENTS +.TP +.I \- geom +geometry to be updated +.TP +.I \- name +name of the new shape +.TP +.I \- sz_outlines +number of outlines to be reserved +.SH DESCRIPTION +.LP +Xkb provides functions to add a single new element to the top-level keyboard geometry. In each case the +.I num_ * +fields of the corresponding structure is incremented by 1. These functions do not change +.I 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 +.I 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. +.I XkbAddGeomShape +adds a shape to a geometry +.I geom +by allocating space for +.I sz_outlines +outlines for it and giving it the name specified by +.I name. +If a shape with name +.I name +already exists in the geometry, a pointer to the existing shape is returned. +.I XkbAddGeomShape +returns NULL if any of the parameters is empty or if it was not able to allocate space. To allocate space for an arbitrary +number of geometry shapes, use +.I XkbAllocGeomShapes. +.SH STRUCTURES +.LP +.nf + + 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; + +.fi +.SH "SEE ALSO" +.BR XkbAllocGeomShapes (__libmansuffix__) |