|
|
#ifndef HTFORMS_H
#define HTFORMS_H
#ifndef LYSTRUCTS_H
#include <LYStructs.h>
#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(int cur,
DocInfo *newdoc,
BOOLEAN *refresh_screen,
BOOLEAN use_last_tfpos,
BOOLEAN immediate_submit);
extern int change_form_link_ex(int cur,
DocInfo *newdoc,
BOOLEAN *refresh_screen,
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_FILE_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(const FormInfo * form,
int for_what);
#endif /* HTFORMS_H */
|