summaryrefslogtreecommitdiff
path: root/gtk/gtkstyle.c
diff options
context:
space:
mode:
authorOwen Taylor <otaylor@redhat.com>2001-09-25 20:40:20 +0000
committerOwen Taylor <otaylor@src.gnome.org>2001-09-25 20:40:20 +0000
commit0c3be55498e388015bcba07791177be9d1225bd9 (patch)
treeadcafce7f55404b0b8a6ab1f86967a54fe2cf69c /gtk/gtkstyle.c
parentefae27a3a5d7ed8cb7063e1f0ac5634fc162284f (diff)
downloadgtk+-0c3be55498e388015bcba07791177be9d1225bd9.tar.gz
ue Sep 25 12:41:17 2001 Owen Taylor <otaylor@redhat.com>GTK_1_3_9
* configure.in: Version 1.3.9, interface age 0, binary age 0. * configure.in: Require GLib-1.39, Pango 0.20, Atk 0.5. * NEWS: Updates. Mon Sep 24 11:59:09 2001 Owen Taylor <otaylor@redhat.com> * gtk/gtkstyle.[ch] (_gtk_draw_insertion_cursor): Shared function for drawing cursors between gtkentry/gtklabel/gtktextview. Should this be public? It has a bit of an odd interface, but custom editing widgets probably should be using it. Function will draw with wider width for taller cursors, and draws a little indicator arrow to indicate directoin for split cursors. * gtk/gtktextview.c: Add a "cursor_color" property. * gtk/gtktextdisplay.[ch]: Add a cursor_gc parameter to gtk_text_layout_draw(). * gtk/gtkentry.c gtk/gtklabel.c gtk/gtktextdisplay.c: Use _gtk_draw_insertion_cursor(). Tue Sep 25 11:22:23 2001 Owen Taylor <otaylor@redhat.com> * gtk/gtkcellrenderertext.c gtk/gtktexttag.c: Restore the behavior where you could turn family_set (etc) back on and get back the values you had before. * demos/gtk-demo/stock_browser.c (id_to_macro): Use g_string_ascii_up() rather than looping through the string ourself.
Diffstat (limited to 'gtk/gtkstyle.c')
-rw-r--r--gtk/gtkstyle.c57
1 files changed, 57 insertions, 0 deletions
diff --git a/gtk/gtkstyle.c b/gtk/gtkstyle.c
index d3a7fc7c2e..bc3f092633 100644
--- a/gtk/gtkstyle.c
+++ b/gtk/gtkstyle.c
@@ -5043,3 +5043,60 @@ gtk_style_set_font (GtkStyle *style,
style->private_font_desc = NULL;
}
}
+
+/**
+ * _gtk_draw_insertion_cursor:
+ * @drawable: a #GdkDrawable
+ * @gc: a #GdkGC
+ * @location: location where to draw the cursor (@location->width is ignored)
+ * @dir: text direction for the cursor, used to decide whether to draw a
+ * directional arrow on the cursor and in what direction. Unless both
+ * strong and weak cursors are displayed, this should be %GTK_TEXT_DIR_NONE.
+ *
+ * Draws a text caret on @drawable at @location. This is not a style function
+ * but merely a convenience function for drawing the standard cursor shape.
+ **/
+void
+_gtk_draw_insertion_cursor (GdkDrawable *drawable,
+ GdkGC *gc,
+ GdkRectangle *location,
+ GtkTextDirection dir)
+{
+ gint stem_width = location->height / 30 + 1;
+ gint arrow_width = stem_width + 1;
+ gint x, y;
+ gint i;
+
+ for (i = 0; i < stem_width; i++)
+ gdk_draw_line (drawable, gc,
+ location->x + i - stem_width / 2, location->y,
+ location->x + i - stem_width / 2, location->y + location->height);
+
+ if (dir == GTK_TEXT_DIR_RTL)
+ {
+ x = location->x - stem_width / 2 - 1;
+ y = location->y + location->height - arrow_width * 2 - arrow_width + 1;
+
+ for (i = 0; i < arrow_width; i++)
+ {
+ gdk_draw_line (drawable, gc,
+ x, y + i + 1,
+ x, y + 2 * arrow_width - i - 1);
+ x --;
+ }
+ }
+ else if (dir == GTK_TEXT_DIR_LTR)
+ {
+ x = location->x + stem_width - stem_width / 2;
+ y = location->y + location->height - arrow_width * 2 - arrow_width + 1;
+
+ for (i = 0; i < arrow_width; i++)
+ {
+ gdk_draw_line (drawable, gc,
+ x, y + i + 1,
+ x, y + 2 * arrow_width - i - 1);
+ x++;
+ }
+ }
+}
+