]> Pileus Git - ~andy/gtk/blobdiff - gtk/a11y/gtktextcellaccessible.c
Change FSF Address
[~andy/gtk] / gtk / a11y / gtktextcellaccessible.c
index 67f88311a9a0910f0de5fbc0ddf0dfecc872075f..dbc9978d68e7cd0df610dc1407c324dafdd6162a 100644 (file)
  * Lesser General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
  */
 
 #include "config.h"
-#include <string.h>
+
 #include <gtk/gtk.h>
 #include "../gtkpango.h"
 #include "gtktextcellaccessible.h"
 #include "gtkcontainercellaccessible.h"
-#include "gailcellparent.h"
+#include "gtkcellaccessibleparent.h"
 
 static const gchar* gtk_text_cell_accessible_get_name    (AtkObject      *atk_obj);
 
@@ -80,51 +78,24 @@ static void             add_attr                        (PangoAttrList  *attr_li
 
 /* Misc */
 
-static gboolean gtk_text_cell_accessible_update_cache             (GtkRendererCellAccessible *cell,
-                                                         gboolean       emit_change_signal);
-
-static gchar *property_list[] = {
-  /* Set font_desc first since it resets other values if it is NULL */
-  "font_desc",
-  "attributes",
-  "background-gdk",
-  "editable",
-  "family",
-  "foreground-gdk",
-  "rise",
-  "scale",
-  "size",
-  "size-points",
-  "stretch",
-  "strikethrough",
-  "style",
-  "text",
-  "underline",
-  "variant",
-  "weight",
-
-  /* Also need the sets */
-  "background-set",
-  "editable-set",
-  "family-set",
-  "foreground-set",
-  "rise-set",
-  "scale-set",
-  "size-set",
-  "stretch-set",
-  "strikethrough-set",
-  "style-set",
-  "underline-set",
-  "variant-set",
-  "weight-set",
-  NULL
-};
+static void gtk_text_cell_accessible_update_cache       (GtkCellAccessible *cell);
 
 static void atk_text_interface_init (AtkTextIface *iface);
 
 G_DEFINE_TYPE_WITH_CODE (GtkTextCellAccessible, _gtk_text_cell_accessible, GTK_TYPE_RENDERER_CELL_ACCESSIBLE,
                          G_IMPLEMENT_INTERFACE (ATK_TYPE_TEXT, atk_text_interface_init))
 
+static AtkStateSet *
+gtk_text_cell_accessible_ref_state_set (AtkObject *accessible)
+{
+  AtkStateSet *state_set;
+
+  state_set = ATK_OBJECT_CLASS (_gtk_text_cell_accessible_parent_class)->ref_state_set (accessible);
+
+  atk_state_set_add_state (state_set, ATK_STATE_SINGLE_LINE);
+
+  return state_set;
+}
 
 static void
 gtk_text_cell_accessible_finalize (GObject *object)
@@ -147,9 +118,8 @@ gtk_text_cell_accessible_get_name (AtkObject *atk_obj)
   return text_cell->cell_text;
 }
 
-static gboolean
-gtk_text_cell_accessible_update_cache (GtkRendererCellAccessible *cell,
-                                       gboolean                   emit_change_signal)
+static void
+gtk_text_cell_accessible_update_cache (GtkCellAccessible *cell)
 {
   GtkTextCellAccessible *text_cell = GTK_TEXT_CELL_ACCESSIBLE (cell);
   AtkObject *obj = ATK_OBJECT (cell);
@@ -157,22 +127,21 @@ gtk_text_cell_accessible_update_cache (GtkRendererCellAccessible *cell,
   gint temp_length;
   gchar *text;
 
-  g_object_get (G_OBJECT (cell->renderer), "text", &text, NULL);
+  g_object_get (G_OBJECT (GTK_RENDERER_CELL_ACCESSIBLE (cell)->renderer),
+                "text", &text,
+                NULL);
 
   if (text_cell->cell_text)
     {
-      if (text == NULL || strcmp (text_cell->cell_text, text) != 0)
+      if (text == NULL || g_strcmp0 (text_cell->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;
-          if (emit_change_signal)
-            {
-              g_signal_emit_by_name (cell, "text_changed::delete", 0, temp_length);
-              if (obj->name == NULL)
-                g_object_notify (G_OBJECT (obj), "accessible-name");
-            }
+          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)
             rv = TRUE;
         }
@@ -198,16 +167,12 @@ gtk_text_cell_accessible_update_cache (GtkRendererCellAccessible *cell,
 
   if (rv)
     {
-      if (emit_change_signal)
-        {
-          g_signal_emit_by_name (cell, "text_changed::insert",
-                                 0, text_cell->cell_length);
+      g_signal_emit_by_name (cell, "text-changed::insert",
+                             0, text_cell->cell_length);
 
-          if (obj->name == NULL)
-            g_object_notify (G_OBJECT (obj), "accessible-name");
-        }
+      if (obj->name == NULL)
+        g_object_notify (G_OBJECT (obj), "accessible-name");
     }
-  return rv;
 }
 
 static void
@@ -215,12 +180,12 @@ _gtk_text_cell_accessible_class_init (GtkTextCellAccessibleClass *klass)
 {
   GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
   AtkObjectClass *atk_object_class = ATK_OBJECT_CLASS (klass);
-  GtkRendererCellAccessibleClass *renderer_cell_class = GTK_RENDERER_CELL_ACCESSIBLE_CLASS (klass);
+  GtkCellAccessibleClass *cell_class = GTK_CELL_ACCESSIBLE_CLASS (klass);
 
-  renderer_cell_class->update_cache = gtk_text_cell_accessible_update_cache;
-  renderer_cell_class->property_list = property_list;
+  cell_class->update_cache = gtk_text_cell_accessible_update_cache;
 
   atk_object_class->get_name = gtk_text_cell_accessible_get_name;
+  atk_object_class->ref_state_set = gtk_text_cell_accessible_ref_state_set;
 
   gobject_class->finalize = gtk_text_cell_accessible_finalize;
 }
@@ -231,30 +196,6 @@ _gtk_text_cell_accessible_init (GtkTextCellAccessible *text_cell)
   text_cell->cell_text = NULL;
   text_cell->caret_pos = 0;
   text_cell->cell_length = 0;
-  atk_state_set_add_state (GTK_CELL_ACCESSIBLE (text_cell)->state_set,
-                           ATK_STATE_SINGLE_LINE);
-}
-
-AtkObject *
-_gtk_text_cell_accessible_new (void)
-{
-  GObject *object;
-  AtkObject *atk_object;
-  GtkRendererCellAccessible *cell;
-
-  object = g_object_new (GTK_TYPE_TEXT_CELL_ACCESSIBLE, NULL);
-
-  g_return_val_if_fail (object != NULL, NULL);
-
-  atk_object = ATK_OBJECT (object);
-  atk_object->role = ATK_ROLE_TABLE_CELL;
-
-  cell = GTK_RENDERER_CELL_ACCESSIBLE(object);
-
-  cell->renderer = gtk_cell_renderer_text_new ();
-  g_object_ref_sink (cell->renderer);
-
-  return atk_object;
 }
 
 static gchar *
@@ -355,7 +296,7 @@ gtk_text_cell_accessible_set_caret_offset (AtkText *text,
           text_cell->caret_pos = offset;
 
           /* emit the signal */
-          g_signal_emit_by_name (text, "text_caret_moved", offset);
+          g_signal_emit_by_name (text, "text-caret-moved", offset);
           return TRUE;
         }
       else
@@ -611,9 +552,10 @@ gtk_text_cell_accessible_get_character_extents (AtkText      *text,
   if (GTK_IS_CONTAINER_CELL_ACCESSIBLE (parent))
     parent = atk_object_get_parent (parent);
   widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (parent));
-  g_return_if_fail (GAIL_IS_CELL_PARENT (parent));
-  gail_cell_parent_get_cell_area (GAIL_CELL_PARENT (parent), GTK_CELL_ACCESSIBLE (text),
-                                  &rendered_rect);
+  g_return_if_fail (GTK_IS_CELL_ACCESSIBLE_PARENT (parent));
+  _gtk_cell_accessible_parent_get_cell_area (GTK_CELL_ACCESSIBLE_PARENT (parent),
+                                             GTK_CELL_ACCESSIBLE (text),
+                                             &rendered_rect);
 
   gtk_cell_renderer_get_preferred_size (GTK_CELL_RENDERER (gtk_renderer),
                                         widget,
@@ -696,9 +638,10 @@ gtk_text_cell_accessible_get_offset_at_point (AtkText      *text,
 
   widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (parent));
 
-  g_return_val_if_fail (GAIL_IS_CELL_PARENT (parent), -1);
-  gail_cell_parent_get_cell_area (GAIL_CELL_PARENT (parent), GTK_CELL_ACCESSIBLE (text),
-                                  &rendered_rect);
+  g_return_val_if_fail (GTK_IS_CELL_ACCESSIBLE_PARENT (parent), -1);
+  _gtk_cell_accessible_parent_get_cell_area (GTK_CELL_ACCESSIBLE_PARENT (parent),
+                                             GTK_CELL_ACCESSIBLE (text),
+                                             &rendered_rect);
 
   gtk_cell_renderer_get_preferred_size (GTK_CELL_RENDERER (gtk_renderer),
                                         widget,