internal override void PreRemoveChild(Atk.Object childToRemove) { if (splitter != null && childToRemove == splitter) { splitter = null; ParentAdapter parentAdapter = childToRemove as ParentAdapter; int count = parentAdapter.NAccessibleChildren; while (count > 0) { Atk.Object obj = parentAdapter.RefAccessibleChild(0); parentAdapter.RemoveChild(obj, false); SetParent(obj, this); AddOneChild(obj); count--; } } base.PreRemoveChild(childToRemove); }
public static void SetMainWindow(this Atk.Object o, Atk.Object mainWindow) { var nsa = GetNSAccessibilityElement(o); if (nsa == null) { return; } var windowAccessible = GetNSAccessibilityElement(mainWindow); if (windowAccessible == null) { return; } nsa.AccessibilityMainWindow = (NSObject)windowAccessible; }
public static void MakeAccessibilityAnnouncement(this Atk.Object o, string message) { if (o == null) { return; } var nsObject = GetNSAccessibilityElement(o) as NSObject; if (nsObject == null) { return; } var dictionary = new NSDictionary(NSAccessibilityNotificationUserInfoKeys.AnnouncementKey, new NSString(message), NSAccessibilityNotificationUserInfoKeys.PriorityKey, NSAccessibilityPriorityLevel.High); NSAccessibility.PostNotification(nsObject, NSAccessibilityNotifications.AnnouncementRequestedNotification, dictionary); }
public virtual void RaiseAutomationEvent(AutomationEvent eventId, AutomationEventArgs e) { if (eventId != AutomationElementIdentifiers.AutomationFocusChangedEvent) { return; } Atk.Object parent = this; //in case this.GetType () == typeof(UiaAtkBridge.Window) while (!(parent is UiaAtkBridge.Window)) { if (parent == null) { Log.Error("Parent of an object should not be null"); return; } parent = GetParent(parent); } TopLevelRootItem.Instance.CheckAndHandleNewActiveWindow((UiaAtkBridge.Window)parent); }
protected void NotifyFocused(bool focused) { Window focusWindow = null; // FIXME: Gail sends the events in a slighly different order: // window:activate , object:state-changed:focused, object:state-changed:active if (focused) { Atk.Object container = Parent; while (container != null) { if (container is Window) { focusWindow = (Window)container; TopLevelRootItem.Instance.CheckAndHandleNewActiveWindow(focusWindow); break; } else if (container is Adapter) { focusWindow = ((Adapter)container).PrivateWindow; if (focusWindow != null) { break; } } container = container.Parent; } NotifyStateChange(Atk.StateType.Focused, focused); } if (focused) { GLib.Timeout.Add(0, new GLib.TimeoutHandler(delegate { Atk.Focus.TrackerNotify(this); return(false); })); } if (focusWindow != null) { focusWindow.SendActiveStateChange(); } }
public static void States(Atk.Object accessible, params Atk.StateType [] expected) { List <Atk.StateType> expectedStates = new List <Atk.StateType> (expected); List <Atk.StateType> missingStates = new List <Atk.StateType> (); List <Atk.StateType> superfluousStates = new List <Atk.StateType> (); Atk.StateSet stateSet = accessible.RefStateSet(); foreach (Atk.StateType state in Enum.GetValues(typeof(Atk.StateType))) { if (expectedStates.Contains(state) && (!(stateSet.ContainsState(state)))) { missingStates.Add(state); } else if ((!expectedStates.Contains(state)) && (stateSet.ContainsState(state))) { superfluousStates.Add(state); } } string missingStatesMsg = string.Empty; string superfluousStatesMsg = string.Empty; if (missingStates.Count != 0) { missingStatesMsg = "Missing states: "; foreach (Atk.StateType state in missingStates) { missingStatesMsg += state.ToString() + ","; } } if (superfluousStates.Count != 0) { superfluousStatesMsg = "Superfluous states: "; foreach (Atk.StateType state in superfluousStates) { superfluousStatesMsg += state.ToString() + ","; } } Assert.IsTrue((missingStates.Count == 0) && (superfluousStates.Count == 0), missingStatesMsg + " .. " + superfluousStatesMsg); }
public override object CastToAtkInterface(Type t, Atk.Object accessible) { try { if (t == typeof(Atk.Action)) { return(Atk.ActionAdapter.GetObject(accessible.Handle, false)); } else if (t == typeof(Atk.Text)) { return(Atk.TextAdapter.GetObject(accessible.Handle, false)); } else if (t == typeof(Atk.Component)) { return(Atk.ComponentAdapter.GetObject(accessible.Handle, false)); } else if (t == typeof(Atk.EditableText)) { return(Atk.EditableTextAdapter.GetObject(accessible.Handle, false)); } else if (t == typeof(Atk.Image)) { return(Atk.ImageAdapter.GetObject(accessible.Handle, false)); } else if (t == typeof(Atk.Table)) { return(Atk.TableAdapter.GetObject(accessible.Handle, false)); } else if (t == typeof(Atk.Selection)) { return(Atk.SelectionAdapter.GetObject(accessible.Handle, false)); } else if (t == typeof(Atk.Value)) { return(Atk.ValueAdapter.GetObject(accessible.Handle, false)); } else { throw new NotImplementedException("Couldn't cast to interface " + t.Name); } } catch (ArgumentException) { return(null); } }
public static void SetTabs(this Atk.Object o, params Atk.Object [] tabs) { var nsa = GetNSAccessibilityElement(o); if (nsa == null) { return; } NSObject [] realTabs = new NSObject [tabs.Length]; int i = 0; foreach (var tab in tabs) { realTabs [i] = (NSObject)GetNSAccessibilityElement(tab); i++; } nsa.AccessibilityTabs = realTabs; }
internal override void AddOneChild(Atk.Object child) { base.AddOneChild(child); Adapter adapter = child as Adapter; if (adapter == null) { return; } for (int i = 0; i < NAccessibleChildren; i++) { Adapter currentChild = RefAccessibleChild(i) as Adapter; if (adapter.ParentProvider == currentChild.Provider) { ((TreeItem)currentChild).NotifyChildAdded(adapter); } } }
public bool AddSelection(int i) { bool success = selectionHelper.AddSelection(i); if (success) { string propagateName = null; if (!selProvider.CanSelectMultiple) { Atk.Object selected = RefSelection(0); if (selected != null) { propagateName = selected.Name; } } RaiseSelectionChanged(propagateName); } // TODO: Report gail bug, and return 'success' instead return(true); }
public static void RemoveElementFromTitle(this Atk.Object title, Atk.Object o) { var titleNsa = GetNSAccessibilityElement(title); var nsa = GetNSAccessibilityElement(o); if (nsa == null || titleNsa == null) { return; } if (titleNsa.AccessibilityServesAsTitleForUIElements == null) { return; } List <NSObject> oldElements = new List <NSObject> (titleNsa.AccessibilityServesAsTitleForUIElements); oldElements.Remove((NSObject)nsa); titleNsa.AccessibilityServesAsTitleForUIElements = oldElements.ToArray(); }
internal override void RemoveChild(Atk.Object childToRemove) { int childIndex = children.IndexOf(childToRemove); bool cancelSelection = false; if (IsChildSelected(childIndex)) { cancelSelection = true; } base.RemoveChild(childToRemove); if (children.Count <= 0 || cancelSelection) { ComboBox parent = Parent as ComboBox; if (parent != null) { parent.RaiseSelectionChanged(null); } else { Log.Error("Parent of a ComboBoxOptions is null or not a ComboBox"); } } }
internal virtual void RemoveChild(Atk.Object childToRemove, bool terminate) { if (childToRemove == null) { //FIXME: better throw an ArgumentNullException return; } //Console.WriteLine ("RemoveChild: {0}", childToRemove.GetType ()); if (childToRemove is ParentAdapter) { ((ParentAdapter)childToRemove).RemoveUnmanagedChildren (); } Adapter adapter = childToRemove as Adapter; if (adapter != null) adapter.RemoveFromParent (this, terminate); int childIndex; lock (syncRoot) { childIndex = children.IndexOf (childToRemove); children.Remove (childToRemove); } EmitChildrenChanged (Atk.Object.ChildrenChangedDetail.Remove, (uint)childIndex, childToRemove); }
public HyperlinkObject(Hyperlink resource, int index) { this.resource = resource; this.index = index; this.obj = new HyperlinkActor(resource, index); }
public void AddTarget(Atk.Object target) { atk_relation_add_target(Handle, target == null ? IntPtr.Zero : target.Handle); }
public static void SetTitleUIElement(this Atk.Object o, Atk.Object title) { }
public static void SetAlternateUIVisible(this Atk.Object o, bool visible) { }
public static void SetRole(this Atk.Object o, AtkCocoa.Roles role, string description = null) { }
public static void SetSubRole(this Atk.Object o, string subrole) { }
public static void SetValue(this Atk.Object o, string stringValue) { }
public static void SetUrl(this Atk.Object o, string url) { }
public static void SetMainWindow(this Atk.Object o, Atk.Object mainWindow) { }
public HyperlinkObject (Hyperlink resource, int index) { this.resource = resource; this.index = index; this.obj = new HyperlinkActor (resource, index); }
public void SetColumnHeader(int column, Atk.Object header) { tableExpert.SetColumnHeader(column, header); }
public void SetRowHeader(int row, Atk.Object header) { }
void InvokeNative(Atk.Object obj) { native_cb(obj == null ? IntPtr.Zero : obj.Handle); }
public void SetColumnHeader(int column, Atk.Object header) { }
public static void SetFilename(this Atk.Object o, string filename) { }
public ActionDelegate(Gtk.Widget widget) { widget.Destroyed += WidgetDestroyed; Owner = widget.Accessible; }
public static void SetIsMainWindow(this Atk.Object o, bool isMainWindow) { }
public void SetRowHeader(int row, Atk.Object header) { tableExpert.SetRowHeader(row, header); }
internal void ConvertCoords (ref int x, ref int y, bool toScreen) { Adapter adapter = this; int mult = (toScreen? 1: -1); for (;;) { Adapter parent = adapter.Parent as Adapter; if (this is ContextMenu) parent = VirtualParent; if (parent == null || parent is TopLevelRootItem) { if (adapter is Window) { System.Windows.Rect rect = adapter.BoundingRectangle; x += (int)rect.X * mult; y += (int)rect.Y * mult; } return; } adapter = parent; } }