Example #1
0
        // TODO: handle skipping non-focused components and circular changes
        private List<FocusableComponentDescriptor> GetFocusableComponents()
        {
            List<FocusableComponentDescriptor> list = new List<FocusableComponentDescriptor>();

            ITabManagerClient fmc = _component as ITabManagerClient;
            if (null == fmc)
                return list;

            _components = TabChildren ?? fmc.GetTabChildren();

            int index = 0;
            _components.ForEach(delegate(DisplayListMember child)
            {
                InteractiveComponent comp = child as InteractiveComponent; // form item
                if (FocusManager.IsFocusCandidate(comp)) // visible & enabled & focus enabled?
                    list.Add(new FocusableComponentDescriptor(index, comp));
                index++;
            });

            return list;
        }