diff options
author | David Thompson <dthompson2@worcester.edu> | 2014-06-28 18:46:16 -0400 |
---|---|---|
committer | David Thompson <dthompson2@worcester.edu> | 2014-06-28 18:46:16 -0400 |
commit | f47eb69a354188154731846dde8b384c2c2f39f6 (patch) | |
tree | 6aa1ccb9212836b7c941e771475eb995fa6df9f9 /2d/mouse.scm | |
parent | df0f2a5f3f09394f1953abbc7e33e9a98204680e (diff) |
Rename guile-2d to Sly!
Massive find/replace job.
Diffstat (limited to '2d/mouse.scm')
-rw-r--r-- | 2d/mouse.scm | 99 |
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))) |