gtksourceview r2093 - in trunk: . gtksourceview
- From: icq svn gnome org
- To: svn-commits-list gnome org
- Subject: gtksourceview r2093 - in trunk: . gtksourceview
- Date: Wed, 3 Dec 2008 13:48:13 +0000 (UTC)
Author: icq
Date: Wed Dec 3 13:48:13 2008
New Revision: 2093
URL: http://svn.gnome.org/viewvc/gtksourceview?rev=2093&view=rev
Log:
2008-12-03 Ignacio Casal Quinteiro <nacho resa gmail com>
* gtksourceview/gtksourceview.c:
* gtksourceview/gtksourceview.h:
Added non-breaking spaces drawing.
Modified:
trunk/ChangeLog
trunk/gtksourceview/gtksourceview.c
trunk/gtksourceview/gtksourceview.h
Modified: trunk/gtksourceview/gtksourceview.c
==============================================================================
--- trunk/gtksourceview/gtksourceview.c (original)
+++ trunk/gtksourceview/gtksourceview.c Wed Dec 3 13:48:13 2008
@@ -1777,6 +1777,33 @@
}
static void
+draw_nbsp_at_iter (cairo_t *cr,
+ GtkTextView *view,
+ GtkTextIter *iter,
+ GdkRectangle rect)
+{
+ gint x, y;
+ gdouble w, h;
+
+ gtk_text_view_buffer_to_window_coords (view,
+ GTK_TEXT_WINDOW_TEXT,
+ rect.x,
+ rect.y + rect.height / 2,
+ &x,
+ &y);
+
+ w = rect.width;
+ h = rect.height;
+
+ cairo_save (cr);
+ cairo_move_to (cr, x + w * 1 / 6, y);
+ cairo_rel_line_to (cr, w * 4 / 6, 0);
+ cairo_rel_line_to (cr, -w * 2 / 6, +h * 1 / 4);
+ cairo_rel_line_to (cr, -w * 2 / 6, -h * 1 / 4);
+ cairo_restore (cr);
+}
+
+static void
draw_spaces_at_iter (cairo_t *cr,
GtkSourceView *view,
GtkTextIter *iter,
@@ -1791,8 +1818,14 @@
{
draw_tab_at_iter (cr, GTK_TEXT_VIEW (view), iter, rect);
}
+ else if (view->priv->draw_spaces & GTK_SOURCE_DRAW_SPACES_NBSP &&
+ g_unichar_break_type (c) == G_UNICODE_BREAK_NON_BREAKING_GLUE)
+ {
+ draw_nbsp_at_iter (cr, GTK_TEXT_VIEW (view), iter, rect);
+ }
else if (view->priv->draw_spaces & GTK_SOURCE_DRAW_SPACES_SPACE &&
- g_unichar_type (c) == G_UNICODE_SPACE_SEPARATOR)
+ g_unichar_type (c) == G_UNICODE_SPACE_SEPARATOR &&
+ g_unichar_break_type (c) != G_UNICODE_BREAK_NON_BREAKING_GLUE)
{
draw_space_at_iter (cr, GTK_TEXT_VIEW (view), iter, rect);
}
Modified: trunk/gtksourceview/gtksourceview.h
==============================================================================
--- trunk/gtksourceview/gtksourceview.h (original)
+++ trunk/gtksourceview/gtksourceview.h Wed Dec 3 13:48:13 2008
@@ -90,6 +90,7 @@
* @GTK_SOURCE_DRAW_SPACES_SPACE: whether the space character should be drawn.
* @GTK_SOURCE_DRAW_SPACES_TAB: whether the tab character should be drawn.
* @GTK_SOURCE_DRAW_SPACES_NEWLINE: whether the line breaks should be drawn.
+ * @GTK_SOURCE_DRAW_SPACES_NBSP: whether the non-breaking whitespaces should be drawn.
* @GTK_SOURCE_DRAW_SPACES_ALL: wheter all kind of spaces should be drawn.
*
* GtkSourceDrawSpacesFlags determine what kind of spaces whould be drawn.
@@ -101,9 +102,11 @@
GTK_SOURCE_DRAW_SPACES_SPACE = 1 << 0,
GTK_SOURCE_DRAW_SPACES_TAB = 1 << 1,
GTK_SOURCE_DRAW_SPACES_NEWLINE = 1 << 2,
+ GTK_SOURCE_DRAW_SPACES_NBSP = 1 << 3,
GTK_SOURCE_DRAW_SPACES_ALL = (GTK_SOURCE_DRAW_SPACES_SPACE | \
GTK_SOURCE_DRAW_SPACES_TAB | \
- GTK_SOURCE_DRAW_SPACES_NEWLINE)
+ GTK_SOURCE_DRAW_SPACES_NEWLINE | \
+ GTK_SOURCE_DRAW_SPACES_NBSP)
} GtkSourceDrawSpacesFlags;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]