diff options
Diffstat (limited to 'form.h')
-rw-r--r-- | form.h | 99 |
1 files changed, 99 insertions, 0 deletions
@@ -0,0 +1,99 @@ +/* $Id: form.h,v 1.6 2003/09/22 21:02:18 ukai Exp $ */ +/* + * HTML forms + */ +#ifndef FORM_H +#define FORM_H + +#include "Str.h" + +#define FORM_UNKNOWN -1 +#define FORM_INPUT_TEXT 0 +#define FORM_INPUT_PASSWORD 1 +#define FORM_INPUT_CHECKBOX 2 +#define FORM_INPUT_RADIO 3 +#define FORM_INPUT_SUBMIT 4 +#define FORM_INPUT_RESET 5 +#define FORM_INPUT_HIDDEN 6 +#define FORM_INPUT_IMAGE 7 +#define FORM_SELECT 8 +#define FORM_TEXTAREA 9 +#define FORM_INPUT_BUTTON 10 +#define FORM_INPUT_FILE 11 + +#define FORM_I_TEXT_DEFAULT_SIZE 40 +#define FORM_I_SELECT_DEFAULT_SIZE 40 +#define FORM_I_TEXTAREA_DEFAULT_WIDTH 40 + +#define FORM_METHOD_GET 0 +#define FORM_METHOD_POST 1 +#define FORM_METHOD_INTERNAL 2 +#define FORM_METHOD_HEAD 3 + +#define FORM_ENCTYPE_URLENCODED 0 +#define FORM_ENCTYPE_MULTIPART 1 + +#define MAX_TEXTAREA 10 /* max number of <textarea>..</textarea> + * within one document */ +#ifdef MENU_SELECT +#define MAX_SELECT 10 /* max number of <select>..</select> + * within one document */ +#endif /* MENU_SELECT */ + +typedef struct form_list { + struct form_item_list *item; + struct form_item_list *lastitem; + int method; + Str action; + char *target; + char *name; +#ifdef USE_M17N + wc_ces charset; +#endif + int enctype; + struct form_list *next; + int nitems; + char *body; + char *boundary; + unsigned long length; +} FormList; + +#ifdef MENU_SELECT +typedef struct form_select_option_item { + Str value; + Str label; + int checked; + struct form_select_option_item *next; +} FormSelectOptionItem; + +typedef struct form_select_option { + FormSelectOptionItem *first; + FormSelectOptionItem *last; +} FormSelectOption; + +void addSelectOption(FormSelectOption *fso, Str value, Str label, int chk); +void chooseSelectOption(struct form_item_list *fi, FormSelectOptionItem *item); +void updateSelectOption(struct form_item_list *fi, FormSelectOptionItem *item); +int formChooseOptionByMenu(struct form_item_list *fi, int x, int y); +#endif /* MENU_SELECT */ + +typedef struct form_item_list { + int type; + Str name; + Str value, init_value; + int checked, init_checked; + int accept; + int size; + int rows; + int maxlength; + int readonly; +#ifdef MENU_SELECT + FormSelectOptionItem *select_option; + Str label, init_label; + int selected, init_selected; +#endif /* MENU_SELECT */ + struct form_list *parent; + struct form_item_list *next; +} FormItemList; + +#endif /* not FORM_H */ |