Subversion Repositories tendra.SVN

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 7u83 1
/*
2
    COPYRIGHT NOTICE
3
 
4
    This program is the proprietary property of IXI Ltd, a subsidiary
5
    of the Santa Cruz Operation (SCO). Use, reproduction, production
6
    of amended versions and/or transfer of this program is permitted
7
    PROVIDED THAT:
8
 
9
    (a)  This legend be preserved on any such reproduction and amended
10
         version.
11
 
12
    (b)  Any recipient of such reproduction or amended version accept
13
         the conditions set out in this legend.
14
 
15
    IXI accepts no liability whatsoever in relation to any use to
16
    which this program may be put and gives no warranty as to the
17
    program's suitability for any purpose.
18
 
19
    All rights reserved.
20
 
21
    Copyright (c) 1995, 1996
22
 
23
*/
24
 
25
 
26
 
27
/* SCO CID (IXI) TextOutP.h,v 1.1 1996/08/08 14:13:41 wendland Exp */
28
 
29
%%
30
#ifndef __MOTIF_P_HEADERS
31
#error Unexpected access to Motif P headers
32
#endif
33
%%
34
 
35
+USE "motif/1_2", "Xm/XmP.h";
36
+USE "motif/1_2", "Xm/Text.h";
37
 
38
+FIELD (struct) _LineTableExtraRec := {
39
 
40
	Dimension		width;
41
	Boolean			wrappedbychar;
42
};
43
 
44
+TYPEDEF _LineTableExtraRec LineTableExtraRec;
45
+TYPEDEF _LineTableExtraRec *LineTableExtra ;
46
 
47
 
48
+TYPEDEF unsigned int LineNum;
49
 
50
+TYPEDEF int OnOrOff;
51
+CONST int on;
52
+CONST int off;
53
 
54
+CONST int NOLINE;
55
 
56
+FIELD (struct) _OutputDataRec := {
57
 
58
	XmFontList		fontlist;
59
	unsigned int		blinkrate;
60
	Boolean			wordwrapl;
61
	Boolean			cursor_position_visible;
62
	Boolean			autoshowinsertpoint;
63
	Boolean			hasfocus;
64
	Boolean			has_rect;
65
	Boolean			handlingexposures;
66
	Boolean			exposevscroll;
67
	Boolean			exposehscroll;
68
	Boolean 		resizewidth;
69
	Boolean			resizeheight;
70
	Boolean			scrollvertical;
71
	Boolean			scrollhorizontal;
72
	Boolean			scrollleftside;
73
	Boolean			scrolltopside;
74
	Boolean			ignorevbar;
75
	Boolean			ignorehbar;
76
	short			cursor_on;
77
	Boolean			refresh_ibeam_off;
78
	Boolean			suspend_hoffset;
79
	Boolean			use_fontset;
80
	Boolean			have_inverted_image_gc;
81
 
82
	OnOrOff			blinkstate;
83
 
84
	Position		insertx;
85
	Position		inserty;
86
 
87
	int			number_lines;
88
	int			leftmargin;
89
	int			rightmargin;
90
	int			topmargin;
91
	int			bottommargin;
92
	int			scrollwidth;
93
	int			vsliderSize;
94
	int			hoffset;
95
	int			averagecharwidth;
96
	int			tabwidth;
97
	short 			columns;
98
	short			rows;
99
	Dimension		lineheight;
100
	Dimension		minwidth;
101
	Dimension		minheight;
102
	Dimension 		prevW;
103
	Dimension		prevH;
104
	Dimension		cursorwidth;
105
	Dimension		cursorheight;
106
	Dimension		font_ascent;
107
	Dimension		font_descent;
108
	XtIntervalId		timerid;
109
	Pixmap			cursor;
110
	Pixmap			add_mode_cursor;
111
	Pixmap			ibeam_off;
112
	Pixmap			stipple_tile;
113
	GC			gc;
114
	GC			imagegc;
115
	Widget			vbar;
116
	Widget			hbar;
117
	XFontStruct		*font;
118
 
119
	GC			save_gc;
120
	short			columns_set;
121
	short			rows_set;
122
};
123
 
124
+TYPEDEF _OutputDataRec OutputDataRec;
125
+TYPEDEF _OutputDataRec *OutputData;
126
 
127
+TYPEDEF void (*OutputCreateProc)(Widget, ArgList, Cardinal);
128
+TYPEDEF XmTextPosition (*XYToPosProc)(XmTextWidget, Position, Position);
129
+TYPEDEF Boolean (*PosToXYProc)(XmTextWidget, XmTextPosition, Position *, Position *);
130
 
131
+CONST long PASTENDPOS;
132
 
133
+TYPEDEF Boolean (*MeasureLineProc)(XmTextWidget, LineNum, XmTextPosition, XmTextPosition *, LineTableExtraRec **);
134
 
135
+TYPEDEF void (*DrawProc)(XmTextWidget, LineNum, XmTextPosition, XmTextPosition, XmHighlightMode);
136
 
137
+TYPEDEF void (*DrawInsertionPointProc)(XmTextWidget, XmTextPosition, OnOrOff);
138
+TYPEDEF void (*MakePositionVisibleProc)(XmTextWidget, XmTextPosition);
139
 
140
+TYPEDEF Boolean (*MoveLinesProc)(XmTextWidget, LineNum, LineNum, LineNum);
141
 
142
+TYPEDEF void (*InvalidateProc)(XmTextWidget, XmTextPosition, XmTextPosition, long);
143
 
144
+TYPEDEF void (*GetPreferredSizeProc)(Widget, Dimension *, Dimension *);
145
 
146
+TYPEDEF void (*GetValuesProc)(Widget, ArgList, Cardinal);
147
 
148
+TYPEDEF Boolean (*SetValuesProc)(Widget, Widget, Widget, ArgList, Cardinal *);
149
 
150
+FIELD (struct) _OutputRec := { 
151
 
152
	OutputDataRec		*data;
153
	XYToPosProc		XYToPos;
154
	PosToXYProc		PosToXY;
155
	MeasureLineProc		MeasureLine;
156
	DrawProc		Draw;
157
	DrawInsertionPointProc	DrawInsertionPoint;
158
	MakePositionVisibleProc	MakePositionVisible;
159
	MoveLinesProc		MoveLines;
160
	InvalidateProc		Invalidate;
161
	GetPreferredSizeProc	GetPreferredSize;
162
	GetValuesProc		GetValues;
163
	SetValuesProc		SetValues;
164
	XmRealizeOutProc	realize;
165
	XtWidgetProc		destroy;
166
	XmResizeFlagProc	resize;
167
	XtExposeProc		expose;
168
};
169
 
170
+TYPEDEF _OutputRec OutputRec;
171
 
172
+FUNC void _XmTextFreeContextData(Widget, XtPointer, XtPointer);
173
+FUNC void _XmTextResetClipOrigin(XmTextWidget, XmTextPosition, Boolean);
174
+FUNC void _XmTextAdjustGC(XmTextWidget);
175
+FUNC Boolean _XmTextShouldWordWrap(XmTextWidget);
176
+FUNC Boolean _XmTextScrollable(XmTextWidget);
177
+FUNC XmTextPosition _XmTextFindLineEnd(XmTextWidget, XmTextPosition, LineTableExtra *);
178
+FUNC void _XmTextOutputGetSecResData(XmSecondaryResourceData *);
179
+FUNC int _XmTextGetNumberLines(XmTextWidget);
180
+FUNC void _XmTextMovingCursorPosition(XmTextWidget, XmTextPosition);
181
+FUNC void _XmTextDrawDestination(XmTextWidget);
182
+FUNC void _XmTextClearDestination(XmTextWidget, Boolean);
183
+FUNC void _XmTextDestinationVisible(Widget, Boolean);
184
+FUNC void _XmTextChangeBlinkBehavior(XmTextWidget, Boolean);
185
+FUNC void _XmTextOutputCreate(Widget, ArgList, Cardinal);
186
+FUNC Boolean _XmTextGetBaselines(Widget, Dimension **, int *);
187
+FUNC Boolean _XmTextGetDisplayRect(Widget, XRectangle *);
188
+FUNC void _XmTextMarginsProc(Widget, XmBaselineMargins *);
189
+FUNC void _XmTextChangeHOffset(XmTextWidget, int);
190
+FUNC void _XmTextToggleCursorGC(Widget);
191
 
192
 
193
+DEFINE ShouldWordWrap(data, widget) %% (data->wordwrap && (!(data->scrollhorizontal && (XtClass(widget->core.parent) == xmScrolledWindowWidgetClass))) && widget->text.edit_mode != XmSINGLE_LINE_EDIT && !data->resizewidth) %% ;