source: trunk/third/gtkhtml3/src/htmlcursor.h @ 19539

Revision 19539, 4.0 KB checked in by ghudson, 21 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r19538, which included commits to RCS files with non-trunk default branches.
Line 
1/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
2/* This file is part of the GtkHTML library.
3
4   Copyright 1999, 2000 Helix Code, Inc.
5
6   This library is free software; you can redistribute it and/or
7   modify it under the terms of the GNU Library General Public
8   License as published by the Free Software Foundation; either
9   version 2 of the License, or (at your option) any later version.
10
11   This library is distributed in the hope that it will be useful,
12   but WITHOUT ANY WARRANTY; without even the implied warranty of
13   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14   Library General Public License for more details.
15
16   You should have received a copy of the GNU Library General Public License
17   along with this library; see the file COPYING.LIB.  If not, write to
18   the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19   Boston, MA 02111-1307, USA.
20
21   Author: Ettore Perazzoli <ettore@helixcode.com>
22*/
23
24#ifndef HTMLCURSOR_H
25#define HTMLCURSOR_H
26
27#include "htmltypes.h"
28
29struct _HTMLCursor {
30        HTMLObject *object;
31        guint offset;
32
33        gint target_x;
34        guint have_target_x : 1;
35
36        gint position;
37};
38
39struct _HTMLCursorRectagle {
40        HTMLObject *object;
41        gint x1;
42        gint y1;
43        gint x2;
44        gint y2;
45};
46
47/* Lifecycle.  */
48HTMLCursor *html_cursor_new      (void);
49void        html_cursor_init     (HTMLCursor       *cursor,
50                                  HTMLObject       *o,
51                                  guint             offset);
52void        html_cursor_destroy  (HTMLCursor       *cursor);
53HTMLCursor *html_cursor_dup      (const HTMLCursor *cursor);
54void        html_cursor_copy     (HTMLCursor       *dest,
55                                  const HTMLCursor *src);
56/* Basic movement.   */
57void        html_cursor_home                    (HTMLCursor *cursor,
58                                                 HTMLEngine *engine);
59gboolean    html_cursor_forward                 (HTMLCursor *cursor,
60                                                 HTMLEngine *engine);
61gboolean    html_cursor_backward                (HTMLCursor *cursor,
62                                                 HTMLEngine *engine);
63gboolean    html_cursor_forward_n               (HTMLCursor *cursor,
64                                                 HTMLEngine *e,
65                                                 guint       n);
66gboolean    html_cursor_backward_n              (HTMLCursor *cursor,
67                                                 HTMLEngine *e,
68                                                 guint       n);
69gboolean    html_cursor_up                      (HTMLCursor *cursor,
70                                                 HTMLEngine *engine);
71gboolean    html_cursor_down                    (HTMLCursor *cursor,
72                                                 HTMLEngine *engine);
73void        html_cursor_beginning_of_document   (HTMLCursor *cursor,
74                                                 HTMLEngine *engine);
75void        html_cursor_end_of_document         (HTMLCursor *cursor,
76                                                 HTMLEngine *engine);
77gboolean    html_cursor_beginning_of_line       (HTMLCursor *cursor,
78                                                 HTMLEngine *engine);
79gboolean    html_cursor_end_of_line             (HTMLCursor *cursor,
80                                                 HTMLEngine *engine);
81gboolean    html_cursor_beginning_of_paragraph  (HTMLCursor *cursor,
82                                                 HTMLEngine *engine);
83gboolean    html_cursor_end_of_paragraph        (HTMLCursor *cursor,
84                                                 HTMLEngine *engine);
85gboolean    html_cursor_jump_to                 (HTMLCursor *cursor,
86                                                 HTMLEngine *engine,
87                                                 HTMLObject *obj,
88                                                 guint       offset);
89HTMLObject *html_cursor_child_of                (HTMLCursor *cursor,
90                                                 HTMLObject *parent);
91
92/* Internals.  */
93void  html_cursor_normalize     (HTMLCursor *cursor);
94
95/* Position handling.  */
96gint  html_cursor_get_position               (HTMLCursor *cursor);
97void  html_cursor_jump_to_position           (HTMLCursor *cursor,
98                                              HTMLEngine *engine,
99                                              gint        position);
100void  html_cursor_jump_to_position_no_spell  (HTMLCursor *cursor,
101                                              HTMLEngine *engine,
102                                              gint        position);
103
104/* Retrieving the character under/before the cursor.  */
105gunichar  html_cursor_get_current_char  (const HTMLCursor *cursor);
106gunichar  html_cursor_get_prev_char     (const HTMLCursor *cursor);
107
108/* Comparison.  */
109gboolean  html_cursor_equal     (const HTMLCursor *a,
110                                 const HTMLCursor *b);
111gboolean  html_cursor_precedes  (const HTMLCursor *a,
112                                 const HTMLCursor *b);
113gboolean  html_cursor_follows   (const HTMLCursor *a,
114                                 const HTMLCursor *b);
115
116#endif
Note: See TracBrowser for help on using the repository browser.