1 /***************************************************************************/ 2 /* This code is part of WWW grabber called pavuk */ 3 /* Copyright (c) 1997 - 2001 Stefan Ondrejicka */ 4 /* Distributed under GPL 2 or later */ 5 /***************************************************************************/ 6 7 #ifndef _form_h_ 8 #define _form_h_ 9 10 #include "dllist.h" 11 12 typedef enum 13 { 14 FORM_T_TEXT, 15 FORM_T_PASSWORD, 16 FORM_T_CHECKBOX, 17 FORM_T_RADIO, 18 FORM_T_SUBMIT, 19 FORM_T_RESET, 20 FORM_T_FILE, 21 FORM_T_HIDDEN, 22 FORM_T_IMAGE, 23 FORM_T_BUTTON, 24 FORM_T_SELECT, 25 FORM_T_OPTION, 26 FORM_T_OPTGROUP, 27 FORM_T_TEXTAREA, 28 FORM_T_NONFORM, 29 FORM_T_UNKNOWN 30 } form_field_types; 31 32 typedef struct 33 { 34 form_method method; 35 form_encoding encoding; 36 char *action; 37 dllist *infos; 38 char *text; 39 void *parent_url; 40 } form_info; 41 42 typedef struct 43 { 44 form_field_types type; 45 char *name; 46 char *value; 47 } form_field; 48 49 extern dllist *form_parse_urlencoded_query(char *); 50 extern char *form_decode_urlencoded_str(char *, int); 51 extern char *form_encode_urlencoded_str(char *); 52 extern char *form_encode_urlencoded(dllist *); 53 extern char *form_encode_multipart_boundary(void); 54 extern char *form_encode_multipart(dllist *, char *, int *); 55 extern char *form_encode_query(form_info *, int *); 56 57 extern form_field *form_field_new(char *, char *); 58 extern form_field *form_field_duplicate(form_field *); 59 extern int form_field_compare(dllist_t, dllist_t); 60 extern int form_field_compare_name(dllist_t, dllist_t); 61 62 extern form_info *form_info_dup(form_info *); 63 64 65 #ifdef GTK_FACE 66 #include <gtk/gtkwidget.h> 67 #endif 68 69 typedef struct 70 { 71 form_field_types type; 72 char *name; 73 char *default_value; 74 char *text; 75 int width; 76 int height; 77 int maxlen; 78 int readonly; 79 int checked; 80 int disabled; 81 int multiple; 82 int selected; 83 dllist *infos; 84 #ifdef GTK_FACE 85 GtkWidget *widget; 86 GSList *rg; 87 int idx; 88 #endif 89 } form_field_info; 90 91 extern char *form_get_text(int, char *, int, int *); 92 extern void form_free(form_info *); 93 extern form_info *form_parse(char *, int); 94 extern void form_get_default_successful(char *, dllist *, dllist **); 95 96 #ifdef GTK_FACE 97 extern void form_edit_dlg(void); 98 extern void form_edit_dlg_clear(void); 99 #endif 100 101 #endif 102