Skip to content

Instantly share code, notes, and snippets.

@LeifAndersen
Created December 28, 2016 17:55
Show Gist options
  • Select an option

  • Save LeifAndersen/6f8c45c93affbfe45a91c21372fca374 to your computer and use it in GitHub Desktop.

Select an option

Save LeifAndersen/6f8c45c93affbfe45a91c21372fca374 to your computer and use it in GitHub Desktop.
#lang racket/gui
(require video/private/editor
data/queue)
(define q (make-queue))
(define vid-snip%
(class editor-snip%
(init-field editor)
(super-new [editor editor])
(inherit set-flags get-flags)
(set-flags (cons 'handles-events (get-flags)))
(define/override (draw dc x y l t r b dx dy dc?)
(enqueue! q "Drawing...")
(super draw dc x y l t r b dx dy dc?))
(define/override (on-event dc x y editorx editory e)
(enqueue! q "Event")
(super on-event dc x y editorx editory e))
(define/override (copy)
(enqueue! q "Copying")
(new vid-snip% [editor editor]))
(define/override (get-extent dc x y
[w #f]
[h #f]
[descent #f]
[space #f]
[lspace #f]
[rspace #f])
(enqueue! q "Getting Extent")
(super get-extent dc x y w h descent space lspace rspace))
(define/override (get-admin)
(enqueue! q "Getting Admin")
(super get-admin))
(define/override (set-admin admin)
(enqueue! q "Setting Admin")
(super set-admin admin))))
(define vid (new video-editor%))
(define sn (new vid-snip% [editor vid]))
(thread
(λ ()
(let loop ()
(if (queue-empty? q)
(sleep 1)
(displayln (dequeue! q)))
(loop))))
sn
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment