.\"
.\" $XConsortium: p209,v 5.2 94/04/17 20:56:51 rws 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 STRING DEVICE STATE 3\s+2
.TH "INQUIRE STRING DEVICE STATE 3" 3P "29 February 1991"
.SH NAME
INQUIRE STRING DEVICE STATE 3 \- inquire state of a \s-2STRING\s+2 device
.IX "String Input Devices" "INQUIRE STRING DEVICE STATE 3"
.SH SYNOPSIS
.SS C Syntax
.ft B
.ta 1.25i 3i
.nf
void
pinq_string_st3( ws, dev, store, err, op_mode, echo_switch, init_string, prompt_echo, echo_vol, 
    string_data)
Pint	ws;	\fIworkstation identifier\fP
Pint	dev;	\fIstring device number\fP
Pstore	store;	\fIhandle to Store object\fP
Pint	*err;	\fIOUT error indicator\fP
Pop_mode	*op_mode	\fIOUT operating mode\fP
Pecho_switch	*echo_switch;	\fIOUT echo switch\fP
char	**init_string;	\fIOUT initial string\fP
Pint	 *prompt_echo;	\fIOUT prompt/echo type\fP
Plimit3	*echo_vol;	\fIOUT echo area\fP
Pstring_data3	**string_data;	\fIOUT data record\fP
.fi
.ft R
.SS Required PHIGS Operating States
(PHOP, WSOP, *, *)
.SH DESCRIPTION
.SS Purpose
Use \*f to retrieve the current state of the specified \s-2STRING\s+2 device.
.SS C Input Parameters
Applications using the \s-2C\s+2 binding must create a buffer to be used by this
function as memory space for storing data associated with the device state.
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 inital buffer through a call to \s-2\CREATE STORE\s+2, 
\s-2PHIGS\s+2 manages this area such that there is sufficient memory for the 
specific inquiry. The string data record within the store buffer is accessed 
by the pointer pointed to by \fIstring_data\fR.
.IP \fIws\fP
Workstation identifier. An integer specifying the workstation with which
the specified \s-2STRING\s+2 device is associated.
.IP \fIdev\fP
The device number of the \s-2STRING\s+2 device.
See the \fIAvailable Devices\fP section of \s-2INITIALIZE STRING\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.  
This buffer must exist prior to calling this function (see
\s-2CREATE STORE (3P)\s+2).
.SS C Output Parameters
.IP \fIerr\fP
A pointer to the location to store the error number of any error detected by this function.
.IP \fIop_mode\fP
The operating mode.  Pop_mode is an enumerated type defined in phigs.h
with the following values:
.nf
.ta .5i
.sp .4
typedef enum {
.sp .2
	POP_REQ,
	POP_SAMPLE,
	POP_EVENT
.sp .2
} Pop_mode;
.fi
.bp
.IP \fIecho_switch\fP
The echo state.  Pecho_switch is an enumerated type defined in phigs.h
with the following values:
.nf
.ta .5i
.sp .4
typedef enum {
.sp .2
	PSWITCH_NO_ECHO,
	PSWITCH_ECHO
.sp .2
} Pecho_switch;
.fi
.IP \fIinit_string\fP
A pointer to a char pointer.  \s-2PHIGS\s+2 sets the location pointed to
by \fIinit_string\fP to point to the initial string stored in \fIstore\fR.
.IP \fIprompt_echo\fP
The prompt/echo type desired.
See the \fIAvailable Devices\fP Section of \s-2INITIALIZE STRING\s+2
for a description of the available types.
.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 \fIstring_data\fP
Pointer to a pointer that points to the string state within \fIstore\fR.
Pstring_data3 is defined in phigs.h as follows:
.sp .4
.nf
.ta .5i +.5i +.5i +.5i
typedef struct {
.sp .2
	Pint	buffer_size;	/* input buffer size            */        
	Pint	init_pos;		/* initial editing position     */
	union {
		struct {
			Pint	unused;
		} pet_r1;
	} pets;
.sp .2
} Pstring_data3;
.fi
.SS Execution
\*f returns the current state of the
specified string device, which is stored in the workstation
state list of the workstation associated with the device.  The
current state includes the operating mode, echo switch, initial string,
prompt/echo type, echo volume, buffer length, edit position,  and data record.
See \s-2SET STRING MODE\s+2 for a description of the operating mode and the
echo switch, and how to set these values.
See \s-2INITIALIZE STRING 3\s+2 for a description of the initial string,
prompt/echo type, 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 will be 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 003
Ignoring function, function requires state (\s-2PHOP, WSOP, *, *\s+2)
.IP 054
Ignoring function, the specified workstation is not open
.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 "SET STRING MODE (3P)"
.SM "INITIALIZE STRING (3P)"
.SM "INQUIRE STRING DEVICE STATE (3P)"
.SM "CREATE STORE (3P)"
.SM "DELETE STORE (3P)"
.fi
