Mousewheel scrolls ScrollPanel.
This commit is contained in:
@@ -43,10 +43,12 @@ namespace OpenRA
|
|||||||
[Flags]
|
[Flags]
|
||||||
public enum MouseButton
|
public enum MouseButton
|
||||||
{
|
{
|
||||||
None = (int)MouseButtons.None,
|
None,
|
||||||
Left = (int)MouseButtons.Left,
|
Left,
|
||||||
Right = (int)MouseButtons.Right,
|
Right,
|
||||||
Middle = (int)MouseButtons.Middle,
|
Middle,
|
||||||
|
WheelDown,
|
||||||
|
WheelUp
|
||||||
}
|
}
|
||||||
|
|
||||||
[Flags]
|
[Flags]
|
||||||
|
|||||||
@@ -110,12 +110,16 @@ namespace OpenRA.Widgets
|
|||||||
return EventBounds;
|
return EventBounds;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Scroll(int direction)
|
||||||
|
{
|
||||||
|
ListOffset += direction*ScrollVelocity;
|
||||||
|
ListOffset = Math.Min(0,Math.Max(RenderBounds.Height - ContentHeight, ListOffset));
|
||||||
|
}
|
||||||
|
|
||||||
public override void Tick ()
|
public override void Tick ()
|
||||||
{
|
{
|
||||||
if (UpPressed && ListOffset <= 0) ListOffset += ScrollVelocity;
|
if (UpPressed) Scroll(1);
|
||||||
if (DownPressed) ListOffset -= ScrollVelocity;
|
if (DownPressed) Scroll(-1);
|
||||||
|
|
||||||
ListOffset = Math.Min(0,Math.Max(RenderBounds.Height - ContentHeight, ListOffset));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override bool LoseFocus (MouseInput mi)
|
public override bool LoseFocus (MouseInput mi)
|
||||||
@@ -127,6 +131,18 @@ namespace OpenRA.Widgets
|
|||||||
int2 lastMouseLocation;
|
int2 lastMouseLocation;
|
||||||
public override bool HandleInputInner(MouseInput mi)
|
public override bool HandleInputInner(MouseInput mi)
|
||||||
{
|
{
|
||||||
|
if (mi.Button == MouseButton.WheelDown)
|
||||||
|
{
|
||||||
|
Scroll(-1);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (mi.Button == MouseButton.WheelUp)
|
||||||
|
{
|
||||||
|
Scroll(1);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
if (mi.Button != MouseButton.Left)
|
if (mi.Button != MouseButton.Left)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
|||||||
@@ -194,7 +194,7 @@ namespace OpenRA.Widgets
|
|||||||
return EventBounds.Contains(pos.ToPoint()) ? GetCursor(pos) : null;
|
return EventBounds.Contains(pos.ToPoint()) ? GetCursor(pos) : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual bool HandleInputInner(MouseInput mi) { return !ClickThrough; }
|
public virtual bool HandleInputInner(MouseInput mi) { return !ClickThrough && mi.Button == MouseButton.Left; }
|
||||||
|
|
||||||
public static bool HandleInput(MouseInput mi)
|
public static bool HandleInput(MouseInput mi)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -143,6 +143,8 @@ namespace OpenRA.Renderer.Cg
|
|||||||
return b == Sdl.SDL_BUTTON_LEFT ? MouseButton.Left
|
return b == Sdl.SDL_BUTTON_LEFT ? MouseButton.Left
|
||||||
: b == Sdl.SDL_BUTTON_RIGHT ? MouseButton.Right
|
: b == Sdl.SDL_BUTTON_RIGHT ? MouseButton.Right
|
||||||
: b == Sdl.SDL_BUTTON_MIDDLE ? MouseButton.Middle
|
: b == Sdl.SDL_BUTTON_MIDDLE ? MouseButton.Middle
|
||||||
|
: b == Sdl.SDL_BUTTON_WHEELDOWN ? MouseButton.WheelDown
|
||||||
|
: b == Sdl.SDL_BUTTON_WHEELUP ? MouseButton.WheelUp
|
||||||
: 0;
|
: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -139,6 +139,8 @@ namespace OpenRA.Renderer.Glsl
|
|||||||
return b == Sdl.SDL_BUTTON_LEFT ? MouseButton.Left
|
return b == Sdl.SDL_BUTTON_LEFT ? MouseButton.Left
|
||||||
: b == Sdl.SDL_BUTTON_RIGHT ? MouseButton.Right
|
: b == Sdl.SDL_BUTTON_RIGHT ? MouseButton.Right
|
||||||
: b == Sdl.SDL_BUTTON_MIDDLE ? MouseButton.Middle
|
: b == Sdl.SDL_BUTTON_MIDDLE ? MouseButton.Middle
|
||||||
|
: b == Sdl.SDL_BUTTON_WHEELDOWN ? MouseButton.WheelDown
|
||||||
|
: b == Sdl.SDL_BUTTON_WHEELUP ? MouseButton.WheelUp
|
||||||
: 0;
|
: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user