diff --git a/collects/embedded-gui/private/on-show-pasteboard.ss b/collects/embedded-gui/private/on-show-pasteboard.ss new file mode 100644 index 00000000..19d074c3 --- /dev/null +++ b/collects/embedded-gui/private/on-show-pasteboard.ss @@ -0,0 +1,50 @@ +(module on-show-pasteboard mzscheme + + (require + (lib "class.ss") + (lib "etc.ss") + (lib "mred.ss" "mred")) + + (provide + on-show-pasteboard% + on-show-pasteboard-mixin) + + (define (on-show-pasteboard-mixin super%) + (class super% + (field [shown? false]) + #| + (define/override (refresh x y w h d-c) + (super refresh x y (max w 0) (max h 0) d-c) + (unless shown? + (set! shown? true) + (on-show))) + |# + #| + (define/override (get-extent w h) + (super get-extent w h) + (unless shown? + (set! shown? true) + (on-show))) + |# + (define/public (showing?) shown?) + (define/public (on-show) (void)) + (super-new))) + + (define on-show-pasteboard% + (on-show-pasteboard-mixin + pasteboard%)) + + #| + (define f (new frame% (label "f") (width 400) (height 400))) + (send f show true) + (define e (new pasteboard%)) + (define c (new editor-canvas% (editor e) (parent f))) + (define pb (new on-show-pasteboard%)) + (define es (new editor-snip% (editor pb))) + (not (send pb showing?)) + (send e insert es) + (send pb showing?) + (send e remove es) + (not (send pb showing?)) + |# + )