summaryrefslogtreecommitdiff
path: root/2d/mouse.scm
diff options
context:
space:
mode:
authorDavid Thompson <dthompson2@worcester.edu>2014-06-28 18:46:16 -0400
committerDavid Thompson <dthompson2@worcester.edu>2014-06-28 18:46:16 -0400
commitf47eb69a354188154731846dde8b384c2c2f39f6 (patch)
tree6aa1ccb9212836b7c941e771475eb995fa6df9f9 /2d/mouse.scm
parentdf0f2a5f3f09394f1953abbc7e33e9a98204680e (diff)
Rename guile-2d to Sly!
Massive find/replace job.
Diffstat (limited to '2d/mouse.scm')
-rw-r--r--2d/mouse.scm99
1 files changed, 0 insertions, 99 deletions
diff --git a/2d/mouse.scm b/2d/mouse.scm
deleted file mode 100644
index 388b139..0000000
--- a/2d/mouse.scm
+++ /dev/null
@@ -1,99 +0,0 @@
-;;; guile-2d
-;;; Copyright (C) 2013, 2014 David Thompson <dthompson2@worcester.edu>
-;;;
-;;; This program is free software: you can redistribute it and/or
-;;; modify it under the terms of the GNU General Public License as
-;;; published by the Free Software Foundation, either version 3 of the
-;;; License, or (at your option) any later version.
-;;;
-;;; This program is distributed in the hope that it will be useful,
-;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-;;; General Public License for more details.
-;;;
-;;; You should have received a copy of the GNU General Public License
-;;; along with this program. If not, see
-;;; <http://www.gnu.org/licenses/>.
-
-;;; Commentary:
-;;
-;; Keyboard signals.
-;;
-;;; Code:
-
-(define-module (2d mouse)
- #:use-module ((sdl sdl) #:prefix SDL:)
- #:use-module (2d event)
- #:use-module (2d signal)
- #:use-module (2d vector)
- #:export (mouse-move-hook
- mouse-press-hook
- mouse-click-hook
- mouse-x
- mouse-y
- mouse-position
- mouse-last-down
- mouse-last-up
- mouse-down?))
-
-(define mouse-move-hook (make-hook 2))
-
-(register-event-handler
- 'mouse-motion
- (lambda (e)
- (run-hook mouse-move-hook
- (SDL:event:motion:x e)
- (SDL:event:motion:y e))))
-
-(define-signal mouse-position
- (hook->signal mouse-move-hook
- #(0 0)
- (lambda (x y)
- (vector x y))))
-
-(define-signal mouse-x (signal-map vx mouse-position))
-(define-signal mouse-y (signal-map vy mouse-position))
-
-(define mouse-press-hook (make-hook 3))
-
-(register-event-handler
- 'mouse-button-down
- (lambda (e)
- (run-hook mouse-press-hook
- (SDL:event:button:button e)
- (SDL:event:button:x e)
- (SDL:event:button:y e))))
-
-(define-signal mouse-last-down
- (hook->signal mouse-press-hook
- 'none
- (lambda (button x y)
- button)))
-
-(define mouse-click-hook (make-hook 3))
-
-(register-event-handler
- 'mouse-button-up
- (lambda (e)
- (run-hook mouse-click-hook
- (SDL:event:button:button e)
- (SDL:event:button:x e)
- (SDL:event:button:y e))))
-
-(define-signal mouse-last-up
- (hook->signal mouse-click-hook
- 'none
- (lambda (button x y)
- button)))
-
-(define (mouse-down? button)
- "Create a signal for the state of BUTTON. Value is #t when mouse
-button is pressed or #f otherwise."
- (define (same-button? other-button)
- (eq? button other-button))
-
- (define (button-filter value signal)
- (signal-constant value (signal-filter #f same-button? signal)))
-
- (signal-merge (button-filter #f mouse-last-up)
- (button-filter #t mouse-last-down)))