Intial commit
[profile/ivi/w3m.git] / form.h
1 /* $Id: form.h,v 1.6 2003/09/22 21:02:18 ukai Exp $ */
2 /*
3  * HTML forms 
4  */
5 #ifndef FORM_H
6 #define FORM_H
7
8 #include "Str.h"
9
10 #define FORM_UNKNOWN        -1
11 #define FORM_INPUT_TEXT     0
12 #define FORM_INPUT_PASSWORD 1
13 #define FORM_INPUT_CHECKBOX 2
14 #define FORM_INPUT_RADIO    3
15 #define FORM_INPUT_SUBMIT   4
16 #define FORM_INPUT_RESET    5
17 #define FORM_INPUT_HIDDEN   6
18 #define FORM_INPUT_IMAGE    7
19 #define FORM_SELECT         8
20 #define FORM_TEXTAREA       9
21 #define FORM_INPUT_BUTTON   10
22 #define FORM_INPUT_FILE     11
23
24 #define FORM_I_TEXT_DEFAULT_SIZE 40
25 #define FORM_I_SELECT_DEFAULT_SIZE 40
26 #define FORM_I_TEXTAREA_DEFAULT_WIDTH 40
27
28 #define FORM_METHOD_GET 0
29 #define FORM_METHOD_POST 1
30 #define FORM_METHOD_INTERNAL 2
31 #define FORM_METHOD_HEAD 3
32
33 #define FORM_ENCTYPE_URLENCODED 0
34 #define FORM_ENCTYPE_MULTIPART  1
35
36 #define MAX_TEXTAREA 10         /* max number of <textarea>..</textarea> 
37                                  * within one document */
38 #ifdef MENU_SELECT
39 #define MAX_SELECT 10           /* max number of <select>..</select>
40                                  * within one document */
41 #endif                          /* MENU_SELECT */
42
43 typedef struct form_list {
44     struct form_item_list *item;
45     struct form_item_list *lastitem;
46     int method;
47     Str action;
48     char *target;
49     char *name;
50 #ifdef USE_M17N
51     wc_ces charset;
52 #endif
53     int enctype;
54     struct form_list *next;
55     int nitems;
56     char *body;
57     char *boundary;
58     unsigned long length;
59 } FormList;
60
61 #ifdef MENU_SELECT
62 typedef struct form_select_option_item {
63     Str value;
64     Str label;
65     int checked;
66     struct form_select_option_item *next;
67 } FormSelectOptionItem;
68
69 typedef struct form_select_option {
70     FormSelectOptionItem *first;
71     FormSelectOptionItem *last;
72 } FormSelectOption;
73
74 void addSelectOption(FormSelectOption *fso, Str value, Str label, int chk);
75 void chooseSelectOption(struct form_item_list *fi, FormSelectOptionItem *item);
76 void updateSelectOption(struct form_item_list *fi, FormSelectOptionItem *item);
77 int formChooseOptionByMenu(struct form_item_list *fi, int x, int y);
78 #endif                          /* MENU_SELECT */
79
80 typedef struct form_item_list {
81     int type;
82     Str name;
83     Str value, init_value;
84     int checked, init_checked;
85     int accept;
86     int size;
87     int rows;
88     int maxlength;
89     int readonly;
90 #ifdef MENU_SELECT
91     FormSelectOptionItem *select_option;
92     Str label, init_label;
93     int selected, init_selected;
94 #endif                          /* MENU_SELECT */
95     struct form_list *parent;
96     struct form_item_list *next;
97 } FormItemList;
98
99 #endif                          /* not FORM_H */