Implement block-cursor for overwrite mode. (#80378)

2007-06-12  Yevgen Muntyan  <muntyan@tamu.edu>

        * gtk/gtkentry.c (gtk_entry_expose), (gtk_entry_toggle_overwrite),
        (gtk_entry_draw_cursor):
        * gtk/gtkstyle.c (_gtk_widget_get_cursor_gc),
        (_gtk_widget_get_cursor_color):
        * gtk/gtkstyle.h:
        * gtk/gtktextdisplay.c (gtk_text_renderer_prepare_run),
        (gtk_text_renderer_draw_shape), (text_renderer_set_state),
        (render_para):
        * gtk/gtktextlayout.c (gtk_text_layout_set_overwrite_mode),
        (gtk_text_layout_invalidate_cache), (get_block_cursor),
        (add_cursor), (gtk_text_layout_get_line_display),
        (_gtk_text_layout_get_block_cursor):
        * gtk/gtktextlayout.h:
        * gtk/gtktextutil.c (layout_get_char_width),
        (_gtk_text_util_get_block_cursor_location):
        * gtk/gtktextutil.h:
        * gtk/gtktextview.c (gtk_text_view_set_editable),
        (gtk_text_view_toggle_overwrite), (gtk_text_view_set_overwrite),
        (gtk_text_view_ensure_layout), (text_window_invalidate_cursors):
        Implement block-cursor for overwrite mode.  (#80378)


svn path=/trunk/; revision=18108
This commit is contained in:
Yevgen Muntyan
2007-06-12 05:32:57 +00:00
committed by Behdad Esfahbod
parent 15c6934778
commit ef1e05f7de
10 changed files with 561 additions and 70 deletions

View File

@ -6665,6 +6665,34 @@ get_insertion_cursor_gc (GtkWidget *widget,
}
}
GdkGC *
_gtk_widget_get_cursor_gc (GtkWidget *widget)
{
g_return_val_if_fail (GTK_IS_WIDGET (widget), NULL);
g_return_val_if_fail (GTK_WIDGET_REALIZED (widget), NULL);
return get_insertion_cursor_gc (widget, TRUE);
}
void
_gtk_widget_get_cursor_color (GtkWidget *widget,
GdkColor *color)
{
GdkColor *style_color;
g_return_if_fail (GTK_IS_WIDGET (widget));
g_return_if_fail (color != NULL);
gtk_widget_style_get (widget, "cursor-color", &style_color, NULL);
if (style_color)
{
*color = *style_color;
gdk_color_free (style_color);
}
else
*color = widget->style->text[GTK_STATE_NORMAL];
}
static void
draw_insertion_cursor (GtkWidget *widget,
GdkDrawable *drawable,