A game framework written with osu! in mind.
1// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
2// See the LICENCE file in the repository root for full licence text.
3
4using System.Collections.Generic;
5using osu.Framework.Input.States;
6using osuTK.Input;
7
8namespace osu.Framework.Input.StateChanges
9{
10 public class MouseButtonInput : ButtonInput<MouseButton>
11 {
12 public MouseButtonInput(IEnumerable<ButtonInputEntry<MouseButton>> entries)
13 : base(entries)
14 {
15 }
16
17 public MouseButtonInput(MouseButton button, bool isPressed)
18 : base(button, isPressed)
19 {
20 }
21
22 public MouseButtonInput(ButtonStates<MouseButton> current, ButtonStates<MouseButton> previous)
23 : base(current, previous)
24 {
25 }
26
27 protected override ButtonStates<MouseButton> GetButtonStates(InputState state) => state.Mouse.Buttons;
28
29 public override void Apply(InputState state, IInputStateChangeHandler handler)
30 {
31 state.Mouse.LastSource = this;
32 base.Apply(state, handler);
33 }
34 }
35}