本文整理汇总了C#中InputState.MouseReleased方法的典型用法代码示例。如果您正苦于以下问题:C# InputState.MouseReleased方法的具体用法?C# InputState.MouseReleased怎么用?C# InputState.MouseReleased使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类InputState
的用法示例。
在下文中一共展示了InputState.MouseReleased方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ProcessInputEvents
public void ProcessInputEvents(InputState input, bool mouseOver)
{
if (UIManager.dragForm == null) {
{
var swap = mouseOverLastFrame;
mouseOverLastFrame = mouseOverThisFrame;
mouseOverThisFrame = swap;
mouseOverThisFrame.Clear();
}
if (mouseOver) frame.Dive((ctl) => ctl.ScreenRect.Contains(input.MousePosition), (ctl) => ctl.InterceptMouse(input.MousePosition - ctl.ScreenRect.Position), (ctl) => mouseOverThisFrame.Add(ctl));
foreach (UIControl ctl in mouseOverLastFrame) if (!mouseOverThisFrame.Contains(ctl)) ctl.OnMouseLeave(input);
foreach (UIControl ctl in mouseOverThisFrame) if (!mouseOverLastFrame.Contains(ctl)) ctl.OnMouseEnter(input);
for (int i = 0; i < 3; i++) {
foreach (UIControl ctl in mouseOverThisFrame) {
if (input.MouseReleased(i)) ctl.OnMouseUp(input, i);
if (input.MousePressed(i)) {
ctl.OnMouseDown(input, i);
if (ctl.IsDraggable(i)) {
UIManager.dragForm = this;
dragControl = ctl;
dragStart = dragLast = input.MousePosition;
dragButton = i;
// todo: maybe abort rest of non-drag phase?
}
}
}
}
// set kb focus
if (mouseOver && input.MousePressed(0)) {
UIControl focus = mouseOverThisFrame.Count == 0 ? window : mouseOverThisFrame.Last();
while (focus != null) {
if (focus.CanTakeKeyboardFocus(input)) break;
focus = focus.Parent;
}
keyboardFocus = focus;
}
if (input.scrollWheel != 0) foreach (UIControl ctl in mouseOverThisFrame) {
if (ctl.OnScroll(input.scrollWheel)) break;
else if (ctl == mouseOverThisFrame.Last()) {
UIControl ctc = ctl.Parent;
while (ctc != null) {
if (ctc.OnScroll(input.scrollWheel)) break;
ctc = ctc.Parent;
}
}
}
}
else if (UIManager.dragForm == this) {
if (input.MouseReleased(dragButton)) {
dragControl.OnMouseUp(input, dragButton);
dragControl = null; // don't hold an old ref
UIManager.dragForm = null; // and of course
}
else if (input.MousePosition != dragLast) {
dragControl.OnDrag(input, dragButton, input.MousePosition - dragLast, input.MousePosition - dragStart);
dragLast = input.MousePosition;
}
}
if (Focused) { // keyboard
if (keyboardFocus == null) keyboardFocus = window;
UIControl focus = keyboardFocus;
while (focus != null && input.pressedQueue.Count > 0) {
focus.OnKeyDown(input);
focus = focus.Parent;
}
}
}