diff options
Diffstat (limited to 'libXaw/include/X11/Xaw/TextSink.h')
-rw-r--r-- | libXaw/include/X11/Xaw/TextSink.h | 723 |
1 files changed, 359 insertions, 364 deletions
diff --git a/libXaw/include/X11/Xaw/TextSink.h b/libXaw/include/X11/Xaw/TextSink.h index 291b9600d..f49a02bbf 100644 --- a/libXaw/include/X11/Xaw/TextSink.h +++ b/libXaw/include/X11/Xaw/TextSink.h @@ -1,364 +1,359 @@ -/* - * $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 */ +/***********************************************************
+
+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.
+
+******************************************************************/
+
+#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 */
|