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
|
#ifndef HTFORMS_H
#define HTFORMS_H
#ifndef LYSTRUCTS_H
#include <LYStructs.h>
#endif /* LYSTRUCTS_H */
/* in LYForms.c */
extern int change_form_link PARAMS((struct link *form_link, int mode,
document *newdoc, BOOLEAN *refresh_screen,
char *link_name, char *link_value));
/* InputFieldData is used to pass the info between
* HTML.c and Gridtext.c in HText_beginInput()
*/
typedef struct _InputFieldData {
CONST char *accept;
CONST char *align;
int checked;
CONST char *class;
int disabled;
CONST char *error;
CONST char *height;
CONST char *id;
CONST char *lang;
CONST char *max;
CONST char *maxlength;
CONST char *md;
CONST char *min;
CONST char *name;
CONST char *size;
CONST char *src;
CONST char *type;
char *value;
CONST char *width;
int name_cs; /* charset handle for name */
int value_cs; /* charset handle for value */
CONST char *accept_cs;
} InputFieldData;
/* The OptionType structure is for a linked list of option entries
*/
typedef struct _OptionType {
char * name; /* the name of the entry */
char * cp_submit_value; /* the value to submit */
int value_cs; /* charset value is in */
struct _OptionType * next; /* the next entry */
} OptionType;
/* the FormInfo structure is used to contain the form field
* data within each anchor
* A pointer to this structure is in the TextAnchor struct.
*/
typedef struct _FormInfo {
char * name; /* the name of the link */
int number; /* which form is the link within */
int type; /* string, int, etc. */
char * value; /* user entered string data */
char * orig_value;/* the original value */
int size; /* width on the screen */
int maxlength; /* max width of data */
int group; /* a group associated with the link
* this is used for select's
*/
int num_value; /* value of the numerical fields */
int hrange; /* high numerical range */
int lrange; /* low numerical range */
OptionType * select_list; /* array of option choices */
char * submit_action; /* form's action */
int submit_method; /* form's method */
char * submit_enctype; /* form's entype */
char * submit_title; /* form's title */
BOOL no_cache; /* Always resubmit? */
char * cp_submit_value; /* option value to submit */
char * orig_submit_value; /* original submit value */
int size_l; /* The length of the option list */
int disabled; /* If YES, can't change values */
int name_cs;
int value_cs;
char * accept_cs;
} FormInfo;
/*
* As structure for info associated with a form.
* There is some redundancy here, this shouldn't waste too much memory
* since the total number of forms (as opposed to form fields) per doc
* is expected to be rather small.
* More things which are per form rather than per field could be moved
* here. - kw
*/
typedef struct _PerFormInfo
{
int number; /* form number, see GridText.c */
/* except for the last two, the followign fields aren't actually used.. */
int disabled; /* If YES, can't change values */
struct _PerFormInfo * next; /* pointer to next form in doc */
int nfields; /* number of fields */
FormInfo * first_field;
FormInfo * last_field; /* pointer to last field in form */
char * accept_cs;
char * thisacceptcs; /* used during submit */
} PerFormInfo;
#define HYPERTEXT_ANCHOR 1
#define INPUT_ANCHOR 2 /* forms mode input fields */
#define INTERNAL_LINK_ANCHOR 5 /* 1+4, can be used as bitflag... - kw */
#define F_TEXT_TYPE 1
#define F_PASSWORD_TYPE 2
#define F_CHECKBOX_TYPE 3
#define F_RADIO_TYPE 4
#define F_SUBMIT_TYPE 5
#define F_RESET_TYPE 6
#define F_OPTION_LIST_TYPE 7
#define F_HIDDEN_TYPE 8
#define F_TEXTAREA_TYPE 9
#define F_RANGE_TYPE 10
#define F_FILE_TYPE 11
#define F_TEXT_SUBMIT_TYPE 12
#define F_IMAGE_SUBMIT_TYPE 13
#define F_KEYGEN_TYPE 14
#define WWW_FORM_LINK_TYPE 1
#define WWW_LINK_TYPE 2
#define WWW_INTERN_LINK_TYPE 6 /* can be used as a bitflag... - kw */
#define LINK_LINE_FOUND 8 /* used in follow_link_number - kw */
/* #define different lynx modes */
#define NORMAL_LYNX_MODE 1
#define FORMS_LYNX_MODE 2
#define FORM_UP 1
#define FORM_DOWN 2
#define FIRST_ORDER 1
#define MIDDLE_ORDER 2
#define LAST_ORDER 3
#endif /* HTFORMS_H */
|