Пример #1
0
        object IAccessible.accNavigate(NAVDIR navDir, VarInt varStart)
        {
            int i = varStart;

            if (navDir == NAVDIR.FIRSTCHILD || navDir == NAVDIR.LASTCHILD)
            {
                if (i != -1)
                {
                    return(null);
                }
            }
            else
            {
                if (i == -1)
                {
                    return(_StdAO.accNavigate(navDir, varStart));                         //never mind: gets some not adjacent UI element
                }
            }
            var v = Navigate(navDir, i);

            if (v == null)
            {
                return(null);
            }
            return(v.Value + 1);
        }
Пример #2
0
 void IAccessible.accDoDefaultAction(VarInt varChild)
 {
     if (!_B(varChild, out var b) || b.IsDisabled)
     {
         return;
     }
     _w.Post(Api.WM_USER + 50, (int)varChild);
 }
Пример #3
0
        bool _B(VarInt varChild, out popupMenu.MenuItem b)
        {
            int i = varChild;

            if (i == -1)
            {
                b = null; return(false);
            }
            b = _a[i]; return(true);
        }
Пример #4
0
 string IAccessible.get_accKeyboardShortcut(VarInt varChild)
 {
     if (_B(varChild, out var b) && !b.rawText)
     {
         var s = b.Text;
         int i = StringUtil.FindUnderlineChar(s);
         if (i >= 0)
         {
             return(s[i].ToString());
         }
     }
     return(null);
 }
Пример #5
0
        void IAccessible.accSelect(ESelect flagsSelect, VarInt varChild)
        {
            int child = varChild;

            if (flagsSelect.Has(ESelect.TAKEFOCUS))
            {
                Api.SetFocus(_w);                                                 // _e.Focus();//SHOULDDO: now Api.SetFocus makes KTreeView item nonfocused (works like focused but displayed like not)
            }
            if (child == -1)
            {
                if (flagsSelect is not(ESelect.TAKEFOCUS or 0))
                {
                    throw new ArgumentException();
                }
            }
            else
            {
                SelectChild(flagsSelect, child);
            }
        }
Пример #6
0
        VarInt IAccessible.get_accState(VarInt varChild)
        {
            EState r = 0;

            if (!_w.IsEnabled())
            {
                r |= EState.DISABLED;
            }
            if (!_B(varChild, out var b))
            {
                if (!_w.IsVisible)
                {
                    r |= EState.INVISIBLE;
                }
            }
            else
            {
                if (b.IsDisabled)
                {
                    r |= EState.DISABLED;
                }
                if (FocusedItem == b)
                {
                    r |= EState.FOCUSED | EState.HOTTRACKED;
                }
                if (b.IsChecked)
                {
                    r |= EState.CHECKED;
                }
                if (b.IsSubmenu)
                {
                    r |= EState.HASPOPUP;
                }
                //SHOULDDO: if offscreen, r |= EState.INVISIBLE | EState.OFFSCREEN;
            }
            return((int)r - 1);
        }
Пример #7
0
        object IAccessible.accNavigate(NAVDIR navDir, VarInt varStart)
        {
            int i = varStart;

            if (navDir == NAVDIR.FIRSTCHILD || navDir == NAVDIR.LASTCHILD)
            {
                if (i == -1)
                {
                    return(navDir == NAVDIR.FIRSTCHILD ? 1 : _a.Count);
                }
            }
            else
            {
                if (i == -1)
                {
                    return(_StdAO.accNavigate(navDir, varStart));
                }
                switch (navDir)
                {
                case NAVDIR.PREVIOUS:
                    if (i > 0)
                    {
                        return(i);
                    }
                    break;

                case NAVDIR.NEXT:
                    if (++i < _a.Count)
                    {
                        return(i + 1);
                    }
                    break;
                }
            }
            return(null);
        }
Пример #8
0
 string IAccessible.get_accKeyboardShortcut(VarInt varChild) => KeyboardShortcut(varChild);
Пример #9
0
 void IAccessible.accLocation(out int pxLeft, out int pyTop, out int pcxWidth, out int pcyHeight, VarInt varChild)
 {
     if (!_B(varChild, out var b))
     {
         _StdAO.accLocation(out pxLeft, out pyTop, out pcxWidth, out pcyHeight, varChild);
     }
     else
     {
         var r = _ItemRect(b, inScreen: true);
         pxLeft = r.left; pyTop = r.top; pcxWidth = r.Width; pcyHeight = r.Height;
     }
 }
Пример #10
0
 string IAccessible.get_accDefaultAction(VarInt varChild)
 => !_B(varChild, out var b) || b.IsDisabled ? null : b.IsSubmenu ? "Open" : "Execute";
Пример #11
0
 void IAccessible.accSelect(ESelect flagsSelect, VarInt varChild) => throw new NotImplementedException();
Пример #12
0
 void IAccessible.accDoDefaultAction(VarInt varChild) => DoDefaultAction(varChild);
Пример #13
0
 string IAccessible.get_accDefaultAction(VarInt varChild) => DefaultAction(varChild);
Пример #14
0
 string IAccessible.get_accValue(VarInt varChild) => null;
Пример #15
0
        VarInt IAccessible.get_accRole(VarInt varChild)
        {
            var r = !_B(varChild, out var b) ? ERole.MENUPOPUP : (b.IsSeparator ? ERole.SEPARATOR : ERole.MENUITEM);

            return((int)r - 1);
        }
Пример #16
0
 string IAccessible.get_accName(VarInt varChild) => Name(varChild);
Пример #17
0
 int IAccessible.get_accChild(VarInt varChild, out object ppdispChild)
 {
     ppdispChild = null; return(1);
 }
Пример #18
0
 //[PreserveSig]
 int IAccessible.get_accChild(VarInt varChild, [MarshalAs(UnmanagedType.IDispatch)] out object ppdispChild)
 {
     ppdispChild = null;
     return(1);
     //currently this class supports only simple element children.
 }
Пример #19
0
 void IAccessible.put_accValue(VarInt varChild, string szValue)
 {
 }
Пример #20
0
 void IAccessible.put_accName(VarInt varChild, string szName)
 {
 }
Пример #21
0
 void IAccessible.put_accValue(VarInt varChild, string szValue) => throw new NotImplementedException();
Пример #22
0
 string IAccessible.get_accHelp(VarInt varChild) => Help(varChild);
Пример #23
0
 string IAccessible.get_accDescription(VarInt varChild) => Description(varChild);
Пример #24
0
        void IAccessible.accLocation(out int pxLeft, out int pyTop, out int pcxWidth, out int pcyHeight, VarInt varChild)
        {
            int child = varChild;

            if (child == -1)
            {
                _StdAO.accLocation(out pxLeft, out pyTop, out pcxWidth, out pcyHeight, varChild);
            }
            else
            {
                var r = ChildRect(child);
                _w.MapClientToScreen(ref r);
                pxLeft = r.left; pyTop = r.top; pcxWidth = r.Width; pcyHeight = r.Height;
            }
        }
Пример #25
0
 string IAccessible.get_accName(VarInt varChild)
 => !_B(varChild, out var b) ? _name : (b.rawText ? b.Text : StringUtil.RemoveUnderlineChar(b.Text));
Пример #26
0
 VarInt IAccessible.get_accRole(VarInt varChild) => (int)Role(varChild) - 1;
Пример #27
0
 string IAccessible.get_accDescription(VarInt varChild) => _B(varChild, out _) ? null : "Popup menu";
Пример #28
0
 string IAccessible.get_accHelp(VarInt varChild) => _B(varChild, out var b) ? _GetFullTooltip(b) : null;
Пример #29
0
 int IAccessible.get_accHelpTopic(out string pszHelpFile, VarInt varChild) => throw new NotImplementedException();
Пример #30
0
 VarInt IAccessible.get_accState(VarInt varChild) => (int)State(varChild) - 1;