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); } }
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); }
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); }
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); }
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); } }
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); } }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); } }
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); }
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); }
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); }
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); }