diff options
Diffstat (limited to 'render/textinput.h')
-rw-r--r-- | render/textinput.h | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/render/textinput.h b/render/textinput.h new file mode 100644 index 000000000..30cdc3036 --- /dev/null +++ b/render/textinput.h @@ -0,0 +1,75 @@ +/* + * Copyright 2003 Phil Mellor <monkeyson@users.sourceforge.net> + * Copyright 2004 James Bursa <bursa@users.sourceforge.net> + * Copyright 2004 Andrew Timmins <atimmins@blueyonder.co.uk> + * Copyright 2004 John Tytgat <joty@netsurf-browser.org> + * + * This file is part of NetSurf, http://www.netsurf-browser.org/ + * + * NetSurf is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * NetSurf is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +/** \file + * HTML form text input handling (interface) + */ + +#ifndef _NETSURF_RENDER_TEXTINPUT_H_ +#define _NETSURF_RENDER_TEXTINPUT_H_ + +#include <stdbool.h> + + +struct browser_window; +struct box; +struct content; + + +struct caret +{ + bool defined; + + struct browser_window *bw; + struct content *c; + + struct box *text_box; + size_t char_offset; + + /* document co-ordinates of bottom left of caret */ + int x; + int y; + int height; +}; + + +/** There's a single ghost caret used to implement + * drag-and-drop of text into text areas and input fields. + */ + +extern struct caret ghost_caret; + + +void caret_set_position(struct caret *c, struct browser_window *bw, + struct box *text_box, int char_offset, int pixel_offset); +void caret_remove(struct caret *c); + +struct box *textarea_get_position(struct box *textarea, int x, int y, + int *pchar_offset, int *ppixel_offset); + + +void textinput_textarea_click(struct content *c, browser_mouse_state mouse, + struct box *textarea, int box_x, int box_y, int x, int y); + +void textinput_input_click(struct content *c, struct box *input, + int box_x, int box_y, int x, int y); + +#endif |