@Override public boolean processMouseRelease(MouseInput button, Vector2i pos) { if (clickedRegion != null) { Vector2i relPos = new Vector2i(pos); relPos.sub(clickedRegion.region.min()); clickedRegion.listener.onMouseRelease(new NUIMouseReleaseEvent(mouse, keyboard, relPos, button)); clickedRegion = null; return true; } return false; }
if (clickedRegion != null) { Vector2i relPos = new Vector2i(position); relPos.sub(clickedRegion.offset); clickedRegion.listener.onMouseDrag(new NUIMouseDragEvent(mouse, keyboard, relPos)); if (next.region.contains(position)) { Vector2i relPos = new Vector2i(position); relPos.sub(next.offset); boolean isTopMostElement = newMouseOverRegions.isEmpty(); next.listener.onMouseOver(new NUIMouseOverEvent(mouse, keyboard, relPos, isTopMostElement));
drawWithBoth(canvas, canvasSize.sub(verticalScrollbarWidth, horizontalScrollbarHeight), contentSize); } else { drawWithJustVertical(canvas, canvasSize.sub(verticalScrollbarWidth, 0), contentSize); drawWithJustHorizontal(canvas, canvasSize.sub(0, horizontalScrollbarHeight), contentSize); } else { drawWithNeither(canvas, canvasSize);
@Override public boolean processMouseWheel(int wheelTurns, Vector2i pos) { for (InteractionRegion next : mouseOverRegions) { if (next.region.contains(pos)) { Vector2i relPos = new Vector2i(pos); relPos.sub(next.region.min()); if (next.listener.onMouseWheel(new NUIMouseWheelEvent(mouse, keyboard, relPos, wheelTurns))) { clickedRegion = next; nuiManager.setFocus(next.element); return true; } } } return false; }
@Override public boolean processMouseClick(MouseInput button, Vector2i pos) { TabbingManager.focusSetThrough = false; TabbingManager.resetCurrentNum(); boolean possibleDoubleClick = lastClickPosition.gridDistance(pos) < MAX_DOUBLE_CLICK_DISTANCE && lastClickButton == button && time.getGameTimeInMs() - lastClickTime < DOUBLE_CLICK_TIME; lastClickPosition.set(pos); lastClickButton = button; lastClickTime = time.getGameTimeInMs(); for (InteractionRegion next : mouseOverRegions) { if (next.region.contains(pos)) { Vector2i relPos = new Vector2i(pos); relPos.sub(next.offset); if (possibleDoubleClick && nuiManager.getFocus() == next.element) { if (next.listener.onMouseDoubleClick(createDoubleClickEvent(button, relPos))) { clickedRegion = next; return true; } } else if (next.listener.onMouseClick(createClickEvent(button, relPos))) { clickedRegion = next; nuiManager.setFocus(next.element); return true; } } } return false; }