summaryrefslogtreecommitdiff
path: root/pluma/pluma-document.c
diff options
context:
space:
mode:
authorStefano Karapetsas <[email protected]>2013-10-30 00:56:56 +0100
committerStefano Karapetsas <[email protected]>2013-10-30 00:56:56 +0100
commit7f0ccea48196a0da9523db3d566ee8020cd742a1 (patch)
tree4a66f87edcc70ca3949c750148df218c9a41ba28 /pluma/pluma-document.c
parent5f87f646777bf5b09610bbc6eed8fafd007f34c6 (diff)
downloadpluma-7f0ccea48196a0da9523db3d566ee8020cd742a1.tar.bz2
pluma-7f0ccea48196a0da9523db3d566ee8020cd742a1.tar.xz
pluma: Add GTK3 support
Diffstat (limited to 'pluma/pluma-document.c')
-rw-r--r--pluma/pluma-document.c79
1 files changed, 75 insertions, 4 deletions
diff --git a/pluma/pluma-document.c b/pluma/pluma-document.c
index 9940e876..ec53a315 100644
--- a/pluma/pluma-document.c
+++ b/pluma/pluma-document.c
@@ -38,7 +38,10 @@
#include <stdlib.h>
#include <glib/gi18n.h>
+#include <gtk/gtk.h>
+#if !GTK_CHECK_VERSION (3, 0, 0)
#include <gtksourceview/gtksourceiter.h>
+#endif
#include "pluma-prefs-manager-app.h"
#include "pluma-document.h"
@@ -173,7 +176,11 @@ enum {
static guint document_signals[LAST_SIGNAL] = { 0 };
+#if GTK_CHECK_VERSION (3, 0, 0)
+G_DEFINE_TYPE(PlumaDocument, pluma_document, GTK_SOURCE_TYPE_BUFFER)
+#else
G_DEFINE_TYPE(PlumaDocument, pluma_document, GTK_TYPE_SOURCE_BUFFER)
+#endif
GQuark
pluma_document_error_quark (void)
@@ -1842,7 +1849,11 @@ pluma_document_search_forward (PlumaDocument *doc,
GtkTextIter *match_end)
{
GtkTextIter iter;
+#if GTK_CHECK_VERSION (3, 0, 0)
+ GtkTextSearchFlags search_flags;
+#else
GtkSourceSearchFlags search_flags;
+#endif
gboolean found = FALSE;
GtkTextIter m_start;
GtkTextIter m_end;
@@ -1865,17 +1876,29 @@ pluma_document_search_forward (PlumaDocument *doc,
gtk_text_buffer_get_start_iter (GTK_TEXT_BUFFER (doc), &iter);
else
iter = *start;
-
+
+#if GTK_CHECK_VERSION (3, 0, 0)
+ search_flags = GTK_TEXT_SEARCH_VISIBLE_ONLY | GTK_TEXT_SEARCH_TEXT_ONLY;
+#else
search_flags = GTK_SOURCE_SEARCH_VISIBLE_ONLY | GTK_SOURCE_SEARCH_TEXT_ONLY;
+#endif
if (!PLUMA_SEARCH_IS_CASE_SENSITIVE (doc->priv->search_flags))
{
+#if GTK_CHECK_VERSION (3, 0, 0)
+ search_flags = search_flags | GTK_TEXT_SEARCH_CASE_INSENSITIVE;
+#else
search_flags = search_flags | GTK_SOURCE_SEARCH_CASE_INSENSITIVE;
+#endif
}
while (!found)
{
+#if GTK_CHECK_VERSION (3, 0, 0)
+ found = gtk_text_iter_forward_search (&iter,
+#else
found = gtk_source_iter_forward_search (&iter,
+#endif
doc->priv->search_text,
search_flags,
&m_start,
@@ -1911,7 +1934,11 @@ pluma_document_search_backward (PlumaDocument *doc,
GtkTextIter *match_end)
{
GtkTextIter iter;
+#if GTK_CHECK_VERSION (3, 0, 0)
+ GtkTextSearchFlags search_flags;
+#else
GtkSourceSearchFlags search_flags;
+#endif
gboolean found = FALSE;
GtkTextIter m_start;
GtkTextIter m_end;
@@ -1934,17 +1961,29 @@ pluma_document_search_backward (PlumaDocument *doc,
gtk_text_buffer_get_end_iter (GTK_TEXT_BUFFER (doc), &iter);
else
iter = *end;
-
+
+#if GTK_CHECK_VERSION (3, 0, 0)
+ search_flags = GTK_TEXT_SEARCH_VISIBLE_ONLY | GTK_TEXT_SEARCH_TEXT_ONLY;
+#else
search_flags = GTK_SOURCE_SEARCH_VISIBLE_ONLY | GTK_SOURCE_SEARCH_TEXT_ONLY;
+#endif
if (!PLUMA_SEARCH_IS_CASE_SENSITIVE (doc->priv->search_flags))
{
+#if GTK_CHECK_VERSION (3, 0, 0)
+ search_flags = search_flags | GTK_TEXT_SEARCH_CASE_INSENSITIVE;
+#else
search_flags = search_flags | GTK_SOURCE_SEARCH_CASE_INSENSITIVE;
+#endif
}
while (!found)
{
+#if GTK_CHECK_VERSION (3, 0, 0)
+ found = gtk_text_iter_backward_search (&iter,
+#else
found = gtk_source_iter_backward_search (&iter,
+#endif
doc->priv->search_text,
search_flags,
&m_start,
@@ -1981,7 +2020,11 @@ pluma_document_replace_all (PlumaDocument *doc,
GtkTextIter iter;
GtkTextIter m_start;
GtkTextIter m_end;
+#if GTK_CHECK_VERSION (3, 0, 0)
+ GtkTextSearchFlags search_flags = 0;
+#else
GtkSourceSearchFlags search_flags = 0;
+#endif
gboolean found = TRUE;
gint cont = 0;
gchar *search_text;
@@ -2006,11 +2049,19 @@ pluma_document_replace_all (PlumaDocument *doc,
gtk_text_buffer_get_start_iter (buffer, &iter);
+#if GTK_CHECK_VERSION (3, 0, 0)
+ search_flags = GTK_TEXT_SEARCH_VISIBLE_ONLY | GTK_TEXT_SEARCH_TEXT_ONLY;
+#else
search_flags = GTK_SOURCE_SEARCH_VISIBLE_ONLY | GTK_SOURCE_SEARCH_TEXT_ONLY;
+#endif
if (!PLUMA_SEARCH_IS_CASE_SENSITIVE (flags))
{
+#if GTK_CHECK_VERSION (3, 0, 0)
+ search_flags = search_flags | GTK_TEXT_SEARCH_CASE_INSENSITIVE;
+#else
search_flags = search_flags | GTK_SOURCE_SEARCH_CASE_INSENSITIVE;
+#endif
}
replace_text_len = strlen (replace_text);
@@ -2033,7 +2084,11 @@ pluma_document_replace_all (PlumaDocument *doc,
do
{
+#if GTK_CHECK_VERSION (3, 0, 0)
+ found = gtk_text_iter_forward_search (&iter,
+#else
found = gtk_source_iter_forward_search (&iter,
+#endif
search_text,
search_flags,
&m_start,
@@ -2236,8 +2291,12 @@ search_region (PlumaDocument *doc,
{
GtkTextIter iter;
GtkTextIter m_start;
- GtkTextIter m_end;
+ GtkTextIter m_end;
+#if GTK_CHECK_VERSION (3, 0, 0)
+ GtkTextSearchFlags search_flags = 0;
+#else
GtkSourceSearchFlags search_flags = 0;
+#endif
gboolean found = TRUE;
GtkTextBuffer *buffer;
@@ -2296,12 +2355,20 @@ search_region (PlumaDocument *doc,
return;
iter = *start;
-
+
+#if GTK_CHECK_VERSION (3, 0, 0)
+ search_flags = GTK_TEXT_SEARCH_VISIBLE_ONLY | GTK_TEXT_SEARCH_TEXT_ONLY;
+#else
search_flags = GTK_SOURCE_SEARCH_VISIBLE_ONLY | GTK_SOURCE_SEARCH_TEXT_ONLY;
+#endif
if (!PLUMA_SEARCH_IS_CASE_SENSITIVE (doc->priv->search_flags))
{
+#if GTK_CHECK_VERSION (3, 0, 0)
+ search_flags = search_flags | GTK_TEXT_SEARCH_CASE_INSENSITIVE;
+#else
search_flags = search_flags | GTK_SOURCE_SEARCH_CASE_INSENSITIVE;
+#endif
}
do
@@ -2309,7 +2376,11 @@ search_region (PlumaDocument *doc,
if ((end != NULL) && gtk_text_iter_is_end (end))
end = NULL;
+#if GTK_CHECK_VERSION (3, 0, 0)
+ found = gtk_text_iter_forward_search (&iter,
+#else
found = gtk_source_iter_forward_search (&iter,
+#endif
doc->priv->search_text,
search_flags,
&m_start,