public void TabControl ()
{
BasicWidgetType type = BasicWidgetType.TabControl;
Atk.Object accessible = null;
string [] names = new string [] { "page1", "page2" };
RunInGuiThread (delegate () {
accessible = GetAccessible (type, names, true);
});
States (accessible,
Atk.StateType.Enabled,
Atk.StateType.Focusable,
Atk.StateType.Sensitive,
Atk.StateType.Showing,
Atk.StateType.Visible);
PropertyRole (type, accessible);
Assert.AreEqual (names.Length, accessible.NAccessibleChildren, "TabControl numChildren");
Atk.IComponent atkComponent = CastToAtkInterface <Atk.IComponent> (accessible);
InterfaceComponent (type, atkComponent);
Atk.ISelection atkSelection = CastToAtkInterface <Atk.ISelection> (accessible);
try {
InterfaceSelection (atkSelection, names, accessible, type);
Atk.Object child1 = accessible.RefAccessibleChild (0);
States (child1,
Atk.StateType.Focused,
Atk.StateType.Enabled,
Atk.StateType.MultiLine,
Atk.StateType.Selectable,
Atk.StateType.Selected,
Atk.StateType.Sensitive,
Atk.StateType.Showing,
Atk.StateType.Visible);
Atk.Object child2 = accessible.RefAccessibleChild (1);
States (child2,
Atk.StateType.Enabled,
Atk.StateType.MultiLine,
Atk.StateType.Selectable,
Atk.StateType.Sensitive,
Atk.StateType.Showing,
Atk.StateType.Visible);
PropertyRole (BasicWidgetType.TabPage, child1);
Atk.IText atkText = CastToAtkInterface<Atk.IText> (child1);
Assert.AreEqual (5, atkText.CharacterCount, "CharacterCount");
Assert.AreEqual ("page1", atkText.GetText (0, 5), "GetText #1");
Assert.AreEqual ("page1", atkText.GetText (0, -1), "GetText #2");
StartEventMonitor ();
RunInGuiThread (delegate () {
atkSelection.AddSelection (1);
});
ExpectEvents (1, Atk.Role.PageTabList, "object:visible-data-changed");
ExpectEvents (1, Atk.Role.PageTabList, "object:selection-changed");
ExpectEvents (2, Atk.Role.PageTab, "object:state-changed:selected");
} finally {
RunInGuiThread (delegate () {
atkSelection.AddSelection (0);
});
}
}