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) %% ;
|