Re: GailTreeView Changes Proposal
- From: Peter Korn <peter korn sun com>
- To: gnome-accessibility-list gnome org
- Subject: Re: GailTreeView Changes Proposal
- Date: Tue, 26 Jun 2001 11:34:21 -0700
Hi Brian,
> I just had a long conversation with Marc Mulcahy and wanted to share
> the discussion.
>
> ...
>
> The "atk_registry_get_factory" function is taking a "renderer" as its
> second object so it is building the gail type for the cell based upon
> the renderer type used by the specific GtkTreeViewColumn. In this
> example, if it notices that the type is GtkCellRendererText, then it
> builds a GailTreeViewTextCell.
>
> This is perhaps a problem because it assumes that the various
> GtkCellRenderers are *only* used by GtkTreeView. Currently GtkTreeView
> is the only one making use of the various renderers. I have just sent an
> email to Jonathan Blandford (the author of GtkTreeView) to see if this
> is a safe assumption, but I am guessing he'll tell me that it is
> valid to use the various GtkCellRenderers in other/custom Gtk objects.
>
> It seems that we want an "atk_registry_get_factory()" function that
> could build the factory based upon the renderer type *and* the fact
> that the renderer is used in a GtkTreeView. Unfortunately the
> renderer itself doesn't store this information.
>
> One idea is to change the call to look like this:
>
> factory = atk_registry_get_factory (default_registry,
> GTK_OBJECT_TYPE (tv_col));
>
> so that the factory is based upon the GtkTreeViewColumn object, and
> then the factory is responsible for digging into the GtkTreeViewColumn
> and figuring out which renderer it is using and then builds the
> appropriate Gail object based upon the renderer used by the column.
>
> However this idea is also a little broken because GtkCellRenderer is
> an interface that can be extended by anyone. So if we took this
> approach, I am not sure how the factory would be able to handle
> any renderers aside from the default ones.
>
> Ideas?
What about keeping the first pattern - basing the accessible on the
renderer:
cell = atk_object_factory_create_accessible (factory,
G_OBJECT (renderer));
and then modifying the accessible cell with appropriate information about
the context of the object (please excuse my blatant Java-isms below). E.g.:
cell.setAccessibleRole(...)
cell.getAccessibleStateSet().addAccessibleState(...)
...
Since the code that is building the accessible cell knows where the cell is,
it should contain all of the additional information needed.
Peter Korn
Sun Accessibiliy team
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]