[gtksourceview/wip/search] Add the GtkSourceBuffer:search-occurrences-count property



commit ff828ec35743e79dff428a84ffee71d409011261
Author: Sébastien Wilmet <swilmet gnome org>
Date:   Thu Jun 20 10:04:01 2013 +0200

    Add the GtkSourceBuffer:search-occurrences-count property
    
    Not already implemented.

 gtksourceview/gtksourcebuffer.c |   25 ++++++++++++++++++++++++-
 gtksourceview/gtksourcesearch.c |   12 ++++++++++++
 gtksourceview/gtksourcesearch.h |   26 ++++++++++++++------------
 3 files changed, 50 insertions(+), 13 deletions(-)
---
diff --git a/gtksourceview/gtksourcebuffer.c b/gtksourceview/gtksourcebuffer.c
index 57e3eff..d096640 100644
--- a/gtksourceview/gtksourcebuffer.c
+++ b/gtksourceview/gtksourcebuffer.c
@@ -123,7 +123,8 @@ enum {
        PROP_STYLE_SCHEME,
        PROP_UNDO_MANAGER,
        PROP_SEARCH_TEXT,
-       PROP_SEARCH_FLAGS
+       PROP_SEARCH_FLAGS,
+       PROP_SEARCH_OCCURRENCES_COUNT
 };
 
 struct _GtkSourceBufferPrivate
@@ -371,6 +372,24 @@ gtk_source_buffer_class_init (GtkSourceBufferClass *klass)
                                                             GTK_TEXT_SEARCH_VISIBLE_ONLY | 
GTK_TEXT_SEARCH_TEXT_ONLY,
                                                             G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
 
+       /**
+        * GtkSourceBuffer:search-occurrences-count:
+        *
+        * The total number of search occurrences. If the search is disabled,
+        * the value is 0.
+        *
+        * Since: 3.10
+        */
+       g_object_class_install_property (object_class,
+                                        PROP_SEARCH_OCCURRENCES_COUNT,
+                                        g_param_spec_uint ("search-occurrences-count",
+                                                           _("Search occurrences count"),
+                                                           _("Total number of search occurrences"),
+                                                           0,
+                                                           G_MAXUINT,
+                                                           0,
+                                                           G_PARAM_READABLE));
+
        param_types[0] = GTK_TYPE_TEXT_ITER | G_SIGNAL_TYPE_STATIC_SCOPE;
        param_types[1] = GTK_TYPE_TEXT_ITER | G_SIGNAL_TYPE_STATIC_SCOPE;
 
@@ -678,6 +697,10 @@ gtk_source_buffer_get_property (GObject    *object,
                        g_value_set_flags (value, _gtk_source_search_get_flags (source_buffer->priv->search));
                        break;
 
+               case PROP_SEARCH_OCCURRENCES_COUNT:
+                       g_value_set_uint (value, _gtk_source_search_get_occurrences_count 
(source_buffer->priv->search));
+                       break;
+
                default:
                        G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
                        break;
diff --git a/gtksourceview/gtksourcesearch.c b/gtksourceview/gtksourcesearch.c
index 7aa2beb..8b74c84 100644
--- a/gtksourceview/gtksourcesearch.c
+++ b/gtksourceview/gtksourcesearch.c
@@ -47,6 +47,8 @@ struct _GtkSourceSearchPrivate
        GtkTextRegion *region_to_highlight;
        gulong idle_highlight_id;
 
+       guint occurrences_count;
+
        GtkTextTag *found_tag;
 };
 
@@ -153,6 +155,8 @@ clear_search (GtkSourceSearch *search)
                                            &start,
                                            &end);
        }
+
+       search->priv->occurrences_count = 0;
 }
 
 static void
@@ -574,3 +578,11 @@ _gtk_source_search_update_highlight (GtkSourceSearch   *search,
                }
        }
 }
+
+guint
+_gtk_source_search_get_occurrences_count (GtkSourceSearch *search)
+{
+       g_return_val_if_fail (GTK_SOURCE_IS_SEARCH (search), 0);
+
+       return search->priv->occurrences_count;
+}
diff --git a/gtksourceview/gtksourcesearch.h b/gtksourceview/gtksourcesearch.h
index 4a6e45d..d3ae820 100644
--- a/gtksourceview/gtksourcesearch.h
+++ b/gtksourceview/gtksourcesearch.h
@@ -51,30 +51,32 @@ struct _GtkSourceSearchClass
 };
 
 G_GNUC_INTERNAL
-GType                  _gtk_source_search_get_type             (void) G_GNUC_CONST;
+GType                  _gtk_source_search_get_type                     (void) G_GNUC_CONST;
 
 G_GNUC_INTERNAL
-GtkSourceSearch *      _gtk_source_search_new                  (GtkSourceBuffer    *buffer);
+GtkSourceSearch *      _gtk_source_search_new                          (GtkSourceBuffer    *buffer);
 
 G_GNUC_INTERNAL
-void                   _gtk_source_search_set_text             (GtkSourceSearch    *search,
-                                                                const gchar        *text);
+void                   _gtk_source_search_set_text                     (GtkSourceSearch    *search,
+                                                                        const gchar        *text);
 
 G_GNUC_INTERNAL
-const gchar *          _gtk_source_search_get_text             (GtkSourceSearch    *search);
+const gchar *          _gtk_source_search_get_text                     (GtkSourceSearch    *search);
 
 G_GNUC_INTERNAL
-void                   _gtk_source_search_set_flags            (GtkSourceSearch    *search,
-                                                                GtkTextSearchFlags  flags);
+void                   _gtk_source_search_set_flags                    (GtkSourceSearch    *search,
+                                                                        GtkTextSearchFlags  flags);
 
 G_GNUC_INTERNAL
-GtkTextSearchFlags     _gtk_source_search_get_flags            (GtkSourceSearch    *search);
+GtkTextSearchFlags     _gtk_source_search_get_flags                    (GtkSourceSearch    *search);
 
 G_GNUC_INTERNAL
-void                   _gtk_source_search_update_highlight     (GtkSourceSearch    *search,
-                                                                const GtkTextIter  *start,
-                                                                const GtkTextIter  *end,
-                                                                gboolean            synchronous);
+void                   _gtk_source_search_update_highlight             (GtkSourceSearch    *search,
+                                                                        const GtkTextIter  *start,
+                                                                        const GtkTextIter  *end,
+                                                                        gboolean            synchronous);
+
+guint                  _gtk_source_search_get_occurrences_count        (GtkSourceSearch    *search);
 
 G_END_DECLS
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]