changeset 31:2a194d52fdb5

Implement MouseTurnedEventArgs.scrollScreen.
author Jordan Miner <jminer7@gmail.com>
date Sat, 25 Jul 2009 15:38:35 -0500
parents 545af935f201
children b48d3f2f570d
files dynamin/gui/events.d dynamin/gui/windows_window.d
diffstat 2 files changed, 8 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/dynamin/gui/events.d	Sat Jul 25 15:27:35 2009 -0500
+++ b/dynamin/gui/events.d	Sat Jul 25 15:38:35 2009 -0500
@@ -80,9 +80,11 @@
 ///
 class MouseTurnedEventArgs : StopEventArgs {
 	double _scrollAmount;
+	bool _scrollScreen;
 public:
-	this(double scrollAmount) {
+	this(double scrollAmount, bool scrollScreen) {
 		_scrollAmount = scrollAmount;
+		_scrollScreen = scrollScreen;
 	}
 	/**
 	 * The amount that a control should scroll in response to this event.
@@ -104,11 +106,11 @@
 	 * scrollScreen will return false.
 	 */
 	bool scrollScreen() {
-		return false;
+		return _scrollScreen;
 	}
 	string toString() {
 		return format("MouseTurnedEventArgs [scrollAmount={}, scrollScreen={}]",
-			_scrollAmount, scrollScreen);
+			_scrollAmount, _scrollScreen);
 	}
 }
 ///
--- a/dynamin/gui/windows_window.d	Sat Jul 25 15:27:35 2009 -0500
+++ b/dynamin/gui/windows_window.d	Sat Jul 25 15:38:35 2009 -0500
@@ -751,12 +751,13 @@
 	case WM_MOUSEWHEEL:
 		int scrollLines;
 		SystemParametersInfo(SPI_GETWHEELSCROLLLINES, 0, &scrollLines, 0);
-		if(scrollLines == 0xFFFFFFFF)
+		bool sScreen = (scrollLines == 0xFFFFFFFF);
+		if(sScreen)
 			scrollLines = 3;
 		int delta = -cast(short)HIWORD(wParam);
 		auto screenPt = Point(LOWORD(lParam), HIWORD(lParam));
 		auto des = c.getDescendantAtPoint(c.screenToContent(screenPt));
-		scope args = new MouseTurnedEventArgs(delta*scrollLines/120.0);
+		scope args = new MouseTurnedEventArgs(delta*scrollLines/120.0, sScreen);
 		des.mouseTurned(args);
 		return 0;
 	case WM_SYSKEYDOWN: