Esempio n. 1
0
        public void eventProc0(ref TEventUI newEvent)
        {
            // 设置鼠标形状
            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_SETCURSOR)
            {
                if (mManager.getPaintWindow().Cursor != Cursors.Arrow)
                {
                    mManager.getPaintWindow().Cursor = Cursors.Arrow;
                }
                return;
            }

            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_SETFOCUS)
            {
                mFocused = true;
                invalidate();
                return;
            }
            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_KILLFOCUS)
            {
                mFocused = true;
                invalidate();
                return;
            }

            if (mParent != null)
            {
                mParent.eventProc(ref newEvent);
            }
        }
Esempio n. 2
0
        public override void eventProc(ref TEventUI newEvent)
        {
            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_SETFOCUS)
            {
                mFocused = true;
                return;
            }
            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_KILLFOCUS)
            {
                mFocused = false;
                return;
            }
            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_MOUSEENTER)
            {
                return;
            }
            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_MOUSELEAVE)
            {
                return;
            }
            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_BUTTONDOWN)
            {
                return;
            }
            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_BUTTONUP)
            {
                return;
            }

            base.eventProc(ref newEvent);
        }
Esempio n. 3
0
        public override void eventProc(ref TEventUI newEvent)
        {
            if (!isMouseEnabled() && newEvent.mType > (int)EVENTTYPE_UI.UIEVENT__MOUSEBEGIN && newEvent.mType < (int)EVENTTYPE_UI.UIEVENT__MOUSEEND)
            {
                if (mOwner != null)
                {
                    mOwner.eventProc(ref newEvent);
                }
                else
                {
                    base.eventProc(ref newEvent);
                }
                return;
            }

            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_BUTTONDOWN)
            {
                if (isEnabled())
                {
                    mManager.sendNotify(this, "itemclick");
                    select();
                    invalidate();
                }
                return;
            }
            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_MOUSEMOVE)
            {
                return;
            }
            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_BUTTONUP)
            {
                return;
            }
            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_MOUSEENTER)
            {
                if (isEnabled())
                {
                    mButtonState |= (int)PaintFlags.UISTATE_HOT;
                    invalidate();
                }
                return;
            }
            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_MOUSELEAVE)
            {
                if ((mButtonState & (int)PaintFlags.UISTATE_HOT) != 0)
                {
                    mButtonState &= ~(int)PaintFlags.UISTATE_HOT;
                    invalidate();
                }
                return;
            }
            base.eventProc(ref newEvent);
        }
Esempio n. 4
0
        public override void eventProc(ref TEventUI newEvent)
        {
            // 设置鼠标形状
            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_SETCURSOR)
            {
                if (mManager.getPaintWindow().Cursor != Cursors.Arrow)
                {
                    mManager.getPaintWindow().Cursor = Cursors.Arrow;
                }
                return;
            }

            base.eventProc(ref newEvent);
        }
Esempio n. 5
0
        public override void eventProc(ref TEventUI newEvent)
        {
            if (!isMouseEnabled() && newEvent.mType > (int)EVENTTYPE_UI.UIEVENT__MOUSEBEGIN && newEvent.mType < (int)EVENTTYPE_UI.UIEVENT__MOUSEEND)
            {
                if (mOwner != null)
                {
                    mOwner.eventProc(ref newEvent);
                }
                else
                {
                    base.eventProc(ref newEvent);
                }
                return;
            }

            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_DBLCLICK)
            {
                if (isEnabled())
                {
                    activate();
                    invalidate();
                }
                return;
            }
            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_KEYDOWN && isEnabled())
            {
                if (newEvent.mKey == (char)Keys.Return)
                {
                    activate();
                    invalidate();
                    return;
                }
            }
            // An important twist: The list-item will send the event not to its immediate
            // parent but to the "attached" list. A list may actually embed several components
            // in its path to the item, but key-presses etc. needs to go to the actual list.
            if (mOwner != null)
            {
                mOwner.eventProc(ref newEvent);
            }
            else
            {
                base.eventProc(ref newEvent);
            }
        }
Esempio n. 6
0

        
Esempio n. 7
0
        public override void eventProc(ref TEventUI newEvent)
        {
            if (!isMouseEnabled() && newEvent.mType > (int)EventTypeUI.UIEVENT__MOUSEBEGIN && newEvent.mType < (int)EventTypeUI.UIEVENT__MOUSEEND)
            {
                if (mOwner != null)
                {
                    mOwner.eventProc(ref newEvent);
                }
                else
                {
                    base.eventProc(ref newEvent);
                }
                return;
            }

            if (newEvent.mType == (int)EventTypeUI.UIEVENT_KILLFOCUS)
            {
                return;
            }
            if (newEvent.mType == (int)EventTypeUI.UIEVENT_BUTTONDOWN || newEvent.mType == (int)EventTypeUI.UIEVENT_DBLCLICK)
            {
                if (!isEnabled())
                {
                    return;
                }

                if (mRectButton1.Contains(newEvent.mMousePos))
                {
                    mButton1State |= (int)PaintFlags.UISTATE_PUSHED;
                    setValue(mCurValue + 1);
                }
                else if (mRectButton2.Contains(newEvent.mMousePos))
                {
                    mButton2State |= (int)PaintFlags.UISTATE_PUSHED;
                    setValue(mCurValue - 1);
                }
                else if (isFocused() && mWindow == null)
                {
                    mWindow = new NumericUpDownWnd();
                    mWindow.init(this);
                }

                return;
            }
            if (newEvent.mType == (int)EventTypeUI.UIEVENT_BUTTONUP)
            {
                if ((mButton1State & (int)PaintFlags.UISTATE_PUSHED) != 0)
                {
                    mButton1State &= ~(int)PaintFlags.UISTATE_PUSHED;
                    invalidate();
                }
                else if ((mButton2State & (int)PaintFlags.UISTATE_PUSHED) != 0)
                {
                    mButton2State &= ~(int)PaintFlags.UISTATE_PUSHED;
                    invalidate();
                }
                return;
            }
            if (newEvent.mType == (int)EventTypeUI.UIEVENT_MOUSEENTER)
            {
                if (isEnabled())
                {
                    mButton1State |= (int)PaintFlags.UISTATE_HOT;
                    mButton2State |= (int)PaintFlags.UISTATE_HOT;
                    invalidate();
                }
                return;
            }
            if (newEvent.mType == (int)EventTypeUI.UIEVENT_MOUSELEAVE)
            {
                if (isEnabled())
                {
                    mButton1State &= ~(int)PaintFlags.UISTATE_HOT;
                    mButton2State &= ~(int)PaintFlags.UISTATE_HOT;
                    invalidate();
                }
                return;
            }
            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_SCROLLWHEEL)
            {
                ControlUI ctlUI = null;
                if (mWindow != null)
                {
                    closeEditWnd();
                    mManager.setFocus(ref ctlUI);
                }
            }

            if (mOwner != null)
            {
                mOwner.eventProc(ref newEvent);
            }
            else
            {
                base.eventProc(ref newEvent);
            }
        }
Esempio n. 8
0
        public override void eventProc(ref TEventUI newEvent)
        {
            if (!isMouseEnabled() && newEvent.mType > (int)EVENTTYPE_UI.UIEVENT__MOUSEBEGIN && newEvent.mType < (int)EVENTTYPE_UI.UIEVENT__MOUSEEND)
            {
                if (mOwner != null)
                {
                    mOwner.eventProc(ref newEvent);
                }
                else
                {
                    base.eventProc(ref newEvent);
                }
                return;
            }

            // When you hover over a link
            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_SETCURSOR)
            {
                for (int i = 0; i < mNumLinks; i++)
                {
                    if (mRectLinks[i].Contains(newEvent.mMousePos))
                    {
                        if (mManager.getPaintWindow().Cursor != Cursors.Hand)
                        {
                            mManager.getPaintWindow().Cursor = Cursors.Hand;
                        }

                        return;
                    }
                }
            }
            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_BUTTONUP && isEnabled())
            {
                for (int i = 0; i < mNumLinks; i++)
                {
                    if (mRectLinks[i].Contains(newEvent.mMousePos))
                    {
                        mManager.sendNotify(this, "link", i);
                        return;
                    }
                }
            }
            if (mNumLinks > 0 && newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_MOUSEMOVE)
            {
                int nHoverLink = -1;
                for (int i = 0; i < mNumLinks; i++)
                {
                    if (mRectLinks[i].Contains(newEvent.mMousePos))
                    {
                        nHoverLink = i;
                        break;
                    }
                }

                if (mHoverLink != nHoverLink)
                {
                    invalidate();
                    mHoverLink = nHoverLink;
                }
            }
            if (mNumLinks > 0 && newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_MOUSELEAVE)
            {
                if (mHoverLink != -1)
                {
                    invalidate();
                    mHoverLink = -1;
                }
            }

            base.eventProc(ref newEvent);
        }
Esempio n. 9
0
        public override void eventProc(ref TEventUI param)
        {
            if (!isMouseEnabled() && param.mType > (int)EVENTTYPE_UI.UIEVENT__MOUSEBEGIN && param.mType < (int)EVENTTYPE_UI.UIEVENT__MOUSEEND)
            {
                if (mParent != null)
                {
                    mParent.eventProc(ref param);
                }
                else
                {
                    base.eventProc(ref param);
                }
                return;
            }

            if (param.mType == (int)EVENTTYPE_UI.UIEVENT_SETFOCUS)
            {
                invalidate();
            }
            if (param.mType == (int)EVENTTYPE_UI.UIEVENT_KILLFOCUS)
            {
                invalidate();
            }
            if (param.mType == (int)EVENTTYPE_UI.UIEVENT_BUTTONDOWN || param.mType == (int)EVENTTYPE_UI.UIEVENT_DBLCLICK)
            {
                if (isEnabled() == false)
                {
                    return;
                }

                if (mRectItem.Contains(param.mMousePos))
                {
                    mButtonState |= (int)ControlFlag.UISTATE_PUSHED | (int)ControlFlag.UISTATE_CAPTURED;
                    invalidate();
                }
                return;
            }
            if (param.mType == (int)EVENTTYPE_UI.UIEVENT_MOUSEMOVE)
            {
                if (isEnabled() == false)
                {
                    return;
                }
                if ((mButtonState & (int)ControlFlag.UISTATE_CAPTURED) != 0)
                {
                    if (mRectItem.Contains(param.mMousePos))
                    {
                        mButtonState |= (int)ControlFlag.UISTATE_PUSHED;
                    }
                    else
                    {
                        mButtonState &= ~(int)ControlFlag.UISTATE_PUSHED;
                    }
                    invalidate();
                }
                return;
            }
            if (param.mType == (int)EVENTTYPE_UI.UIEVENT_BUTTONUP)
            {
                if (isEnabled() == false)
                {
                    return;
                }

                if ((mButtonState & (int)ControlFlag.UISTATE_CAPTURED) != 0)
                {
                    if (mRectItem.Contains(param.mMousePos))
                    {
                        activate();
                    }
                    mButtonState &= ~((int)ControlFlag.UISTATE_PUSHED | (int)ControlFlag.UISTATE_CAPTURED);
                    invalidate();
                }
                return;
            }
            if (param.mType == (int)EVENTTYPE_UI.UIEVENT_MOUSEENTER)
            {
                if (isEnabled())
                {
                    mButtonState |= (int)ControlFlag.UISTATE_HOT;
                    invalidate();
                }
                return;
            }
            if (param.mType == (int)EVENTTYPE_UI.UIEVENT_MOUSELEAVE)
            {
                if (isEnabled())
                {
                    mButtonState &= ~(int)ControlFlag.UISTATE_HOT;
                    invalidate();
                }
                return;
            }
            if (param.mType == (int)EVENTTYPE_UI.UIEVENT_SETCURSOR)
            {
                if (mManager.getPaintWindow().Cursor != Cursors.Hand)
                {
                    mManager.getPaintWindow().Cursor = Cursors.Hand;
                }
                return;
            }
            base.eventProc(ref param);
        }
Esempio n. 10
0
        public override void eventProc(ref TEventUI newEvent)
        {
            if (!isMouseEnabled() && newEvent.mType > (int)EVENTTYPE_UI.UIEVENT__MOUSEBEGIN && newEvent.mType < (int)EVENTTYPE_UI.UIEVENT__MOUSEEND)
            {
                if (mParent != null)
                {
                    mParent.eventProc(ref newEvent);
                }
                else
                {
                    base.eventProc(ref newEvent);
                }
                return;
            }

            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_SETCURSOR && isEnabled())
            {
                if (mManager.getPaintWindow().Cursor != Cursors.IBeam)
                {
                    mManager.getPaintWindow().Cursor = Cursors.IBeam;
                }
                return;
            }
            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_WINDOWSIZE)
            {
                ControlUI ctlUI = null;
                if (mWindow != null)
                {
                    mManager.setFocus(ref ctlUI);
                }
            }
            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_SCROLLWHEEL)
            {
                ControlUI ctlUI = null;
                if (mWindow != null)
                {
                    mManager.setFocus(ref ctlUI);
                }
            }
            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_SETFOCUS && isEnabled())
            {
                if (mWindow != null)
                {
                    return;
                }

                mWindow = new EditWnd();
                mWindow.init(this);
                invalidate();
            }
            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_KILLFOCUS && isEnabled())
            {
                invalidate();
            }
            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_BUTTONDOWN || newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_DBLCLICK)
            {
                if (isEnabled())
                {
                    if (isFocused() && mWindow == null)
                    {
                        mWindow = new EditWnd();
                        mWindow.init(this);
                    }
                    else if (mWindow == null)
                    {
                        //POINT pt = event.ptMouse;
                        //pt.x -= m_rcItem.left + m_rcTextPadding.left;
                        //pt.y -= m_rcItem.top + m_rcTextPadding.top;
                        //::SendMessage(*m_pWindow, WM_LBUTTONDOWN, event.wParam, MAKELPARAM(pt.x, pt.y));
                    }
                }
                return;
            }
            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_MOUSEMOVE)
            {
                return;
            }
            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_BUTTONUP)
            {
                return;
            }
            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_MOUSEENTER)
            {
                if (isEnabled())
                {
                    mButtonState |= (int)ControlFlag.UISTATE_HOT;
                    invalidate();
                }
                return;
            }
            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_MOUSELEAVE)
            {
                if (isEnabled())
                {
                    mButtonState &= (int)ControlFlag.UISTATE_HOT;
                    invalidate();
                }
                return;
            }
            base.eventProc(ref newEvent);
        }
Esempio n. 11
0
        public override void eventProc(ref TEventUI newEvent)
        {
            if (!isMouseEnabled() && newEvent.mType > (int)EVENTTYPE_UI.UIEVENT__MOUSEBEGIN && newEvent.mType < (int)EVENTTYPE_UI.UIEVENT__MOUSEEND)
            {
                if (mParent != null)
                {
                    mParent.eventProc(ref newEvent);
                }
                else
                {
                    base.eventProc(ref newEvent);
                }
                return;
            }

            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_SETFOCUS)
            {
                mFocused = true;
                return;
            }
            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_KILLFOCUS)
            {
                mFocused = false;
                return;
            }

            switch (newEvent.mType)
            {
            case (int)EVENTTYPE_UI.UIEVENT_KEYDOWN:
                switch ((Keys)newEvent.mKey)
                {
                case Keys.Up:
                    selectItem(findSelectable(mCurSel - 1, false));
                    ensureVisible(mCurSel);
                    return;

                case Keys.Down:
                    selectItem(findSelectable(mCurSel + 1, true));
                    ensureVisible(mCurSel);
                    return;

                case Keys.Prior:
                    pageUp();
                    return;

                case Keys.Next:
                    pageDown();
                    return;

                case Keys.Home:
                    selectItem(findSelectable(0, false));
                    ensureVisible(mCurSel);
                    return;

                case Keys.End:
                    selectItem(findSelectable(getCount() - 1, true));
                    ensureVisible(mCurSel);
                    return;

                case Keys.Return:
                    if (mCurSel != -1)
                    {
                        getItemAt(mCurSel).activate();
                    }
                    return;
                }
                break;

            case (int)EVENTTYPE_UI.UIEVENT_SCROLLWHEEL:
            {
                switch ((ScrollBarCommands)LOWORD((int)newEvent.mWParam))
                {
                case ScrollBarCommands.SB_LINEUP:
                {
                    if (mScrollSelect)
                    {
                        selectItem(findSelectable(mCurSel - 1, false));
                        ensureVisible(mCurSel);
                    }
                    else
                    {
                        lineUp();
                    }
                    return;
                }

                case ScrollBarCommands.SB_LINEDOWN:
                {
                    if (mScrollSelect)
                    {
                        selectItem(findSelectable(mCurSel + 1, true));
                        ensureVisible(mCurSel);
                    }
                    else
                    {
                        lineDown();
                    }
                    return;
                }
                }
            }
            break;
            }

            eventProc0(ref newEvent);
        }
Esempio n. 12
0
        public override void eventProc(ref TEventUI newEvent)
        {
            if (!isMouseEnabled() && newEvent.mType > (int)EVENTTYPE_UI.UIEVENT__MOUSEBEGIN && newEvent.mType < (int)EVENTTYPE_UI.UIEVENT__MOUSEEND)
            {
                if (mOwner != null)
                {
                    mOwner.eventProc(ref newEvent);
                }
                else
                {
                    base.eventProc(ref newEvent);
                }

                return;
            }
            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_BUTTONDOWN)
            {
                if (isEnabled())
                {
                    mManager.sendNotify(this, "itemclick");
                    select();
                    invalidate();
                }
                return;
            }
            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_MOUSEMOVE)
            {
                return;
            }
            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_BUTTONUP)
            {
                if (mOwner == null)
                {
                    return;
                }
                TListInfoUI pInfo      = mOwner.getListInfo();
                Rectangle   rcExpander = new Rectangle(mRectItem.Left + mRectExpander.Left,
                                                       mRectItem.Top + mRectExpander.Top,
                                                       mRectItem.Left + mRectExpander.Right,
                                                       mRectItem.Top + mRectExpander.Bottom);
                if (pInfo.mExpandable && rcExpander.Contains(newEvent.mMousePos))
                {
                    expand(!mExpanded);
                }
                return;
            }
            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_KEYDOWN)
            {
                switch ((Keys)newEvent.mKey)
                {
                case Keys.Left:
                    expand(false);
                    return;

                case Keys.Right:
                    expand(true);
                    return;
                }
            }
            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_MOUSEENTER)
            {
                if ((mButtonState & (int)PaintFlags.UISTATE_HOT) == 0)
                {
                    mButtonState |= (int)PaintFlags.UISTATE_HOT;
                    invalidate();
                }
                return;
            }
            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_MOUSELEAVE)
            {
                if ((mButtonState & (int)PaintFlags.UISTATE_HOT) != 0)
                {
                    mButtonState &= ~(int)PaintFlags.UISTATE_HOT;
                    invalidate();
                }
                return;
            }
            base.eventProc(ref newEvent);
        }
Esempio n. 13
0
        public override void eventProc(ref TEventUI newEvent)
        {
            if (!isMouseEnabled() && newEvent.mType > (int)EVENTTYPE_UI.UIEVENT__MOUSEBEGIN && newEvent.mType < (int)EVENTTYPE_UI.UIEVENT__MOUSEEND)
            {
                if (mParent != null)
                {
                    mParent.eventProc(ref newEvent);
                }
                else
                {
                    base.eventProc(ref newEvent);
                }
                return;
            }

            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_SETCURSOR && isEnabled())
            {
                if (mManager.getPaintWindow().Cursor != Cursors.IBeam)
                {
                    mManager.getPaintWindow().Cursor = Cursors.IBeam;
                }
                return;
            }
            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_WINDOWSIZE)
            {
                ControlUI ctlUI = null;
                if (mWindow != null)
                {
                    mManager.setFocus(ref ctlUI);
                }
            }
            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_SCROLLWHEEL)
            {
                ControlUI ctlUI = null;
                if (mWindow != null)
                {
                    closeEditWnd();
                    mManager.setFocus(ref ctlUI);
                }
            }
            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_SETFOCUS && isEnabled())
            {
                if (mWindow != null)
                {
                    return;
                }

                mWindow = new EditWnd();
                mWindow.init(this);
                if (OnCharMessageEvent != null)
                {
                    mWindow.OnCharMessageEvent = OnCharMessageEvent;
                }
                invalidate();
            }
            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_KILLFOCUS && isEnabled())
            {
                invalidate();
            }
            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_BUTTONDOWN || newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_DBLCLICK)
            {
                if (isEnabled())
                {
                    if (isFocused() && mWindow == null)
                    {
                        mWindow = new EditWnd();
                        mWindow.init(this);
                        if (OnCharMessageEvent != null)
                        {
                            mWindow.OnCharMessageEvent = OnCharMessageEvent;
                        }
                    }
                }
                return;
            }
            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_MOUSEMOVE)
            {
                return;
            }
            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_BUTTONUP)
            {
                return;
            }
            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_MOUSEENTER)
            {
                if (isEnabled())
                {
                    mButtonState |= (int)ControlFlag.UISTATE_HOT;
                    invalidate();
                }
                return;
            }
            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_MOUSELEAVE)
            {
                if (isEnabled())
                {
                    mButtonState &= (int)ControlFlag.UISTATE_HOT;
                    invalidate();
                }
                return;
            }
            base.eventProc(ref newEvent);
        }
Esempio n. 14
0
        public override void eventProc(ref TEventUI newEvent)
        {
            if (!isMouseEnabled() && newEvent.mType > (int)EVENTTYPE_UI.UIEVENT__MOUSEBEGIN && newEvent.mType < (int)EVENTTYPE_UI.UIEVENT__MOUSEEND)
            {
                if (mParent != null)
                {
                    mParent.eventProc(ref newEvent);
                }
                else
                {
                    base.eventProc(ref newEvent);
                }
                return;
            }

            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_SETFOCUS)
            {
                invalidate();
            }
            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_KILLFOCUS)
            {
                invalidate();
            }
            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_BUTTONDOWN)
            {
                if (isEnabled())
                {
                    activate();
                    mButtonState |= (int)PaintFlags.UISTATE_PUSHED | (int)PaintFlags.UISTATE_CAPTURED;
                }
                return;
            }
            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_BUTTONUP)
            {
                if ((mButtonState & (int)PaintFlags.UISTATE_CAPTURED) != 0)
                {
                    mButtonState &= ~(int)PaintFlags.UISTATE_CAPTURED;
                    invalidate();
                }
                return;
            }
            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_MOUSEMOVE)
            {
                return;
            }
            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_KEYDOWN)
            {
                switch ((Keys)newEvent.mKey)
                {
                case Keys.F4:
                    activate();
                    return;

                case Keys.Up:
                    selectItem(findSelectable(mCurSel - 1, false));
                    return;

                case Keys.Down:
                    selectItem(findSelectable(mCurSel + 1, true));
                    return;

                case Keys.Prior:
                    selectItem(findSelectable(mCurSel - 1, false));
                    return;

                case Keys.Next:
                    selectItem(findSelectable(mCurSel + 1, true));
                    return;

                case Keys.Home:
                    selectItem(findSelectable(0, false));
                    return;

                case Keys.End:
                    selectItem(findSelectable(getCount() - 1, true));
                    return;
                }
            }
            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_SCROLLWHEEL)
            {
                bool bDownward = LOWORD((int)newEvent.mWParam) == (int)ScrollBarCommands.SB_LINEDOWN;
                selectItem(findSelectable(mCurSel + (bDownward ? 1 : -1), bDownward));
                return;
            }
            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_MOUSEENTER)
            {
                if (mRectItem.Contains(newEvent.mMousePos))
                {
                    if ((mButtonState & (int)PaintFlags.UISTATE_HOT) == 0)
                    {
                        mButtonState |= (int)PaintFlags.UISTATE_HOT;
                    }
                    invalidate();
                }
                return;
            }
            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_MOUSELEAVE)
            {
                if (!mRectItem.Contains(newEvent.mMousePos))
                {
                    if ((mButtonState & (int)PaintFlags.UISTATE_HOT) != 0)
                    {
                        mButtonState &= ~(int)PaintFlags.UISTATE_HOT;
                        invalidate();
                    }
                }
                return;
            }
            eventProc0(ref newEvent);
        }
Esempio n. 15
0
        public override void eventProc(ref TEventUI newEvent)
        {
            if (!isMouseEnabled() && newEvent.mType > (int)EventTypeUI.UIEVENT__MOUSEBEGIN && newEvent.mType < (int)EventTypeUI.UIEVENT__MOUSEEND)
            {
                if (mOwner != null)
                {
                    mOwner.eventProc(ref newEvent);
                }
                else
                {
                    base.eventProc(ref newEvent);
                }
                return;
            }

            if (newEvent.mType == (int)EventTypeUI.UIEVENT_SETFOCUS)
            {
                return;
            }
            if (newEvent.mType == (int)EventTypeUI.UIEVENT_KILLFOCUS)
            {
                return;
            }
            if (newEvent.mType == (int)EventTypeUI.UIEVENT_BUTTONDOWN || newEvent.mType == (int)EventTypeUI.UIEVENT_DBLCLICK)
            {
                if (!isEnabled())
                {
                    return;
                }

                mLastScrollOffset  = 0;
                mScrollRepeatDelay = 0;
                mManager.setTimer(this, DEFAULT_TIMERID, 50);

                if (mRectButton1.Contains(newEvent.mMousePos))
                {
                    mButton1State |= (int)PaintFlags.UISTATE_PUSHED;
                    if (!mHorizontal)
                    {
                        if (mOwner != null)
                        {
                            mOwner.lineUp();
                        }
                        else
                        {
                            setScrollPos(mScrollPos - mLineSize);
                        }
                    }
                    else
                    {
                        if (mOwner != null)
                        {
                            mOwner.lineLeft();
                        }
                        else
                        {
                            setScrollPos(mScrollPos - mLineSize);
                        }
                    }
                }
                else if (mRectButton2.Contains(newEvent.mMousePos))
                {
                    mButton2State |= (int)PaintFlags.UISTATE_PUSHED;
                    if (!mHorizontal)
                    {
                        if (mOwner != null)
                        {
                            mOwner.lineDown();
                        }
                        else
                        {
                            setScrollPos(mScrollPos + mLineSize);
                        }
                    }
                    else
                    {
                        if (mOwner != null)
                        {
                            mOwner.lineRight();
                        }
                        else
                        {
                            setScrollPos(mScrollPos + mLineSize);
                        }
                    }
                }
                else if (mRectThumb.Contains(newEvent.mMousePos))
                {
                    mThumbState   |= (int)PaintFlags.UISTATE_CAPTURED | (int)PaintFlags.UISTATE_PUSHED;
                    mLastMouse     = newEvent.mMousePos;
                    mLastScrollPos = mScrollPos;
                }
                else
                {
                    if (!mHorizontal)
                    {
                        // 垂直滚动条鼠标点击轨迹事件处理
                        if (newEvent.mMousePos.Y < mRectThumb.Top)
                        {
                            if (mOwner != null)
                            {
                                mOwner.pageUp();
                            }
                            else
                            {
                                setScrollPos(mScrollPos + mRectItem.Top - mRectItem.Bottom);
                            }
                        }
                        else if (newEvent.mMousePos.Y > mRectThumb.Bottom)
                        {
                            if (mOwner != null)
                            {
                                mOwner.pageDown();
                            }
                            else
                            {
                                setScrollPos(mScrollPos - mRectItem.Top + mRectItem.Bottom);
                            }
                        }
                    }
                    else
                    {
                        // 水平滚动条鼠标点击轨迹事件处理
                        if (newEvent.mMousePos.X < mRectThumb.Left)
                        {
                            if (mOwner != null)
                            {
                                mOwner.pageLeft();
                            }
                            else
                            {
                                setScrollPos(mScrollPos + mRectItem.Left - mRectItem.Right);
                            }
                        }
                        else if (newEvent.mMousePos.X > mRectThumb.Right)
                        {
                            if (mOwner != null)
                            {
                                mOwner.pageRight();
                            }
                            else
                            {
                                setScrollPos(mScrollPos - mRectItem.Left + mRectItem.Right);
                            }
                        }
                    }
                }
                return;
            }
            if (newEvent.mType == (int)EventTypeUI.UIEVENT_BUTTONUP)
            {
                mScrollRepeatDelay = 0;
                mLastScrollOffset  = 0;
                mManager.killTimer(this, DEFAULT_TIMERID);

                if ((mThumbState & (int)PaintFlags.UISTATE_CAPTURED) != 0)
                {
                    mThumbState &= ~((int)PaintFlags.UISTATE_CAPTURED | (int)PaintFlags.UISTATE_PUSHED);
                    invalidate();
                }
                else if ((mButton1State & (int)PaintFlags.UISTATE_PUSHED) != 0)
                {
                    mButton1State &= ~(int)PaintFlags.UISTATE_PUSHED;
                    invalidate();
                }
                else if ((mButton2State & (int)PaintFlags.UISTATE_PUSHED) != 0)
                {
                    mButton2State &= ~(int)PaintFlags.UISTATE_PUSHED;
                    invalidate();
                }
                return;
            }
            if (newEvent.mType == (int)EventTypeUI.UIEVENT_MOUSEMOVE)
            {
                if ((mThumbState & (int)PaintFlags.UISTATE_CAPTURED) != 0)
                {
                    if (!mHorizontal)
                    {
                        if ((mRectItem.Bottom - mRectItem.Top - mRectThumb.Bottom + mRectThumb.Top - 2 * mXYFixed.Width) != 0)
                        {
                            mLastScrollOffset = (newEvent.mMousePos.Y - mLastMouse.Y) * mRange / (mRectItem.Bottom - mRectItem.Top - mRectThumb.Bottom + mRectThumb.Top - 2 * mXYFixed.Width);
                        }
                    }
                    else
                    {
                        if ((mRectItem.Right - mRectItem.Left - mRectThumb.Right + mRectThumb.Left - 2 * mXYFixed.Height) != 0)
                        {
                            mLastScrollOffset = (newEvent.mMousePos.X - mLastMouse.X) * mRange / (mRectItem.Right - mRectItem.Left - mRectThumb.Right + mRectThumb.Left - 2 * mXYFixed.Height);
                        }
                    }
                }
                else
                {
                    if ((mThumbState & (int)PaintFlags.UISTATE_HOT) != 0)
                    {
                        if (!mRectThumb.Contains(newEvent.mMousePos))
                        {
                            mThumbState &= ~(int)PaintFlags.UISTATE_HOT;
                            invalidate();
                        }
                    }
                    else
                    {
                        if (!isEnabled())
                        {
                            return;
                        }
                        if (mRectThumb.Contains(newEvent.mMousePos))
                        {
                            mThumbState |= (int)PaintFlags.UISTATE_HOT;
                            invalidate();
                        }
                    }
                }
                return;
            }
            if (newEvent.mType == (int)EventTypeUI.UIEVENT_TIMER && (int)newEvent.mWParam == DEFAULT_TIMERID)
            {
                ++mScrollRepeatDelay;
                if ((mThumbState & (int)PaintFlags.UISTATE_CAPTURED) != 0)
                {
                    if (!mHorizontal)
                    {
                        if (mOwner != null)
                        {
                            mOwner.setScrollPos(new Size(mOwner.getScrollPos().Width, mLastScrollPos + mLastScrollOffset));
                        }
                        else
                        {
                            setScrollPos(mLastScrollPos + mLastScrollOffset);
                        }
                    }
                    else
                    {
                        if (mOwner != null)
                        {
                            mOwner.setScrollPos(new Size(mLastScrollPos + mLastScrollOffset, mOwner.getScrollPos().Height));
                        }
                        else
                        {
                            setScrollPos(mLastScrollPos + mLastScrollOffset);
                        }
                    }
                    invalidate();
                }
                else if ((mButton1State & (int)PaintFlags.UISTATE_PUSHED) != 0)
                {
                    if (mScrollRepeatDelay <= 5)
                    {
                        return;
                    }
                    if (!mHorizontal)
                    {
                        if (mOwner != null)
                        {
                            mOwner.lineUp();
                        }
                        else
                        {
                            setScrollPos(mScrollPos - mLineSize);
                        }
                    }
                    else
                    {
                        if (mOwner != null)
                        {
                            mOwner.lineLeft();
                        }
                        else
                        {
                            setScrollPos(mScrollPos - mLineSize);
                        }
                    }
                }
                else if ((mButton2State & (int)PaintFlags.UISTATE_PUSHED) != 0)
                {
                    if (mScrollRepeatDelay <= 5)
                    {
                        return;
                    }
                    if (!mHorizontal)
                    {
                        if (mOwner != null)
                        {
                            mOwner.lineDown();
                        }
                        else
                        {
                            setScrollPos(mScrollPos + mLineSize);
                        }
                    }
                    else
                    {
                        if (mOwner != null)
                        {
                            mOwner.lineRight();
                        }
                        else
                        {
                            setScrollPos(mScrollPos + mLineSize);
                        }
                    }
                }
                else
                {
                    if (mScrollRepeatDelay <= 5)
                    {
                        return;
                    }
                    Point pt;
                    pt = mManager.getPaintWindow().PointToClient(Control.MousePosition);
                    if (!mHorizontal)
                    {
                        if (pt.Y < mRectThumb.Top)
                        {
                            if (mOwner != null)
                            {
                                mOwner.pageUp();
                            }
                            else
                            {
                                setScrollPos(mScrollPos + mRectItem.Top - mRectItem.Bottom);
                            }
                        }
                        else if (pt.Y > mRectThumb.Bottom)
                        {
                            if (mOwner != null)
                            {
                                mOwner.pageDown();
                            }
                            else
                            {
                                setScrollPos(mScrollPos - mRectItem.Top + mRectItem.Bottom);
                            }
                        }
                    }
                    else
                    {
                        if (pt.X < mRectThumb.Left)
                        {
                            if (mOwner != null)
                            {
                                mOwner.pageLeft();
                            }
                            else
                            {
                                setScrollPos(mScrollPos + mRectItem.Left - mRectItem.Right);
                            }
                        }
                        else if (pt.X > mRectThumb.Right)
                        {
                            if (mOwner != null)
                            {
                                mOwner.pageRight();
                            }
                            else
                            {
                                setScrollPos(mScrollPos - mRectItem.Left + mRectItem.Right);
                            }
                        }
                    }
                }
                return;
            }
            if (newEvent.mType == (int)EventTypeUI.UIEVENT_MOUSEENTER)
            {
                if (isEnabled())
                {
                    mButton1State |= (int)PaintFlags.UISTATE_HOT;
                    mButton2State |= (int)PaintFlags.UISTATE_HOT;
                    if (mRectThumb.Contains(newEvent.mMousePos))
                    {
                        mThumbState |= (int)PaintFlags.UISTATE_HOT;
                    }
                    invalidate();
                }
                return;
            }
            if (newEvent.mType == (int)EventTypeUI.UIEVENT_MOUSELEAVE)
            {
                if (isEnabled())
                {
                    mButton1State &= ~(int)PaintFlags.UISTATE_HOT;
                    mButton2State &= ~(int)PaintFlags.UISTATE_HOT;
                    mThumbState   &= ~(int)PaintFlags.UISTATE_HOT;
                    invalidate();
                }
                return;
            }

            if (mOwner != null)
            {
                mOwner.eventProc(ref newEvent);
            }
            else
            {
                base.eventProc(ref newEvent);
            }
        }
Esempio n. 16
0
        public bool onMessageHandle(int uMsg, ref object wParam, ref object lParam, ref int lRes)
        {
            if (uMsg == (int)WindowMessage.WM_CREATE)
            {
                Form frm = this;
                mManager.init(ref frm);
                // 给下拉列表子控件树重新设置父容器以及资源管理器,在组合框窗口关闭后需要还原该子树控件的父容器以及资源管理器
                mVerticalLayout = new VerticalLayoutUI();
                mManager.useParentResource(mOwner.getManager());
                mVerticalLayout.setManager(mManager, null);
                string pDefaultAttributes = mOwner.getManager().getDefaultAttributeList("VerticalLayout");
                if (pDefaultAttributes != "")
                {
                    mVerticalLayout.applyAttributeList(pDefaultAttributes);
                }
                mVerticalLayout.setInset(new Rectangle(2, 2, 0, 0));
                mVerticalLayout.setBackColor(Color.FromArgb(0xFF, 0xFF, 0xFF, 0xFF));
                mVerticalLayout.setBorderColor(Color.FromArgb(0xFF, 0x85, 0xE4, 0xFF));
                mVerticalLayout.setBorderSize(2);
                mVerticalLayout.setAutoDestroy(false);
                mVerticalLayout.enableScrollBar();
                mVerticalLayout.applyAttributeList(mOwner.getDropBoxAttributeList());
                for (int i = 0; i < mOwner.getCount(); i++)
                {
                    mVerticalLayout.add((ControlUI)mOwner.getItemAt(i));
                }
                ControlUI rootNode = (ControlUI)mVerticalLayout;
                mManager.attachDialog(ref rootNode);

                this.ClientSize = new Size(mRectClient.Width, mRectClient.Height);

                return(true);
            }
            else if (uMsg == (int)WindowMessage.WM_SIZE)
            {
                this.ClientSize = new Size(mRectClient.Width, mRectClient.Height);

                return(true);
            }
            else if (uMsg == (int)WindowMessage.WM_ERASEBKGND)
            {
                lRes = 1;

                return(true);
            }

            else if (uMsg == (int)WindowMessage.WM_CLOSE)
            {
                mOwner.setManager(mOwner.getManager(), mOwner.getParent());
                mOwner.setPos(mOwner.getPos());
                mOwner.setFocus();
            }
            else if (uMsg == (int)WindowMessage.WM_LBUTTONUP)
            {
                Point pt = Control.MousePosition;
                pt = mManager.getPaintWindow().PointToClient(pt);
                ControlUI pControl = mManager.findControl(ref pt);
                if (pControl != null && pControl.getClass() != "ScrollbarUI")
                {
                    PaintManagerUI.PostMessage(this.Handle, (int)WindowMessage.WM_KILLFOCUS, 0, 0);
                }
            }

            else if (uMsg == (int)WindowMessage.WM_KEYDOWN)
            {
                IntPtr ptr = (IntPtr)wParam;
                int    c   = (int)ptr;
                char   cc  = (char)int.Parse(c.ToString());
                switch ((Keys)cc)
                {
                case Keys.Escape:
                    mOwner.selectItem(mOldSel);
                    ensureVisible(mOldSel);
                    PaintManagerUI.PostMessage(this.Handle, (int)WindowMessage.WM_KILLFOCUS, 0, 0);

                    break;

                case Keys.Return:
                    PaintManagerUI.PostMessage(this.Handle, (int)WindowMessage.WM_KILLFOCUS, 0, 0);
                    break;

                default:
                    TEventUI newEvent = new TEventUI();
                    newEvent.mType = (int)EVENTTYPE_UI.UIEVENT_KEYDOWN;
                    newEvent.mKey  = cc;
                    mOwner.eventProc(ref newEvent);
                    ensureVisible(mOwner.getCurSel());
                    return(true);
                }
            }
            else if (uMsg == (int)WindowMessage.WM_MOUSEWHEEL)
            {
                IntPtr ptr = (IntPtr)wParam;
                int    c   = (int)ptr;

                int      zDelta   = (int)(short)HIWORD(c);
                TEventUI newEvent = new TEventUI();
                newEvent.mType      = (int)EVENTTYPE_UI.UIEVENT_SCROLLWHEEL;
                newEvent.mWParam    = makeLong(zDelta < 0 ? (int)ScrollBarCommands.SB_LINEDOWN : (int)ScrollBarCommands.SB_LINEUP, 0);
                newEvent.mLParam    = lParam;
                newEvent.mTimestamp = PaintManagerUI.GetTickCount();
                mOwner.eventProc(ref newEvent);
                ensureVisible(mOwner.getCurSel());
                return(true);
            }
            else if (uMsg == (int)WindowMessage.WM_KILLFOCUS)
            {
                close();
            }

            if (mManager != null && mManager.messageHandler((uint)uMsg, ref wParam, ref lParam, ref lRes))
            {
                return(true);
            }

            return(false);
        }
Esempio n. 17
0

        
Esempio n. 18
0
        public override void eventProc(ref TEventUI newEvent)
        {
            if (!isMouseEnabled() && newEvent.mType > (int)EVENTTYPE_UI.UIEVENT__MOUSEBEGIN && newEvent.mType < (int)EVENTTYPE_UI.UIEVENT__MOUSEEND)
            {
                if (mParent != null)
                {
                    mParent.eventProc(ref newEvent);
                }
                else
                {
                    base.eventProc(ref newEvent);
                }
                return;
            }

            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_SETFOCUS)
            {
                invalidate();
            }
            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_KILLFOCUS)
            {
                invalidate();
            }
            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_BUTTONDOWN || newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_DBLCLICK)
            {
                if (!isEnabled())
                {
                    return;
                }
                Rectangle rcSeparator = getThumbRect();
                if (rcSeparator.Contains(newEvent.mMousePos))
                {
                    if (mDragable)
                    {
                        mButtonState |= (int)PaintFlags.UISTATE_CAPTURED;
                        mLastMouse    = newEvent.mMousePos;
                    }
                }
                else
                {
                    mButtonState |= (int)PaintFlags.UISTATE_PUSHED;
                    mManager.sendNotify(this, "headerclick");
                    invalidate();
                }
                return;
            }
            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_BUTTONUP)
            {
                if ((mButtonState & (int)PaintFlags.UISTATE_CAPTURED) != 0)
                {
                    mButtonState &= ~(int)PaintFlags.UISTATE_CAPTURED;
                    if (getParent() != null)
                    {
                        getParent().needParentUpdate();
                    }
                }
                else if ((mButtonState & (int)PaintFlags.UISTATE_PUSHED) != 0)
                {
                    mButtonState &= ~(int)PaintFlags.UISTATE_PUSHED;
                    invalidate();
                }
                return;
            }
            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_MOUSEMOVE)
            {
                if ((mButtonState & (int)PaintFlags.UISTATE_CAPTURED) != 0)
                {
                    Rectangle rc = mRectItem;
                    if (mSepWidth >= 0)
                    {
                        int newRight = rc.Right - (mLastMouse.X - newEvent.mMousePos.X);
                        rc.Width = newRight - rc.Left;
                    }
                    else
                    {
                        int newLeft = rc.Left - (mLastMouse.X - newEvent.mMousePos.X);
                        rc.X = newLeft;
                    }

                    if (rc.Right - rc.Left > getMinWidth())
                    {
                        mXYFixed.Width = rc.Right - rc.Left;
                        mLastMouse     = newEvent.mMousePos;
                        if (getParent() != null)
                        {
                            getParent().needParentUpdate();
                        }
                    }
                }
                return;
            }
            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_SETCURSOR)
            {
                Rectangle rcSeparator = getThumbRect();
                if (isEnabled() && mDragable && rcSeparator.Contains(newEvent.mMousePos))
                {
                    if (mManager.getPaintWindow().Cursor != Cursors.SizeWE)
                    {
                        mManager.getPaintWindow().Cursor = Cursors.SizeWE;
                    }
                    return;
                }
            }
            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_MOUSEENTER)
            {
                if (isEnabled())
                {
                    mButtonState |= (int)PaintFlags.UISTATE_HOT;
                    invalidate();
                }
                return;
            }
            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_MOUSELEAVE)
            {
                if (isEnabled())
                {
                    mButtonState &= ~(int)PaintFlags.UISTATE_HOT;
                    invalidate();
                }
                return;
            }
            base.eventProc(ref newEvent);
        }
Esempio n. 19
0

        
Esempio n. 20
0
        public override void eventProc(ref TEventUI newEvent)
        {
            if (mSepWidth != 0)
            {
                if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_BUTTONDOWN && isEnabled())
                {
                    Rectangle rcSeparator = getThumbRect(false);
                    if (rcSeparator.Contains(newEvent.mMousePos))
                    {
                        mButtonState |= (int)PaintFlags.UISTATE_CAPTURED;
                        mLastMouse    = newEvent.mMousePos;
                        mRectNewPos   = mRectItem;
                        if (!mImmMode && mManager != null)
                        {
                            ControlUI ctl = this;
                            mManager.addPostPaint(ref ctl);
                        }
                        return;
                    }
                }
                if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_BUTTONUP)
                {
                    if ((mButtonState & (int)PaintFlags.UISTATE_CAPTURED) != 0)
                    {
                        mButtonState &= ~(int)PaintFlags.UISTATE_CAPTURED;
                        mRectItem     = mRectNewPos;
                        if (!mImmMode && mManager != null)
                        {
                            mManager.removePostPaint(this);
                        }
                        needParentUpdate();
                        return;
                    }
                }
                if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_MOUSEMOVE)
                {
                    if ((mButtonState & (int)PaintFlags.UISTATE_CAPTURED) != 0)
                    {
                        int cx = newEvent.mMousePos.X - mLastMouse.X;
                        mLastMouse = newEvent.mMousePos;
                        Rectangle rc = mRectNewPos;
                        if (mSepWidth >= 0)
                        {
                            if (cx > 0 && newEvent.mMousePos.X < mRectNewPos.Right - mSepWidth)
                            {
                                return;
                            }
                            if (cx < 0 && newEvent.mMousePos.X > mRectNewPos.Right)
                            {
                                return;
                            }
                            rc.Width = rc.Right + cx - rc.Left;
                            if (rc.Right - rc.Left <= getMinWidth())
                            {
                                if (mRectNewPos.Right - mRectNewPos.Left <= getMinWidth())
                                {
                                    return;
                                }
                                rc.Width = getMinWidth();
                            }
                            if (rc.Right - rc.Left >= getMaxWidth())
                            {
                                if (mRectNewPos.Right - mRectNewPos.Left >= getMaxWidth())
                                {
                                    return;
                                }
                                rc.Width = getMaxWidth();
                            }
                        }
                        else
                        {
                            if (cx > 0 && newEvent.mMousePos.X < mRectNewPos.Left)
                            {
                                return;
                            }
                            if (cx < 0 && newEvent.mMousePos.X > mRectNewPos.Left - mSepWidth)
                            {
                                return;
                            }
                            rc.X += cx;
                            if (rc.Right - rc.Left <= getMinWidth())
                            {
                                if (mRectNewPos.Right - mRectNewPos.Left <= getMinWidth())
                                {
                                    return;
                                }
                                rc.X = rc.Right - getMinWidth();
                            }
                            if (rc.Right - rc.Left >= getMaxWidth())
                            {
                                if (mRectNewPos.Right - mRectNewPos.Left >= getMaxWidth())
                                {
                                    return;
                                }
                                rc.X = rc.Right - getMaxWidth();
                            }
                        }

                        Rectangle rcInvalidate = getThumbRect(true);
                        mRectNewPos    = rc;
                        mXYFixed.Width = mRectNewPos.Right - mRectNewPos.Left;

                        if (mImmMode)
                        {
                            mRectItem = mRectNewPos;
                            needParentUpdate();
                        }
                        else
                        {
                            rcInvalidate.Intersect(getThumbRect(true));
                            rcInvalidate.Intersect(getThumbRect(false));
                            if (mManager != null)
                            {
                                mManager.invalidate(ref rcInvalidate);
                            }
                        }
                        return;
                    }
                }
                if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_SETCURSOR)
                {
                    Rectangle rcSeparator = getThumbRect(false);
                    if (isEnabled() && rcSeparator.Contains(newEvent.mMousePos))
                    {
                        if (mManager.getPaintWindow().Cursor != Cursors.SizeWE)
                        {
                            mManager.getPaintWindow().Cursor = Cursors.SizeWE;
                        }
                        return;
                    }
                }
            }
            base.eventProc(ref newEvent);
        }
Esempio n. 21
0
        public override void eventProc(ref TEventUI newEvent)
        {
            if (isMouseEnabled() == false &&
                newEvent.mType > (int)EVENTTYPE_UI.UIEVENT__MOUSEBEGIN &&
                newEvent.mType < (int)EVENTTYPE_UI.UIEVENT__MOUSEEND)
            {
                if (mParent != null)
                {
                    mParent.eventProc(ref newEvent);
                }
                else
                {
                    base.eventProc(ref newEvent);
                }

                return;
            }

            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_SETFOCUS)
            {
                mFocused = true;

                return;
            }

            if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_KILLFOCUS)
            {
                mFocused = false;

                return;
            }

            if (mVerticalScrollbar != null &&
                mVerticalScrollbar.isVisible() &&
                mVerticalScrollbar.isEnabled())
            {
                if (newEvent.mType == (int)EVENTTYPE_UI.UIEVENT_KEYDOWN)
                {
                    switch ((Keys)newEvent.mKey)
                    {
                    case Keys.Down:
                    {
                        lineDown();

                        return;
                    }

                    case Keys.Up:
                    {
                        lineUp();

                        return;
                    }

                    case Keys.Next:
                    {
                        pageDown();

                        return;
                    }

                    case Keys.Prior:
                    {
                        pageUp();
                        return;
                    }

                    case Keys.Home:
                    {
                        homeUp();
                        return;
                    }

                    case Keys.End:
                    {
                        endDown();
                        return;
                    }
                    }
                }
                else if (newEvent.mKey == (int)EVENTTYPE_UI.UIEVENT_SCROLLWHEEL)
                {
                    switch ((ScrollBarCommands)LOWORD((int)newEvent.mWParam))
                    {
                    case ScrollBarCommands.SB_LINEUP:
                        lineUp();
                        return;

                    case ScrollBarCommands.SB_LINEDOWN:
                        lineDown();
                        return;
                    }
                }
            }
            else if (mHorizontalScrollbar != null && mHorizontalScrollbar.isVisible() && mHorizontalScrollbar.isEnabled())
            {
                if (newEvent.mType == (int)EventTypeUI.UIEVENT_KEYDOWN)
                {
                    switch ((Keys)newEvent.mKey)
                    {
                    case Keys.Down:
                        lineRight();
                        return;

                    case Keys.Up:
                        lineLeft();
                        return;

                    case Keys.Next:
                        pageRight();
                        return;

                    case Keys.Prior:
                        pageLeft();
                        return;

                    case Keys.Home:
                        homeLeft();
                        return;

                    case Keys.End:
                        endRight();
                        return;
                    }
                }
                else if (newEvent.mType == (int)EventTypeUI.UIEVENT_SCROLLWHEEL)
                {
                    switch ((ScrollBarCommands)LOWORD((int)newEvent.mWParam))
                    {
                    case ScrollBarCommands.SB_LINEUP:
                        lineLeft();
                        return;

                    case ScrollBarCommands.SB_LINEDOWN:
                        lineRight();
                        return;
                    }
                }
            }
            base.eventProc(ref newEvent);
        }