summaryrefslogtreecommitdiff
path: root/render/textinput.h
diff options
context:
space:
mode:
authorMichael Drake <tlsa@netsurf-browser.org>2011-07-07 17:50:04 +0000
committerMichael Drake <tlsa@netsurf-browser.org>2011-07-07 17:50:04 +0000
commitbc91b72c56fdfe2d74e1b0fbfdeb6d6d84ad103e (patch)
treee6ab0967e23094254bd93ad94da7d55434eb4d73 /render/textinput.h
parente2681caf9cdf056942792a06b74c729a05d7b5b0 (diff)
downloadnetsurf-bc91b72c56fdfe2d74e1b0fbfdeb6d6d84ad103e.tar.gz
netsurf-bc91b72c56fdfe2d74e1b0fbfdeb6d6d84ad103e.tar.bz2
Clean up text input code. Now desktop/textinput.{c|h} is concerend with browser windows only. HTML content specific stuff moved to render/textinput.{c|h} and disassociated from browser windows.
svn path=/trunk/netsurf/; revision=12587
Diffstat (limited to 'render/textinput.h')
-rw-r--r--render/textinput.h75
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