[gtk+/rendering-cleanup: 51/92] API: Add gtk_cairo_draw_insertion_cursor()
- From: Benjamin Otte <otte src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/rendering-cleanup: 51/92] API: Add gtk_cairo_draw_insertion_cursor()
- Date: Fri, 27 Aug 2010 15:17:54 +0000 (UTC)
commit a817d4f4f38c30e9c82c6ee7e61a37895bbcee05
Author: Benjamin Otte <otte redhat com>
Date: Sun Aug 15 19:38:32 2010 +0200
API: Add gtk_cairo_draw_insertion_cursor()
For now just add it instead of replacing the current function. In the
end, this one should probably be renamed to
gtk_draw_insertion_cursor() and the current
gtk_draw_insertion_cursor() should die.
gtk/gtk.symbols | 1 +
gtk/gtkstyle.c | 39 +++++++++++++++++++++++++++++++--------
gtk/gtkstyle.h | 6 ++++++
3 files changed, 38 insertions(+), 8 deletions(-)
---
diff --git a/gtk/gtk.symbols b/gtk/gtk.symbols
index 52d7b09..d49f673 100644
--- a/gtk/gtk.symbols
+++ b/gtk/gtk.symbols
@@ -1059,6 +1059,7 @@ gtk_style_new
gtk_style_render_icon
gtk_style_set_background
gtk_draw_insertion_cursor
+gtk_cairo_draw_insertion_cursor
gtk_style_get_style_property
gtk_style_get_valist
gtk_style_get
diff --git a/gtk/gtkstyle.c b/gtk/gtkstyle.c
index af97984..95e8b0c 100644
--- a/gtk/gtkstyle.c
+++ b/gtk/gtkstyle.c
@@ -6479,12 +6479,29 @@ _gtk_widget_get_cursor_color (GtkWidget *widget,
*color = gtk_widget_get_style (widget)->text[GTK_STATE_NORMAL];
}
-static void
-draw_insertion_cursor (GtkWidget *widget,
- cairo_t *cr,
- const GdkRectangle *location,
- GtkTextDirection direction,
- gboolean draw_arrow)
+/**
+ * gtk_cairo_draw_insertion_cursor:
+ * @widget: a #GtkWidget
+ * @cr: cairo context to draw to
+ * @location: location where to draw the cursor (@location->width is ignored)
+ * @is_primary: if the cursor should be the primary cursor color.
+ * @direction: whether the cursor is left-to-right or
+ * right-to-left. Should never be #GTK_TEXT_DIR_NONE
+ * @draw_arrow: %TRUE to draw a directional arrow on the
+ * cursor. Should be %FALSE unless the cursor is split.
+ *
+ * Draws a text caret on @cr at @location. This is not a style function
+ * but merely a convenience function for drawing the standard cursor shape.
+ *
+ * Since: 3.0
+ **/
+void
+gtk_cairo_draw_insertion_cursor (GtkWidget *widget,
+ cairo_t *cr,
+ const GdkRectangle *location,
+ gboolean is_primary,
+ GtkTextDirection direction,
+ gboolean draw_arrow)
{
gint stem_width;
gint arrow_width;
@@ -6492,6 +6509,13 @@ draw_insertion_cursor (GtkWidget *widget,
gfloat cursor_aspect_ratio;
gint offset;
+ g_return_if_fail (GTK_IS_WIDGET (widget));
+ g_return_if_fail (cr != NULL);
+ g_return_if_fail (location != NULL);
+ g_return_if_fail (direction != GTK_TEXT_DIR_NONE);
+
+ gdk_cairo_set_source_color (cr, get_insertion_cursor_color (widget, is_primary));
+
/* When changing the shape or size of the cursor here,
* propagate the changes to gtktextview.c:text_window_invalidate_cursors().
*/
@@ -6578,8 +6602,7 @@ gtk_draw_insertion_cursor (GtkWidget *widget,
cairo_clip (cr);
}
- gdk_cairo_set_source_color (cr, get_insertion_cursor_color (widget, is_primary));
- draw_insertion_cursor (widget, cr, location, direction, draw_arrow);
+ gtk_cairo_draw_insertion_cursor (widget, cr, location, is_primary, direction, draw_arrow);
cairo_destroy (cr);
}
diff --git a/gtk/gtkstyle.h b/gtk/gtkstyle.h
index ed7fd3a..0bc8d11 100644
--- a/gtk/gtkstyle.h
+++ b/gtk/gtkstyle.h
@@ -900,6 +900,12 @@ void gtk_draw_insertion_cursor (GtkWidget *widget,
gboolean is_primary,
GtkTextDirection direction,
gboolean draw_arrow);
+void gtk_cairo_draw_insertion_cursor (GtkWidget *widget,
+ cairo_t *cr,
+ const GdkRectangle *location,
+ gboolean is_primary,
+ GtkTextDirection direction,
+ gboolean draw_arrow);
void _gtk_widget_get_cursor_color (GtkWidget *widget,
GdkColor *color);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]