summaryrefslogtreecommitdiffstats
path: root/src/HTForms.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/HTForms.h')
-rw-r--r--src/HTForms.h174
1 files changed, 174 insertions, 0 deletions
diff --git a/src/HTForms.h b/src/HTForms.h
new file mode 100644
index 0000000..17f7491
--- /dev/null
+++ b/src/HTForms.h
@@ -0,0 +1,174 @@
+/*
+ * $LynxId: HTForms.h,v 1.34 2018/05/04 22:50:54 tom Exp $
+ */
+#ifndef HTFORMS_H
+#define HTFORMS_H
+
+#ifndef LYSTRUCTS_H
+#include <LYStructs.h>
+#endif /* LYSTRUCTS_H */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+/* 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,
+ int use_last_tfpos,
+ int immediate_submit);
+
+ extern int change_form_link_ex(int cur,
+ DocInfo *newdoc,
+ BOOLEAN *refresh_screen,
+ int use_last_tfpos,
+ int immediate_submit,
+ int 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 *iclass;
+ int disabled;
+ int readonly;
+ 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;
+ int 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 readonly; /* If YES, can't change values */
+ int name_cs;
+ int value_cs;
+ char *accept_cs;
+ } FormInfo;
+
+#define FormIsReadonly(form) ((form) && ((form)->disabled || (form)->readonly))
+
+/*
+ * 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 */
+ int disabled; /* If YES, can't change values */
+ FormInfo data;
+ 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 */
+
+ typedef enum {
+ F_UNKNOWN = 0,
+ F_TEXT_TYPE,
+ F_PASSWORD_TYPE,
+ F_CHECKBOX_TYPE,
+ F_RADIO_TYPE,
+ F_SUBMIT_TYPE,
+ F_RESET_TYPE,
+ F_OPTION_LIST_TYPE,
+ F_HIDDEN_TYPE,
+ F_TEXTAREA_TYPE,
+ F_RANGE_TYPE,
+ F_FILE_TYPE,
+ F_TEXT_SUBMIT_TYPE,
+ F_IMAGE_SUBMIT_TYPE,
+ F_KEYGEN_TYPE,
+ F_BUTTON_TYPE
+ } FieldTypes;
+
+#define F_SUBMITLIKE(type) ((type) == F_SUBMIT_TYPE || \
+ (type) == F_IMAGE_SUBMIT_TYPE || \
+ (type) == F_TEXT_SUBMIT_TYPE)
+
+#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);
+#ifdef __cplusplus
+}
+#endif
+#endif /* HTFORMS_H */