diff options
Diffstat (limited to 'X11/Xaw/TextSink.h')
| -rw-r--r-- | X11/Xaw/TextSink.h | 364 | 
1 files changed, 364 insertions, 0 deletions
| diff --git a/X11/Xaw/TextSink.h b/X11/Xaw/TextSink.h new file mode 100644 index 000000000..291b9600d --- /dev/null +++ b/X11/Xaw/TextSink.h @@ -0,0 +1,364 @@ +/* + * $Xorg: TextSink.h,v 1.4 2001/02/09 02:03:46 xorgcvs Exp $ + */ + +/*********************************************************** + +Copyright 1987, 1988, 1994, 1998  The Open Group + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation. + +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 +OPEN GROUP 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 Open Group 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 Open Group. + + +Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts. + +                        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 name of Digital not be +used in advertising or publicity pertaining to distribution of the +software without specific, written prior permission.   + +DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING +ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL +DIGITAL 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. + +******************************************************************/ +/* $XFree86: xc/lib/Xaw/TextSink.h,v 1.9 2001/01/17 19:42:35 dawes Exp $ */ + +#ifndef _XawTextSink_h +#define _XawTextSink_h + +#include <X11/Xaw/Text.h> + +/*********************************************************************** + * + * TextSink Object + * + ***********************************************************************/ + +/* Resources: + + Name		     Class		RepType		Default Value + ----		     -----		-------		------------- + font                Font            XFontStruct *      XtDefaultFont + foreground          Foreground      Pixel              XtDefaultForeground + background          Background      Pixel              XtDefaultBackground + cursorColor	     Color	      Pixel		XtDefaultForeground +*/ +  +/* Class record constants */ + +extern WidgetClass textSinkObjectClass; + +typedef struct _TextSinkClassRec *TextSinkObjectClass; +typedef struct _TextSinkRec      *TextSinkObject; + +typedef enum {XawisOn, XawisOff} XawTextInsertState; + +#ifndef OLDXAW +#ifndef XtNcursorColor +#define XtNcursorColor		"cursorColor" +#endif + +#define XawNtextProperties	"textProperties" +#define XawCTextProperties	"TextProperties" +#define XawRTextProperties	"XawTextProperties" +#endif + +/* + * Public Functions + */ +_XFUNCPROTOBEGIN + +/* + * Function: + *	XawTextSinkDisplayText + * + * Parameters: + *	w	  - the TextSink Object + *	x	  - location to start drawing text + *	y	  - "" + *	pos1	  - location of starting and ending points in the text buffer + *	pos2	  - "" + *	highlight - hightlight this text? + * + * Description: + *	Stub function that in subclasses will display text.  + * + * Note: + *	  This function doesn't actually display anything, it is only a place + *	holder. + */ +void XawTextSinkDisplayText +( + Widget			w, +#if NeedWidePrototypes + int			x, + int			y, +#else + Position		x, + Position		y, +#endif + XawTextPosition	pos1, + XawTextPosition	pos2, +#if NeedWidePrototypes + int			highlight +#else + Boolean		highlight +#endif + ); + +/* + * Function: + *	XawTextSinkInsertCursor + * + * Parameters: + *	w	- the TextSink Object. + *	x	- location for the cursor. + *	y	- "" + *	state	- whether to turn the cursor on, or off + * + * Description: + *	Places the InsertCursor. + * + * Note: + *	  This function doesn't actually display anything, it is only a place + *	holder. + */ +void XawTextSinkInsertCursor +( + Widget			w, +#if NeedWidePrototypes + int			x, + int			y, + int			state +#else + Position		x, + Position		y, + XawTextInsertState	state +#endif + ); + +/* + * Function: + *	XawTextSinkClearToBackground + * + * Parameters: + *	w	- TextSink Object + *	x	- location of area to clear + *	y	- "" + *	width	- size of area to clear + *	height	- "" + * + * Description: + *	Clears a region of the sink to the background color. + * + * Note: + *	  This function doesn't actually display anything, it is only a place + *	holder. + */ +void XawTextSinkClearToBackground +( + Widget			w, +#if NeedWidePrototypes + int			x, + int			y, + unsigned int		width, + unsigned int		height +#else + Position		x, + Position		y, + Dimension		width, + Dimension		height +#endif + ); + +/* + * Function: + *	XawTextSinkFindPosition + * + * Parameters: + *	w		- TextSink Object + *	fromPos		- reference position + *	fromX		- reference location + *	width		- width of section to paint text + *	stopAtWordBreak - returned position is a word break? + *	resPos		- Position to return + *	resWidth	- Width actually used + *	resHeight	- Height actually used + * + * Description: + *	Finds a position in the text. + */ +void XawTextSinkFindPosition +( + Widget			w, + XawTextPosition	fromPos, + int			fromX, + int			width, +#if NeedWidePrototypes + int			stopAtWordBreak, +#else + Boolean		stopAtWordBreak, +#endif + XawTextPosition*	pos_return, + int			*width_return, + int			*height_return + ); + +/* + * Function: + *	XawTextSinkFindDistance + * + * Parameters: + *	w		- TextSink Object + *	fromPos		- starting Position + *	fromX		- x location of starting Position + *	toPos		- end Position + *	resWidth	- Distance between fromPos and toPos + *	resPos		- Acutal toPos used + *	resHeight	- Height required by this text + * + * Description: + *	Find the Pixel Distance between two text Positions. + */ +void XawTextSinkFindDistance +( + Widget			w, + XawTextPosition	fromPos, + int			fromX, + XawTextPosition	toPos, + int			*width_return, + XawTextPosition	*pos_return, + int			*height_return + ); + +/* + * Function: + *	XawTextSinkResolve + * + * Parameters: + *	w	- TextSink Object + *	pos	- reference Position + *	fromx	- reference Location + *	width	- width to move + *	resPos	- resulting position + * + * Description: + *	Resloves a location to a position. + */ +void XawTextSinkResolve +( + Widget			w, + XawTextPosition	fromPos, + int			fromX, + int			width, + XawTextPosition	*pos_return + ); + +/* + * Function: + *	XawTextSinkMaxLines + * + * Parameters: + *	w	- TextSink Object + *	height	- height to fit lines into + * + * Returns: + *	Number of lines that will fit + * + * Description: + *	Finds the Maximum number of lines that will fit in a given height. + */ +int XawTextSinkMaxLines +( + Widget			w, +#if NeedWidePrototypes + unsigned int		height +#else + Dimension		height +#endif + ); + +/* + * Function: + *	XawTextSinkMaxHeight + * + * Parameters: + *	w	- TextSink Object + *	lines	- number of lines + * + * Returns: + *	Height + * + * Description: + *	Finds the Minium height that will contain a given number lines. + */ +int XawTextSinkMaxHeight +( + Widget			w, + int			lines +); + +/* + * Function: + *	XawTextSinkSetTabs + * + * Parameters: + *	w		- TextSink Object + *	tab_count	- number of tabs in the list + *	tabs		- text positions of the tabs + * Description: + *	Sets the Tab stops. + */ +void XawTextSinkSetTabs +( + Widget			w, + int			tab_count, + int			*tabs +); +						   +/* + * Function: + *	XawTextSinkGetCursorBounds + * + * Parameters: + *	w	- TextSink Object + *	rect	- X rectance containing the cursor bounds + * Description: + *	Finds the bounding box for the insert curor (caret). + */ +void XawTextSinkGetCursorBounds +( + Widget			w, + XRectangle		*rect_return +); + +_XFUNCPROTOEND + +#endif /* _XawTextSink_h */ | 
