#ifndef HTFORMS_H #define HTFORMS_H #ifndef LYSTRUCTS_H #include #endif /* LYSTRUCTS_H */ /* in LYForms.c */ /* change_form_link calls change_form_link_ex with all its args and FALSE as last arg */ extern int change_form_link PARAMS((struct link *form_link, document *newdoc, BOOLEAN *refresh_screen, char *link_name, char *link_value, BOOLEAN use_last_tfpos, BOOLEAN immediate_submit)); extern int change_form_link_ex PARAMS((struct link *form_link, document *newdoc, BOOLEAN *refresh_screen, char *link_name, char *link_value, BOOLEAN use_last_tfpos, BOOLEAN immediate_submit, BOOLEAN draw_only)); /* 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 */ unsigned 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 following 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 F_TEXTLIKE(type) ((type)==F_TEXT_TYPE || (type)==F_TEXT_SUBMIT_TYPE ||\ (type)==F_PASSWORD_TYPE || (type)==F_TEXTAREA_TYPE) #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, others - kw */ #define LINK_DO_ARROWUP 16 /* returned by HTGetLinkOrFieldStart - kw */ /* #define different lynx modes */ #define NORMAL_LYNX_MODE 1 #define FORMS_LYNX_MODE 2 #define FIRST_ORDER 1 #define MIDDLE_ORDER 2 #define LAST_ORDER 3 /* in LYForms.c */ extern void show_formlink_statusline PARAMS((CONST FormInfo * form, int for_what)); #endif /* HTFORMS_H */