aboutsummaryrefslogtreecommitdiff
path: root/libXt/specs/CH11
diff options
context:
space:
mode:
Diffstat (limited to 'libXt/specs/CH11')
-rw-r--r--libXt/specs/CH113566
1 files changed, 0 insertions, 3566 deletions
diff --git a/libXt/specs/CH11 b/libXt/specs/CH11
deleted file mode 100644
index 55b8d92f3..000000000
--- a/libXt/specs/CH11
+++ /dev/null
@@ -1,3566 +0,0 @@
-.\" $Xorg: CH11,v 1.3 2000/08/17 19:42:47 cpqbld Exp $
-.\" Copyright \(co 1985, 1986, 1987, 1988, 1991, 1994
-.\" X Consortium
-.\"
-.\" 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, sublicense, and/or sell copies of the Software, and to
-.\" permit persons to whom the Software is furnished to do so, subject to
-.\" the following conditions:
-.\"
-.\" The above copyright notice and this permission notice shall be included
-.\" in all copies or substantial portions of the Software.
-.\"
-.\" 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.
-.\" IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR
-.\" OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-.\" ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-.\" OTHER DEALINGS IN THE SOFTWARE.
-.\"
-.\" Except as contained in this notice, the name of the X Consortium shall
-.\" not be used in advertising or otherwise to promote the sale, use or
-.\" other dealings in this Software without prior written authorization
-.\" from the X Consortium.
-.\"
-.\" Copyright \(co 1985, 1986, 1987, 1988, 1991, 1994
-.\" Digital Equipment Corporation, Maynard, Massachusetts.
-.\"
-.\" Permission to use, copy, modify and distribute this documentation for any
-.\" purpose and without fee is hereby granted, provided that the above copyright
-.\" notice appears in all copies and that both that copyright notice and this
-.\" permission notice appear in supporting documentation, and that the name of
-.\" Digital not be used in in advertising or publicity pertaining
-.\" to distribution of the software without specific, written prior permission.
-.\" Digital makes no representations about the suitability of the
-.\" software described herein for any purpose.
-.\" It is provided ``as is'' without express or implied warranty.
-.\"
-\&
-.sp 1
-.ce 3
-\s+1\fBChapter 11\fP\s-1
-
-\s+1\fBUtility Functions\fP\s-1
-.sp 2
-.nr H1 11
-.nr H2 0
-.nr H3 0
-.nr H4 0
-.nr H5 0
-.LP
-.XS
-Chapter 11 \(em Utility Functions
-.XE
-The \*(xI provide a number of utility functions that you can use to
-.IP \(bu 5
-Determine the number of elements in an array.
-.IP \(bu 5
-Translate strings to widget instances.
-.IP \(bu 5
-Manage memory usage.
-.IP \(bu 5
-Share graphics contexts.
-.IP \(bu 5
-Manipulate selections.
-.IP \(bu 5
-Merge exposure events into a region.
-.IP \(bu 5
-Translate widget coordinates.
-.IP \(bu 5
-Locate a widget given a window id.
-.IP \(bu 5
-Handle errors.
-.IP \(bu 5
-Set the WM_COLORMAP_WINDOWS property.
-.IP \(bu 5
-Locate files by name with string substitutions.
-.IP \(bu 5
-Register callback functions for external agents.
-.IP \(bu 5
-Locate all the displays of an application context.
-
-.NH 2
-Determining the Number of Elements in an Array
-.XS
-\fB\*(SN Determining the Number of Elements in an Array\fP
-.XE
-.LP
-To determine the number of elements in a fixed-size array, use
-.PN XtNumber .
-.LP
-.IN "XtNumber" "" "@DEF@"
-.sM
-.FD 0
-Cardinal XtNumber(\fIarray\fP)
-.br
- \fIArrayType array\fP;
-.FN
-.IP \fIarray\fP 1i
-Specifies a fixed-size array of arbitrary type.
-.LP
-.eM
-The
-.PN XtNumber
-macro returns the number of elements allocated to the array.
-
-.NH 2
-Translating Strings to Widget Instances
-.XS
-\fB\*(SN Translating Strings to Widget Instances\fP
-.XE
-.LP
-To translate a widget name to a widget instance, use
-.PN XtNameToWidget .
-.LP
-.IN "XtNameToWidget" "" "@DEF@"
-.sM
-.FD 0
-Widget XtNameToWidget(\fIreference\fP, \fInames\fP)
-.br
- Widget \fIreference\fP;
-.br
- String \fInames\fP;
-.FN
-.IP \fIreference\fP 1i
-Specifies the widget from which the search is to start. \*(cI
-.IP \fInames\fP 1i
-Specifies the partially qualified name of the desired widget.
-.LP
-.eM
-The
-.PN XtNameToWidget
-function searches for a descendant of the \fIreference\fP
-widget whose name matches the specified names. The \fInames\fP parameter
-specifies a simple object name or a series of simple object name
-components separated by periods or asterisks.
-.PN XtNameToWidget
-returns the descendant with the shortest name matching the specification
-according to the following rules, where child is either a pop-up child
-or a normal child if the widget's class is a subclass of
-Composite :
-.IP \(bu 5
-Enumerate the object subtree rooted at the reference widget in
-breadth-first order, qualifying the name of each object with the
-names of all its ancestors up to, but not including, the reference
-widget. The ordering between children of a common parent is
-not defined.
-.IP \(bu 5
-Return the first object in the enumeration that matches the
-specified name, where each component of \fInames\fP matches exactly the
-corresponding component of the qualified object name and asterisk
-matches any series of components, including none.
-.IP \(bu 5
-If no match is found, return NULL.
-.LP
-Since breadth-first traversal is specified, the descendant with the
-shortest matching name (i.e., the fewest number of components), if any,
-will always be returned. However, since the order of enumeration of
-children is undefined and since the \*(xI do not require that all
-children of a widget have unique names,
-.PN XtNameToWidget
-may return any
-child that matches if there are multiple objects in the subtree with
-the same name. Consecutive separators (periods or asterisks)
-including at least one asterisk are treated as a single asterisk.
-Consecutive periods are treated as a single period.
-
-.NH 2
-Managing Memory Usage
-.XS
-\fB\*(SN Managing Memory Usage\fP
-.XE
-.LP
-The \*(xI memory management functions provide uniform checking for
-null pointers and error reporting on memory allocation errors.
-These functions are completely compatible with their standard C language
-runtime counterparts
-.PN malloc ,
-.PN calloc ,
-.PN realloc ,
-and
-.PN free
-with the following added functionality:
-.IP \(bu 5
-.PN XtMalloc ,
-.PN XtCalloc ,
-and
-.PN XtRealloc
-give an error if there is not enough memory.
-.IP \(bu 5
-.PN XtFree
-simply returns if passed a NULL pointer.
-.IP \(bu 5
-.PN XtRealloc
-simply allocates new storage if passed a NULL pointer.
-.LP
-See the standard C library documentation on
-.PN malloc ,
-.PN calloc ,
-.PN realloc ,
-and
-.PN free
-for more information.
-.sp
-.LP
-To allocate storage, use
-.PN XtMalloc .
-.LP
-.IN "XtMalloc" "" "@DEF@"
-.sM
-.FD 0
-char *XtMalloc(\fIsize\fP)
-.br
- Cardinal \fIsize\fP;
-.FN
-.IP \fIsize\fP 1i
-Specifies the number of bytes desired.
-.LP
-.eM
-The
-.PN XtMalloc
-function returns a pointer to a block of storage of at least
-the specified \fIsize\fP bytes.
-If there is insufficient memory to allocate the new block,
-.PN XtMalloc
-calls
-.PN XtErrorMsg .
-.sp
-.LP
-To allocate and initialize an array, use
-.PN XtCalloc .
-.LP
-.IN "XtCalloc" "" "@DEF@"
-.sM
-.FD 0
-char *XtCalloc(\fInum\fP, \fIsize\fP)
-.br
- Cardinal \fInum\fP;
-.br
- Cardinal \fIsize\fP;
-.FN
-.IP \fInum\fP 1i
-Specifies the number of array elements to allocate.
-.IP \fIsize\fP 1i
-Specifies the size of each array element in bytes.
-.LP
-.eM
-The
-.PN XtCalloc
-function allocates space for the specified number of array elements
-of the specified size and initializes the space to zero.
-If there is insufficient memory to allocate the new block,
-.PN XtCalloc
-calls
-.PN XtErrorMsg .
-.PN XtCalloc
-returns the address of the allocated storage.
-.sp
-.LP
-To change the size of an allocated block of storage, use
-.PN XtRealloc .
-.LP
-.IN "XtRealloc" "" "@DEF@"
-.sM
-.FD 0
-char *XtRealloc(\fIptr\fP, \fInum\fP)
-.br
- char *\fIptr\fP;
-.br
- Cardinal \fInum\fP;
-.FN
-.IP \fIptr\fP 1i
-Specifies a pointer to the old storage allocated with
-.PN XtMalloc ,
-.PN XtCalloc ,
-or
-.PN XtRealloc ,
-or NULL.
-.IP \fInum\fP 1i
-Specifies number of bytes desired in new storage.
-.LP
-.eM
-The
-.PN XtRealloc
-function changes the size of a block of storage, possibly moving it.
-Then it copies the old contents (or as much as will fit) into the new block
-and frees the old block.
-If there is insufficient memory to allocate the new block,
-.PN XtRealloc
-calls
-.PN XtErrorMsg .
-If \fIptr\fP is NULL,
-.PN XtRealloc
-simply calls
-.PN XtMalloc .
-.PN XtRealloc
-then returns the address of the new block.
-.sp
-.LP
-To free an allocated block of storage, use
-.PN XtFree .
-.LP
-.IN "XtFree" "" "@DEF@"
-.sM
-.FD 0
-void XtFree(\fIptr\fP)
-.br
- char *\fIptr\fP;
-.FN
-.IP \fIptr\fP 1i
-Specifies a pointer to a block of storage allocated with
-.PN XtMalloc ,
-.PN XtCalloc ,
-or
-.PN XtRealloc ,
-or NULL.
-.LP
-.eM
-The
-.PN XtFree
-function returns storage, allowing it to be reused.
-If \fIptr\fP is NULL,
-.PN XtFree
-returns immediately.
-.sp
-.LP
-To allocate storage for a new instance of a type, use
-.PN XtNew .
-.LP
-.IN "XtNew" "" "@DEF@"
-.sM
-.FD 0
-\fItype\fP *XtNew(\fItype\fP)
-.br
- \fItype t\fP;
-.FN
-.IP \fItype\fP 1i
-Specifies a previously declared type.
-.LP
-.eM
-.PN XtNew
-returns a pointer to the allocated storage.
-If there is insufficient memory to allocate the new block,
-.PN XtNew
-calls
-.PN XtErrorMsg .
-.PN XtNew
-is a convenience macro that calls
-.PN XtMalloc
-with the following arguments specified:
-.LP
-.Ds
-.TA .5i
-.ta .5i
-((type *) XtMalloc((unsigned) sizeof(type)))
-.De
-.LP
-The storage allocated by
-.PN XtNew
-should be freed using
-.PN XtFree .
-.sp
-.LP
-To copy an instance of a string, use
-.PN XtNewString .
-.LP
-.IN "XtNewString" "" "@DEF@"
-.sM
-.FD 0
-String XtNewString(\fIstring\fP)
-.br
- String \fIstring\fP;
-.FN
-.IP \fIstring\fP 1i
-Specifies a previously declared string.
-.LP
-.eM
-.PN XtNewString
-returns a pointer to the allocated storage.
-If there is insufficient memory to allocate the new block,
-.PN XtNewString
-calls
-.PN XtErrorMsg .
-.PN XtNewString
-is a convenience macro that calls
-.PN XtMalloc
-with the following arguments specified:
-.LP
-.Ds
-.TA .5i
-.ta .5i
-(strcpy(XtMalloc((unsigned)strlen(str) + 1), str))
-.De
-.LP
-The storage allocated by
-.PN XtNewString
-should be freed using
-.PN XtFree .
-
-.NH 2
-Sharing Graphics Contexts
-.XS
-\fB\*(SN Sharing Graphics Contexts\fP
-.XE
-.LP
-The \*(xI provide a mechanism whereby cooperating objects can share a
-graphics context (GC), thereby reducing both the number of GCs
-created and the total number of server calls in any given application.
-The mechanism is a simple caching scheme
-and allows for clients to declare both modifiable and nonmodifiable
-fields of the shared GCs.
-.LP
-To obtain a shareable GC with modifiable fields, use
-.PN XtAllocateGC .
-.LP
-.IN "XtAllocateGC" "" "@DEF@"
-.sM
-.FD 0
-GC XtAllocateGC(\fIwidget\fP, \fIdepth\fP, \fIvalue_mask\fP, \fIvalues\fP, \
-\fIdynamic_mask\fP, \fIunused_mask\fP)
-.br
- Widget \fIobject\fP;
-.br
- Cardinal \fIdepth\fP;
-.br
- XtGCMask \fIvalue_mask\fP;
-.br
- XGCValues *\fIvalues\fP;
-.br
- XtGCMask \fIdynamic_mask\fP;
-.br
- XtGCMask \fIunused_mask\fP;
-.FN
-.IP \fIobject\fP 1i
-Specifies an object, giving the screen for which the
-returned GC is valid. \*(oI
-.IP \fIdepth\fP 1i
-Specifies the depth for which the returned GC is valid, or 0.
-.IP \fIvalue_mask\fP 1i
-Specifies fields of the GC that are initialized from \fIvalues\fP.
-.IP \fIvalues\fP 1i
-Specifies the values for the initialized fields.
-.IP \fIdynamic_mask\fP 1i
-Specifies fields of the GC that will be modified by the caller.
-.IP \fIunused_mask\fP 1i
-Specifies fields of the GC that will not be needed by the caller.
-.LP
-.eM
-The
-.PN XtAllocateGC
-function returns a shareable GC that may be
-modified by the client. The \fIscreen\fP field of the specified
-widget or of the nearest widget ancestor of the specified
-object and the specified \fIdepth\fP argument supply
-the root and drawable depths for which the GC is to be
-valid. If \fIdepth\fP is zero, the depth is taken from the
-\fIdepth\fP field of the specified widget or of the nearest
-widget ancestor of the specified object.
-.LP
-The \fIvalue_mask\fP argument specifies fields of the GC
-that are initialized with the respective member of the
-\fIvalues\fP structure. The \fIdynamic_mask\fP argument specifies fields
-that the caller intends to modify during program execution.
-The caller must ensure that the corresponding GC field is set
-prior to each use of the GC. The \fIunused_mask\fP argument
-specifies fields of the GC that are of no interest to the
-caller. The caller may make no assumptions about the contents
-of any fields specified in \fIunused_mask\fP. The caller may assume
-that at all times all fields not specified in either
-\fIdynamic_mask\fP or \fIunused_mask\fP have their default value if not
-specified in \fIvalue_mask\fP or the value specified by \fIvalues\fP.
-If a field is specified in both \fIvalue_mask\fP and \fIdynamic_mask\fP,
-the effect is as if it were specified only in \fIdynamic_mask\fP
-and then immediately set to the value in \fIvalues\fP. If a field
-is set in \fIunused_mask\fP and also in either \fIvalue_mask\fP or
-\fIdynamic_mask\fP, the specification in \fIunused_mask\fP is ignored.
-.LP
-.PN XtAllocateGC
-tries to minimize the number of unique GCs
-created by comparing the arguments with those of previous
-calls and returning an existing GC when there are no
-conflicts.
-.PN XtAllocateGC
-may modify and return an existing GC if it was allocated with a
-nonzero \fIunused_mask\fP.
-.sp
-.LP
-To obtain a shareable GC with no modifiable fields, use
-.PN XtGetGC .
-.LP
-.IN "XtGetGC" "" "@DEF@"
-.sM
-.FD 0
-GC XtGetGC(\fIobject\fP, \fIvalue_mask\fP, \fIvalues\fP)
-.br
- Widget \fIobject\fP;
-.br
- XtGCMask \fIvalue_mask\fP;
-.br
- XGCValues *\fIvalues\fP;
-.FN
-.IP \fIobject\fP 1i
-Specifies an object, giving the screen and depth for which the
-returned GC is valid. \*(oI
-.IP \fIvalue_mask\fP 1i
-Specifies which fields of the \fIvalues\fP structure are specified.
-.IP \fIvalues\fP 1i
-Specifies the actual values for this GC.
-.LP
-.eM
-The
-.PN XtGetGC
-function returns a shareable, read-only GC.
-The parameters to this function are the same as those for
-.PN XCreateGC
-except that an Object is passed instead of a Display.
-.PN XtGetGC
-is equivalent to
-.PN XtAllocateGC
-with \fIdepth\fP, \fIdynamic_mask\fP, and \fIunused_mask\fP all zero.
-.LP
-.PN XtGetGC
-shares only GCs in which all values in the GC returned by
-.PN XCreateGC
-are the same.
-In particular, it does not use the \fIvalue_mask\fP provided to
-determine which fields of the GC a widget considers relevant.
-The \fIvalue_mask\fP is used only to tell the server which fields should be
-filled in from \fIvalues\fP and which it should fill in with default values.
-.sp
-.LP
-To deallocate a shared GC when it is no longer needed, use
-.PN XtReleaseGC .
-.LP
-.IN "XtReleaseGC" "" "@DEF@"
-.sM
-.FD 0
-void XtReleaseGC(\fIobject\fP, \fIgc\fP)
-.br
- Widget \fIobject\fP;
-.br
- GC \fIgc\fP;
-.FN
-.IP \fIobject\fP 1i
-Specifies any object on the Display for which the GC was created. \*(oI
-.IP \fIgc\fP 1i
-Specifies the shared GC obtained with either
-.PN XtAllocateGC
-or
-.PN XtGetGC .
-.LP
-.eM
-References to shareable GCs are counted and a free request is generated to the
-server when the last user of a given GC releases it.
-
-.NH 2
-Managing Selections
-.XS
-\*(SN Managing Selections
-.XE
-.LP
-Arbitrary widgets in multiple applications can communicate
-with each other by means of the \*(xI global selection mechanism,
-which conforms to the specifications in the \fI\*(xC\fP.
-The \*(xI supply functions for providing and receiving selection data in
-one logical piece (atomic transfers)
-or in smaller logical segments (incremental transfers).
-.LP
-The incremental interface is provided for a selection owner or
-selection requestor that cannot or prefers not to pass the selection
-value to and from the \*(xI in a single call. For instance,
-either an application that is running on a machine with limited memory
-may not be able to store the entire selection value in memory or a
-selection owner may already have the selection value available in
-discrete chunks, and it would be more efficient not to have to
-allocate additional storage to copy the pieces contiguously. Any
-owner or requestor that prefers to deal with the selection value in
-segments can use the incremental interfaces to do so.
-The transfer between the selection owner or requestor and the \*(xI is not
-required to match the underlying
-transport protocol between the application and the X server;
-the \*(xI will break too large a selection
-into smaller pieces for transport if necessary
-and will coalesce a selection transmitted incrementally if the value
-was requested atomically.
-
-.NH 3
-Setting and Getting the Selection Timeout Value
-.XS
-\fB\*(SN Setting and Getting the Selection Timeout Value\fP
-.XE
-.LP
-To set the \*(xI selection timeout, use
-.PN XtAppSetSelectionTimeout .
-.LP
-.IN "XtAppSetSelectionTimeout" "" "@DEF@"
-.sM
-.FD 0
-void XtAppSetSelectionTimeout(\fIapp_context\fP, \fItimeout\fP)
-.br
- XtAppContext \fIapp_context\fP;
-.br
- unsigned long \fItimeout\fP;
-.FN
-.IP \fIapp_context\fP 1i
-Specifies the application context.
-.IP \fItimeout\fP 1i
-Specifies the selection timeout in milliseconds.
-.eM
-.LP
-To get the current selection timeout value, use
-.PN XtAppGetSelectionTimeout .
-.LP
-.IN "XtAppGetSelectionTimeout" "" "@DEF@"
-.sM
-.FD 0
-unsigned long XtAppGetSelectionTimeout(\fIapp_context\fP)
-.br
- XtAppContext \fIapp_context\fP;
-.FN
-.IP \fIapp_context\fP 1i
-Specifies the application context.
-.LP
-.eM
-The
-.PN XtAppGetSelectionTimeout
-function returns the current selection timeout value in milliseconds.
-The selection timeout is the time within which the two communicating
-applications must respond to one another.
-The initial timeout value is set by the
-selectionTimeout
-.IN "selectionTimeout"
-application resource as retrieved by
-.PN XtDisplayInitialize .
-If
-selectionTimeout
-is not specified,
-the default is five seconds.
-
-.NH 3
-Using Atomic Transfers
-.XS
-\*(SN Using Atomic Transfers
-.XE
-.LP
-When using atomic transfers, the owner will completely
-process one selection request at a time.
-The owner may consider each request individually,
-since there is no possibility for overlap
-between evaluation of two requests.
-
-.NH 4
-Atomic Transfer Procedures
-.XS
-\*(SN Atomic Transfer Procedures
-.XE
-.IN "Selections" "atomic"
-.LP
-The following procedures are used by the selection owner when
-providing selection data in a single unit.
-.LP
-The procedure pointer specified by the owner to supply the selection
-data to the \*(xI is of type
-.PN XtConvertSelectionProc .
-.LP
-.IN "XtConvertSelectionProc" "" "@DEF@"
-.sM
-.FD 0
-typedef Boolean (*XtConvertSelectionProc)(Widget, Atom*, Atom*, Atom*,
-.br
- XtPointer*, unsigned long*, int*);
-.br
- Widget \fIw\fP;
-.br
- Atom *\fIselection\fP;
-.br
- Atom *\fItarget\fP;
-.br
- Atom *\fItype_return\fP;
-.br
- XtPointer *\fIvalue_return\fP;
-.br
- unsigned long *\fIlength_return\fP;
-.br
- int *\fIformat_return\fP;
-.FN
-.IP \fIw\fP 1i
-Specifies the widget that currently owns this selection.
-.IP \fIselection\fP 1i
-Specifies the atom naming the selection requested
-(for example,
-.PN XA_PRIMARY
-or
-.PN XA_SECONDARY ).
-.IP \fItarget\fP 1i
-Specifies the target type of the selection that has been requested,
-which indicates the desired information about the selection
-(for example, File Name, Text, Window).
-.IP \fItype_return\fP 1i
-Specifies a pointer to an atom into which the property type of the
-converted value of the selection is to be stored.
-For instance, either File Name or Text might have property type
-.PN XA_STRING .
-.IP \fIvalue_return\fP 1i
-Specifies a pointer into which a pointer to the converted value of the
-selection is to be stored.
-The selection owner is responsible for allocating this storage.
-If the selection owner has provided an
-.PN XtSelectionDoneProc
-for the selection,
-this storage is owned by the selection owner;
-otherwise, it is owned by the \*(xI selection mechanism,
-which frees it by calling
-.PN XtFree
-when it is done with it.
-.IP \fIlength_return\fP 1i
-Specifies a pointer into which the number of elements in \fIvalue_return\fP,
-each of size indicated by \fIformat_return\fP, is to be stored.
-.IP \fIformat_return\fP 1i
-Specifies a pointer into which the size in bits of the data elements
-of the selection value is to be stored.
-.LP
-.eM
-This procedure is called by the \*(xI selection mechanism
-to get the value of a selection as a given type
-from the current selection owner.
-It returns
-.PN True
-if the owner successfully converted the selection to the target type or
-.PN False
-otherwise.
-If the procedure returns
-.PN False ,
-the values of the return arguments are undefined.
-Each
-.PN XtConvertSelectionProc
-should respond to target value
-.PN TARGETS
-by returning a value containing the list of the targets
-into which it is
-prepared to convert the selection.
-The value returned in
-\fIformat_return\fP must be one of 8, 16, or 32 to allow the server to
-byte-swap the data if necessary.
-.LP
-.IN "Selections" "MULTIPLE"
-.IN "Selections" "TIMESTAMP"
-This procedure does not need to worry about responding to the
-MULTIPLE or the TIMESTAMP target values (see Section 2.6.2 in the \fI\*(xC\fP).
-A selection request with
-the MULTIPLE target type is transparently transformed into a
-series of calls to this procedure, one for each target type, and a
-selection request with the TIMESTAMP target value is answered
-automatically by the \*(xI using the time specified in the
-call to
-.PN XtOwnSelection
-or
-.PN XtOwnSelectionIncremental .
-.sp
-.LP
-To retrieve the
-.PN SelectionRequest
-event that triggered the
-.PN XtConvertSelectionProc
-procedure, use
-.PN XtGetSelectionRequest .
-.LP
-.IN "XtGetSelectionRequest" "" "@DEF@"
-.sM
-.FD 0
-XSelectionRequestEvent *XtGetSelectionRequest(\fIw\fP, \fIselection\fP, \
-\fIrequest_id\fP)
-.br
- Widget \fIw\fP;
-.br
- Atom \fIselection\fP;
-.br
- XtRequestId \fIrequest_id\fP;
-.FN
-.IP \fIw\fP 1i
-Specifies the widget that currently owns this selection. \*(cI
-.IP \fIselection\fP 1i
-Specifies the selection being processed.
-.IP \fIrequest_id\fP 1i
-Specifies the requestor id in the case of incremental
-selections, or NULL in the case of atomic transfers.
-.LP
-.eM
-.PN XtGetSelectionRequest
-may be called only from within an
-.PN XtConvertSelectionProc
-procedure and returns a pointer to the
-.PN SelectionRequest
-event that caused the conversion procedure to be invoked.
-\fIRequest_id\fP specifies a unique id for the individual request in the
-case that multiple incremental transfers are outstanding. For atomic
-transfers, \fIrequest_id\fP must be specified as NULL. If no
-.PN SelectionRequest
-event is being processed for the specified
-\fIwidget\fP, \fIselection\fP, and \fIrequest_id\fP,
-.PN XtGetSelectionRequest
-returns NULL.
-.sp
-.LP
-The procedure pointer specified by the owner when it desires
-notification upon losing ownership is of type
-.PN XtLoseSelectionProc .
-.LP
-.IN "XtLoseSelectionProc" "" "@DEF@"
-.sM
-.FD 0
-typedef void (*XtLoseSelectionProc)(Widget, Atom*);
-.br
- Widget \fIw\fP;
-.br
- Atom *\fIselection\fP;
-.FN
-.IP \fIw\fP 1i
-Specifies the widget that has lost selection ownership.
-.IP \fIselection\fP 1i
-Specifies the atom naming the selection.
-.LP
-.eM
-This procedure is called by the \*(xI selection mechanism
-to inform the specified widget that it has lost the given selection.
-Note that this procedure does not ask the widget to relinquish the
-selection ownership; it is merely informative.
-.sp
-.LP
-The procedure pointer specified by the owner when it desires
-notification of receipt of the data or when it manages the storage
-containing the data is of type
-.PN XtSelectionDoneProc .
-.LP
-.IN "XtSelectionDoneProc" "" "@DEF@"
-.sM
-.FD 0
-typedef void (*XtSelectionDoneProc)(Widget, Atom*, Atom*);
-.br
- Widget \fIw\fP;
-.br
- Atom *\fIselection\fP;
-.br
- Atom *\fItarget\fP;
-.FN
-.IP \fIw\fP 1i
-Specifies the widget that owns the converted selection.
-.IP \fIselection\fP 1i
-Specifies the atom naming the selection that was converted.
-.IP \fItarget\fP 1i
-Specifies the target type to which the conversion was done.
-.LP
-.eM
-This procedure is called by the \*(xI selection mechanism
-to inform the selection owner that a selection requestor has successfully
-retrieved a selection value.
-If the selection owner has registered an
-.PN XtSelectionDoneProc ,
-it should expect it to be called once for each conversion that it performs,
-after the converted value has been successfully transferred
-to the requestor.
-If the selection owner has registered an
-.PN XtSelectionDoneProc ,
-it also owns the storage containing the converted
-selection value.
-
-.NH 4
-Getting the Selection Value
-.XS
-\*(SN Getting the Selection Value
-.XE
-.LP
-The procedure pointer specified by the requestor to receive the
-selection data from the \*(xI is of type
-.PN XtSelectionCallbackProc .
-.LP
-.IN "XtSelectionCallbackProc" "" "@DEF@"
-.sM
-.FD 0
-typedef void (*XtSelectionCallbackProc)(Widget, XtPointer, Atom*, Atom*, \
-XtPointer, unsigned long*, int*);
-.br
- Widget \fIw\fP;
-.br
- XtPointer \fIclient_data\fP;
-.br
- Atom *\fIselection\fP;
-.br
- Atom *\fItype\fP;
-.br
- XtPointer \fIvalue\fP;
-.br
- unsigned long *\fIlength\fP;
-.br
- int *\fIformat\fP;
-.FN
-.IP \fIw\fP 1i
-Specifies the widget that requested the selection value.
-.IP \fIclient_data\fP 1i
-Specifies a value passed in by the widget when it requested the
-selection.
-.IP \fIselection\fP 1i
-Specifies the name of the selection that was requested.
-.IP \fItype\fP 1i
-Specifies the representation type of the selection value (for example,
-.PN XA_STRING ).
-Note that it is not the target that was requested (which the client
-must remember for itself), but the type that
-is used to represent the target.
-The special symbolic constant
-.PN XT_CONVERT_FAIL
-is used to indicate that the selection conversion failed because the
-selection owner did not respond within the \*(xI selection timeout
-interval.
-.IP \fIvalue\fP 1i
-Specifies a pointer to the selection value.
-The requesting client owns this storage and is responsible for freeing it
-by calling
-.PN XtFree
-when it is done with it.
-.IP \fIlength\fP 1i
-Specifies the number of elements in \fIvalue\fP.
-.IP \fIformat\fP 1i
-Specifies the size in bits of the data in each element of \fIvalue\fP.
-.LP
-.eM
-This procedure is called by the \*(xI selection mechanism to deliver the
-requested selection to the requestor.
-.LP
-If the
-.PN SelectionNotify
-event returns a property of
-.PN None ,
-meaning the conversion has been refused because there is no owner for the
-specified selection or the owner cannot convert the selection to the
-requested target for any reason, the procedure is called with a value
-of NULL and a length of zero.
-.sp
-.LP
-To obtain the selection value in a single logical unit, use
-.PN XtGetSelectionValue
-or
-.PN XtGetSelectionValues .
-.LP
-.IN "XtGetSelectionValue" "" "@DEF@"
-.sM
-.FD 0
-void XtGetSelectionValue(\fIw\fP, \fIselection\fP, \fItarget\fP, \
-\fIcallback\fP, \fIclient_data\fP, \fItime\fP)
-.br
- Widget \fIw\fP;
-.br
- Atom \fIselection\fP;
-.br
- Atom \fItarget\fP;
-.br
- XtSelectionCallbackProc \fIcallback\fP;
-.br
- XtPointer \fIclient_data\fP;
-.br
- Time \fItime\fP;
-.FN
-.IP \fIw\fP 1i
-Specifies the widget making the request. \*(cI
-.IP \fIselection\fP 1i
-Specifies the particular selection desired; for example,
-.PN XA_PRIMARY .
-.IP \fItarget\fP 1i
-Specifies the type of information needed about the selection.
-.IP \fIcallback\fP 1i
-Specifies the procedure to be called when the selection value
-has been obtained.
-Note that this is how the selection value is communicated back to the client.
-.IP \fIclient_data\fP 1i
-Specifies additional data to be passed to the specified procedure
-when it is called.
-.IP \fItime\fP 1i
-Specifies the timestamp that indicates when the selection request was
-initiated.
-This should be the timestamp of the event that triggered this request;
-the value
-.PN CurrentTime
-is not acceptable.
-.LP
-.eM
-The
-.PN XtGetSelectionValue
-function requests the value of the selection converted to
-the target type.
-The specified callback is called at some time after
-.PN XtGetSelectionValue
-is called, when the selection value is received from the X server.
-It may be called before or after
-.PN XtGetSelectionValue
-returns.
-For more information about \fIselection\fP, \fItarget\fP, and
-\fItime\fP, see Section 2.6 in the \fI\*(xC\fP.
-.sp
-.LP
-.IN "XtGetSelectionValues" "" "@DEF@"
-.sM
-.FD 0
-void XtGetSelectionValues(\fIw\fP, \fIselection\fP, \fItargets\fP, \
-\fIcount\fP, \fIcallback\fP, \fIclient_data\fP, \fItime\fP)
-.br
- Widget \fIw\fP;
-.br
- Atom \fIselection\fP;
-.br
- Atom *\fItargets\fP;
-.br
- int \fIcount\fP;
-.br
- XtSelectionCallbackProc \fIcallback\fP;
-.br
- XtPointer *\fIclient_data\fP;
-.br
- Time \fItime\fP;
-.FN
-.IP \fIw\fP 1i
-Specifies the widget making the request. \*(cI
-.IP \fIselection\fP 1i
-Specifies the particular selection desired (that is, primary or secondary).
-.IP \fItargets\fP 1i
-Specifies the types of information needed about the selection.
-.IP \fIcount\fP 1i
-Specifies the length of the \fItargets\fP and \fIclient_data\fP lists.
-.IP \fIcallback\fP 1i
-Specifies the callback procedure
-to be called with each selection value obtained.
-Note that this is how the selection values are communicated back to the
-client.
-.IP \fIclient_data\fP 1i
-Specifies a list of additional data values, one for each target type,
-that are passed to the callback procedure when it is called for that target.
-.IP \fItime\fP 1i
-Specifies the timestamp that indicates when the selection request was
-initiated.
-This should be the timestamp of the event that triggered this request;
-the value
-.PN CurrentTime
-is not acceptable.
-.LP
-.eM
-The
-.PN XtGetSelectionValues
-function is similar to multiple calls to
-.PN XtGetSelectionValue
-except that it guarantees that no other client can assert ownership
-between requests and therefore that all the conversions will refer to
-the same selection value. The callback is invoked once for each
-target value with the corresponding client data.
-For more information about \fIselection\fP, \fItarget\fP, and
-\fItime\fP, see Section 2.6 in the \fI\*(xC\fP.
-
-.NH 4
-Setting the Selection Owner
-.XS
-\*(SN Setting the Selection Owner
-.XE
-.LP
-To set the selection owner and indicate that the selection value will
-be provided in one piece, use
-.PN XtOwnSelection .
-.LP
-.IN "XtOwnSelection" "" "@DEF@"
-.sM
-.FD 0
-Boolean XtOwnSelection(\fIw\fP, \fIselection\fP, \fItime\fP, \
-\fIconvert_proc\fP, \fIlose_selection\fP, \fIdone_proc\fP)
-.br
- Widget \fIw\fP;
-.br
- Atom \fIselection\fP;
-.br
- Time \fItime\fP;
-.br
- XtConvertSelectionProc \fIconvert_proc\fP;
-.br
- XtLoseSelectionProc \fIlose_selection\fP;
-.br
- XtSelectionDoneProc \fIdone_proc\fP;
-.FN
-.IP \fIw\fP 1i
-Specifies the widget that wishes to become the owner. \*(cI
-.IP \fIselection\fP 1i
-Specifies the name of the selection (for example,
-.PN XA_PRIMARY ).
-.IP \fItime\fP 1i
-Specifies the timestamp that indicates when the ownership request was
-initiated.
-This should be the timestamp of the event that triggered ownership;
-the value
-.PN CurrentTime
-is not acceptable.
-.IP \fIconvert_proc\fP 1i
-Specifies the procedure to be called whenever a client requests the
-current value of the selection.
-.IP \fIlose_selection\fP 1i
-Specifies the procedure to be called whenever the widget has
-lost selection ownership, or NULL if the owner is not interested in being
-called back.
-.IP \fIdone_proc\fP 1i
-Specifies the procedure called
-after the requestor has received the selection value, or NULL if the
-owner is not
-interested in being called back.
-.LP
-.eM
-The
-.PN XtOwnSelection
-function informs the \*(xI selection mechanism that a
-widget wishes to own a selection.
-It returns
-.PN True
-if the widget successfully becomes the owner and
-.PN False
-otherwise.
-The widget may fail to become the owner if some other widget
-has asserted ownership at a time later than this widget.
-The widget can lose selection ownership either
-because some other widget asserted later ownership of the selection
-or because the widget voluntarily gave up ownership of the selection.
-The lose_selection procedure is not called
-if the widget fails to obtain selection ownership in the first place.
-.LP
-If a done_proc is specified, the client owns the storage allocated
-for passing the value to the \*(xI. If \fIdone_proc\fP is NULL,
-the convert_proc must allocate storage using
-.PN XtMalloc ,
-.PN XtRealloc ,
-or
-.PN XtCalloc ,
-and the value specified is freed by the
-\*(xI when the transfer is complete.
-.sp
-.LP
-Usually, a selection owner maintains ownership indefinitely until some
-other widget requests ownership, at which time
-the \*(xI selection mechanism informs the previous owner that it
-has lost ownership of the selection.
-However, in response to some user actions
-(for example, when a user deletes the information selected),
-the application may wish to explicitly inform the \*(xI
-by using
-.PN XtDisownSelection
-that it no longer is to be the selection owner.
-.LP
-.IN "XtDisownSelection" "" "@DEF@"
-.sM
-.FD 0
-void XtDisownSelection(\fIw\fP, \fIselection\fP, \fItime\fP)
-.br
- Widget \fIw\fP;
-.br
- Atom \fIselection\fP;
-.br
- Time \fItime\fP;
-.FN
-.IP \fIw\fP 1i
-Specifies the widget that wishes to relinquish ownership.
-.IP \fIselection\fP 1i
-Specifies the atom naming the selection being given up.
-.IP \fItime\fP 1i
-Specifies the timestamp that indicates when the request to
-relinquish selection ownership was initiated.
-.LP
-.eM
-The
-.PN XtDisownSelection
-function informs the \*(xI selection mechanism that
-the specified widget is to lose ownership of the selection.
-If the widget does not currently own the selection, either
-because it lost the selection
-or because it never had the selection to begin with,
-.PN XtDisownSelection
-does nothing.
-.LP
-After a widget has called
-.PN XtDisownSelection ,
-its convert procedure is not called even if a request arrives later
-with a timestamp during the period that this widget owned the selection.
-However, its done procedure is called if a conversion that started
-before the call to
-.PN XtDisownSelection
-finishes after the call to
-.PN XtDisownSelection .
-
-.NH 3
-Using Incremental Transfers
-.XS
-\*(SN Using Incremental Transfers
-.XE
-.LP
-When using the incremental interface, an owner may have to process
-more than one selection request for the same selection, converted to
-the same target, at the same time. The incremental functions take a
-\fIrequest_id\fP argument, which is an identifier that is guaranteed to be
-unique among all incremental requests that are active concurrently.
-.LP
-For example, consider the following:
-.IP \(bu 5
-Upon receiving a request for the selection value, the owner sends
-the first segment.
-.IP \(bu 5
-While waiting to be called to provide the next segment value but
-before sending it, the owner receives another request from a
-different requestor for the same selection value.
-.IP \(bu 5
-To distinguish between the requests, the owner uses the request_id
-value. This allows the owner to distinguish between the first
-requestor, which is asking for the second segment, and the second
-requestor, which is asking for the first segment.
-
-.NH 4
-Incremental Transfer Procedures
-.XS
-\*(SN Incremental Transfer Procedures
-.XE
-.IN "Selections" "incremental"
-.LP
-The following procedures are used by selection owners who wish to
-provide the selection data in multiple segments.
-.LP
-The procedure pointer specified by the incremental owner to supply the
-selection data to the \*(xI is of type
-.PN XtConvertSelectionIncrProc .
-.LP
-.sM
-.Ds 0
-typedef XtPointer XtRequestId;
-.De
-.IN "XtRequestId" "" "@DEF@"
-.IN "XtConvertSelectionIncrProc" "" "@DEF@"
-.FD 0
-typedef Boolean (*XtConvertSelectionIncrProc)(Widget, Atom*, Atom*, \
-Atom*, XtPointer*,
- unsigned long*, int*, unsigned long*, \
-XtPointer, XtRequestId*);
-.br
- Widget \fIw\fP;
-.br
- Atom *\fIselection\fP;
-.br
- Atom *\fItarget\fP;
-.br
- Atom *\fItype_return\fP;
-.br
- XtPointer *\fIvalue_return\fP;
-.br
- unsigned long *\fIlength_return\fP;
-.br
- int *\fIformat_return\fP;
-.br
- unsigned long *\fImax_length\fP;
-.br
- XtPointer \fIclient_data\fP;
-.br
- XtRequestId *\fIrequest_id\fP;
-.FN
-.IP \fIw\fP 1i
-Specifies the widget that currently owns this selection.
-.IP \fIselection\fP 1i
-Specifies the atom that names the selection requested.
-.IP \fItarget\fP 1i
-Specifies the type of information required about the selection.
-.IP \fItype_return\fP 1i
-Specifies a pointer to an atom into which the property
-type of the converted value of the selection is to be
-stored.
-.IP \fIvalue_return\fP 1i
-Specifies a pointer into which a pointer to the
-converted value of the selection is to be stored.
-The selection owner is responsible for allocating this storage.
-.IP \fIlength_return\fP 1i
-Specifies a pointer into which the number of elements
-in \fIvalue_return\fP, each of size indicated by
-\fIformat_return\fP, is to be stored.
-.IP \fIformat_return\fP 1i
-Specifies a pointer into which the size in bits of the
-data elements of the selection value is to be stored so that the
-server may byte-swap the data if necessary.
-.IP \fImax_length\fP 1i
-Specifies the maximum number of bytes which may be
-transferred at any one time.
-.IP \fIclient_data\fP 1i
-Specifies the value passed in by the widget when it
-took ownership of the selection.
-.IP \fIrequest_id\fP 1i
-Specifies an opaque identification for a specific request.
-.LP
-.eM
-This procedure is called repeatedly by the \*(xI selection mechanism to get
-the next incremental chunk of data from a selection owner who has
-called
-.PN XtOwnSelectionIncremental .
-It must return
-.PN True
-if the procedure has succeeded in converting the selection data or
-.PN False
-otherwise.
-On the first call with a particular request id, the owner must begin
-a new incremental transfer for the requested selection and target. On
-subsequent calls with the same request id, the owner may assume that
-the previously supplied value is no longer needed by the \*(xI;
-that is, a fixed transfer area may be allocated and returned in \fIvalue_return\fP
-for each segment to be transferred. This procedure should store a
-non-NULL value in \fIvalue_return\fP and zero in \fIlength_return\fP to indicate that the
-entire selection has been delivered. After returning this final
-segment, the request id may be reused by the \*(xI to begin a
-new transfer.
-.LP
-To retrieve the
-.PN SelectionRequest
-event that triggered the selection conversion procedure, use
-.PN XtGetSelectionRequest ,
-described in Section 11.5.2.1.
-.sp
-.LP
-The procedure pointer specified by the incremental selection owner
-when it desires notification upon no longer having ownership is of
-type
-.PN XtLoseSelectionIncrProc .
-.LP
-.IN "XtLoseSelectionIncrProc" "" "@DEF@"
-.sM
-.FD 0
-typedef void (*XtLoseSelectionIncrProc)(Widget, Atom*, XtPointer);
-.br
- Widget \fIw\fP;
-.br
- Atom *\fIselection\fP;
-.br
- XtPointer \fIclient_data\fP;
-.FN
-.IP \fIw\fP 1i
-Specifies the widget that has lost the selection ownership.
-.IP \fIselection\fP 1i
-Specifies the atom that names the selection.
-.IP \fIclient_data\fP 1i
-Specifies the value passed in by the widget when it
-took ownership of the selection.
-.LP
-.eM
-This procedure, which is optional, is called by the \*(xI to
-inform the selection owner that it no longer owns the selection.
-.sp
-.LP
-The procedure pointer specified by the incremental selection owner
-when it desires notification of receipt of the data or when it manages
-the storage containing the data is of type
-.PN XtSelectionDoneIncrProc .
-.LP
-.IN "XtSelectionDoneIncrProc" "" "@DEF@"
-.sM
-.FD 0
-typedef void (*XtSelectionDoneIncrProc)(Widget, Atom*, Atom*, \
-XtRequestId*, XtPointer);
-.br
- Widget \fIw\fP;
-.br
- Atom *\fIselection\fP;
-.br
- Atom *\fItarget\fP;
-.br
- XtRequestId *\fIrequest_id\fP;
-.br
- XtPointer \fIclient_data\fP;
-.FN
-.IP \fIw\fP 1i
-Specifies the widget that owns the selection.
-.IP \fIselection\fP 1i
-Specifies the atom that names the selection being transferred.
-.IP \fItarget\fP 1i
-Specifies the target type to which the conversion was done.
-.IP \fIrequest_id\fP 1i
-Specifies an opaque identification for a specific request.
-.IP \fIclient_data\fP 1i
-Specified the value passed in by the widget when it
-took ownership of the selection.
-.LP
-.eM
-This procedure, which is optional, is called by the \*(xI after
-the requestor has retrieved the final (zero-length) segment of the
-incremental transfer to indicate that the entire transfer is complete.
-If this procedure is not specified, the \*(xI will free only the
-final value returned by the selection owner using
-.PN XtFree .
-.sp
-.LP
-The procedure pointer specified by the incremental selection owner to
-notify it if a transfer should be terminated prematurely is of type
-.PN XtCancelConvertSelectionProc .
-.LP
-.IN "XtCancelConvertSelectionProc" "" "@DEF@"
-.sM
-.FD 0
-typedef void (*XtCancelConvertSelectionProc)(Widget, Atom*, Atom*, \
-XtRequestId*, XtPointer);
-.br
- Widget \fIw\fP;
-.br
- Atom *\fIselection\fP;
-.br
- Atom *\fItarget\fP;
-.br
- XtRequestId *\fIrequest_id\fP;
-.br
- XtPointer \fIclient_data\fP;
-.FN
-.IP \fIw\fP 1i
-Specifies the widget that owns the selection.
-.IP \fIselection\fP 1i
-Specifies the atom that names the selection being transferred.
-.IP \fItarget\fP 1i
-Specifies the target type to which the conversion was done.
-.IP \fIrequest_id\fP 1i
-Specifies an opaque identification for a specific request.
-.IP \fIclient_data\fP 1i
-Specifies the value passed in by the widget when it took ownership of
-the selection.
-.LP
-.eM
-This procedure is called by the \*(xI when it has been determined
-by means of a timeout or other mechanism that any remaining segments
-of the selection no longer need to be transferred. Upon receiving
-this callback, the selection request is considered complete and the
-owner can free the memory and any other resources that have been
-allocated for the transfer.
-
-.NH 4
-Getting the Selection Value Incrementally
-.XS
-\*(SN Getting the Selection Value Incrementally
-.XE
-.LP
-To obtain the value of the selection using incremental transfers, use
-.PN XtGetSelectionValueIncremental
-or
-.PN XtGetSelectionValuesIncremental .
-.LP
-.IN "XtGetSelectionValueIncremental" "" "@DEF@"
-.sM
-.FD 0
-void XtGetSelectionValueIncremental(\fIw\fP, \fIselection\fP, \fItarget\fP, \
-\fIselection_callback\fP, \fIclient_data\fP, \fItime\fP)
-.br
- Widget \fIw\fP;
-.br
- Atom \fIselection\fP;
-.br
- Atom \fItarget\fP;
-.br
- XtSelectionCallbackProc \fIselection_callback\fP;
-.br
- XtPointer \fIclient_data\fP;
-.br
- Time \fItime\fP;
-.FN
-.IP \fIw\fP 1i
-Specifies the widget making the request. \*(cI
-.IP \fIselection\fP 1i
-Specifies the particular selection desired.
-.IP \fItarget\fP 1i
-Specifies the type of information needed
-about the selection.
-.IP \fIselection_callback\fP 1i
-Specifies the callback procedure to be
-called to receive each data segment.
-.IP \fIclient_data\fP 1i
-Specifies client-specific data to be passed to
-the specified callback procedure when it is invoked.
-.IP \fItime\fP 1i
-Specifies the timestamp that indicates when the
-selection request was initiated. This should be the
-timestamp of the event that triggered this request;
-the value
-.PN CurrentTime
-is not acceptable.
-.LP
-.eM
-The
-.PN XtGetSelectionValueIncremental
-function is similar to
-.PN XtGetSelectionValue
-except that the selection_callback procedure will
-be called repeatedly upon delivery of multiple segments of the
-selection value. The end of the selection value is indicated when
-\fIselection_callback\fP is called with a non-NULL value of length zero,
-which must still be freed by the client. If the
-transfer of the selection is aborted in the middle of a transfer
-(for example, because of a timeout), the selection_callback procedure is
-called with a type value equal to the symbolic constant
-.PN XT_CONVERT_FAIL
-so that the requestor can dispose
-of the partial selection value it has collected up until that point.
-Upon receiving
-.PN XT_CONVERT_FAIL ,
-the requesting client must determine
-for itself whether or not a partially completed data transfer is meaningful.
-For more information about \fIselection\fP, \fItarget\fP, and
-\fItime\fP, see Section 2.6 in the \fI\*(xC\fP.
-.LP
-.IN "XtGetSelectionValuesIncremental" "" "@DEF@"
-.sM
-.FD 0
-void XtGetSelectionValuesIncremental(\fIw\fP, \fIselection\fP, \fItargets\fP, \
-\fIcount\fP, \fIselection_callback\fP, \fIclient_data\fP, \fItime\fP)
-.br
- Widget \fIw\fP;
-.br
- Atom \fIselection\fP;
-.br
- Atom *\fItargets\fP;
-.br
- int \fIcount\fP;
-.br
- XtSelectionCallbackProc \fIselection_callback\fP;
-.br
- XtPointer *\fIclient_data\fP;
-.br
- Time \fItime\fP;
-.FN
-.IP \fIw\fP 1i
-Specifies the widget making the request. \*(cI
-.IP \fIselection\fP 1i
-Specifies the particular selection desired.
-.IP \fItargets\fP 1i
-Specifies the types of information needed about
-the selection.
-.IP \fIcount\fP 1i
-Specifies the length of the \fItargets\fP and \fIclient_data\fP lists.
-.IP \fIselection_callback\fP 1i
-Specifies the callback procedure to be called
-to receive each selection value.
-.IP \fIclient_data\fP 1i
-Specifies a list of client data (one for each target
-type) values that are passed to the callback procedure when
-it is invoked for the corresponding target.
-.IP \fItime\fP 1i
-Specifies the timestamp that indicates when the
-selection request was initiated. This should be the
-timestamp of the event that triggered this request;
-the value
-.PN CurrentTime
-is not acceptable.
-.LP
-.eM
-The
-.PN XtGetSelectionValuesIncremental
-function is similar to
-.PN XtGetSelectionValueIncremental
-except that it takes a list of targets and client data.
-.PN XtGetSelectionValuesIncremental
-is equivalent to calling
-.PN XtGetSelectionValueIncremental
-successively for each \fItarget/client_data\fP pair except that
-.PN XtGetSelectionValuesIncremental
-does guarantee that all the conversions will use the same selection
-value because the ownership of the selection cannot change in the
-middle of the list, as would be possible when calling
-.PN XtGetSelectionValueIncremental
-repeatedly.
-For more information about \fIselection\fP, \fItarget\fP, and
-\fItime\fP, see Section 2.6 in the \fI\*(xC\fP.
-
-.NH 4
-Setting the Selection Owner for Incremental Transfers
-.XS
-\*(SN Setting the Selection Owner for Incremental Transfers
-.XE
-.LP
-To set the selection owner when using incremental transfers, use
-.PN XtOwnSelectionIncremental .
-.LP
-.IN "XtOwnSelectionIncremental" "" "@DEF@"
-.sM
-.FD 0
-Boolean XtOwnSelectionIncremental(\fIw\fP, \fIselection\fP, \fItime\fP, \
-\fIconvert_callback\fP, \fIlose_callback\fP,
- \fIdone_callback\fP, \
-\fIcancel_callback\fP, \fIclient_data\fP)
-.br
- Widget \fIw\fP;
-.br
- Atom \fIselection\fP;
-.br
- Time \fItime\fP;
-.br
- XtConvertSelectionIncrProc \fIconvert_callback\fP;
-.br
- XtLoseSelectionIncrProc \fIlose_callback\fP;
-.br
- XtSelectionDoneIncrProc \fIdone_callback\fP;
-.br
- XtCancelConvertSelectionProc \fIcancel_callback\fP;
-.br
- XtPointer \fIclient_data\fP;
-.FN
-.IP \fIw\fP 1.25i
-Specifies the widget that wishes to become the owner. \*(cI
-.IP \fIselection\fP 1.25i
-Specifies the atom that names the selection.
-.IP \fItime\fP 1.25i
-Specifies the timestamp that indicates when the
-selection ownership request was initiated. This should be
-the timestamp of the event that triggered ownership; the value
-.PN CurrentTime
-is not acceptable.
-.IP \fIconvert_callback\fP 1.25i
-Specifies the procedure to be called whenever
-the current value of the selection is requested.
-.IP \fIlose_callback\fP 1.25i
-Specifies the procedure to be called whenever
-the widget has lost selection ownership, or NULL if the
-owner is not interested in being notified.
-.IP \fIdone_callback\fP 1.25i
-Specifies the procedure called after the
-requestor has received the entire selection, or NULL if
-the owner is not interested in being notified.
-.IP \fIcancel_callback\fP 1.25i
-Specifies the callback procedure to be called
-when a selection request aborts because a timeout expires,
-or NULL if the owner is not interested in being notified.
-.IP \fIclient_data\fP 1.25i
-Specifies the argument to be passed to each of
-the callback procedures when they are called.
-.LP
-.eM
-The
-.PN XtOwnSelectionIncremental
-procedure informs the \*(xI
-incremental selection mechanism that the specified widget wishes to
-own the selection. It returns
-.PN True
-if the specified widget successfully becomes the selection owner or
-.PN False
-otherwise.
-For more information about \fIselection\fP, \fItarget\fP, and
-\fItime\fP, see Section 2.6 in the \fI\*(xC\fP.
-.LP
-If a done_callback procedure is specified, the client owns the storage allocated
-for passing the value to the \*(xI. If \fIdone_callback\fP is NULL,
-the convert_callback procedure must allocate storage using
-.PN XtMalloc ,
-.PN XtRealloc ,
-or
-.PN XtCalloc ,
-and the final value specified is freed by the
-\*(xI when the transfer is complete. After a selection transfer
-has started, only one of the done_callback or cancel_callback
-procedures is invoked to indicate completion of the transfer.
-.LP
-The lose_callback procedure does not indicate completion of any in-progress
-transfers; it is invoked at the time a
-.PN SelectionClear
-event is dispatched regardless of any active transfers, which are still
-expected to continue.
-.LP
-A widget that becomes the selection owner using
-.PN XtOwnSelectionIncremental
-may use
-.PN XtDisownSelection
-to relinquish selection ownership.
-
-.NH 3
-Setting and Retrieving Selection Target Parameters
-.XS
-\*(SN Setting and Retrieving Selection Target Parameters
-.XE
-.LP
-To specify target parameters for a selection request with a single target,
-use
-.PN XtSetSelectionParameters .
-.LP
-.IN "XtSetSelectionParameters" "" "@DEF@"
-.sM
-.FD 0
-void XtSetSelectionParameters(\fIrequestor\fP, \fIselection\fP, \fItype\fP, \
-\fIvalue\fP, \fIlength\fP, \fIformat\fP)
-.br
- Widget \fIrequestor\fP;
-.br
- Atom \fIselection\fP;
-.br
- Atom \fItype\fP;
-.br
- XtPointer \fIvalue\fP;
-.br
- unsigned long \fIlength\fP;
-.br
- int \fIformat\fP;
-.FN
-.IP \fIrequestor\fP 1i
-Specifies the widget making the request. \*(cI
-.IP \fIselection\fP 1i
-Specifies the atom that names the selection.
-.IP \fItype\fP 1i
-Specifies the type of the property in which the parameters are passed.
-.IP \fIvalue\fP 1i
-Specifies a pointer to the parameters.
-.IP \fIlength\fP 1i
-Specifies the number of elements containing data in \fIvalue\fP,
-each element of a size indicated by \fIformat\fP.
-.IP \fIformat\fP 1i
-Specifies the size in bits of the data in the elements of \fIvalue\fP.
-.LP
-The specified parameters are copied and stored in a new property
-of the specified type and format on the requestor's window. To initiate
-a selection request with a target and these parameters, a subsequent
-call to
-.PN XtGetSelectionValue
-or to
-.PN XtGetSelectionValueIncremental
-specifying the same requestor widget and selection atom will generate a
-.PN ConvertSelection
-request referring to the property containing the parameters. If
-.PN XtSetSelectionParameters
-is called more than once with the same widget and selection without
-a call to specify a request, the most recently specified parameters
-are used in the subsequent request.
-.LP
-.eM
-The possible values of \fIformat\fP are 8, 16, or 32. If the format is 8,
-the elements of \fIvalue\fP are assumed to be sizeof(char);
-if 16, sizeof(short); if 32, sizeof(long).
-.LP
-To generate a MULTIPLE
-target request with parameters for any of the multiple targets of the
-selection request, precede individual calls to
-.PN XtGetSelectionValue
-and
-.PN XtGetSelectionValueIncremental
-with corresponding individual calls to
-.PN XtSetSelectionParameters ,
-and enclose these all within
-.PN XtCreateSelectionRequest
-and
-.PN XtSendSelectionRequest.
-.PN XtGetSelectionValues
-and
-.PN XtGetSelectionValuesIncremental
-cannot be used to make selection requests with parameterized targets.
-.sp
-.LP
-To retrieve any target parameters needed to perform a selection conversion,
-the selection owner calls
-.PN XtGetSelectionParameters .
-.LP
-.IN "XtGetSelectionParameters" "" "@DEF@"
-.sM
-.FD 0
-void XtGetSelectionParameters(\fIowner\fP, \fIselection\fP, \
-\fIrequest_id\fP, \fItype_return\fP, \fIvalue_return\fP,
- \fIlength_return\fP, \
-\fIformat_return\fP)
-.br
- Widget \fIowner\fP;
-.br
- Atom \fIselection\fP;
-.br
- XtRequestId \fIrequest_id\fP;
-.br
- Atom *\fItype_return\fP;
-.br
- XtPointer *\fIvalue_return\fP;
-.br
- unsigned long *\fIlength_return\fP;
-.br
- int *\fIformat_return\fP;
-.FN
-.IP \fIowner\fP 1i
-Specifies the widget that owns the specified selection.
-.IP \fIselection\fP 1i
-Specifies the selection being processed.
-.IP \fIrequest_id\fP 1i
-Specifies the requestor id in the case of incremental selections,
-or NULL in the case of atomic transfers.
-.IP \fItype_return\fP 1i
-Specifies a pointer to an atom in which the property type
-of the parameters is stored.
-.IP \fIvalue_return\fP 1i
-Specifies a pointer into which a pointer to the parameters is to be stored.
-A NULL is stored if no parameters accompany the request.
-.IP \fIlength_return\fP 1i
-Specifies a pointer into which the number of data elements
-in \fIvalue_return\fP of size indicated by \fIformat_return\fP are stored.
-.IP \fIformat_return\fP 1i
-Specifies a pointer into which the size in bits of the parameter data
-in the elements of \fIvalue\fP is stored.
-.LP
-.eM
-.PN XtGetSelectionParameters
-may be called only from within an
-.PN XtConvertSelectionProc
-or from within the first call to an
-.PN XtConvertSelectionIncrProc
-with a new request_id.
-.LP
-It is the responsibility of the caller to free the returned parameters using
-.PN XtFree
-when the parameters are no longer needed.
-
-.NH 3
-Generating MULTIPLE Requests
-.XS
-\*(SN Generating MULTIPLE Requests
-.XE
-.LP
-To have the \*(xI bundle multiple calls to make selection requests into
-a single request using a \s-1MULTIPLE\s+1 target, use
-.PN XtCreateSelectionRequest
-and
-.PN XtSendSelectionRequest .
-.LP
-.IN "XtCreateSelectionRequest" "" "@DEF@"
-.sM
-.FD 0
-void XtCreateSelectionRequest(\fIrequestor\fP, \fIselection\fP)
-.br
- Widget \fIrequestor\fP;
-.br
- Atom \fIselection\fP;
-.FN
-.IP \fIrequestor\fP 1i
-Specifies the widget making the request. \*(cI
-.IP \fIselection\fP 1i
-Specifies the particular selection desired.
-.LP
-.eM
-When
-.PN XtCreateSelectionRequest
-is called, subsequent calls to
-.PN XtGetSelectionValue ,
-.PN XtGetSelectionValueIncremental ,
-.PN XtGetSelectionValues ,
-and
-.PN XtGetSelectionValuesIncremental ,
-with the requestor and selection as specified to
-.PN XtCreateSelectionRequest ,
-are bundled into a single selection request with
-multiple targets. The request is made by calling
-.PN XtSendSelectionRequest .
-.LP
-.IN "XtSendSelectionRequest" "" "@DEF@"
-.sM
-.FD 0
-void XtSendSelectionRequest(\fIrequestor\fP, \fIselection\fP, \fItime\fP)
-.br
- Widget \fIrequestor\fP;
-.br
- Atom \fIselection\fP;
-.br
- Time \fItime\fP;
-.FN
-.IP \fIrequestor\fP 1i
-Specifies the widget making the request. \*(cI
-.IP \fIselection\fP 1i
-Specifies the particular selection desired.
-.IP \fItime\fP 1i
-Specifies the timestamp that indicates when the selection request was
-initiated. The value
-.PN CurrentTime
-is not acceptable.
-.LP
-.eM
-When
-.PN XtSendSelectionRequest
-is called with a value of \fIrequestor\fP and \fIselection\fP matching
-a previous call to
-.PN XtCreateSelectionRequest ,
-a selection request is sent to the selection owner.
-If a single target request is queued, that request is made.
-If multiple targets are queued, they are bundled into a single request
-with a target of MULTIPLE using the specified timestamp.
-As the values are returned, the callbacks specified in
-.PN XtGetSelectionValue ,
-.PN XtGetSelectionValueIncremental ,
-.PN XtGetSelectionValues ,
-and
-.PN XtGetSelectionValueIncremental
-are invoked.
-.LP
-Multi-threaded applications should lock the application context before
-calling
-.PN XtCreateSelectionRequest
-and release the lock after calling
-.PN XtSendSelectionRequest
-to ensure that the thread assembling the request is safe from interference
-by another thread assembling a different request naming the same widget
-and selection.
-.sp
-.LP
-To relinquish the composition of a MULTIPLE request without sending it, use
-.PN XtCancelSelectionRequest .
-.LP
-.IN "XtCancelSelectionRequest" "" "@DEF@"
-.sM
-.FD 0
-void XtCancelSelectionRequest(\fIrequestor\fP, \fIselection\fP)
-.br
- Widget \fIrequestor\fP;
-.br
- Atom \fIselection\fP;
-.FN
-.IP \fIrequestor\fP 1i
-Specifies the widget making the request. \*(cI
-.IP \fIselection\fP 1i
-Specifies the particular selection desired.
-.LP
-.eM
-When
-.PN XtCancelSelectionRequest
-is called, any requests queued since the last call to
-.PN XtCreateSelectionRequest
-for the same widget and selection are discarded
-and any resources reserved are released.
-A subsequent call to
-.PN XtSendSelectionRequest
-will not result in any request being made.
-Subsequent calls to
-.PN XtGetSelectionValue ,
-.PN XtGetSelectionValues ,
-.PN XtGetSelectionValueIncremental ,
-or
-.PN XtGetSelectionValuesIncremental
-will not be deferred.
-
-.NH 3
-Auxiliary Selection Properties
-.XS
-\*(SN Auxiliary Selection Properties
-.XE
-.LP
-Certain uses of parameterized selections require clients to name
-other window properties within a selection parameter. To permit
-reuse of temporary property names in these circumstances and
-thereby reduce the number of unique atoms created in the server,
-the \*(xI provides two interfaces for acquiring temporary property names.
-.LP
-To acquire a temporary property name atom for use in a selection
-request, the client may call
-.PN XtReservePropertyAtom .
-.LP
-.IN "XtReservePropertyAtom" "" "@DEF@"
-.sM
-.FD 0
-Atom XtReservePropertyAtom(\fIw\fP)
-.br
- Widget \fIw\fP;
-.FN
-.IP \fIw\fP 1i
-Specifies the widget making a selection request.
-.LP
-.eM
-.PN XtReservePropertyAtom
-returns an atom that may be used as a property name during selection
-requests involving the specified widget.
-As long as the atom remains reserved, it is unique with respect to all
-other reserved atoms for the widget.
-.LP
-To return a temporary property name atom for reuse and to delete
-the property named by that atom, use
-.PN XtReleasePropertyAtom .
-.LP
-.IN "XtReleasePropertyAtom" "" "@DEF@"
-.sM
-.FD 0
-void XtReleasePropertyAtom(\fIw\fP, \fIatom\fP)
-.br
- Widget \fIw\fP;
-.br
- Atom \fIatom\fP;
-.FN
-.IP \fIw\fP 1i
-Specifies the widget used to reserve the property name atom.
-.IP \fIatom\fP 1i
-Specifies the property name atom returned by
-.PN XtReservePropertyAtom
-that is to be released for reuse.
-.LP
-.eM
-.PN XtReleasePropertyAtom
-marks the specified property name atom as
-no longer in use and ensures that any property having that name
-on the specified widget's window is deleted. If \fIatom\fP does not
-specify a value returned by
-.PN XtReservePropertyAtom
-for the specified widget, the results are undefined.
-
-.NH 3
-Retrieving the Most Recent Timestamp
-.XS
-\*(SN Retrieving the Most Recent Timestamp
-.XE
-.LP
-To retrieve the timestamp from the most recent call to
-.PN XtDispatchEvent
-that contained a timestamp, use
-.PN XtLastTimestampProcessed .
-.LP
-.IN "XtLastTimestampProcessed" "" "@DEF@"
-.sM
-.FD 0
-Time XtLastTimestampProcessed(\fIdisplay\fP)
-.br
- Display *\fIdisplay\fP;
-.FN
-.IP \fIdisplay\fP 1i
-Specifies an open display connection.
-.LP
-.eM
-If no
-.PN KeyPress ,
-.PN KeyRelease ,
-.PN ButtonPress ,
-.PN ButtonRelease ,
-.PN MotionNotify ,
-.PN EnterNotify ,
-.PN LeaveNotify ,
-.PN PropertyNotify ,
-or
-.PN SelectionClear
-event has yet been passed to
-.PN XtDispatchEvent
-for the specified display,
-.PN XtLastTimestampProcessed
-returns zero.
-
-.NH 3
-Retrieving the Most Recent Event
-.XS
-\*(SN Retrieving the Most Recent Event
-.XE
-.LP
-To retrieve the event from the most recent call to
-.PN XtDispatchEvent
-for a specific display, use
-.PN XtLastEventProcessed .
-.LP
-.IN "XtLastEventProcessed" "" "@DEF@"
-.sM
-.FD 0
-XEvent *XtLastEventProcessed(\fIdisplay\fP)
-.br
- Display *\fIdisplay\fP;
-.FN
-.IP \fIdisplay\fP 1i
-Specifies the display connection from which to retrieve the event.
-.LP
-.eM
-Returns the last event passed to
-.PN XtDispatchEvent
-for the specified display. Returns NULL if there is no such event.
-The client must not modify the contents of the returned event.
-
-.NH 2
-Merging Exposure Events into a Region
-.XS
-\*(SN Merging Exposure Events into a Region
-.XE
-.LP
-The \*(xI provide an
-.PN XtAddExposureToRegion
-utility function that merges
-.PN Expose
-and
-.PN GraphicsExpose
-events into a region for clients to process at once
-rather than processing individual rectangles.
-For further information about regions,
-see Section 16.5 in \fI\*(xL\fP.
-.sp
-.LP
-To merge
-.PN Expose
-and
-.PN GraphicsExpose
-events into a region, use
-.PN XtAddExposureToRegion .
-.LP
-.IN "XtAddExposureToRegion" "" "@DEF@"
-.sM
-.FD 0
-void XtAddExposureToRegion(\fIevent\fP, \fIregion\fP)
-.br
- XEvent *\fIevent\fP;
-.br
- Region \fIregion\fP;
-.FN
-.IP \fIevent\fP 1i
-Specifies a pointer to the
-.PN Expose
-or
-.PN GraphicsExpose
-event.
-.IP \fIregion\fP 1i
-Specifies the region object (as defined in
-.Pn < X11/Xutil.h >).
-.LP
-.eM
-The
-.PN XtAddExposureToRegion
-function computes the union of the rectangle defined by the exposure
-event and the specified region.
-Then it stores the results back in \fIregion\fP.
-If the event argument is not an
-.PN Expose
-or
-.PN GraphicsExpose
-event,
-.PN XtAddExposureToRegion
-returns without an error and without modifying \fIregion\fP.
-.LP
-This function is used by the exposure compression mechanism;
-see Section 7.9.3.
-
-.NH 2
-Translating Widget Coordinates
-.XS
-\fB\*(SN Translating Widget Coordinates\fP
-.XE
-.LP
-To translate an x-y coordinate pair from widget coordinates to root
-window absolute coordinates, use
-.PN XtTranslateCoords .
-.LP
-.IN "XtTranslateCoords" "" "@DEF@"
-.sM
-.FD 0
-void XtTranslateCoords(\fIw\fP, \fIx\fP, \fIy\fP, \fIrootx_return\fP, \
-\fIrooty_return\fP)
-.br
- Widget \fIw\fP;
-.br
- Position \fIx\fP, \fIy\fP;
-.br
- Position *\fIrootx_return\fP, *\fIrooty_return\fP;
-.FN
-.IP \fIw\fP 1i
-Specifies the widget. \*(rI
-.IP \fIx\fP 1i
-.br
-.ns
-.IP \fIy\fP 1i
-Specify the widget-relative x and y coordinates.
-.IP \fIrootx_return\fP 1i
-.br
-.ns
-.IP \fIrooty_return\fP 1i
-Return the root-relative x and y coordinates.
-.LP
-.eM
-While
-.PN XtTranslateCoords
-is similar to the Xlib
-.PN XTranslateCoordinates
-function, it does not generate a server request because all the required
-information already is in the widget's data structures.
-
-.NH 2
-Translating a Window to a Widget
-.XS
-\fB\*(SN Translating a Window to a Widget\fP
-.XE
-.LP
-To translate a given window and display pointer into a widget instance, use
-.PN XtWindowToWidget .
-.LP
-.IN "XtWindowToWidget" "" "@DEF@"
-.sM
-.FD 0
-Widget XtWindowToWidget(\fIdisplay\fP, \fIwindow\fP)
-.br
- Display *\fIdisplay\fP;
-.br
- Window \fIwindow\fP;
-.FN
-.IP \fIdisplay\fP 1i
-Specifies the display on which the window is defined.
-.IP \fIwindow\fP 1i
-Specifies the drawable for which you want the widget.
-.LP
-.eM
-If there is a realized widget whose window is the specified drawable on
-the specified \fIdisplay\fP,
-.PN XtWindowToWidget
-returns that widget.
-If not and if the drawable has been associated with a widget through
-.PN XtRegisterDrawable ,
-.PN XtWindowToWidget
-returns the widget associated with the drawable. In other cases it
-returns NULL.
-
-.NH 2
-Handling Errors
-.XS
-\fB\*(SN Handling Errors\fP
-.XE
-.LP
-The \*(xI allow a client to register procedures that are called
-whenever a fatal or nonfatal error occurs.
-These facilities are intended for both error reporting and logging
-and for error correction or recovery.
-.LP
-Two levels of interface are provided:
-.IP \(bu 5
-A high-level interface that takes an error
-name and class and retrieves the error message text from
-an error resource database.
-.IP \(bu 5
-A low-level interface that takes a simple string to display.
-.LP
-The high-level functions construct a string to pass to the lower-level
-interface.
-The strings may be specified in application code and are
-overridden by the contents of an external systemwide file,
-the ``error database file''. The location and name of this file are
-implementation-dependent.
-.NT
-The application-context-specific error handling is not
-implemented on many systems, although the interfaces are
-always present.
-Most implementations will have just one set of error handlers
-for all application contexts within a process.
-If they are set for different application contexts,
-the ones registered last will prevail.
-.NE
-.sp
-.LP
-To obtain the error database (for example, to merge with
-an application- or widget-specific database), use
-.PN XtAppGetErrorDatabase .
-.LP
-.IN "XtAppGetErrorDatabase" "" "@DEF@"
-.sM
-.FD 0
-XrmDatabase *XtAppGetErrorDatabase(\^\fIapp_context\fP\^)
-.br
- XtAppContext \fIapp_context\fP;
-.FN
-.IP \fIapp_context\fP 1i
-Specifies the application context.
-.LP
-.eM
-The
-.PN XtAppGetErrorDatabase
-function returns the address of the error database.
-The \*(xI do a lazy binding of the error database and do not merge in the
-database file until the first call to
-.PN XtAppGetErrorDatabaseText .
-.LP
-For a complete listing of all errors and warnings
-that can be generated by the \*(xI, see Appendix D.
-.sp
-.LP
-The high-level error and warning handler procedure pointers are of type
-.PN XtErrorMsgHandler .
-.LP
-.IN "XtErrorMsgHandler" "" "@DEF@"
-.sM
-.FD 0
-typedef void (*XtErrorMsgHandler)(String, String, String, String, \
-String*, Cardinal*);
-.br
- String \fIname\fP;
-.br
- String \fItype\fP;
-.br
- String \fIclass\fP;
-.br
- String \fIdefaultp\fP;
-.br
- String *\fIparams\fP;
-.br
- Cardinal *\fInum_params\fP;
-.FN
-.IP \fIname\fP 1i
-Specifies the name to be concatenated with the specified type to form
-the resource name of the error message.
-.IP \fItype\fP 1i
-Specifies the type to be concatenated with the name to form the
-resource name of the error message.
-.IP \fIclass\fP 1i
-Specifies the resource class of the error message.
-.IP \fIdefaultp\fP 1i
-Specifies the default message to use if no error database entry is found.
-.IP \fIparams\fP 1i
-Specifies a pointer to a list of parameters to be substituted in the message.
-.IP \fInum_params\fP 1i
-Specifies the number of entries in \fIparams\fP.
-.LP
-.eM
-The specified name can be a general kind of error,
-like ``invalidParameters'' or ``invalidWindow'',
-and the specified type gives extra information
-such as the name of the routine in which the error was detected.
-Standard
-.PN printf
-notation is used to substitute the parameters into the message.
-.sp
-.LP
-An error message handler can obtain the error database text for an
-error or a warning by calling
-.PN XtAppGetErrorDatabaseText .
-.LP
-.IN "XtAppGetErrorDatabaseText" "" "@DEF@"
-.sM
-.FD 0
-void XtAppGetErrorDatabaseText(\fIapp_context\fP, \fIname\fP, \fItype\fP, \fIclass\fP, \fIdefault\fP, \fIbuffer_return\fP, \fInbytes\fP, \fIdatabase\fP)
-.br
- XtAppContext \fIapp_context\fP;
-.br
- String \fIname\fP, \fItype\fP, \fIclass\fP;
-.br
- String \fIdefault\fP;
-.br
- String \fIbuffer_return\fP;
-.br
- int \fInbytes\fP;
-.br
- XrmDatabase \fIdatabase\fP;
-.FN
-.IP \fIapp_context\fP 1i
-Specifies the application context.
-.IP \fIname\fP 1i
-.br
-.ns
-.IP \fItype\fP 1i
-Specify the name and type concatenated to form the resource name
-of the error message.
-.IP \fIclass\fP 1i
-Specifies the resource class of the error message.
-.IP \fIdefault\fP 1i
-Specifies the default message to use if an error database entry is not found.
-.IP \fIbuffer_return\fP 1i
-Specifies the buffer into which the error message is to be returned.
-.IP \fInbytes\fP 1i
-Specifies the size of the buffer in bytes.
-.IP \fIdatabase\fP 1i
-Specifies the name of the alternative database to be used,
-or NULL if the application context's error database is to be used.
-.LP
-.eM
-The
-.PN XtAppGetErrorDatabaseText
-returns the appropriate message from the error database
-or returns the specified default message if one is not found in the
-error database.
-To form the full resource name and class when querying the database,
-the \fIname\fP and \fItype\fP are concatenated with a single ``.''
-between them and the \fIclass\fP is concatenated with itself with a
-single ``.'' if it does not already contain a ``.''.
-.sp
-.LP
-To return the application name and class as passed to
-.PN XtDisplayInitialize
-for a particular Display, use
-.PN XtGetApplicationNameAndClass .
-.LP
-.IN "XtGetApplicationNameAndClass" "" "@DEF@"
-.sM
-.FD 0
-void XtGetApplicationNameAndClass(\fIdisplay\fP, \fIname_return\fP, \
-\fIclass_return\fP)
-.br
- Display* \fIdisplay\fP;
-.br
- String* \fIname_return\fP;
-.br
- String* \fIclass_return\fP;
-.FN
-.IP \fIdisplay\fP 1i
-Specifies an open display connection that has been initialized with
-.PN XtDisplayInitialize .
-.IP \fIname_return\fP 1i
-Returns the application name.
-.IP \fIclass_return\fP 1i
-Returns the application class.
-.LP
-.eM
-.PN XtGetApplicationNameAndClass
-returns the application name and class passed to
-.PN XtDisplayInitialize
-for the specified display. If the display was
-never initialized or has been closed, the result is undefined. The
-returned strings are owned by the \*(xI and must not be modified
-or freed by the caller.
-.sp
-.LP
-To register a procedure to be called on fatal error conditions, use
-.PN XtAppSetErrorMsgHandler .
-.LP
-.IN "XtAppSetErrorMsgHandler" "" "@DEF@"
-.sM
-.FD 0
-XtErrorMsgHandler XtAppSetErrorMsgHandler(\fIapp_context\fP, \fImsg_handler\fP)
-.br
- XtAppContext \fIapp_context\fP;
-.br
- XtErrorMsgHandler \fImsg_handler\fP;
-.FN
-.IP \fIapp_context\fP 1i
-Specifies the application context.
-.IP \fImsg_handler\fP 1i
-Specifies the new fatal error procedure, which should not return.
-.LP
-.eM
-.PN XtAppSetErrorMsgHandler
-returns a pointer to the previously
-installed high-level fatal error handler.
-The default high-level fatal error handler provided by the \*(xI is named
-.PN _XtDefaultErrorMsg
-.IN "_XtDefaultErrorMsg" "" "@DEF"
-and constructs a string from the error resource database and calls
-.PN XtError .
-Fatal error message handlers should not return.
-If one does,
-subsequent \*(xI behavior is undefined.
-.sp
-.LP
-To call the high-level error handler, use
-.PN XtAppErrorMsg .
-.LP
-.IN "XtAppErrorMsg" "" "@DEF@"
-.sM
-.FD 0
-void XtAppErrorMsg(\fIapp_context\fP, \fIname\fP, \fItype\fP, \fIclass\fP, \
-\fIdefault\fP, \ \fIparams\fP, \fInum_params\fP)
-.br
- XtAppContext \fIapp_context\fP;
-.br
- String \fIname\fP;
-.br
- String \fItype\fP;
-.br
- String \fIclass\fP;
-.br
- String \fIdefault\fP;
-.br
- String *\fIparams\fP;
-.br
- Cardinal *\fInum_params\fP;
-.FN
-.IP \fIapp_context\fP 1i
-Specifies the application context.
-.IP \fIname\fP 1i
-Specifies the general kind of error.
-.IP \fItype\fP 1i
-Specifies the detailed name of the error.
-.IP \fIclass\fP 1i
-Specifies the resource class.
-.IP \fIdefault\fP 1i
-Specifies the default message to use if an error database entry is not found.
-.IP \fIparams\fP 1i
-Specifies a pointer to a list of values to be stored in the message.
-.IP \fInum_params\fP 1i
-Specifies the number of entries in \fIparams\fP.
-.LP
-.eM
-The \*(xI internal errors all have class
-``XtToolkitError''.
-.sp
-.LP
-To register a procedure to be called on nonfatal error conditions, use
-.PN XtAppSetWarningMsgHandler .
-.LP
-.IN "XtAppSetWarningMsgHandler" "" "@DEF@"
-.sM
-.FD 0
-XtErrorMsgHandler XtAppSetWarningMsgHandler(\fIapp_context\fP, \fImsg_handler\fP)
-.br
- XtAppContext \fIapp_context\fP;
-.br
- XtErrorMsgHandler \fImsg_handler\fP;
-.FN
-.IP \fIapp_context\fP 1i
-Specifies the application context.
-.IP \fImsg_handler\fP 1i
-Specifies the new nonfatal error procedure, which usually returns.
-.LP
-.eM
-.PN XtAppSetWarningMsgHandler
-returns a pointer to the previously
-installed high-level warning handler.
-The default high-level warning handler provided by the \*(xI is named
-.PN _XtDefaultWarningMsg
-.IN "_XtDefaultWarningMsg" "" "@DEF@"
-and constructs a string
-from the error resource database and calls
-.PN XtWarning .
-.sp
-.LP
-To call the installed high-level warning handler, use
-.PN XtAppWarningMsg .
-.LP
-.IN "XtAppWarningMsg" "" "@DEF@"
-.sM
-.FD 0
-void XtAppWarningMsg(\fIapp_context\fP, \fIname\fP, \fItype\fP, \fIclass\fP, \fIdefault\fP, \fIparams\fP, \fInum_params\fP)
-.br
- XtAppContext \fIapp_context\fP;
-.br
- String \fIname\fP;
-.br
- String \fItype\fP;
-.br
- String \fIclass\fP;
-.br
- String \fIdefault\fP;
-.br
- String *\fIparams\fP;
-.br
- Cardinal *\fInum_params\fP;
-.FN
-.IP \fIapp_context\fP 1i
-Specifies the application context.
-.IP \fIname\fP 1i
-Specifies the general kind of error.
-.IP \fItype\fP 1i
-Specifies the detailed name of the error.
-.IP \fIclass\fP 1i
-Specifies the resource class.
-.IP \fIdefault\fP 1i
-Specifies the default message to use if an error database entry is not found.
-.IP \fIparams\fP 1i
-Specifies a pointer to a list of values to be stored in the message.
-.IP \fInum_params\fP 1i
-Specifies the number of entries in \fIparams\fP.
-.LP
-.eM
-The \*(xI internal warnings all have class
-``XtToolkitError''.
-.sp
-.LP
-The low-level error and warning handler procedure pointers are of type
-.PN XtErrorHandler .
-.LP
-.IN "XtErrorHandler" "" "@DEF@"
-.sM
-.FD 0
-typedef void (*XtErrorHandler)(String);
-.br
- String \fImessage\fP;
-.FN
-.IP \fImessage\fP 1i
-Specifies the error message.
-.LP
-.eM
-The error handler should display the message string in some appropriate fashion.
-.sp
-.LP
-To register a procedure to be called on fatal error conditions, use
-.PN XtAppSetErrorHandler .
-.LP
-.IN "XtAppSetErrorHandler" "" "@DEF@"
-.sM
-.FD 0
-XtErrorHandler XtAppSetErrorHandler(\fIapp_context\fP, \fIhandler\fP)
-.br
- XtAppContext \fIapp_context\fP;
-.br
- XtErrorHandler \fIhandler\fP;
-.FN
-.IP \fIapp_context\fP 1i
-Specifies the application context.
-.IP \fIhandler\fP 1i
-Specifies the new fatal error procedure, which should not return.
-.LP
-.eM
-.PN XtAppSetErrorHandler
-returns a pointer to the previously installed
-low-level fatal error handler.
-The default low-level error handler provided by the \*(xI is
-.PN _XtDefaultError .
-.IN "_XtDefaultError" "" "@DEF@"
-On POSIX-based systems,
-it prints the message to standard error and terminates the application.
-Fatal error message handlers should not return.
-If one does,
-subsequent \*(xI behavior is undefined.
-.sp
-.LP
-To call the installed fatal error procedure, use
-.PN XtAppError .
-.LP
-.IN "XtAppError" "" "@DEF@"
-.sM
-.FD 0
-void XtAppError(\fIapp_context\fP, \fImessage\fP)
-.br
- XtAppContext \fIapp_context\fP;
-.br
- String \fImessage\fP;
-.FN
-.IP \fIapp_context\fP 1i
-Specifies the application context.
-.IP \fImessage\fP 1i
-Specifies the message to be reported.
-.LP
-.eM
-Most programs should use
-.PN XtAppErrorMsg ,
-not
-.PN XtAppError ,
-to provide for customization and internationalization of error messages.
-.sp
-.LP
-To register a procedure to be called on nonfatal error conditions, use
-.PN XtAppSetWarningHandler .
-.LP
-.IN "XtAppSetWarningHandler" "" "@DEF@"
-.sM
-.FD 0
-XtErrorHandler XtAppSetWarningHandler(\fIapp_context\fP, \fIhandler\fP)
-.br
- XtAppContext \fIapp_context\fP;
-.br
- XtErrorHandler \fIhandler\fP;
-.FN
-.IP \fIapp_context\fP 1i
-Specifies the application context.
-.IP \fIhandler\fP 1i
-Specifies the new nonfatal error procedure, which usually returns.
-.LP
-.eM
-.PN XtAppSetWarningHandler
-returns a pointer to the previously installed
-low-level warning handler.
-The default low-level warning handler provided by the \*(xI is
-.PN _XtDefaultWarning .
-.IN "_XtDefaultWarning" "" "@DEF@"
-On POSIX-based systems,
-it prints the message to standard error and returns to the caller.
-.sp
-.LP
-To call the installed nonfatal error procedure, use
-.PN XtAppWarning .
-.LP
-.IN "XtAppWarning" "" "@DEF@"
-.sM
-.FD 0
-void XtAppWarning(\fIapp_context\fP, \fImessage\fP)
-.br
- XtAppContext \fIapp_context\fP;
-.br
- String \fImessage\fP;
-.FN
-.IP \fIapp_context\fP 1i
-Specifies the application context.
-.IP \fImessage\fP 1i
-Specifies the nonfatal error message to be reported.
-.LP
-.eM
-Most programs should use
-.PN XtAppWarningMsg ,
-not
-.PN XtAppWarning ,
-to provide for customization and internationalization of warning messages.
-
-.NH 2
-Setting WM_COLORMAP_WINDOWS
-.XS
-\fB\*(SN Setting WM_COLORMAP_WINDOWS\fP
-.XE
-.LP
-A client may set the value of the \s-1WM_COLORMAP_WINDOWS\s+1
-.IN "WM_COLORMAP_WINDOWS" "" "@DEF@"
-property on a widget's window by calling
-.PN XtSetWMColormapWindows .
-.LP
-.IN "XtSetWMColormapWindows" "" "@DEF@"
-.sM
-.FD 0
-void XtSetWMColormapWindows(\fIwidget\fP, \fIlist\fP, \fIcount\fP)
-.br
- Widget \fIwidget\fP;
-.br
- Widget* \fIlist\fP;
-.br
- Cardinal \fIcount\fP;
-.FN
-.IP \fIwidget\fP 1i
-Specifies the widget on whose window the \s-1WM_COLORMAP_WINDOWS\s+1
-property is stored. \*(cI
-.IP \fIlist\fP 1i
-Specifies a list of widgets whose windows are potentially to be
-listed in the \s-1WM_COLORMAP_WINDOWS\s+1 property.
-.IP \fIcount\fP 1i
-Specifies the number of widgets in \fIlist\fP.
-.LP
-.eM
-.PN XtSetWMColormapWindows
-returns immediately if \fIwidget\fP is not realized or if \fIcount\fP is 0.
-Otherwise,
-.PN XtSetWMColormapWindows
-constructs an ordered list of windows
-by examining each widget in \fIlist\fP in turn and
-ignoring the widget if it is not realized, or
-adding the widget's window to the window list if the widget is realized
-and if its colormap resource is different from the colormap
-resources of all widgets whose windows are already on the window list.
-.LP
-Finally,
-.PN XtSetWMColormapWindows
-stores the resulting window list in the \s-1WM_COLORMAP_WINDOWS\s+1
-property on the specified widget's window.
-Refer to Section 4.1.8 in the \fI\*(xC\fP for details of
-the semantics of the \s-1WM_COLORMAP_WINDOWS\s+1 property.
-
-.NH 2
-Finding File Names
-.XS
-\fB\*(SN Finding File Names\fP
-.XE
-.LP
-The \*(xI provide procedures to look for a file by name, allowing
-string substitutions in a list of file specifications. Two
-routines are provided for this:
-.PN XtFindFile
-and
-.PN XtResolvePathname .
-.PN XtFindFile
-uses an arbitrary set of client-specified substitutions, and
-.PN XtResolvePathname
-uses a set of standard substitutions corresponding
-to the \fIX/Open Portability Guide\fP language localization conventions.
-Most applications should use
-.PN XtResolvePathname .
-.LP
-A string substitution is defined by a list of
-.PN Substitution
-.IN "Substitution" "" "@DEF@"
-entries.
-.LP
-.sM
-.Ds 0
-.TA .5i 3i
-.ta .5i 3i
-typedef struct {
- char match;
- String substitution;
-} SubstitutionRec, *Substitution;
-.De
-.eM
-.LP
-File name evaluation is handled in an operating-system-dependent
-fashion by an
-.PN XtFilePredicate
-.IN "XtFilePredicate" "" "@DEF@"
-procedure.
-.LP
-.sM
-.FD 0
-typedef Boolean (*XtFilePredicate)(String);
-.br
- String \fIfilename\fP;
-.FN
-.IP \fIfilename\fP 1i
-Specifies a potential filename.
-.LP
-.eM
-A file predicate procedure is called with a string that is
-potentially a file name. It should return
-.PN True
-if this string specifies a file that is appropriate for the intended use and
-.PN False
-otherwise.
-.sp
-.LP
-To search for a file using substitutions in a path list, use
-.PN XtFindFile .
-.LP
-.IN "XtFindFile" "" "@DEF@"
-.sM
-.FD 0
-String XtFindFile(\fIpath\fP, \fIsubstitutions\fP, \fInum_substitutions\fP, \
-\fIpredicate\fP)
-.br
- String \fIpath\fP;
-.br
- Substitution \fIsubstitutions\fP;
-.br
- Cardinal \fInum_substitutions\fP;
-.br
- XtFilePredicate \fIpredicate\fP;
-.FN
-.IP \fIpath\fP 1.2i
-Specifies a path of file names, including substitution characters.
-.IP \fIsubstitutions\fP 1.2i
-Specifies a list of substitutions to make into the path.
-.IP \fInum_substitutions\fP 1.2i
-Specifies the number of substitutions passed in.
-.IP \fIpredicate\fP 1.2i
-Specifies a procedure called to judge each potential file name, or NULL.
-.LP
-.eM
-The \fIpath\fP parameter specifies a string that consists of a series of
-potential file names delimited by colons. Within each name, the
-percent character specifies a string substitution selected by the
-following character. The character sequence ``%:'' specifies an
-embedded colon that is not a delimiter; the sequence is replaced by a
-single colon. The character sequence ``%%'' specifies a percent
-character that does not introduce a substitution; the sequence is
-replaced by a single percent character. If a percent character is
-followed by any other character,
-.PN XtFindFile
-looks through the
-specified \fIsubstitutions\fP for that character in the \fImatch\fP field
-and, if found,
-replaces the percent and match characters with the string in the
-corresponding \fIsubstitution\fP field. A \fIsubstitution\fP field entry of NULL
-is equivalent to a pointer to an empty string. If the operating
-system does not interpret multiple embedded name separators in the
-path (i.e., ``/'' in POSIX) the same way as a single separator,
-.PN XtFindFile
-will collapse multiple separators into a single one after performing
-all string substitutions. Except for collapsing embedded separators,
-the contents of the string substitutions are not interpreted by
-.PN XtFindFile
-and may therefore contain any operating-system-dependent
-characters, including additional name separators. Each resulting
-string is passed to the predicate procedure until a string is found for
-which the procedure returns
-.PN True ;
-this string is the return value for
-.PN XtFindFile .
-If no string yields a
-.PN True
-return from the predicate,
-.PN XtFindFile
-returns NULL.
-.LP
-If the \fIpredicate\fP parameter is NULL, an internal procedure that checks
-if the file exists, is readable, and is not a directory is used.
-.LP
-It is the responsibility of the caller to free the returned string using
-.PN XtFree
-when it is no longer needed.
-.sp
-.LP
-To search for a file using standard substitutions in a path list, use
-.PN XtResolvePathname .
-.LP
-.IN "XtResolvePathname" "" "@DEF@"
-.sM
-.FD 0
-String XtResolvePathname(\fIdisplay\fP, \fItype\fP, \fIfilename\fP, \fIsuffix\fP, \
-\fIpath\fP, \fIsubstitutions\fP, \fInum_substitutions\fP, \fIpredicate\fP)
-.br
- Display *\fIdisplay\fP;
-.br
- String \fItype\fP, \fIfilename\fP, \fIsuffix\fP, \fIpath\fP;
-.br
- Substitution \fIsubstitutions\fP;
-.br
- Cardinal \fInum_substitutions\fP;
-.br
- XtFilePredicate \fIpredicate\fP;
-.FN
-.IP \fIdisplay\fP 1.2i
-Specifies the display to use to find the language for language substitutions.
-.IP \fItype\fP
-.br
-.ns
-.IP \fIfilename\fP
-.br
-.ns
-.IP \fIsuffix\fP 1.2i
-Specify values to substitute into the path.
-.IP \fIpath\fP 1.2i
-Specifies the list of file specifications, or NULL.
-.IP \fIsubstitutions\fP 1.2i
-Specifies a list of additional substitutions to make into the path, or NULL.
-.IP \fInum_substitutions\fP 1.2i
-Specifies the number of entries in \fIsubstitutions\fP.
-.IP \fIpredicate\fP 1.2i
-Specifies a procedure called to judge each potential file name, or NULL.
-.LP
-.eM
-The substitutions specified by
-.PN XtResolvePathname
-are determined from the value of the language string retrieved by
-.PN XtDisplayInitialize
-for the specified display.
-To set the
-language for all applications specify ``*xnlLanguage: \fIlang\fP'' in the
-resource database.
-.IN "xnlLanguage"
-The format and content of the language string are
-implementation-defined. One suggested syntax is to compose
-the language string of three parts; a ``language part'', a
-``territory part'' and a ``codeset part''. The manner in which
-this composition is accomplished is implementation-defined,
-and the \*(xI make no interpretation of the parts other
-than to use them in substitutions as described below.
-.LP
-.PN XtResolvePathname
-calls
-.PN XtFindFile
-with the following substitutions
-in addition to any passed by the caller and returns the value returned by
-.PN XtFindFile :
-.IP %N 5
-The value of the \fIfilename\fP parameter, or the application's
-class name if \fIfilename\fP is NULL.
-.IP %T 5
-The value of the \fItype\fP parameter.
-.IP %S 5
-The value of the \fIsuffix\fP parameter.
-.IP %L 5
-The language string associated with the specified display.
-.IP %l 5
-The language part of the display's language string.
-.IP %t 5
-The territory part of the display's language string.
-.IP %c 5
-The codeset part of the display's language string.
-.IP %C 5
-The customization string retrieved from the resource
-database associated with \fIdisplay\fP.
-.IP %D 5
-The value of the implementation-specific default path.
-.LP
-If a path is passed to
-.PN XtResolvePathname ,
-it is passed along to
-.PN XtFindFile .
-If the \fIpath\fP argument is NULL, the value of the
-.PN \s-1XFILESEARCHPATH\s+1
-.IN "XFILESEARCHPATH" "" "@DEF@"
-environment variable is passed to
-.PN XtFindFile .
-If
-.PN \s-1XFILESEARCHPATH\s+1
-is not defined, an implementation-specific default path is used
-that contains at least six entries. These entries
-must contain the following substitutions:
-
-.nf
-.ta .3i 2i 2.5i
-1. %C, %N, %S, %T, %L or %C, %N, %S, %T, %l, %t, %c
-2. %C, %N, %S, %T, %l
-3. %C, %N, %S, %T
-4. %N, %S, %T, %L or %N, %S, %T, %l, %t, %c
-5. %N, %S, %T, %l
-6. %N, %S, %T
-.fi
-
-The order of these six entries within the path must be as given above.
-The order and use of substitutions within a given entry
-are implementation-dependent.
-If the path begins
-with a colon, it is preceded by %N%S. If the path includes two
-adjacent colons, \fB%N%S\fP is inserted between them.
-.LP
-The \fItype\fP parameter is intended to be a category of files, usually
-being translated into a directory in the pathname. Possible values
-might include ``app-defaults'', ``help'', and ``bitmap''.
-.LP
-The \fIsuffix\fP parameter is intended to be appended to the file name.
-Possible values might include ``.txt'', ``.dat'', and ``.bm''.
-.LP
-A suggested value for the default path on POSIX-based systems is
-.IP
-/usr/lib/X11/%L/%T/%N%C%S:/usr/lib/X11/%l/%T/%N%C%S:\\
-.br
-/usr/lib/X11/%T/%N%C%S:/usr/lib/X11/%L/%T/%N%S:\\
-.br
-/usr/lib/X11/%l/%T/%N%S:/usr/lib/X11/%T/%N%S
-
-.LP
-Using this example, if the user has specified a language, it is
-used as a subdirectory of /usr/lib/X11 that is searched for other
-files. If the desired file is not found there, the lookup is
-tried again using just the language part of the specification. If the
-file is not there, it is looked for in /usr/lib/X11. The \fItype\fP
-parameter is used as a subdirectory of the language directory or of
-/usr/lib/X11, and \fIsuffix\fP is appended to the file name.
-.LP
-The %D substitution allows the addition of path
-elements to the implementation-specific default path, typically to
-allow additional directories to be searched without preventing
-resources in the system directories from being found. For example, a
-user installing resource files under a directory called ``ourdir''
-might set
-.PN \s-1XFILESEARCHPATH\s+1
-to
-.IP
-%D:ourdir/%T/%N%C:ourdir/%T/%N
-.LP
-The customization string is obtained by querying the resource database
-currently associated with the display (the database returned by
-.PN XrmGetDatabase )
-for the resource \fIapplication_name\fP.customization, class
-\fIapplication_class\fP.Customization, where \fIapplication_name\fP
-and \fIapplication_class\fP are the values returned by
-.PN XtGetApplicationNameAndClass .
-If no value is specified in the database, the empty string is used.
-.LP
-It is the responsibility of the caller to free the returned string using
-.PN XtFree
-when it is no longer needed.
-
-.NH 2
-Hooks for External Agents
-.XS
-\fB\*(SN Hooks for External Agents\fP
-.XE
-.LP
-Applications may register
-functions that are called at a particular control points in the \*(xI.
-These functions are intended to be used to provide notification
-of an \*Q\*(tk event\*U, such as widget creation, to an external agent,
-such as an interactive resource editor, drag-and-drop server, or
-an aid for physically challenged users.
-The control points containing such registration hooks are identified
-in a \*Qhook registration\*U object.
-.LP
-To retrieve the hook registration widget, use
-.PN XtHooksOfDisplay .
-.LP
-.IN "XtHooksOfDisplay" "" "@DEF@"
-.sM
-.FD 0
-Widget XtHooksOfDisplay(\fIdisplay\fP)
-.br
- Display *\fIdisplay\fP;
-.FN
-.IP \fIdisplay\fP 1i
-Specifies the desired display.
-.LP
-.eM
-The class of this object is a private, implementation-dependent
-subclass of
-.PN Object .
-The hook object has no parent. The resources of this object are
-the callback lists for hooks and the read-only resources for getting
-a list of parentless shells. All of the callback lists are initially
-empty. When a display is closed, the hook object associated with it
-is destroyed.
-.LP
-The following procedures can be called with the hook registration object
-as an argument:
-.sp
-.IP
-.PN XtAddCallback ,
-.PN XtAddCallbacks ,
-.PN XtRemoveCallback ,
-.PN XtRemoveCallbacks ,
-.PN XtRemoveAllCallbacks ,
-.PN XtCallCallbacks ,
-.PN XtHasCallbacks ,
-.PN XtCallCallbackList
-.IP
-.PN XtClass ,
-.PN XtSuperclass ,
-.PN XtIsSubclass ,
-.PN XtCheckSubclass ,
-.PN XtIsObject ,
-.PN XtIsRectObj ,
-.PN XtIsWidget ,
-.PN XtIsComposite ,
-.PN XtIsConstraint ,
-.PN XtIsShell ,
-.PN XtIsOverrideShell ,
-.PN XtIsWMShell ,
-.PN XtIsVendorShell ,
-.PN XtIsTransientShell ,
-.PN XtIsToplevelShell ,
-.PN XtIsApplicationShell ,
-.PN XtIsSessionShell
-.IP
-.PN XtWidgetToApplicationContext
-.IP
-.PN XtName ,
-.PN XtParent ,
-.PN XtDisplayOfObject ,
-.PN XtScreenOfObject
-.IP
-.PN XtSetValues ,
-.PN XtGetValues ,
-.PN XtVaSetValues ,
-.PN XtVaGetValues
-.sp
-.LP
-
-.NH 3
-Hook Object Resources
-.XS
-\fB\*(SN Hook Object Resources\fP
-.XE
-.LP
-The resource names, classes, and representation types that are specified
-in the hook object resource list are:
-.KS
-.TS
-lw(1.5i) lw(1.5i) lw(2.5i) .
-_
-.sp 6p
-Name Class Representation
-.sp 6p
-_
-.sp 6p
-XtNcreateHook XtCCallback XtRCallback
-XtNchangeHook XtCCallback XtRCallback
-XtNconfigureHook XtCCallback XtRCallback
-XtNgeometryHook XtCCallback XtRCallback
-XtNdestroyHook XtCCallback XtRCallback
-XtNshells XtCReadOnly XtRWidgetList
-XtNnumShells XtCReadOnly XtRCardinal
-.sp 6p
-_
-.TE
-.KE
-.LP
-Descriptions of each of these resources:
-.LP
-The XtNcreateHook callback list is called from:
-.PN XtCreateWidget ,
-.PN XtCreateManagedWidget ,
-.PN XtCreatePopupShell ,
-.PN XtAppCreateShell ,
-and their corresponding varargs versions.
-.LP
-The \fIcall_data\fP parameter in a createHook callback may be
-cast to type
-.PN XtCreateHookData .
-.LP
-.IN "XtCreateHookData" "" "@DEF@"
-.sM
-.Ds 0
-.TA .5i 3i
-.ta .5i 3i
-typedef struct {
- String type;
- Widget widget;
- ArgList args;
- Cardinal num_args;
-} XtCreateHookDataRec, *XtCreateHookData;
-.De
-.eM
-.LP
-The \fItype\fP is set to
-.PN XtHcreate ,
-\fIwidget\fP is the newly created widget, and \fIargs\fP and \fInum_args\fP
-are the arguments passed to the create function. The callbacks are
-called before returning from the create function.
-.LP
-The XtNchangeHook callback list is called from:
-.IP
-.PN XtSetValues ,
-.PN XtVaSetValues
-.IP
-.PN XtManageChild ,
-.PN XtManageChildren ,
-.PN XtUnmanageChild ,
-.PN XtUnmanageChildren
-.IP
-.PN XtRealizeWidget ,
-.PN XtUnrealizeWidget
-.IP
-.PN XtAddCallback ,
-.PN XtRemoveCallback ,
-.PN XtAddCallbacks,
-.PN XtRemoveCallbacks ,
-.PN XtRemoveAllCallbacks
-.IP
-.PN XtAugmentTranslations ,
-.PN XtOverrideTranslations ,
-.PN XtUninstallTranslations
-.IP
-.PN XtSetKeyboardFocus ,
-.PN XtSetWMColormapWindows
-.IP
-.PN XtSetMappedWhenManaged ,
-.PN XtMapWidget ,
-.PN XtUnmapWidget
-.IP
-.PN XtPopup ,
-.PN XtPopupSpringLoaded ,
-.PN XtPopdown
-.LP
-.sp
-.LP
-The \fIcall_data\fP parameter in a changeHook callback may
-be cast to type
-.PN XtChangeHookData .
-.IN "XtChangeHookData" "" "@DFEF@"
-.LP
-.KS
-.sM
-.Ds 0
-.TA .5i 2.5i
-.ta .5i 2.5i
-typedef struct {
- String type;
- Widget widget;
- XtPointer event_data;
- Cardinal num_event_data;
-} XtChangeHookDataRec, *XtChangeHookData;
-.De
-.eM
-.KE
-.LP
-When the changeHook callbacks are called as a result of a call to
-.PN XtSetValues
-or
-.PN XtVaSetValues ,
-\fItype\fP is set to
-.PN XtHsetValues ,
-\fIwidget\fP is the new widget passed to the set_values procedure, and
-\fIevent_data\fP may be cast to type
-.PN XtChangeHookSetValuesData .
-.IN "XtChangeHookSetValuesData" "" "@DEF@"
-.LP
-.KS
-.sM
-.Ds 0
-.TA .5i 2.5i
-.ta .5i 2.5i
-typedef struct {
- Widget old, req;
- ArgList args;
- Cardinal num_args;
-} XtChangeHookSetValuesDataRec, *XtChangeHookSetValuesData;
-.De
-.eM
-.KE
-.LP
-The \fIold\fP, \fIreq\fP, \fIargs\fP, and \fInum_args\fP are the
-parameters passed to the set_values procedure. The callbacks are called
-after the set_values and constraint set_values procedures have been called.
-.LP
-When the changeHook callbacks are called as a result of a call to
-.PN XtManageChild
-or
-.PN XtManageChildren ,
-\fItype\fP is set to
-.PN XtHmanageChildren ,
-\fIwidget\fP is the parent, \fIevent_data\fP may be cast to type
-WidgetList and is the list of children being managed, and
-\fInum_event_data\fP is the length of the widget list.
-The callbacks are called after the children have been managed.
-.LP
-When the changeHook callbacks are called as a result of a call to
-.PN XtUnmanageChild
-or
-.PN XtUnmanageChildren ,
-\fItype\fP is set to
-.PN XtHunmanageChildren ,
-\fIwidget\fP is the parent, \fIevent_data\fP may be cast to type
-WidgetList and is a list of the children being unmanaged, and
-\fInum_event_data\fP is the length of the widget list.
-The callbacks are called after the children have been unmanaged.
-.LP
-The changeHook callbacks are called twice as a result of a call to
-.PN XtChangeManagedSet ,
-once after unmanaging and again after managing.
-When the callbacks are called the first time, \fItype\fP is set to
-.PN XtHunmanageSet ,
-\fIwidget\fP is the parent, \fIevent_data\fP may be cast to type
-WidgetList and is a list of the children being unmanaged, and
-\fInum_event_data\fP is the length of the widget list.
-When the callbacks are called the second time, the \fItype\fP is set to
-.PN XtHmanageSet ,
-\fIwidget\fP is the parent, \fIevent_data\fP may be cast to type
-WidgetList and is a list of the children being managed, and
-\fInum_event_data\fP is the length of the widget list.
-.LP
-When the changeHook callbacks are called as a result of a call to
-.PN XtRealizeWidget ,
-the \fItype\fP is set to
-.PN XtHrealizeWidget
-and \fIwidget\fP is the widget being realized.
-The callbacks are called after the widget has been realized.
-.LP
-When the changeHook callbacks are called as a result of a call to
-.PN XtUnrealizeWidget ,
-the \fItype\fP is set to
-.PN XtHunrealizeWidget ,
-and \fIwidget\fP is the widget being unrealized.
-The callbacks are called after the widget has been unrealized.
-.LP
-When the changeHook callbacks are called as a result of a call to
-.PN XtAddCallback ,
-\fItype\fP is set to
-.PN XtHaddCallback ,
-\fIwidget\fP is the widget to which the callback is being added, and
-\fIevent_data\fP may be cast to type String and is the name of the
-callback being added.
-The callbacks are called after the callback has been added to the widget.
-.LP
-When the changeHook callbacks are called as a result of a call to
-.PN XtAddCallbacks ,
-the \fItype\fP is set to
-.PN XtHaddCallbacks ,
-\fIwidget\fP is the widget to which the callbacks are being added, and
-\fIevent_data\fP may be cast to type String and is the name of the
-callbacks being added.
-The callbacks are called after the callbacks have been added to the widget.
-.LP
-When the changeHook callbacks are called as a result of a call to
-.PN XtRemoveCallback ,
-the \fItype\fP is set to
-.PN XtHremoveCallback ,
-\fIwidget\fP is the widget from which the callback is being removed, and
-\fIevent_data\fP may be cast to type String and is the name of
-the callback being removed. The callbacks are called after the callback
-has been removed from the widget.
-.LP
-When the changeHook callbacks are called as a result of a call to
-.PN XtRemoveCallbacks ,
-the \fItype\fP is set to
-.PN XtHremoveCallbacks ,
-\fIwidget\fP is the widget from which the callbacks are being removed, and
-\fIevent_data\fP may be cast to type String and is the name of the
-callbacks being removed. The callbacks are called after the callbacks
-have been removed from the widget.
-.LP
-When the changeHook callbacks are called as a result of a call to
-.PN XtRemoveAllCallbacks ,
-the \fItype\fP is set to
-.PN XtHremoveAllCallbacks
-and \fIwidget\fP is the widget from which the callbacks are being removed.
-The callbacks are called after the callbacks have been removed from the
-widget.
-.LP
-When the changeHook callbacks are called as a result of a call to
-.PN XtAugmentTranslations ,
-the \fItype\fP is set to
-.PN XtHaugmentTranslations
-and \fIwidget\fP is the widget whose translations are being modified.
-The callbacks are called after the widget's translations have been
-modified.
-.LP
-When the changeHook callbacks are called as a result of a call to
-.PN XtOverrideTranslations ,
-the \fItype\fP is set to
-.PN XtHoverrideTranslations
-and \fIwidget\fP is the widget whose translations are being modified.
-The callbacks are called after the widget's translations have been
-modified.
-.LP
-When the changeHook callbacks are called as a result of a call to
-.PN XtUninstallTranslations ,
-The \fItype\fP is
-.PN XtHuninstallTranslations
-and \fIwidget\fP is the widget whose translations are being uninstalled.
-The callbacks are called after the widget's translations have been
-uninstalled.
-.LP
-When the changeHook callbacks are called as a result of a call to
-.PN XtSetKeyboardFocus ,
-the \fItype\fP is set to
-.PN XtHsetKeyboardFocus
-and \fIevent_data\fP may be cast to type Widget and is the value of
-the descendant argument passed to \fBXtSetKeyboardFocus\fP. The
-callbacks are called before returning from \fBXtSetKeyboardFocus\fP.
-.LP
-When the changeHook callbacks are called as a result of a call to
-.PN XtSetWMColormapWindows ,
-\fItype\fP is set to
-.PN XtHsetWMColormapWindows ,
-\fIevent_data\fP may be cast to type WidgetList and is the value of
-the list argument passed to \fBXtSetWMColormapWindows\fP, and
-\fInum_event_data\fP is the length of the list. The callbacks are
-called before returning from \fBXtSetWMColormapWindows\fP.
-.LP
-When the changeHook callbacks are called as a result of a call to
-.PN XtSetMappedWhenManaged ,
-the \fItype\fP is set to
-.PN XtHsetMappedWhenManaged
-and \fIevent_data\fP may be cast to type Boolean and is the value of
-the mapped_when_managed argument passed to \fBXtSetMappedWhenManaged\fP.
-The callbacks are called after setting the widget's mapped_when_managed
-field and before realizing or unrealizing the widget.
-.LP
-When the changeHook callbacks are called as a result of a call to
-.PN XtMapWidget ,
-the \fItype \fP is set to
-.PN XtHmapWidget
-and \fIwidget\fP is the widget being mapped.
-The callbacks are called after mapping the widget.
-.LP
-When the changeHook callbacks are called as a result of a call to
-.PN XtUnmapWidget ,
-the \fItype \fP is set to
-.PN XtHunmapWidget
-and \fIwidget\fP is the widget being unmapped.
-The callbacks are called after unmapping the widget.
-.LP
-When the changeHook callbacks are called as a result of a call to
-.PN XtPopup ,
-the \fItype\fP is set to
-.PN XtHpopup ,
-\fIwidget\fP is the widget being popped up, and \fIevent_data\fP may
-be cast to type XtGrabKind and is the value of the grab_kind argument
-passed to \fBXtPopup\fP.
-The callbacks are called before returning from \fBXtPopup\fP.
-.LP
-When the changeHook callbacks are called as a result of a call to
-.PN XtPopupSpringLoaded ,
-the \fItype\fP is set to
-.PN XtHpopupSpringLoaded
-and \fIwidget\fP is the widget being popped up.
-The callbacks are called
-before returning from \fBXtPopupSpringLoaded\fP.
-.LP
-When the changeHook callbacks are called as a result of a call to
-.PN XtPopdown ,
-the \fItype\fP is set to
-.PN XtHpopdown
-and \fIwidget\fP is the widget being popped down.
-The callbacks are called
-before returning from \fBXtPopdown\fP.
-.LP
-A widget set that exports interfaces that change application state
-without employing the \*(xI library should invoke the change hook
-itself. This is done by:
-.sp
-.Ds
-.TA .5i 2i
-.ta .5i 2i
- XtCallCallbacks(XtHooksOfDisplay(dpy), XtNchangeHook, call_data);
-.De
-.sp
-.LP
-The XtNconfigureHook callback list is called any time the \*(xI
-move, resize, or configure a widget and when
-.PN XtResizeWindow
-is called.
-.LP
-The \fIcall_data\fP parameter may be cast to type
-.PN XtConfigureHookData.
-.LP
-.IN "XtConfigureHookData" "" "@DEF@"
-.KS
-.sM
-.Ds 0
-.TA .5i 3i
-.ta .5i 3i
-typedef struct {
- String type;
- Widget widget;
- XtGeometryMask changeMask;
- XWindowChanges changes;
-} XtConfigureHookDataRec, *XtConfigureHookData;
-.De
-.eM
-.KE
-.sp
-.LP
-When the configureHook callbacks are called, the \fItype\fP is
-.PN XtHconfigure ,
-\fIwidget\fP is the widget being configured, and \fIchangeMask\fP and
-\fIchanges\fP reflect the changes made to the widget. The callbacks
-are called after changes have been made to the widget.
-.LP
-The XtNgeometryHook callback list is called from
-.PN XtMakeGeometryRequest
-and
-.PN XtMakeResizeRequest
-once before and once after geometry negotiation occurs.
-.LP
-The \fIcall_data\fP parameter may be cast to type
-.PN XtGeometryHookData .
-.LP
-.IN "XtGeometryHookData" "" "@DFEF@"
-.LP
-.sM
-.Ds 0
-.TA .5i 3i
-.ta .5i 3i
-typedef struct {
- String type;
- Widget widget;
- XtWidgetGeometry* request;
- XtWidgetGeometry* reply;
- XtGeometryResult result;
-} XtGeometryHookDataRec, *XtGeometryHookData;
-.De
-.eM
-.sp
-.LP
-When the geometryHook callbacks are called prior to geometry negotiation,
-the \fItype\fP is
-.PN XtHpreGeometry ,
-\fIwidget\fP is the widget for which the request is being made, and
-\fIrequest\fP is the requested geometry.
-When the geometryHook callbacks
-are called after geometry negotiation, the \fItype\fP is
-.PN XtHpostGeometry ,
-\fIwidget\fP is the widget for which the request was made, \fIrequest\fP
-is the requested geometry, \fIreply\fP is the resulting geometry granted,
-and \fIresult\fP is the value returned from the geometry negotiation.
-.LP
-The XtNdestroyHook callback list is called when a widget is destroyed.
-The \fIcall_data parameter\fP may be cast to type
-.PN XtDestroyHookData .
-.LP
-.IN "XtDestroyHookData" "" "@DFEF@"
-.sp
-.sM
-.Ds 0
-.TA .5i 3i
-.ta .5i 3i
-typedef struct {
- String type;
- Widget widget;
-} XtDestroyHookDataRec, *XtDestroyHookData;
-.De
-.eM
-.sp
-.LP
-When the destroyHook callbacks are called as a result of a call to
-.PN XtDestroyWidget ,
-the \fItype\fP is
-.PN XtHdestroy
-and \fIwidget\fP is the widget being destroyed. The callbacks are
-called upon completion of phase one destroy for a widget.
-.LP
-The XtNshells and XtnumShells are read-only resources that report a
-list of all parentless shell widgets associated with a display.
-.LP
-Clients who use these hooks must exercise caution in calling \*(xI
-functions in order to avoid recursion.
-
-.NH 3
-Querying Open Displays
-.XS
-\fB\*(SN Querying Open Displays\fP
-.XE
-.LP
-To retrieve a list of the Displays associated with an application context,
-use
-.PN XtGetDisplays .
-.LP
-.IN "XtGetDisplays" "" "@DEF@"
-.sM
-.FD 0
-void XtGetDisplays(\fIapp_context\fP, \fIdpy_return\fP, \fInum_dpy_return\fP)
-.br
- XtAppContext \fIapp_context\fP;
-.br
- Display ***\fIdpy_return\fP;
-.br
- Cardinal *\fInum_dpy_return\fP;
-.FN
-.IP \fIapp_context\fP 1.5i
-Specifies the application context.
-.IP \fIdpy_return\fP 1.5i
-Returns a list of open Display connections in the specified application
-context.
-.IP \fInum_dpy_return\fP 1.5i
-Returns the count of open Display connections in \fIdpy_return\fP.
-.LP
-.eM
-\fBXtGetDisplays\fP may be used by an external agent to query the
-list of open displays that belong to an application context. To free
-the list of displays, use
-.PN XtFree .
-.bp