]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtktextiter.h
Don't leak the old page size when
[~andy/gtk] / gtk / gtktextiter.h
index 0f46d625a195e36be1ae321aeafc0b2e55261d24..f788397f558a2a36fcde137e138fc5552ecd1ed2 100644 (file)
  * GTK+ at ftp://ftp.gtk.org/pub/gtk/.
  */
 
-#ifndef GTK_TEXT_ITER_H
-#define GTK_TEXT_ITER_H
+#ifndef __GTK_TEXT_ITER_H__
+#define __GTK_TEXT_ITER_H__
 
 #include <gtk/gtktexttag.h>
 #include <gtk/gtktextchild.h>
 
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
+G_BEGIN_DECLS
+
+typedef enum {
+  GTK_TEXT_SEARCH_VISIBLE_ONLY = 1 << 0,
+  GTK_TEXT_SEARCH_TEXT_ONLY    = 1 << 1
+  /* Possible future plans: SEARCH_CASE_INSENSITIVE, SEARCH_REGEXP */
+} GtkTextSearchFlags;
 
 /*
  * Iter: represents a location in the text. Becomes invalid if the
@@ -42,7 +46,14 @@ extern "C" {
 
 typedef struct _GtkTextBuffer GtkTextBuffer;
 
+#define GTK_TYPE_TEXT_ITER     (gtk_text_iter_get_type ())
+
 struct _GtkTextIter {
+  /* GtkTextIter is an opaque datatype; ignore all these fields.
+   * Initialize the iter with gtk_text_buffer_get_iter_*
+   * functions
+   */
+  /*< private >*/
   gpointer dummy1;
   gpointer dummy2;
   gint dummy3;
@@ -55,6 +66,9 @@ struct _GtkTextIter {
   gpointer dummy10;
   gint dummy11;
   gint dummy12;
+  /* padding */
+  gint dummy13;
+  gpointer dummy14;
 };
 
 
@@ -69,6 +83,8 @@ GtkTextBuffer *gtk_text_iter_get_buffer (const GtkTextIter *iter);
 GtkTextIter *gtk_text_iter_copy     (const GtkTextIter *iter);
 void         gtk_text_iter_free     (GtkTextIter       *iter);
 
+GType        gtk_text_iter_get_type (void) G_GNUC_CONST;
+
 /*
  * Convert to different kinds of index
  */
@@ -78,6 +94,9 @@ gint gtk_text_iter_get_line        (const GtkTextIter *iter);
 gint gtk_text_iter_get_line_offset (const GtkTextIter *iter);
 gint gtk_text_iter_get_line_index  (const GtkTextIter *iter);
 
+gint gtk_text_iter_get_visible_line_offset (const GtkTextIter *iter);
+gint gtk_text_iter_get_visible_line_index (const GtkTextIter *iter);
+
 
 /*
  * "Dereference" operators
@@ -105,9 +124,10 @@ GSList  *  gtk_text_iter_get_marks  (const GtkTextIter *iter);
 GtkTextChildAnchor* gtk_text_iter_get_child_anchor (const GtkTextIter *iter);
 
 /* Return list of tags toggled at this point (toggled_on determines
-   whether the list is of on-toggles or off-toggles) */
+ * whether the list is of on-toggles or off-toggles)
+ */
 GSList  *gtk_text_iter_get_toggled_tags  (const GtkTextIter  *iter,
-                                          gboolean             toggled_on);
+                                          gboolean            toggled_on);
 
 gboolean gtk_text_iter_begins_tag        (const GtkTextIter  *iter,
                                           GtkTextTag         *tag);
@@ -124,21 +144,27 @@ GSList  *gtk_text_iter_get_tags          (const GtkTextIter   *iter);
 
 gboolean gtk_text_iter_editable          (const GtkTextIter   *iter,
                                           gboolean             default_setting);
+gboolean gtk_text_iter_can_insert        (const GtkTextIter   *iter,
+                                          gboolean             default_editability);
 
 gboolean gtk_text_iter_starts_word        (const GtkTextIter   *iter);
 gboolean gtk_text_iter_ends_word          (const GtkTextIter   *iter);
 gboolean gtk_text_iter_inside_word        (const GtkTextIter   *iter);
+gboolean gtk_text_iter_starts_sentence    (const GtkTextIter   *iter);
+gboolean gtk_text_iter_ends_sentence      (const GtkTextIter   *iter);
+gboolean gtk_text_iter_inside_sentence    (const GtkTextIter   *iter);
 gboolean gtk_text_iter_starts_line        (const GtkTextIter   *iter);
 gboolean gtk_text_iter_ends_line          (const GtkTextIter   *iter);
 gboolean gtk_text_iter_is_cursor_position (const GtkTextIter   *iter);
 
 gint     gtk_text_iter_get_chars_in_line (const GtkTextIter   *iter);
+gint     gtk_text_iter_get_bytes_in_line (const GtkTextIter   *iter);
 
-gboolean gtk_text_iter_get_attributes    (const GtkTextIter    *iter,
-                                          GtkTextAttributes    *values);
-gchar*   gtk_text_iter_get_language      (const GtkTextIter    *iter);
-gboolean gtk_text_iter_is_last           (const GtkTextIter    *iter);
-gboolean gtk_text_iter_is_first          (const GtkTextIter    *iter);
+gboolean       gtk_text_iter_get_attributes (const GtkTextIter *iter,
+                                            GtkTextAttributes *values);
+PangoLanguage* gtk_text_iter_get_language   (const GtkTextIter *iter);
+gboolean       gtk_text_iter_is_end         (const GtkTextIter *iter);
+gboolean       gtk_text_iter_is_start       (const GtkTextIter *iter);
 
 /*
  * Moving around the buffer
@@ -162,6 +188,27 @@ gboolean gtk_text_iter_forward_word_ends    (GtkTextIter *iter,
                                              gint         count);
 gboolean gtk_text_iter_backward_word_starts (GtkTextIter *iter,
                                              gint         count);
+                                             
+gboolean gtk_text_iter_forward_visible_line   (GtkTextIter *iter);
+gboolean gtk_text_iter_backward_visible_line  (GtkTextIter *iter);
+gboolean gtk_text_iter_forward_visible_lines  (GtkTextIter *iter,
+                                               gint         count);
+gboolean gtk_text_iter_backward_visible_lines (GtkTextIter *iter,
+                                               gint         count);
+
+gboolean gtk_text_iter_forward_visible_word_end     (GtkTextIter *iter);
+gboolean gtk_text_iter_backward_visible_word_start  (GtkTextIter *iter);
+gboolean gtk_text_iter_forward_visible_word_ends    (GtkTextIter *iter,
+                                             gint         count);
+gboolean gtk_text_iter_backward_visible_word_starts (GtkTextIter *iter,
+                                             gint         count);
+
+gboolean gtk_text_iter_forward_sentence_end     (GtkTextIter *iter);
+gboolean gtk_text_iter_backward_sentence_start  (GtkTextIter *iter);
+gboolean gtk_text_iter_forward_sentence_ends    (GtkTextIter *iter,
+                                                 gint         count);
+gboolean gtk_text_iter_backward_sentence_starts (GtkTextIter *iter,
+                                                 gint         count);
 /* cursor positions are almost equivalent to chars, but not quite;
  * in some languages, you can't put the cursor between certain
  * chars. Also, you can't put the cursor between \r\n at the end
@@ -174,6 +221,13 @@ gboolean gtk_text_iter_forward_cursor_positions  (GtkTextIter *iter,
 gboolean gtk_text_iter_backward_cursor_positions (GtkTextIter *iter,
                                                   gint         count);
 
+gboolean gtk_text_iter_forward_visible_cursor_position   (GtkTextIter *iter);
+gboolean gtk_text_iter_backward_visible_cursor_position  (GtkTextIter *iter);
+gboolean gtk_text_iter_forward_visible_cursor_positions  (GtkTextIter *iter,
+                                                          gint         count);
+gboolean gtk_text_iter_backward_visible_cursor_positions (GtkTextIter *iter,
+                                                          gint         count);
+
 
 void     gtk_text_iter_set_offset         (GtkTextIter *iter,
                                            gint         char_offset);
@@ -184,8 +238,12 @@ void     gtk_text_iter_set_line_offset    (GtkTextIter *iter,
 void     gtk_text_iter_set_line_index     (GtkTextIter *iter,
                                            gint         byte_on_line);
 void     gtk_text_iter_forward_to_end     (GtkTextIter *iter);
-gboolean gtk_text_iter_forward_to_delimiters (GtkTextIter *iter);
+gboolean gtk_text_iter_forward_to_line_end (GtkTextIter *iter);
 
+void     gtk_text_iter_set_visible_line_offset (GtkTextIter *iter,
+                                                gint         char_on_line);
+void     gtk_text_iter_set_visible_line_index  (GtkTextIter *iter,
+                                                gint         byte_on_line);
 
 /* returns TRUE if a toggle was found; NULL for the tag pointer
  * means "any tag toggle", otherwise the next toggle of the
@@ -210,16 +268,14 @@ gboolean gtk_text_iter_backward_find_char (GtkTextIter          *iter,
 
 gboolean gtk_text_iter_forward_search  (const GtkTextIter *iter,
                                         const gchar       *str,
-                                        gboolean           visible_only,
-                                        gboolean           slice,
+                                        GtkTextSearchFlags flags,
                                         GtkTextIter       *match_start,
                                         GtkTextIter       *match_end,
                                         const GtkTextIter *limit);
 
 gboolean gtk_text_iter_backward_search (const GtkTextIter *iter,
                                         const gchar       *str,
-                                        gboolean           visible_only,
-                                        gboolean           slice,
+                                        GtkTextSearchFlags flags,
                                         GtkTextIter       *match_start,
                                         GtkTextIter       *match_end,
                                         const GtkTextIter *limit);
@@ -237,16 +293,10 @@ gboolean gtk_text_iter_in_range        (const GtkTextIter *iter,
                                         const GtkTextIter *end);
 
 /* Put these two in ascending order */
-void     gtk_text_iter_reorder         (GtkTextIter *first,
+void     gtk_text_iter_order           (GtkTextIter *first,
                                         GtkTextIter *second);
 
-/* Debug */
-void     gtk_text_iter_spew            (const GtkTextIter *iter,
-                                        const gchar *desc);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
+G_END_DECLS
 
 #endif