GtkTextViewAccessible: get rid of GailTextUtil usage
Instead, use the newly added GtkTextBuffer functions.
This commit is contained in:
		@ -75,7 +75,6 @@ gtk_text_view_accessible_finalize (GObject *object)
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
  GtkTextViewAccessible *text_view = GTK_TEXT_VIEW_ACCESSIBLE (object);
 | 
					  GtkTextViewAccessible *text_view = GTK_TEXT_VIEW_ACCESSIBLE (object);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  g_object_unref (text_view->textutil);
 | 
					 | 
				
			||||||
  if (text_view->insert_notify_handler)
 | 
					  if (text_view->insert_notify_handler)
 | 
				
			||||||
    g_source_remove (text_view->insert_notify_handler);
 | 
					    g_source_remove (text_view->insert_notify_handler);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -144,7 +143,6 @@ gtk_text_view_accessible_class_init (GtkTextViewAccessibleClass *klass)
 | 
				
			|||||||
static void
 | 
					static void
 | 
				
			||||||
gtk_text_view_accessible_init (GtkTextViewAccessible *accessible)
 | 
					gtk_text_view_accessible_init (GtkTextViewAccessible *accessible)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  accessible->textutil = NULL;
 | 
					 | 
				
			||||||
  accessible->signal_name = NULL;
 | 
					  accessible->signal_name = NULL;
 | 
				
			||||||
  accessible->previous_insert_offset = -1;
 | 
					  accessible->previous_insert_offset = -1;
 | 
				
			||||||
  accessible->previous_selection_bound = -1;
 | 
					  accessible->previous_selection_bound = -1;
 | 
				
			||||||
@ -159,12 +157,6 @@ setup_buffer (GtkTextView           *view,
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  buffer = gtk_text_view_get_buffer (view);
 | 
					  buffer = gtk_text_view_get_buffer (view);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if (accessible->textutil)
 | 
					 | 
				
			||||||
    g_object_unref (accessible->textutil);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  accessible->textutil = gail_text_util_new ();
 | 
					 | 
				
			||||||
  gail_text_util_buffer_setup (accessible->textutil, buffer);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  /* Set up signal callbacks */
 | 
					  /* Set up signal callbacks */
 | 
				
			||||||
  g_signal_connect_data (buffer, "insert-text",
 | 
					  g_signal_connect_data (buffer, "insert-text",
 | 
				
			||||||
                         (GCallback) insert_text_cb, view, NULL, 0);
 | 
					                         (GCallback) insert_text_cb, view, NULL, 0);
 | 
				
			||||||
@ -199,32 +191,6 @@ gtk_text_view_accessible_get_text (AtkText *text,
 | 
				
			|||||||
  return gtk_text_buffer_get_text (buffer, &start, &end, FALSE);
 | 
					  return gtk_text_buffer_get_text (buffer, &start, &end, FALSE);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static gchar *
 | 
					 | 
				
			||||||
get_text_near_offset (AtkText          *text,
 | 
					 | 
				
			||||||
                      GailOffsetType   function,
 | 
					 | 
				
			||||||
                      AtkTextBoundary  boundary_type,
 | 
					 | 
				
			||||||
                      gint             offset,
 | 
					 | 
				
			||||||
                      gint             *start_offset,
 | 
					 | 
				
			||||||
                      gint             *end_offset)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  GtkTextView *view;
 | 
					 | 
				
			||||||
  gpointer layout = NULL;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  view = GTK_TEXT_VIEW (gtk_accessible_get_widget (GTK_ACCESSIBLE (text)));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  /*
 | 
					 | 
				
			||||||
   * Pass the GtkTextView to the function gail_text_util_get_text()
 | 
					 | 
				
			||||||
   * so it can find the start and end of the current line on the display.
 | 
					 | 
				
			||||||
   */
 | 
					 | 
				
			||||||
  if (boundary_type == ATK_TEXT_BOUNDARY_LINE_START ||
 | 
					 | 
				
			||||||
      boundary_type == ATK_TEXT_BOUNDARY_LINE_END)
 | 
					 | 
				
			||||||
    layout = view;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  return gail_text_util_get_text (GTK_TEXT_VIEW_ACCESSIBLE (text)->textutil, layout,
 | 
					 | 
				
			||||||
                                  function, boundary_type, offset,
 | 
					 | 
				
			||||||
                                    start_offset, end_offset);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static gchar *
 | 
					static gchar *
 | 
				
			||||||
gtk_text_view_accessible_get_text_after_offset (AtkText         *text,
 | 
					gtk_text_view_accessible_get_text_after_offset (AtkText         *text,
 | 
				
			||||||
                                                gint             offset,
 | 
					                                                gint             offset,
 | 
				
			||||||
@ -233,14 +199,21 @@ gtk_text_view_accessible_get_text_after_offset (AtkText         *text,
 | 
				
			|||||||
                                                gint            *end_offset)
 | 
					                                                gint            *end_offset)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  GtkWidget *widget;
 | 
					  GtkWidget *widget;
 | 
				
			||||||
 | 
					  GtkTextBuffer *buffer;
 | 
				
			||||||
 | 
					  GtkTextIter pos;
 | 
				
			||||||
 | 
					  GtkTextIter start, end;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
 | 
					  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
 | 
				
			||||||
  if (widget == NULL)
 | 
					  if (widget == NULL)
 | 
				
			||||||
    return NULL;
 | 
					    return NULL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  return get_text_near_offset (text, GAIL_AFTER_OFFSET,
 | 
					  buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (widget));
 | 
				
			||||||
                               boundary_type, offset,
 | 
					  gtk_text_buffer_get_iter_at_offset (buffer, &pos, offset);
 | 
				
			||||||
                               start_offset, end_offset);
 | 
					  _gtk_text_buffer_get_text_after (buffer, boundary_type,
 | 
				
			||||||
 | 
					                                   &pos, &start, &end);
 | 
				
			||||||
 | 
					  *start_offset = gtk_text_iter_get_offset (&start);
 | 
				
			||||||
 | 
					  *end_offset = gtk_text_iter_get_offset (&end);
 | 
				
			||||||
 | 
					  return gtk_text_buffer_get_slice (buffer, &start, &end, FALSE);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static gchar *
 | 
					static gchar *
 | 
				
			||||||
@ -251,14 +224,21 @@ gtk_text_view_accessible_get_text_at_offset (AtkText         *text,
 | 
				
			|||||||
                                             gint            *end_offset)
 | 
					                                             gint            *end_offset)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  GtkWidget *widget;
 | 
					  GtkWidget *widget;
 | 
				
			||||||
 | 
					  GtkTextBuffer *buffer;
 | 
				
			||||||
 | 
					  GtkTextIter pos;
 | 
				
			||||||
 | 
					  GtkTextIter start, end;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
 | 
					  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
 | 
				
			||||||
  if (widget == NULL)
 | 
					  if (widget == NULL)
 | 
				
			||||||
    return NULL;
 | 
					    return NULL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  return get_text_near_offset (text, GAIL_AT_OFFSET,
 | 
					  buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (widget));
 | 
				
			||||||
                               boundary_type, offset,
 | 
					  gtk_text_buffer_get_iter_at_offset (buffer, &pos, offset);
 | 
				
			||||||
                               start_offset, end_offset);
 | 
					  _gtk_text_buffer_get_text_at (buffer, boundary_type,
 | 
				
			||||||
 | 
					                                &pos, &start, &end);
 | 
				
			||||||
 | 
					  *start_offset = gtk_text_iter_get_offset (&start);
 | 
				
			||||||
 | 
					  *end_offset = gtk_text_iter_get_offset (&end);
 | 
				
			||||||
 | 
					  return gtk_text_buffer_get_slice (buffer, &start, &end, FALSE);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static gchar *
 | 
					static gchar *
 | 
				
			||||||
@ -269,14 +249,21 @@ gtk_text_view_accessible_get_text_before_offset (AtkText         *text,
 | 
				
			|||||||
                                                 gint            *end_offset)
 | 
					                                                 gint            *end_offset)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  GtkWidget *widget;
 | 
					  GtkWidget *widget;
 | 
				
			||||||
 | 
					  GtkTextBuffer *buffer;
 | 
				
			||||||
 | 
					  GtkTextIter pos;
 | 
				
			||||||
 | 
					  GtkTextIter start, end;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
 | 
					  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
 | 
				
			||||||
  if (widget == NULL)
 | 
					  if (widget == NULL)
 | 
				
			||||||
    return NULL;
 | 
					    return NULL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  return get_text_near_offset (text, GAIL_BEFORE_OFFSET,
 | 
					  buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (widget));
 | 
				
			||||||
                               boundary_type, offset,
 | 
					  gtk_text_buffer_get_iter_at_offset (buffer, &pos, offset);
 | 
				
			||||||
                               start_offset, end_offset);
 | 
					  _gtk_text_buffer_get_text_before (buffer, boundary_type,
 | 
				
			||||||
 | 
					                                    &pos, &start, &end);
 | 
				
			||||||
 | 
					  *start_offset = gtk_text_iter_get_offset (&start);
 | 
				
			||||||
 | 
					  *end_offset = gtk_text_iter_get_offset (&end);
 | 
				
			||||||
 | 
					  return gtk_text_buffer_get_slice (buffer, &start, &end, FALSE);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static gunichar
 | 
					static gunichar
 | 
				
			||||||
@ -1374,6 +1361,7 @@ static gint
 | 
				
			|||||||
insert_idle_handler (gpointer data)
 | 
					insert_idle_handler (gpointer data)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  GtkTextViewAccessible *accessible = data;
 | 
					  GtkTextViewAccessible *accessible = data;
 | 
				
			||||||
 | 
					  GtkWidget *widget;
 | 
				
			||||||
  GtkTextBuffer *buffer;
 | 
					  GtkTextBuffer *buffer;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  g_signal_emit_by_name (data,
 | 
					  g_signal_emit_by_name (data,
 | 
				
			||||||
@ -1384,7 +1372,8 @@ insert_idle_handler (gpointer data)
 | 
				
			|||||||
  accessible->position = 0;
 | 
					  accessible->position = 0;
 | 
				
			||||||
  accessible->length = 0;
 | 
					  accessible->length = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  buffer = accessible->textutil->buffer;
 | 
					  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible));
 | 
				
			||||||
 | 
					  buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (widget));
 | 
				
			||||||
  if (accessible->insert_notify_handler)
 | 
					  if (accessible->insert_notify_handler)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
    /*
 | 
					    /*
 | 
				
			||||||
@ -1401,16 +1390,22 @@ insert_idle_handler (gpointer data)
 | 
				
			|||||||
static gint
 | 
					static gint
 | 
				
			||||||
gail_streamable_content_get_n_mime_types (AtkStreamableContent *streamable)
 | 
					gail_streamable_content_get_n_mime_types (AtkStreamableContent *streamable)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					  GtkWidget *widget;
 | 
				
			||||||
 | 
					  GtkTextBuffer *buffer;
 | 
				
			||||||
  gint n_mime_types = 0;
 | 
					  gint n_mime_types = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if (GTK_TEXT_VIEW_ACCESSIBLE (streamable)->textutil)
 | 
					  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (streamable));
 | 
				
			||||||
 | 
					  if (widget == NULL)
 | 
				
			||||||
 | 
					    return 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (widget));
 | 
				
			||||||
 | 
					  if (buffer)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      gint i;
 | 
					      gint i;
 | 
				
			||||||
      gboolean advertises_plaintext = FALSE;
 | 
					      gboolean advertises_plaintext = FALSE;
 | 
				
			||||||
      GdkAtom *atoms;
 | 
					      GdkAtom *atoms;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      atoms = gtk_text_buffer_get_serialize_formats (GTK_TEXT_VIEW_ACCESSIBLE (streamable)->textutil->buffer,
 | 
					      atoms = gtk_text_buffer_get_serialize_formats (buffer, &n_mime_types);
 | 
				
			||||||
                                                     &n_mime_types);
 | 
					 | 
				
			||||||
      for (i = 0; i < n_mime_types-1; ++i)
 | 
					      for (i = 0; i < n_mime_types-1; ++i)
 | 
				
			||||||
        if (!strcmp ("text/plain", gdk_atom_name (atoms[i])))
 | 
					        if (!strcmp ("text/plain", gdk_atom_name (atoms[i])))
 | 
				
			||||||
            advertises_plaintext = TRUE;
 | 
					            advertises_plaintext = TRUE;
 | 
				
			||||||
@ -1425,13 +1420,20 @@ static const gchar *
 | 
				
			|||||||
gail_streamable_content_get_mime_type (AtkStreamableContent *streamable,
 | 
					gail_streamable_content_get_mime_type (AtkStreamableContent *streamable,
 | 
				
			||||||
                                       gint                  i)
 | 
					                                       gint                  i)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  if (GTK_TEXT_VIEW_ACCESSIBLE (streamable)->textutil)
 | 
					  GtkWidget *widget;
 | 
				
			||||||
 | 
					  GtkTextBuffer *buffer;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (streamable));
 | 
				
			||||||
 | 
					  if (widget == NULL)
 | 
				
			||||||
 | 
					    return 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (widget));
 | 
				
			||||||
 | 
					  if (buffer)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      gint n_mime_types = 0;
 | 
					      gint n_mime_types = 0;
 | 
				
			||||||
      GdkAtom *atoms;
 | 
					      GdkAtom *atoms;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      atoms = gtk_text_buffer_get_serialize_formats (GTK_TEXT_VIEW_ACCESSIBLE (streamable)->textutil->buffer,
 | 
					      atoms = gtk_text_buffer_get_serialize_formats (buffer, &n_mime_types);
 | 
				
			||||||
                                                     &n_mime_types);
 | 
					 | 
				
			||||||
      if (i < n_mime_types)
 | 
					      if (i < n_mime_types)
 | 
				
			||||||
        return gdk_atom_name (atoms [i]);
 | 
					        return gdk_atom_name (atoms [i]);
 | 
				
			||||||
      else if (i == n_mime_types)
 | 
					      else if (i == n_mime_types)
 | 
				
			||||||
@ -1445,21 +1447,26 @@ static GIOChannel *
 | 
				
			|||||||
gail_streamable_content_get_stream (AtkStreamableContent *streamable,
 | 
					gail_streamable_content_get_stream (AtkStreamableContent *streamable,
 | 
				
			||||||
                                    const gchar          *mime_type)
 | 
					                                    const gchar          *mime_type)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					  GtkWidget *widget;
 | 
				
			||||||
 | 
					  GtkTextBuffer *buffer;
 | 
				
			||||||
  gint i, n_mime_types = 0;
 | 
					  gint i, n_mime_types = 0;
 | 
				
			||||||
  GdkAtom *atoms;
 | 
					  GdkAtom *atoms;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if (!GTK_TEXT_VIEW_ACCESSIBLE (streamable)->textutil)
 | 
					  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (streamable));
 | 
				
			||||||
 | 
					  if (widget == NULL)
 | 
				
			||||||
 | 
					    return 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (widget));
 | 
				
			||||||
 | 
					  if (!buffer)
 | 
				
			||||||
    return NULL;
 | 
					    return NULL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  atoms = gtk_text_buffer_get_serialize_formats (GTK_TEXT_VIEW_ACCESSIBLE (streamable)->textutil->buffer,
 | 
					  atoms = gtk_text_buffer_get_serialize_formats (buffer, &n_mime_types);
 | 
				
			||||||
                                                 &n_mime_types);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  for (i = 0; i < n_mime_types; ++i)
 | 
					  for (i = 0; i < n_mime_types; ++i)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      if (!strcmp ("text/plain", mime_type) ||
 | 
					      if (!strcmp ("text/plain", mime_type) ||
 | 
				
			||||||
          !strcmp (gdk_atom_name (atoms[i]), mime_type))
 | 
					          !strcmp (gdk_atom_name (atoms[i]), mime_type))
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
          GtkTextBuffer *buffer;
 | 
					 | 
				
			||||||
          guint8 *cbuf;
 | 
					          guint8 *cbuf;
 | 
				
			||||||
          GError *err = NULL;
 | 
					          GError *err = NULL;
 | 
				
			||||||
          gsize len, written;
 | 
					          gsize len, written;
 | 
				
			||||||
@ -1468,7 +1475,6 @@ gail_streamable_content_get_stream (AtkStreamableContent *streamable,
 | 
				
			|||||||
          GIOChannel *gio = NULL;
 | 
					          GIOChannel *gio = NULL;
 | 
				
			||||||
          int fd;
 | 
					          int fd;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
          buffer = GTK_TEXT_VIEW_ACCESSIBLE (streamable)->textutil->buffer;
 | 
					 | 
				
			||||||
          gtk_text_buffer_get_iter_at_offset (buffer, &start, 0);
 | 
					          gtk_text_buffer_get_iter_at_offset (buffer, &start, 0);
 | 
				
			||||||
          gtk_text_buffer_get_iter_at_offset (buffer, &end, -1);
 | 
					          gtk_text_buffer_get_iter_at_offset (buffer, &end, -1);
 | 
				
			||||||
          if (!strcmp ("text/plain", mime_type))
 | 
					          if (!strcmp ("text/plain", mime_type))
 | 
				
			||||||
 | 
				
			|||||||
@ -21,7 +21,6 @@
 | 
				
			|||||||
#define __GTK_TEXT_VIEW_ACCESSIBLE_H__
 | 
					#define __GTK_TEXT_VIEW_ACCESSIBLE_H__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "gailcontainer.h"
 | 
					#include "gailcontainer.h"
 | 
				
			||||||
#include "gailtextutil.h"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
G_BEGIN_DECLS
 | 
					G_BEGIN_DECLS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -39,7 +38,6 @@ struct _GtkTextViewAccessible
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
  GailContainer  parent;
 | 
					  GailContainer  parent;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  GailTextUtil   *textutil;
 | 
					 | 
				
			||||||
  gint           previous_insert_offset;
 | 
					  gint           previous_insert_offset;
 | 
				
			||||||
  gint           previous_selection_bound;
 | 
					  gint           previous_selection_bound;
 | 
				
			||||||
  /*
 | 
					  /*
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user