40 lines
967 B
Racket
40 lines
967 B
Racket
#lang racket/base
|
|
|
|
(require racket/runtime-path)
|
|
|
|
(provide mk-tray
|
|
tray-close
|
|
tray-set-icon!
|
|
tray-set-menu!)
|
|
|
|
(define (unsupported who . _args)
|
|
(error who "not supported on this operating system: ~a" (system-type 'os*)))
|
|
|
|
(define mk-tray
|
|
(λ args
|
|
(apply unsupported 'mk-tray args)))
|
|
|
|
(define tray-close
|
|
(λ args
|
|
(apply unsupported 'tray-close args)))
|
|
|
|
(define tray-set-icon!
|
|
(λ args
|
|
(apply unsupported 'tray-set-icon! args)))
|
|
|
|
(define tray-set-menu!
|
|
(λ args
|
|
(apply unsupported 'tray-set-menu! args)))
|
|
|
|
(define-runtime-module-path windows-module "private/windows.rkt")
|
|
|
|
(when (eq? (system-type 'os*) 'windows)
|
|
(set! mk-tray
|
|
(dynamic-require windows-module 'mk-tray))
|
|
(set! tray-close
|
|
(dynamic-require windows-module 'tray-close))
|
|
(set! tray-set-icon!
|
|
(dynamic-require windows-module 'tray-set-icon!))
|
|
(set! tray-set-menu!
|
|
(dynamic-require windows-module 'tray-set-menu!)))
|