Text.h revision 994689c1
11.1333Smaya/***********************************************************
21.1Scgd
31.1ScgdCopyright 1987, 1988, 1994, 1998  The Open Group
41.4Scgd
51.1ScgdPermission to use, copy, modify, distribute, and sell this software and its
61.1Scgddocumentation for any purpose is hereby granted without fee, provided that
71.1Scgdthe above copyright notice appear in all copies and that both that
81.1Scgdcopyright notice and this permission notice appear in supporting
91.1Scgddocumentation.
101.1Scgd
111.1ScgdThe above copyright notice and this permission notice shall be included in
121.1Scgdall copies or substantial portions of the Software.
131.1Scgd
141.1ScgdTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
151.1ScgdIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
161.1ScgdFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
171.1ScgdOPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
181.1ScgdAN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
191.1ScgdCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
201.1Scgd
211.1ScgdExcept as contained in this notice, the name of The Open Group shall not be
221.1Scgdused in advertising or otherwise to promote the sale, use or other dealings
231.1Scgdin this Software without prior written authorization from The Open Group.
241.1Scgd
251.1Scgd
261.1ScgdCopyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
271.1Scgd
281.1Scgd                        All Rights Reserved
291.1Scgd
301.1ScgdPermission to use, copy, modify, and distribute this software and its
311.1Scgddocumentation for any purpose and without fee is hereby granted,
321.1Scgdprovided that the above copyright notice appear in all copies and that
331.1Scgdboth that copyright notice and this permission notice appear in
341.1Scgdsupporting documentation, and that the name of Digital not be
351.21Sthorpejused in advertising or publicity pertaining to distribution of the
361.133Sfairsoftware without specific, written prior permission.
371.1299Schristos
381.31ScgdDIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
391.31ScgdALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
401.609SblymnDIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
411.609SblymnANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
421.609SblymnWHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
431.609SblymnARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
441.609SblymnSOFTWARE.
451.609Sblymn
461.609Sblymn******************************************************************/
471.21Sthorpej
481.21Sthorpej#ifndef _XawText_h
491.21Sthorpej#define _XawText_h
501.974Sjnemeth
511.974Sjnemeth#include <X11/Xaw/Simple.h>
521.974Sjnemeth
531.974Sjnemeth/*
541.1Scgd
551.1Scgd Class: 	textWidgetClass
561.1Scgd Class Name:	Text
571.448Srjs Superclass:	Simple
581.665Sjunyoung
591.251Swiz Resources added by the Text widget:
601.470Spooka
611.24Stls Name		     Class	     RepType		Default Value
621.24Stls ----		     -----	     -------		-------------
631.665Sjunyoung autoFill	    AutoFill	     Boolean		False
641.4Scgd bottomMargin	    Margin	     Position		2
651.4Scgd displayPosition    TextPosition     XawTextPosition	0
661.4Scgd insertPosition	    TextPosition     XawTextPosition	0
671.4Scgd justify	    JustifyMode	     JustifyMode	left
681.4Scgd leftColumn	    Column	     Column		0
691.4Scgd rightColumn	    Column	     Column		0
701.4Scgd leftMargin	    Margin	     Position		2
711.4Scgd rightMargin	    Margin	     Position		4
721.4Scgd positionCallback   Callback	     Callback		NULL
731.4Scgd scrollHorizontal   Scroll	     Boolean		False
741.4Scgd scrollVertical     Scroll	     Boolean		False
751.24Stls selectTypes        SelectTypes      Pointer            see documentation
761.4Scgd textSink	    TextSink	     Widget		NULL
771.4Scgd textSource	    TextSource	     Widget		NULL
781.4Scgd topMargin	    Margin	     Position		2
791.4Scgd unrealizeCallback  Callback	     Callback		NULL
801.665Sjunyoung wrap		    Wrap	     XawTextWrapMode	XawTextWrapNever
811.4Scgd
821.4Scgd*/
831.4Scgd
841.4Scgdtypedef long XawTextPosition;
851.24Stls
861.4Scgd#ifndef notdef
871.4Scgdtypedef enum {
881.4Scgd  XawtextScrollNever,
891.4Scgd  XawtextScrollWhenNeeded,
901.4Scgd  XawtextScrollAlways
911.4Scgd} XawTextScrollMode;
921.999Scegger
931.4Scgdtypedef enum {
941.4Scgd  XawtextResizeNever,
951.4Scgd  XawtextResizeWidth,
961.4Scgd  XawtextResizeHeight,
971.25Sveego  XawtextResizeBoth
981.9Sthorpej} XawTextResizeMode;
991.4Scgd#endif
1001.4Scgd
1011.4Scgdtypedef enum {
1021.4Scgd  XawtextWrapNever,
1031.4Scgd  XawtextWrapLine,
1041.4Scgd  XawtextWrapWord
1051.4Scgd} XawTextWrapMode;
1061.25Sveego
1071.4Scgdtypedef enum {
1081.4Scgd  XawsdLeft,
1091.4Scgd  XawsdRight
1101.4Scgd} XawTextScanDirection;
1111.4Scgd
1121.4Scgdtypedef enum {
1131.4Scgd  XawtextRead,
1141.4Scgd  XawtextAppend,
1151.665Sjunyoung  XawtextEdit
1161.24Stls} XawTextEditType;
1171.4Scgd
1181.4Scgdtypedef enum {
1191.4Scgd  XawselectNull,
1201.4Scgd  XawselectPosition,
1211.4Scgd  XawselectChar,
1221.4Scgd  XawselectWord,
1231.4Scgd  XawselectLine,
1241.4Scgd  XawselectParagraph,
1251.665Sjunyoung  XawselectAll,
1261.4Scgd  XawselectAlphaNumeric
1271.4Scgd} XawTextSelectType;
1281.4Scgd
1291.577Snisimuratypedef enum {
1301.4Scgd    XawjustifyLeft,
1311.24Stls    XawjustifyRight,
1321.24Stls    XawjustifyCenter,
1331.4Scgd    XawjustifyFull
1341.4Scgd} XawTextJustifyMode;
1351.4Scgd
1361.4Scgdtypedef struct {
1371.4Scgd    int  firstPos;
1381.4Scgd    int  length;
1391.4Scgd    char *ptr;
1401.4Scgd    unsigned long format;
1411.4Scgd} XawTextBlock, *XawTextBlockPtr;
1421.4Scgd
1431.4Scgd#ifndef OLDXAW
1441.4Scgdtypedef struct {
1451.4Scgd    int line_number;
1461.4Scgd    int column_number;
1471.4Scgd    XawTextPosition insert_position;
1481.4Scgd    XawTextPosition last_position;
1491.4Scgd    Boolean overwrite_mode;
1501.4Scgd} XawTextPositionInfo;
1511.4Scgd
1521.24Stlstypedef struct {
1531.4Scgd    XawTextPosition left, right;
1541.4Scgd    XawTextBlock *block;
1551.4Scgd} XawTextPropertyInfo;
1561.4Scgd
1571.25Sveegotypedef struct _XawTextAnchor XawTextAnchor;
1581.4Scgdtypedef struct _XawTextEntity XawTextEntity;
1591.4Scgdtypedef struct _XawTextProperty XawTextProperty;
1601.4Scgdtypedef struct _XawTextPropertyList XawTextPropertyList;
1611.24Stls#endif
1621.4Scgd
1631.4Scgd#include <X11/Xaw/TextSink.h>
1641.4Scgd#include <X11/Xaw/TextSrc.h>
1651.4Scgd
1661.4Scgd#define XtEtextScrollNever "never"
1671.4Scgd#define XtEtextScrollWhenNeeded "whenneeded"
1681.665Sjunyoung#define XtEtextScrollAlways "always"
1691.4Scgd#define XtEtextResizeNever "never"
1701.4Scgd#define XtEtextResizeWidth "width"
1711.4Scgd#define XtEtextResizeHeight "height"
1721.4Scgd#define XtEtextResizeBoth "both"
1731.794Sgrant
1741.665Sjunyoung#define XtEtextWrapNever	"never"
1751.4Scgd#define XtEtextWrapLine		"line"
1761.4Scgd#define XtEtextWrapWord		"word"
1771.4Scgd
1781.1014Ssborrill#define XtNautoFill "autoFill"
1791.4Scgd#define XtNbottomMargin "bottomMargin"
1801.4Scgd#define XtNdialogHOffset "dialogHOffset"
1811.665Sjunyoung#define XtNdialogVOffset "dialogVOffset"
1821.4Scgd#define XtNdisplayCaret "displayCaret"
1831.4Scgd#define XtNdisplayPosition "displayPosition"
1841.665Sjunyoung#define XtNleftMargin "leftMargin"
1851.4Scgd#define XtNrightMargin "rightMargin"
1861.4Scgd#define XtNpositionCallback "positionCallback"
1871.4Scgd#define XtNscrollVertical "scrollVertical"
1881.4Scgd#define XtNscrollHorizontal "scrollHorizontal"
1891.4Scgd#define XtNselectTypes "selectTypes"
1901.4Scgd#define XtNtopMargin "topMargin"
1911.665Sjunyoung#define XtNwrap "wrap"
1921.665Sjunyoung
1931.25Sveego#define XtCColumn		"Column"
1941.4Scgd#define XtNleftColumn		"leftColumn"
1951.665Sjunyoung#define XtNrightColumn		"rightColumn"
1961.4Scgd
1971.4Scgd#define XtCJustifyMode		XtCJustify
1981.4Scgd#define XtNjustifyMode		XtNjustify
1991.4Scgd#define XtEtextJustifyLeft	"left"
2001.4Scgd#define XtEtextJustifyRight	"right"
2011.4Scgd#define XtEtextJustifyCenter	"center"
2021.4Scgd#define XtEtextJustifyFull	"full"
2031.4Scgd
2041.4Scgd#define XtCAutoFill "AutoFill"
2051.4Scgd#define XtCSelectTypes "SelectTypes"
2061.4Scgd#define XtCWrap "Wrap"
2071.4Scgd#ifndef notdef
2081.4Scgd#define XtCScroll		"Scroll"
2091.4Scgd#endif
2101.4Scgd
2111.4Scgd#ifndef _XtStringDefs_h_
2121.4Scgd#define XtNinsertPosition "insertPosition"
2131.4Scgd#ifndef notdef
2141.4Scgd#define XtNresize "resize"
2151.4Scgd#define XtCResize "Resize"
2161.4Scgd#endif
2171.4Scgd#define XtNselection		"selection"
2181.4Scgd#endif
2191.4Scgd
2201.4Scgd/* return Error code for XawTextSearch */
2211.4Scgd#define XawTextSearchError      (-12345L)
2221.4Scgd
2231.4Scgd/* return codes from XawTextReplace */
2241.4Scgd#define XawReplaceError	       -1
2251.4Scgd#define XawEditDone		0
2261.25Sveego#define XawEditError		1
2271.4Scgd#define XawPositionError	2
2281.4Scgd
2291.4Scgd/* XrmQuark is not unsigned long */
2301.251Swiz#define XawTextFormat(tw,fmt) ((unsigned long)_XawTextFormat(tw) == (fmt))
2311.4Scgd
2321.4Scgdextern unsigned long FMT8BIT;
2331.4Scgdextern unsigned long XawFmt8Bit;
2341.4Scgdextern unsigned long XawFmtWide;
2351.4Scgd
2361.312Ssorenextern WidgetClass textWidgetClass;
2371.4Scgd
2381.4Scgdtypedef struct _TextClassRec *TextWidgetClass;
2391.4Scgdtypedef struct _TextRec      *TextWidget;
2401.4Scgd
2411.4Scgd_XFUNCPROTOBEGIN
2421.4Scgd
2431.4ScgdXrmQuark _XawTextFormat
2441.4Scgd(
2451.4Scgd TextWidget		tw
2461.4Scgd );
2471.4Scgd
2481.4Scgdvoid XawTextDisplay
2491.4Scgd(
2501.4Scgd Widget			w
2511.4Scgd );
2521.4Scgd
2531.4Scgdvoid XawTextEnableRedisplay
2541.4Scgd(
2551.4Scgd Widget			w
2561.4Scgd );
2571.4Scgd
2581.77Sdantevoid XawTextDisableRedisplay
2591.4Scgd(
2601.1079Smrg Widget			w
2611.1079Smrg );
2621.4Scgd
2631.4Scgdvoid XawTextSetSelectionArray
2641.4Scgd(
2651.4Scgd Widget			w,
2661.4Scgd XawTextSelectType	*sarray
2671.4Scgd );
2681.4Scgd
2691.4Scgdvoid XawTextGetSelectionPos
2701.4Scgd(
2711.4Scgd Widget			w,
2721.4Scgd XawTextPosition	*begin_return,
2731.24Stls XawTextPosition	*end_return
2741.4Scgd );
2751.753Stron
2761.4Scgdvoid XawTextSetSource
2771.4Scgd(
2781.24Stls Widget			w,
2791.665Sjunyoung Widget			source,
2801.81Sdrochner XawTextPosition	top
2811.4Scgd );
2821.4Scgd
2831.4Scgdint XawTextReplace
2841.4Scgd(
2851.4Scgd Widget			w,
2861.4Scgd XawTextPosition	start,
2871.396Sjunyoung XawTextPosition	end,
2881.4Scgd XawTextBlock		*text
2891.4Scgd );
2901.665Sjunyoung
2911.4ScgdXawTextPosition XawTextTopPosition
2921.4Scgd(
2931.4Scgd Widget			w
2941.4Scgd );
2951.4Scgd
2961.4ScgdXawTextPosition XawTextLastPosition
2971.4Scgd(
2981.665Sjunyoung Widget			w
2991.4Scgd );
3001.4Scgd
3011.4Scgdvoid XawTextSetInsertionPoint
3021.4Scgd(
3031.4Scgd Widget			w,
3041.4Scgd XawTextPosition	position
3051.4Scgd );
3061.4Scgd
3071.4ScgdXawTextPosition XawTextGetInsertionPoint
3081.4Scgd(
3091.4Scgd Widget			w
3101.4Scgd );
3111.4Scgd
3121.4Scgdvoid XawTextUnsetSelection
3131.4Scgd(
3141.4Scgd Widget			w
3151.12Scgd );
3161.4Scgd
3171.4Scgdvoid XawTextSetSelection
3181.4Scgd(
3191.25Sveego Widget			w,
3201.4Scgd XawTextPosition	left,
3211.4Scgd XawTextPosition	right
3221.4Scgd );
3231.4Scgd
3241.4Scgdvoid XawTextInvalidate
3251.4Scgd(
3261.4Scgd Widget			w,
3271.25Sveego XawTextPosition	from,
3281.4Scgd XawTextPosition	to
3291.4Scgd);
3301.24Stls
3311.4ScgdWidget XawTextGetSource
3321.4Scgd(
3331.4Scgd Widget			w
3341.4Scgd );
3351.4Scgd
3361.4ScgdWidget XawTextGetSink
3371.4Scgd(
3381.4Scgd Widget			w
3391.4Scgd );
3401.4Scgd
3411.4ScgdXawTextPosition XawTextSearch
3421.4Scgd(
3431.4Scgd Widget			w,
3441.4Scgd#if NeedWidePrototypes
3451.24Stls int			dir,
3461.24Stls#else
3471.4Scgd XawTextScanDirection	dir,
3481.4Scgd#endif
3491.4Scgd XawTextBlock		*text
3501.4Scgd );
3511.4Scgd
3521.4Scgdvoid XawTextDisplayCaret
3531.4Scgd(
3541.4Scgd Widget			w,
3551.4Scgd#if NeedWidePrototypes
3561.4Scgd int			visible
3571.4Scgd#else
3581.4Scgd Boolean		visible
3591.4Scgd#endif
3601.4Scgd );
3611.4Scgd
3621.4Scgd_XFUNCPROTOEND
3631.4Scgd
3641.4Scgd/*
3651.4Scgd * For R3 compatability only
3661.4Scgd */
3671.4Scgd#include <X11/Xaw/AsciiSrc.h>
3681.4Scgd#include <X11/Xaw/AsciiSink.h>
3691.4Scgd
3701.4Scgd#endif /* _XawText_h */
3711.4Scgd