예제 #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);
        }
예제 #2
0
        /// <summary>
        /// Initializes the plugin
        /// </summary>
        /// <param name="component"></param>
        public void Initialize(InvalidationManagerClient component)
        {
            if (_initialized)
            {
                return;
            }

            _initialized = true;

            //Debug.Log("TabManager init");
            _component = (Component)component;

            ITabManagerClient tabManagerClient = component as ITabManagerClient;

            if (null == tabManagerClient)
            {
                return;
            }

            _components = TabChildren ?? tabManagerClient.GetTabChildren(); // gets all focusable children

            if (null == _circularTabs)                                      // if not set on plugin
            {
                _circularTabs = tabManagerClient.CircularTabs;
            }

            if (null == _circularArrows) // if not set on plugin
            {
                _circularArrows = tabManagerClient.CircularArrows;
            }

            if (_components.Count > 0)
            {
                _component.AddEventListener(KeyboardEvent.KEY_DOWN, KeyDownHandler, Phases); // subscribe to keys
            }
        }