aboutsummaryrefslogtreecommitdiff
path: root/X11/Xaw/TextSink.h
diff options
context:
space:
mode:
Diffstat (limited to 'X11/Xaw/TextSink.h')
-rw-r--r--X11/Xaw/TextSink.h364
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 */