#lang racket (require web-racket racket/runtime-path ) (provide (all-from-out web-racket) rktplayer% ) (define-runtime-path rktplayer-start "rktplayer.html") (define-syntax ww-connect (syntax-rules (this) ((_ id method) (send (send this element id) connect 'click (λ (data) (send this method))) ) ) ) (define rktplayer% (class ww-webview% (inherit-field settings) (super-new [html-file rktplayer-start] ) (define/override (html-loaded) (super html-loaded) (ww-connect 'play play) (ww-connect 'prev previous-track) (ww-connect 'next next-track) ) (define/public (play) (displayln "Play button clicked") ) (define/public (next-track) (displayln "Next track") ) (define/public (previous-track) (displayln "Previous track") ) (begin (displayln "RktPlayer started") ) ) )