/*
 * @(#)termsw.h 20.18 93/06/28 SMI      
 *
 *	(c) Copyright 1989 Sun Microsystems, Inc. Sun design patents 
 *	pending in the U.S. and foreign countries. See LEGAL NOTICE 
 *	file for terms of the license.
 */

#ifndef xview_termsw_DEFINED
#define xview_termsw_DEFINED

/*
 ***********************************************************************
 *			Include Files
 ***********************************************************************
 */

#ifdef XV_ATTRIBUTES_ONLY
#include <xview/attrol.h>

#else
#include <xview/textsw.h>

#endif /* XV_ATTRIBUTES_ONLY */

/*
 ***********************************************************************
 *			Definitions and Macros
 ***********************************************************************
 */

/*
 * PUBLIC #defines 
 */

#ifndef XV_ATTRIBUTES_ONLY

#define TERMSW     		     	&xv_termsw_pkg
#define TERMSW_VIEW			&xv_termsw_view_pkg

#endif	/* ~XV_ATTRIBUTES_ONLY */

/*
 * PRIVATE #defines 
 */

#define TERMSW_TYPE      		ATTR_PKG_TERMSW
#define TERMSW_VIEW_TYPE		ATTR_PKG_TERMSW_VIEW
#define	TERMSW_ATTR(type, ordinal)	ATTR(ATTR_PKG_TERMSW, type, ordinal)

/*
 ***********************************************************************
 *		Typedefs, Enumerations, and Structures
 ***********************************************************************
 */

#ifndef XV_ATTRIBUTES_ONLY

typedef Xv_opaque		Termsw;
typedef Xv_opaque  		Termsw_view;

typedef struct {
	/*
	 * This isn't really a textsw, only shares few attrs 
	 */
        Xv_textsw		parent_data; 
        Xv_opaque    		private_data;
	Xv_opaque		private_text;
	Xv_opaque		private_tty;
} Xv_termsw;

typedef struct {
	/*
	 * This isn't really a textsw view, only shares few attrs 
	 */
        Xv_textsw_view    	parent_data; 
        Xv_opaque  		private_data;
        Xv_opaque		private_text;
	Xv_opaque		private_tty;
} Xv_termsw_view;

#endif /* ~XV_ATTRIBUTES_ONLY */

typedef enum {
	TERMSW_MODE_TYPE,
	TTYSW_MODE_TYPE
} Termsw_mode;

typedef enum {
	/*
 	 * Public attributes. 
	 */
	TERMSW_MODE 	= TERMSW_ATTR(ATTR_INT,  	1)	/* --G */
} Termsw_attribute;

/*
 ***********************************************************************
 *				Globals
 ***********************************************************************
 */

extern  Xv_pkg			xv_termsw_pkg;
extern  Xv_pkg       		xv_termsw_view_pkg;

#endif /* ~xview_termsw_DEFINED */
