Example #1
0
 public UiaDbusElement(DCI.IAutomationElement dbusElement, string busName,
                       string dbusPath, UiaDbusAutomationSource source)
 {
     this.source      = source;
     this.busName     = busName;
     this.dbusPath    = dbusPath;
     this.dbusElement = dbusElement;
 }
Example #2
0
		public UiaDbusElement (DCI.IAutomationElement dbusElement, string busName,
		                        string dbusPath, UiaDbusAutomationSource source)
		{
			this.source = source;
			this.busName = busName;
			this.dbusPath = dbusPath;
			this.dbusElement = dbusElement;
		}
Example #3
0
        private UiaDbusElement CreateElement(DCI.IAutomationElement dbusElement, string busName, string elementPath)
        {
            if (dbusElement == null)
            {
                return(null);
            }
            UiaDbusElement element = new UiaDbusElement(dbusElement, busName, elementPath, this);

            lock (elementMapping)
                elementMapping.Add(new DbusElementTuple(busName, elementPath), element);
            return(element);
        }
Example #4
0
        public UiaDbusElement GetOrCreateElement(string busName, string elementPath)
        {
            if (string.IsNullOrEmpty(elementPath) ||
                string.IsNullOrEmpty(busName))
            {
                return(null);
            }

            UiaDbusElement element;

            lock (elementMapping) {
                if (elementMapping.TryGetValue(new DbusElementTuple(busName, elementPath),
                                               out element))
                {
                    return(element);
                }

                DCI.IAutomationElement dbusElement =
                    Bus.Session.GetObject <DCI.IAutomationElement> (busName,
                                                                    new ObjectPath(elementPath));
                element = CreateElement(dbusElement, busName, elementPath);
            }
            return(element);
        }