summaryrefslogtreecommitdiff
path: root/render/form.h
diff options
context:
space:
mode:
Diffstat (limited to 'render/form.h')
-rw-r--r--render/form.h102
1 files changed, 16 insertions, 86 deletions
diff --git a/render/form.h b/render/form.h
index 66ff2d901..05898e3c5 100644
--- a/render/form.h
+++ b/render/form.h
@@ -31,6 +31,7 @@ struct box;
struct form_control;
struct form_option;
struct form_select_menu;
+struct form;
struct html_content;
struct dom_string;
struct content;
@@ -41,27 +42,7 @@ struct browser_window;
enum browser_mouse_state;
-/** Form submit method. */
-typedef enum {
- method_GET, /**< GET, always url encoded. */
- method_POST_URLENC, /**< POST, url encoded. */
- method_POST_MULTIPART /**< POST, multipart/form-data. */
-} form_method;
-
-/** HTML form. */
-struct form {
- void *node; /**< Corresponding DOM node */
- char *action; /**< Absolute URL to submit to. */
- char *target; /**< Target to submit to. */
- form_method method; /**< Method and enctype. */
- char *accept_charsets; /**< Charset to submit form in */
- char *document_charset; /**< Charset of document containing form */
- struct form_control *controls; /**< Linked list of controls. */
- struct form_control *last_control; /**< Last control in list. */
-
- struct form *prev; /**< Previous form in doc. */
-};
/** Type of a struct form_control. */
typedef enum {
@@ -84,6 +65,21 @@ struct form_textarea_data {
struct form_control *gadget;
};
+/** Option in a select. */
+struct form_option {
+ void *node; /**< Corresponding DOM node */
+ bool selected;
+ bool initial_selected;
+ char *value;
+ char *text; /**< NUL terminated. */
+ struct form_option* next;
+};
+
+struct image_input_coords {
+ int x;
+ int y;
+};
+
/** Form control. */
struct form_control {
void *node; /**< Corresponding DOM node */
@@ -129,73 +125,7 @@ struct form_control {
struct form_control *next; /**< Next control in this form. */
};
-/** Option in a select. */
-struct form_option {
- void *node; /**< Corresponding DOM node */
- bool selected;
- bool initial_selected;
- char *value;
- char *text; /**< NUL terminated. */
- struct form_option* next;
-};
-
-struct image_input_coords {
- int x;
- int y;
-};
-/**
- * Called by the select menu when it wants an area to be redrawn. The
- * coordinates are menu origin relative.
- *
- * \param client_data data which was passed to form_open_select_menu
- * \param x X coordinate of redraw rectangle
- * \param y Y coordinate of redraw rectangle
- * \param width width of redraw rectangle
- * \param height height of redraw rectangle
- */
-typedef void(*select_menu_redraw_callback)(void *client_data,
- int x, int y, int width, int height);
-
-struct form *form_new(void *node, const char *action, const char *target,
- form_method method, const char *charset,
- const char *doc_charset);
-void form_free(struct form *form);
-struct form_control *form_new_control(void *node, form_control_type type);
-void form_add_control(struct form *form, struct form_control *control);
-void form_free_control(struct form_control *control);
-bool form_add_option(struct form_control *control, char *value, char *text,
- bool selected, void *node);
-bool form_successful_controls(struct form *form,
- struct form_control *submit_button,
- struct fetch_multipart_data **successful_controls);
-bool form_successful_controls_dom(struct form *form,
- struct form_control *submit_button,
- struct fetch_multipart_data **successful_controls);
-
-bool form_open_select_menu(void *client_data,
- struct form_control *control,
- select_menu_redraw_callback redraw_callback,
- struct content *c);
-void form_select_menu_callback(void *client_data,
- int x, int y, int width, int height);
-void form_free_select_menu(struct form_control *control);
-bool form_redraw_select_menu(struct form_control *control, int x, int y,
- float scale, const struct rect *clip,
- const struct redraw_context *ctx);
-bool form_clip_inside_select_menu(struct form_control *control, float scale,
- const struct rect *clip);
-const char *form_select_mouse_action(struct form_control *control,
- enum browser_mouse_state mouse, int x, int y);
-void form_select_mouse_drag_end(struct form_control *control,
- enum browser_mouse_state mouse, int x, int y);
-void form_select_get_dimensions(struct form_control *control,
- int *width, int *height);
void form_select_process_selection(struct form_control *control, int item);
-void form_submit(struct nsurl *page_url, struct browser_window *target,
- struct form *form, struct form_control *submit_button);
-void form_radio_set(struct form_control *radio);
-
-void form_gadget_update_value(struct form_control *control, char *value);
#endif