summaryrefslogtreecommitdiffstats
path: root/src/GridText.h
blob: 9c68d3db69d5e8ea172b0945adb5f059ee36fc3d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
/*
 * $LynxId: GridText.h,v 1.70 2022/06/12 16:38:03 KIHARA.Hideto Exp $
 *
 * Specialities of GridText as subclass of HText
 */
#ifndef LYGRIDTEXT_H
#define LYGRIDTEXT_H

#include <HText.h>		/* Superclass */

#ifndef HTFORMS_H
#include <HTForms.h>
#endif /* HTFORMS_H */

#include <HTFont.h>

#include <HTCJK.h>

#ifdef __cplusplus
extern "C" {
#endif
#define TABSTOP 8
#define SPACES  "        "	/* must be at least TABSTOP spaces long */
#define SPLAT   '.'
#define NOCHOP 0
#define CHOP   1
/* just for information:
US-ASCII control characters <32 which are not defined in Unicode standard
=00	U+0000	NULL
=01	U+0001	START OF HEADING
=02	U+0002	START OF TEXT
=03	U+0003	END OF TEXT
=04	U+0004	END OF TRANSMISSION
=05	U+0005	ENQUIRY
=06	U+0006	ACKNOWLEDGE
=07	U+0007	BELL
=08	U+0008	BACKSPACE
=09	U+0009	HORIZONTAL TABULATION
=0A	U+000A	LINE FEED
=0B	U+000B	VERTICAL TABULATION
=0C	U+000C	FORM FEED
=0D	U+000D	CARRIAGE RETURN
=0E	U+000E	SHIFT OUT
=0F	U+000F	SHIFT IN
=10	U+0010	DATA LINK ESCAPE
=11	U+0011	DEVICE CONTROL ONE
=12	U+0012	DEVICE CONTROL TWO
=13	U+0013	DEVICE CONTROL THREE
=14	U+0014	DEVICE CONTROL FOUR
=15	U+0015	NEGATIVE ACKNOWLEDGE
=16	U+0016	SYNCHRONOUS IDLE
=17	U+0017	END OF TRANSMISSION BLOCK
=18	U+0018	CANCEL
=19	U+0019	END OF MEDIUM
=1A	U+001A	SUBSTITUTE
=1B	U+001B	ESCAPE
=1C	U+001C	FILE SEPARATOR
=1D	U+001D	GROUP SEPARATOR
=1E	U+001E	RECORD SEPARATOR
=1F	U+001F	UNIT SEPARATOR
=7F	U+007F	DELETE
*/ extern int HTCurSelectGroupType;
    extern char *HTCurSelectGroupSize;

#if defined(VMS) && defined(VAXC) && !defined(__DECC)
    extern int HTVirtualMemorySize;
#endif				/* VMS && VAXC && !__DECC */

    extern HTChildAnchor *HText_childNextNumber(int n, void **prev);
    extern int HText_findAnchorNumber(void *avoid);
    extern void HText_FormDescNumber(int n, const char **desc);

/*	Is there any file left?
*/
    extern BOOL HText_canScrollUp(HText *text);
    extern BOOL HText_canScrollDown(void);

/*	Move display within window
*/
    extern void HText_scrollUp(HText *text);	/* One page */
    extern void HText_scrollDown(HText *text);	/* One page */
    extern void HText_scrollTop(HText *text);
    extern void HText_scrollBottom(HText *text);
    extern void HText_pageDisplay(int line_num, char *target);
    extern BOOL HText_pageHasPrevTarget(void);

    extern int HText_LinksInLines(HText *text, int line_num, int Lines);

    extern int HText_getAbsLineNumber(HText *text, int anchor_number);
    extern int HText_closestAnchor(HText *text, int offset);
    extern int HText_locateAnchor(HText *text, int anchor_number);
    extern int HText_anchorRelativeTo(HText *text, int top_lineno, int anchor_num);

    extern void HText_setLastChar(HText *text, int ch);
    extern char HText_getLastChar(HText *text);
#ifdef EXP_JAPANESE_SPACES
    extern BOOL HText_checkLastChar_needSpaceOnJoinLines(HText *text);
#endif

    extern int HText_sourceAnchors(HText *text);
    extern void HText_setStale(HText *text);
    extern void HText_refresh(HText *text);
    extern const char *HText_getTitle(void);
    extern const char *HText_getSugFname(void);
    extern void HTCheckFnameForCompression(char **fname,
					   HTParentAnchor *anchor,
					   int strip_ok);
    extern const char *HText_getLastModified(void);
    extern const char *HText_getDate(void);
    extern const char *HText_getHttpHeaders(void);
    extern const char *HText_getServer(void);
    extern const char *HText_getOwner(void);
    extern const char *HText_getContentBase(void);
    extern const char *HText_getContentLocation(void);
    extern const char *HText_getMessageID(void);
    extern const char *HText_getRevTitle(void);

#ifdef USE_COLOR_STYLE
    extern const char *HText_getStyle(void);
#endif
    extern void HText_setMainTextOwner(const char *owner);
    extern void print_wwwfile_to_fd(FILE *fp, int is_email, int is_reply);
    extern BOOL HText_select(HText *text);
    extern BOOL HText_POSTReplyLoaded(DocInfo *doc);
    extern BOOL HTFindPoundSelector(const char *selector);
    extern int HTGetRelLinkNum(int num, int rel, int cur);
    extern int HTGetLinkInfo(int number,
			     int want_go,
			     int *go_line,
			     int *linknum,
			     char **hightext,
			     char **lname);
    extern BOOL HText_TAHasMoreLines(int curlink,
				     int direction);
    extern int HTGetLinkOrFieldStart(int curlink,
				     int *go_line,
				     int *linknum,
				     int direction,
				     int ta_skip);
    extern BOOL HText_getFirstTargetInLine(HText *text,
					   int line_num,
					   int utf_flag,
					   int *offset,
					   int *tLen,
					   char **data,
					   const char *target);
    extern int HTisDocumentSource(void);
    extern void HTuncache_current_document(void);

#ifdef USE_SOURCE_CACHE
    extern BOOLEAN HTreparse_document(void);
    extern BOOLEAN HTcan_reparse_document(void);
    extern BOOLEAN HTdocument_settings_changed(void);
#endif

    extern BOOL HTLoadedDocumentEightbit(void);
    extern BOOL HText_LastLineEmpty(HText *me, int IgnoreSpaces);
    extern BOOL HText_PreviousLineEmpty(HText *me, int IgnoreSpaces);
    extern BOOL HText_inLineOne(HText *text);
    extern BOOLEAN HTLoadedDocumentIsHEAD(void);
    extern BOOLEAN HTLoadedDocumentIsSafe(void);
    extern bstring *HTLoadedDocumentPost_data(void);
    extern const char *HTLoadedDocumentBookmark(void);
    extern const char *HTLoadedDocumentCharset(void);
    extern const char *HTLoadedDocumentTitle(void);
    extern const char *HTLoadedDocumentURL(void);
    extern const char *HText_HiddenLinkAt(HText *text, int number);
    extern int HText_HiddenLinkCount(HText *text);
    extern int HText_LastLineOffset(HText *me);
    extern int HText_LastLineSize(HText *me, int IgnoreSpaces);
    extern int HText_PreviousLineSize(HText *me, int IgnoreSpaces);
    extern int HText_getCurrentColumn(HText *text);
    extern int HText_getLines(HText *text);
    extern int HText_getMaximumColumn(HText *text);
    extern int HText_getNumOfBytes(void);
    extern int HText_getNumOfLines(void);
    extern int HText_getPreferredTopLine(HText *text, int line_number);
    extern int HText_getTabIDColumn(HText *text, const char *name);
    extern int HText_getTopOfScreen(void);
    extern int do_www_search(DocInfo *doc);
    extern void HText_NegateLineOne(HText *text);
    extern void HText_RemovePreviousLine(HText *text);
    extern void HText_setNodeAnchorBookmark(const char *bookmark);
    extern void HText_setTabID(HText *text, const char *name);
    extern void *HText_pool_calloc(HText *text, unsigned size);

/* "simple table" stuff */
    extern BOOLEAN HText_endStblTABLE(HText *);
    extern int HText_trimCellLines(HText *text);
    extern void HText_cancelStbl(HText *);
    extern void HText_endStblCOLGROUP(HText *);
    extern void HText_endStblTD(HText *);
    extern void HText_endStblTR(HText *);
    extern void HText_startStblCOL(HText *, int, int, int);
    extern void HText_startStblRowGroup(HText *, int);
    extern void HText_startStblTABLE(HText *, int);
    extern void HText_startStblTD(HText *, int, int, int, int);
    extern void HText_startStblTR(HText *, int);

/* forms stuff */
    extern void HText_beginForm(char *action,
				char *method,
				char *enctype,
				char *title,
				const char *accept_cs);
    extern void HText_endForm(HText *text);
    extern void HText_beginSelect(char *name,
				  int name_cs,
				  int multiple,
				  char *len);
    extern int HText_getOptionNum(HText *text);
    extern char *HText_setLastOptionValue(HText *text,
					  char *value,
					  char *submit_value,
					  int order,
					  int checked,
					  int val_cs,
					  int submit_val_cs);
    extern int HText_beginInput(HText *text,
				int underline,
				InputFieldData * I);
    extern void HText_endInput(HText *text);
    extern PerFormInfo *HText_PerFormInfo(int number);
    extern int HText_SubmitForm(FormInfo * submit_item, DocInfo *doc,
				const char *link_name,
				const char *link_value);
    extern void HText_DisableCurrentForm(void);
    extern void HText_ResetForm(FormInfo * form);
    extern void HText_activateRadioButton(FormInfo * form);
    extern BOOLEAN HText_HaveUserChangedForms(HText *text);

    extern HTList *search_queries;	/* Previous isindex and whereis queries */
    extern void HTSearchQueries_free(void);
    extern void HTAddSearchQuery(char *query);

    extern void user_message(const char *message,
			     const char *argument);

#define _user_message(msg, arg)	mustshow = TRUE, user_message(msg, arg)

    extern void www_user_search(int start_line,
				DocInfo *doc,
				char *target,
				int direction);

    extern void print_crawl_to_fd(FILE *fp,
				  char *thelink,
				  char *thetitle);
    extern char *stub_HTAnchor_address(HTAnchor * me);

    extern void HText_setToolbar(HText *text);
    extern BOOL HText_hasToolbar(HText *text);

    extern void HText_setNoCache(HText *text);
    extern BOOL HText_hasNoCacheSet(HText *text);

    extern BOOL HText_hasUTF8OutputSet(HText *text);
    extern void HText_setKcode(HText *text,
			       const char *charset,
			       LYUCcharset *p_in);

    extern void HText_setBreakPoint(HText *text);

    extern BOOL HText_AreDifferent(HTParentAnchor *anchor,
				   const char *full_address);

    extern int HText_EditTextArea(LinkInfo * form_link);
    extern void HText_EditTextField(LinkInfo * form_link);
    extern void HText_ExpandTextarea(LinkInfo * form_link, int newlines);
    extern int HText_InsertFile(LinkInfo * form_link);

    extern void redraw_lines_of_link(int cur);
    extern void LYMoveToLink(int cur,
			     const char *target,
			     const char *hightext,
			     int flag,
			     int inU,
			     int utf_flag);

#ifdef USE_PRETTYSRC
    extern void HTMark_asSource(void);
#endif

    extern int HTMainText_Get_UCLYhndl(void);

#ifdef KANJI_CODE_OVERRIDE
    extern HTkcode last_kcode;
#endif

    extern HTkcode HText_getKcode(HText *text);
    extern void HText_updateKcode(HText *text, HTkcode kcode);
    extern HTkcode HText_getSpecifiedKcode(HText *text);
    extern void HText_updateSpecifiedKcode(HText *text, HTkcode kcode);

#if defined(EXP_WCWIDTH_SUPPORT) || defined(EXP_JAPANESE_SPACES)
    extern BOOL isUTF8CJChar(const char *s);
#endif

#ifdef __cplusplus
}
#endif
#endif				/* LYGRIDTEXT_H */