racket/collects/embedded-gui/private/locked-pasteboard.rkt
2010-04-27 16:50:15 -06:00

32 lines
1.2 KiB
Racket

;; This module provides a mixin that locks a pasteboard to all mouse interaction. This
;; means that there is no interactive dragging, no keyboard deletion, no handles drawn
;; at the corners of the snips for dragging, and anything else that must be added.
(module locked-pasteboard mzscheme
(require
mzlib/class
mred
mzlib/etc
mzlib/contract
framework)
(provide/contract
(locked-pasteboard-mixin mixin-contract))
;; mixin to remove interactive movement of snips from pasteboards
;; STATUS: Look into and make sure I don't need to deal with the following.
;; interactive-adjust-mouse, interactive-adjust-move, on-default-event
;; interactive-adjust-resize
(define locked-pasteboard-mixin
(mixin ((class->interface pasteboard%)) ()
(define/override (on-default-event event) (void))
;; The rest of the methods I believe to be redundant but
;; are overriden anyway for consistancy.
(define/augment-final (can-interactive-move? event) false)
(define/augment-final (can-interactive-resize? snip) false)
(define/override (get-dragable) false)
(define/override (get-selection-visible) false)
(super-new)))
)