racket/collects/ffi/examples/use-xosd.rkt
2010-04-27 16:50:15 -06:00

76 lines
2.0 KiB
Racket
Executable File

#! /usr/bin/env racket
#lang racket/base
(require "xosd.ss")
(define x (xosd-create))
;; (xost-set-bar-length x 12)
(xosd-set-pos x 'middle)
(xosd-set-align x 'center)
(xosd-set-shadow-offset x 7)
(xosd-set-outline-offset x 2)
(xosd-set-colour x "yellow")
(xosd-set-shadow-colour x "black")
(xosd-set-outline-colour x "blue")
(xosd-set-font x "-adobe-courier-bold-r-*-*-34-*-*-*-*-*-*-*")
(printf ">>> xosd=~s, lines=~s, colour=~s\n"
x (xosd-get-number-lines x) (xosd-get-colour x))
(xosd-display-string x "Xosd Test")
;; this doesn't work for some reason
;; (xosd-set-timeout x 1)
;; (xosd-wait-until-no-display x)
(sleep 2)
(xosd-set-timeout x 0)
(let loop ([n 10])
(unless (zero? n)
(xosd-show x)
(sleep .05)
(xosd-hide x)
(sleep .05)
(loop (sub1 n))))
(let ([f (lambda (disp)
(let loop ([n 100])
(when (> n 0) (disp x n) (sleep .1) (loop (- n 5)))))])
(xosd-set-bar-length x 10)
(f xosd-display-percentage)
(sleep 1)
(xosd-set-bar-length x 20)
(f xosd-display-slider)
(xosd-hide x)
(sleep 1)
(xosd-display-string x "FOO")
(f (lambda (x n)
(xosd-hide x) (xosd-set-vertical-offset x n) (xosd-show x)))
(f (lambda (x n)
(xosd-hide x) (xosd-set-vertical-offset x (- 100 n)) (xosd-show x)))
(f (lambda (x n)
(xosd-hide x) (xosd-set-vertical-offset x n) (xosd-show x)))
(f (lambda (x n)
(xosd-hide x) (xosd-set-vertical-offset x (- 100 n)) (xosd-show x))))
(xosd-hide x)
(sleep 1)
(set! x (xosd-create 4))
(xosd-set-pos x 'middle)
(xosd-set-align x 'center)
(xosd-set-font x "-adobe-courier-bold-r-*-*-25-*-*-*-*-*-*-*")
(xosd-set-shadow-offset x 7)
(xosd-set-outline-offset x 2)
(xosd-display-string x "This is the first line" 0)
(xosd-display-string x "and the second line" 1)
(xosd-display-string x "the third one" 2)
(xosd-display-string x "and finally the fourth line" 3)
(sleep 2) (xosd-scroll x 1)
(sleep 1) (xosd-scroll x 1)
(sleep 1) (xosd-scroll x 1)
(sleep 1) (xosd-scroll x 1)
(sleep 1)