home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 22 gnu / 22-gnu.zip / gwm18a.zip / data / deltabutton.gwm < prev    next >
Text File  |  1995-07-03  |  1KB  |  38 lines

  1. ;; a function to have a delta functionnality with gwm
  2.  
  3. ; how to use it: in your .profile, before any deco, do
  4. ; (load 'deltabutton)
  5. ; (: standard-behavior
  6. ;    (state-make
  7. ;       (on (buttonpress 1 alone) (if (deltabutton)
  8. ;                                     (progn (raise-window)(move-window))
  9. ;                                   (raise-window)))
  10. ;       standard-behavior                       
  11. ; ))
  12. ; (reparse-standard-behaviors)
  13.  
  14. (defaults-to deltabutton.delta 4)
  15.  
  16. (de abs (n)
  17.     (if (> n 0) n
  18.       (- n)))
  19.  
  20. (de deltabutton ()
  21.     (if (and (> (current-event-code) 0)    ; last event received
  22.          (< (current-event-modifier) 256)) ; is a buttonpress
  23.     (tag DELTABUTTON
  24.          (: e-m (# (current-event-code) '(0 1 2 4)))
  25.          (: e-x (current-event-x))
  26.          (: e-y (current-event-y))
  27.          (: m-p (current-mouse-position))
  28.          (while (= (/ (# 2 m-p) 256) e-m) ; the button is still pressed
  29.            (: dx (abs (- (# 0 m-p) e-x)))
  30.            (: dy (abs (- (# 1 m-p) e-y)))
  31.            (if (or (> dx deltabutton.delta)
  32.                (> dy deltabutton.delta))
  33.            (exit DELTABUTTON t))
  34.            (: m-p (current-mouse-position)))
  35.          ()))
  36.     )
  37.                                                             
  38.