[g-a-devel] need help implementing a widget in atk



Hi all,

I am trying to map the MWF ListView control to atk (via UI automation). I don't believe there is a gtk control equivalent to it, and I want our code to work well with Orca for instance, so I wanted to ask if anyone wanted to give input as to what I should do to map it. It has several "views," so a program can dynamically change the appearance by changing the View property. So it is effectively equivalent to having several types of widgets to consider.

The Details view is a lot like a GtkTreeView. I put a screen shot (at Will's request) at http://mgorse.freeshell.org/listviewdetail.png. It has a table of books with three columns (title, author, and copyright date). The books are divided into "groups" based on the first letter of the title, so there are three groups ("C", "M" and "P"). I'm thinking that there should be a control with a role of ATK_ROLE_TREE_TABLE with the data represented as table cells, but then I'm not sure how to represent the group names. Should they just be given rows in the table with the name as the first column and other columns on the row being blank? Also, based on some testing that I've done, gail returns -1 when get_row_at_index is called for an object that is not at the root level of the tree view. Is this expected behavior that we should emulate (in which case all of the actual data would have a row of -1 if groups are used)?

There are other views that display list items in grids (http://mgorse.freeshell.org/listviewlargeicon.png), each "group" having a separate grid. UIA exposes a List control which can contain multiple Group controls, each of which contain ListItem controls. The Gropu controls implement an interface similar to AtkTable. It would probably be simplest for me to implement a hierarchy such as the following in atk, since there would be a one-to-one correspondance between UIA and ATK objects:

ATK_ROLE_LIST
  ATK_ROLE_TABLE
    ATK_ROLE_TABLE_CELL
    ...
  ATK_ROLE_TABLE
    ATK_ROLE_TABLE_CELL
    ...
  ...

Let me know if any of you think that something else makes more sense. Role names are easy to change.

Thanks,
-Mike G-


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]