.\"
.\" $XConsortium: p110,v 5.3 94/04/17 20:55:38 hersh Exp $
.\"
.\" 
$XMCOPY
.\" Copyright (c) 1990, 1991 by Sun Microsystems, Inc. and the X Consortium.
.\" 
.\"                         All Rights Reserved
.\" 
.\" Permission to use, copy, modify, and distribute this software and its 
.\" documentation for any purpose and without fee is hereby granted, 
.\" provided that the above copyright notice appear in all copies and that
.\" both that copyright notice and this permission notice appear in 
.\" supporting documentation, and that the names of Sun Microsystems,
.\" and the X Consortium not be used in advertising or publicity 
.\" pertaining to distribution of the software without specific, written 
.\" prior permission.  
.\" 
.\" SUN MICROSYSTEMS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, 
.\" INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
.\" EVENT SHALL SUN MICROSYSTEMS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
.\" CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
.\" USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
.\" OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
.\" PERFORMANCE OF THIS SOFTWARE.
.ds f \s-2INQUIRE DEFAULT LOCATOR DEVICE DATA 3\s+2
.TH "INQUIRE DEFAULT LOCATOR DEVICE DATA 3" 3P "15 August 1991"
.SH NAME
INQUIRE DEFAULT LOCATOR DEVICE DATA 3 \- inquire the predefined locator data
.IX "Locator Input Devices" "INQUIRE DEFAULT LOCATOR DEVICE DATA 3"
.SH SYNOPSIS
.SS C Syntax
.ft B
.ta 1.25i 3i
.nf
void
pinq_def_loc_data3 ( type, device, store, error_ind, loc_pos, pets, echo_vol, loc_data )
Pint	type;	\fIworkstation type\fP
Pint	device;	\fIlogical input device number\fP
Pstore	store;	\fIhandle to Store object\fP
Pint	*error_ind;	\fIOUT error indicator\fP
Ppoint3	*loc_pos;	\fIOUT default initial position\fP
Pint_list	**pets;	\fIOUT list of prompt and echo types\fP
Plimit3	*echo_vol;	\fIOUT default echo volume\fP
Ploc_data3	**loc_data;	\fIOUT pointer to default data record\fP
.fi
.ft R
.SS Required PHIGS Operating States
(PHOP, *, *, *)
.SH DESCRIPTION
.SS Purpose
Use \*f to determine the following information for a \s-2LOCATOR\s+2 input
device associated with a given workstation type:
.RS
.sp .3
\(bu   Number and list of available prompt/echo types
.sp .2
\(bu   Default echo volume
.sp .2
\(bu   Default input data record
.sp .2
\(bu   Default initial locator position
.RE
.LP
Since the default prompt/echo type for all input devices is 1, the default
input data record is for that prompt/echo type.  There are no default input
data records for prompt/echo types other than 1.
.SS C Input Parameters
.LP
Applications using the \s-2C\s+2 binding must create a buffer to be used by this
function as memory space for storing portions of the device data.
This buffer is passed as the \fIstore\fP argument.
.LP 
The store buffer is a data area managed by \s-2PHIGS\s+2. While the 
application is responsible for creating the initial buffer through a call to 
\s-2CREATE STORE\s+2, \s-2PHIGS\s+2 manages this area such that there is
sufficient memory for the specific inquiry. The locator device data record
within the store buffer is accessed via the pointer returned in \fIloc_data\fP.
.IP \fItype\fP
The workstation type with which the device is associated.
.IP \fIdevice\fP
The device number of the locator device.
See the \fIAvailable Devices\fP section of \s-2INITIALIZE LOCATOR 3\s+2
for a description of the available devices.
.IP \fIstore\fP
The memory buffer \s-2PHIGS\s+2 is to use for storing the information
returned for the Ploc_data3 structure.  This memory is not used for the data
returned in the Pint_list structure.
This buffer must exist prior to calling this function (see
\s-2CREATE STORE (3P)\s+2).
.SS C Output Parameters
.IP \fIerror_ind\fP
The error indicator.  See the \fIExecution\fP section below for a
description of its use.  See the \fIErrors\fP section below for the
possible values it may return.
.IP \fIloc_pos\fP
Default initial locator position.
.IP \fIpets\fP
List of available prompt/echo types.
Pint_list is defined in phigs.h as follows:
.nf
.ta .5i +1i +1.25i
.sp .4
typedef struct {
.sp .2
	Pint	num_ints;	/* number of Pints in list */
	Pint	*ints;	/* list of integers        */
.sp .2
} Pint_list;
.fi
.IP
The \fInum_ints\fR component specifies the number of elements in the list.
The \fIints\fR component is a pointer to a list \fInum_ints\fR long.
.IP
The application must allocate memory for \fIlen\fR elements in the
list of \fIints\fR.
.IP \fIecho_vol\fP
A pointer to a Plimit3 structure defining the
\fIx\fP, \fIy\fP, and \fIz\fP
components of the echo volume, in Device Coordinates.
Plimit3 is defined in phigs.h as follows:
.sp .4
.ta .5i +1i  +1i
.nf
typedef struct {
.sp .2
	Pfloat	x_min;	/* minimum x coordinate value */
	Pfloat	x_max;	/* maximum x coordinate value */
	Pfloat	y_min;	/* minimum y coordinate value */
	Pfloat	y_max;	/* maximum y coordinate value */
	Pfloat	z_min;	/* minimum z coordinate value */
	Pfloat	z_max;	/* maximum z coordinate value */
.sp .2
} Plimit3;
.fi
.IP \fIloc_data\fP
A pointer to a Ploc_data3 pointer.
PHIGS assigns this pointer to the location in the Pstore structure that
contains the device's data record contents.
Ploc_data3 is defined in phigs.h as follows:
.sp .4
.bp
.ta .5i +.5i +.5i +.5i +.25i +.75i +1.25i
.nf
typedef struct {
.sp .2
      union {
	struct {
		Pint	unused;
	} pet_r1;
	struct {
		Pint	unused;
	} pet_r2;
	struct {
		Pint 	unused;
	} pet_r3;
	struct {
		Pline_attrs	line_attrs;		/* polyline attributes */
	} pet_r4;
	struct {
		Pline_fill_ctrl_flag	line_fill_ctrl_flag;		/* polyline/fill area ctrl flag */
		union {
			Pline_attrs		line_attrs;	/* polyline attributes */
			Pint_attrs		int_attrs;	/* interior attributes */
			struct {
				Pint_attrs		int_attrs;	/* interior attributes */
				Pedge_attrs		edge_attrs;	/* edge attributes */
			} fill_set;
		} attr;
	} pet_r5;
      } pets;
.sp .2
} Ploc_data3;
.fi
.SS Execution
\*f returns the default data of the specified locator device.  This data is
stored in the workstation description table associated with the workstation
type.
See \s-2INITIALIZE LOCATOR 3\s+2 for a description of the prompt/echo types,
echo volume, and data record contents, and how to set these values.
.LP
In the event of an error, the \fIerror indicator\fP 
indicates the error number of the error detected and no other output data
is returned.  If no error is detected, the \fIerror indicator\fP is
set to zero, and the inquired information is available in the output
parameters.  Since this is an inquiry function, \s-2ERROR HANDLING\s+2 is not
invoked when an error is detected by this function.
.SH ERRORS
.IP 002
Ignoring function, function requires state (\s-2PHOP, *, *, *\s+2)
.IP 052
Ignoring function, workstation type not recognized by the implementation
.IP 051
Ignoring function, this information is not yet available
for this workstation type; open a workstation of this type
and use the specific workstation type
.IP 061
Ignoring function, specified workstation is neither of category \s-2INPUT\s+2
nor of category \s-2OUTIN\s+2
.IP 250
Ignoring function, the specified device is not available
on the specified workstation
.SH SEE ALSO
.nf
.IP
.ta 0.5i
.SM "INITIALIZE LOCATOR 3 (3P)"
.SM "INQUIRE DEFAULT LOCATOR DEVICE DATA (3P)"
.SM "CREATE STORE (3P)"
.SM "DELETE STORE (3P)"
.fi
