#include "gtkcontainercellaccessible.h"
#include "gtkcellaccessibleparent.h"
+struct _GtkTextCellAccessiblePrivate
+{
+ gchar *cell_text;
+ gint caret_pos;
+ gint cell_length;
+};
+
static const gchar* gtk_text_cell_accessible_get_name (AtkObject *atk_obj);
{
GtkTextCellAccessible *text_cell = GTK_TEXT_CELL_ACCESSIBLE (object);
- g_free (text_cell->cell_text);
+ g_free (text_cell->priv->cell_text);
G_OBJECT_CLASS (_gtk_text_cell_accessible_parent_class)->finalize (object);
}
if (atk_obj->name)
return atk_obj->name;
- return text_cell->cell_text;
+ return text_cell->priv->cell_text;
}
static void
GtkCellRenderer *renderer;
g_object_get (cell, "renderer", &renderer, NULL);
- g_object_get (renderer,
- "text", &text,
- NULL);
+ g_object_get (renderer, "text", &text, NULL);
g_object_unref (renderer);
- if (text_cell->cell_text)
+ if (text_cell->priv->cell_text)
{
- if (text == NULL || g_strcmp0 (text_cell->cell_text, text) != 0)
+ if (text == NULL || g_strcmp0 (text_cell->priv->cell_text, text) != 0)
{
- g_free (text_cell->cell_text);
- temp_length = text_cell->cell_length;
- text_cell->cell_text = NULL;
- text_cell->cell_length = 0;
+ g_free (text_cell->priv->cell_text);
+ temp_length = text_cell->priv->cell_length;
+ text_cell->priv->cell_text = NULL;
+ text_cell->priv->cell_length = 0;
g_signal_emit_by_name (cell, "text-changed::delete", 0, temp_length);
if (obj->name == NULL)
g_object_notify (G_OBJECT (obj), "accessible-name");
{
if (text == NULL)
{
- text_cell->cell_text = g_strdup ("");
- text_cell->cell_length = 0;
+ text_cell->priv->cell_text = g_strdup ("");
+ text_cell->priv->cell_length = 0;
}
else
{
- text_cell->cell_text = g_strdup (text);
- text_cell->cell_length = g_utf8_strlen (text, -1);
+ text_cell->priv->cell_text = g_strdup (text);
+ text_cell->priv->cell_length = g_utf8_strlen (text, -1);
}
}
if (rv)
{
g_signal_emit_by_name (cell, "text-changed::insert",
- 0, text_cell->cell_length);
+ 0, text_cell->priv->cell_length);
if (obj->name == NULL)
g_object_notify (G_OBJECT (obj), "accessible-name");
atk_object_class->ref_state_set = gtk_text_cell_accessible_ref_state_set;
gobject_class->finalize = gtk_text_cell_accessible_finalize;
+
+ g_type_class_add_private (klass, sizeof (GtkTextCellAccessiblePrivate));
}
static void
_gtk_text_cell_accessible_init (GtkTextCellAccessible *text_cell)
{
- text_cell->cell_text = NULL;
- text_cell->caret_pos = 0;
- text_cell->cell_length = 0;
+ text_cell->priv = G_TYPE_INSTANCE_GET_PRIVATE (text_cell,
+ GTK_TYPE_TEXT_CELL_ACCESSIBLE,
+ GtkTextCellAccessiblePrivate);
}
static gchar *
{
gchar *text;
- text = GTK_TEXT_CELL_ACCESSIBLE (atk_text)->cell_text;
+ text = GTK_TEXT_CELL_ACCESSIBLE (atk_text)->priv->cell_text;
if (text)
return g_utf8_substring (text, start_pos, end_pos > -1 ? end_pos : g_utf8_strlen (text, -1));
else
static gint
gtk_text_cell_accessible_get_character_count (AtkText *text)
{
- if (GTK_TEXT_CELL_ACCESSIBLE (text)->cell_text != NULL)
- return GTK_TEXT_CELL_ACCESSIBLE (text)->cell_length;
+ if (GTK_TEXT_CELL_ACCESSIBLE (text)->priv->cell_text != NULL)
+ return GTK_TEXT_CELL_ACCESSIBLE (text)->priv->cell_length;
else
return 0;
}
static gint
gtk_text_cell_accessible_get_caret_offset (AtkText *text)
{
- return GTK_TEXT_CELL_ACCESSIBLE (text)->caret_pos;
+ return GTK_TEXT_CELL_ACCESSIBLE (text)->priv->caret_pos;
}
static gboolean
{
GtkTextCellAccessible *text_cell = GTK_TEXT_CELL_ACCESSIBLE (text);
- if (text_cell->cell_text == NULL)
+ if (text_cell->priv->cell_text == NULL)
return FALSE;
else
{
/* Only set the caret within the bounds and if it is to a new position. */
if (offset >= 0 &&
- offset <= text_cell->cell_length &&
- offset != text_cell->caret_pos)
+ offset <= text_cell->priv->cell_length &&
+ offset != text_cell->priv->caret_pos)
{
- text_cell->caret_pos = offset;
+ text_cell->priv->caret_pos = offset;
/* emit the signal */
g_signal_emit_by_name (text, "text-caret-moved", offset);
gint xpad, ypad;
gint x_window, y_window, x_toplevel, y_toplevel;
- if (!GTK_TEXT_CELL_ACCESSIBLE (text)->cell_text)
+ if (!GTK_TEXT_CELL_ACCESSIBLE (text)->priv->cell_text)
{
*x = *y = *height = *width = 0;
return;
}
- if (offset < 0 || offset >= GTK_TEXT_CELL_ACCESSIBLE (text)->cell_length)
+ if (offset < 0 || offset >= GTK_TEXT_CELL_ACCESSIBLE (text)->priv->cell_length)
{
*x = *y = *height = *width = 0;
return;
gint x_temp, y_temp;
gboolean ret;
- if (!GTK_TEXT_CELL_ACCESSIBLE (text)->cell_text)
+ if (!GTK_TEXT_CELL_ACCESSIBLE (text)->priv->cell_text)
return -1;
gail_renderer = GTK_RENDERER_CELL_ACCESSIBLE (text);
gchar *index;
gchar *string;
- string = GTK_TEXT_CELL_ACCESSIBLE(text)->cell_text;
+ string = GTK_TEXT_CELL_ACCESSIBLE(text)->priv->cell_text;
if (!string)
return '\0';