public override void onButtonClick(InputEngine.MouseArgs e) { scrollbar.onButtonClick(e); if (!IsIn(e.curState.X, e.curState.Y)) { return; } bool b; int t; for (int i = 0; i < elements.Count; i++) { b = elements[i].StaySelected; t = elements[i].lastClick; elements[i].onButtonClick(e); if (((b && Main.Ticks - t < 30) || e.button == 1) && elements[i].StaySelected) { if (onElementSelected != null) { onElementSelected.Invoke(this, i, e.button == 0, e.button == 1); } } if (!b && elements[i].StaySelected) { if (onSelectedIndexChanged != null) { onSelectedIndexChanged.Invoke(this, i); } } } }
public override void onButtonClick(InputEngine.MouseArgs e) { if (scrollbar.IsIn(e.curState.X, e.curState.Y)) { scrollbar.onButtonClick(e); return; } #region DoubleClickCheck if (!e.Handled) { if (clickedButton == -1) { clickedButton = e.button; ticksSinceClicked = 0; clickedPos = new Vector2(e.curState.X, e.curState.Y); } else { if (clickedButton == e.button) { if (Math.Abs(clickedPos.X - e.curState.X) < 5 && Math.Abs(clickedPos.Y - e.curState.Y) < 5) { if (onDoubleClicked != null) { onDoubleClicked(this, new SelectedIndexArgs() { selectedIndex = selectedIndex }); } clickedButton = -1; ticksSinceClicked = 0; clickedPos = new Vector2(); } else { clickedButton = e.button; ticksSinceClicked = 0; clickedPos = new Vector2(e.curState.X, e.curState.Y); } } else { clickedButton = e.button; ticksSinceClicked = 0; clickedPos = new Vector2(e.curState.X, e.curState.Y); } } } #endregion }