home *** CD-ROM | disk | FTP | other *** search
- (in-package :oou)
- (oou-provide :double-click-dim)
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;; double-click-dim.Lisp
- ;;
- ;; Copyright ⌐ 1992 Northwestern University Institute for the Learning Sciences
- ;; All Rights Reserved
- ;;
- ;; author: Michael S. Engber
- ;;
- ;; Dialog item mixin for handling double-clicks
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
- (export '(double-click-dim dialog-item-double-click-action))
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
- (defclass double-click-dim ()
- ((dialog-item-double-click-action-funtion :initarg :dialog-item-double-click-action)))
-
- (defmethod dialog-item-double-click-action ((di double-click-dim))
- (when (slot-boundp di 'dialog-item-double-click-action-funtion)
- (funcall (slot-value di 'dialog-item-double-click-action-funtion) di)))
-
- (defmethod view-click-event-handler :around ((di double-click-dim) where)
- (declare (ignore where))
- (if (double-click-p)
- (dialog-item-double-click-action di)
- (call-next-method)))
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
- #|
-
- ;;; a modest example - adding button behavior to static text dialog items
-
- (defclass dcbut (button-dialog-item double-click-dim) ())
-
- (setf *test-w*
- (make-instance 'dialog
- :window-type :document
- :view-position :centered
- :view-size #@(200 100)
- :window-title "rect-button-dim demo"
- :close-box-p t
- :view-subviews
- (list (make-dialog-item 'dcbut
- #@(20 20)
- #@(160 18)
- "I'm static text + a mixin"
- #'(lambda (item) (declare (ignore item)) (ed-beep))
- :dialog-item-double-click-action
- #'(lambda (item) (declare (ignore item)) (eval-enqueue '(print "hi,ho")))
- ))))
-
- |#