diff options
author | Owen Taylor <otaylor@redhat.com> | 2001-09-25 20:40:20 +0000 |
---|---|---|
committer | Owen Taylor <otaylor@src.gnome.org> | 2001-09-25 20:40:20 +0000 |
commit | 0c3be55498e388015bcba07791177be9d1225bd9 (patch) | |
tree | adcafce7f55404b0b8a6ab1f86967a54fe2cf69c /gtk/gtkstyle.c | |
parent | efae27a3a5d7ed8cb7063e1f0ac5634fc162284f (diff) | |
download | gtk+-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.c | 57 |
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++; + } + } +} + |