From 654a1c89bbc31f9fb000746412a846bd6ad1c25b Mon Sep 17 00:00:00 2001 From: Robby Findler Date: Sun, 17 Nov 2013 22:06:32 -0600 Subject: [PATCH] add a special splash screen for Ada Lovelace's bday (Dec 10) --- .../tests/drracket/easter-egg.rkt | 1 + .../drracket/drracket/private/ada.png | Bin 0 -> 51491 bytes .../drracket/drracket/private/ada.rkt | 166 ++++++++++++++++++ .../drracket/private/drracket-normal.rkt | 13 +- 4 files changed, 178 insertions(+), 2 deletions(-) create mode 100644 pkgs/drracket-pkgs/drracket/drracket/private/ada.png create mode 100644 pkgs/drracket-pkgs/drracket/drracket/private/ada.rkt diff --git a/pkgs/drracket-pkgs/drracket-test/tests/drracket/easter-egg.rkt b/pkgs/drracket-pkgs/drracket-test/tests/drracket/easter-egg.rkt index a947656b76..ec647e4006 100644 --- a/pkgs/drracket-pkgs/drracket-test/tests/drracket/easter-egg.rkt +++ b/pkgs/drracket-pkgs/drracket-test/tests/drracket/easter-egg.rkt @@ -12,6 +12,7 @@ (start-up-on-day 10 29 "Matthias's birthday") (start-up-on-day 10 31 "Halloween") (start-up-on-day 11 1 "Matthew's birthday") + (start-up-on-day 12 10 "Ada Lovelace's birthday") (start-up-on-day 12 25 "Christmas") (define now (current-seconds)) diff --git a/pkgs/drracket-pkgs/drracket/drracket/private/ada.png b/pkgs/drracket-pkgs/drracket/drracket/private/ada.png new file mode 100644 index 0000000000000000000000000000000000000000..d6c27628f894293b49316a69744e02d93ea62aba GIT binary patch literal 51491 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

XL0JxgX8xbZv#LYOE0RF1- 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 (bernoulli-number x))) + (tt ", ")))) + +(define (tt str) + (text str 'roman 24)) + +(define (number->pict num) + (cond + [(integer? num) (tt (integer->string num))] + [else + (define n (tt (integer->string (abs (numerator num))))) + (define d (tt (integer->string (denominator num)))) + (define line (frame (blank (max (pict-width d) (pict-width n)) 0))) + (define abs-frac (vc-append 2 n line d)) + (cond + [(negative? num) + (hc-append (tt "-") abs-frac)] + [else + abs-frac])])) + +(define (integer->string n) + (define s (format "~a" n)) + (cond + [(<= (string-length s) 3) s] + [else + (reverse-string + (regexp-replace* #rx"[0-9][0-9][0-9]" + (reverse-string s) + "\\0,"))])) +(define (reverse-string s) (list->string (reverse (string->list s)))) +(module+ test + (check-equal? (integer->string 0) "0") + (check-equal? (integer->string 1) "1") + (check-equal? (integer->string 100) "100") + (check-equal? (integer->string 1000) "1,000") + (check-equal? (integer->string 1234) "1,234") + (check-equal? (integer->string 1000000) "1,000,000")) + +#| + +Code for sliding a wide pict by + +|# + +;; 0 <= n <= 1 +(define (sliding-sequence n width pict) + (define bw (pict-width pict)) + (define starting-x (* (- bw width) n)) + (inset/clip pict + (- starting-x) + 0 + (+ (- bw) starting-x width) + 0)) + +#| + +Put things together into a function +that actually does drawing in a window. + +|# + +(define ada-bmp (and (file-exists? ada.png) + (read-bitmap ada.png))) +(define ada-w (if ada-bmp (send ada-bmp get-width) 300)) +(define ada-h (if ada-bmp (send ada-bmp get-height) 300)) +(define ada-size (+ 32 (max ada-w ada-h))) + +(define (draw-ada dc point-in-time cw ch [sequence-on-top? #f]) + (define p (sliding-sequence + point-in-time + cw + bernoulli-sequence-pict)) + (draw-pict p dc 0 0) + (when ada-bmp + (send dc draw-bitmap + ada-bmp + (- (/ cw 2) (/ ada-w 2)) + (- (/ ch 2) (/ ada-h 2))))) + +(define bernoulli-sequence-pict (make-bernoulli-sequence-pict 50)) +(define (draw-splash-ada dc current max width height) + (send dc erase) + (draw-ada dc (/ current max) width height) #t) + +(module+ main + + (define bmp (read-bitmap ada.png)) + (define point-in-time 0) + (define δ #e0.0002) + + (define (draw c dc) + (define-values (cw ch) (send c get-client-size)) + (draw-ada dc point-in-time cw ch)) + + (void (new timer% + [notify-callback + (λ () + (set! point-in-time (+ point-in-time δ)) + (send c refresh))] + [interval 50])) + + + + (define f (new frame% [label ""])) + (define c (new canvas% + [parent f] + [paint-callback draw] + [min-width ada-size] + [min-height ada-size])) + (send f show #t)) diff --git a/pkgs/drracket-pkgs/drracket/drracket/private/drracket-normal.rkt b/pkgs/drracket-pkgs/drracket/drracket/private/drracket-normal.rkt index e3d2d031b5..927d243b10 100644 --- a/pkgs/drracket-pkgs/drracket/drracket/private/drracket-normal.rkt +++ b/pkgs/drracket-pkgs/drracket/drracket/private/drracket-normal.rkt @@ -59,14 +59,17 @@ [(weekend-date? date) 'weekend] [else 'normal])) -(define-values (texas-independence-day? prince-kuhio-day? kamehameha-day? halloween?) +(define-values (texas-independence-day? + prince-kuhio-day? kamehameha-day? halloween? + ada-lovelace-bday?) (let* ([month (date-month startup-date)] [day (date-day startup-date)] [dow (date-week-day startup-date)]) (values (and (= 3 month) (= 2 day)) (and (= 3 month) (= 26 day)) (and (= 6 month) (= 11 day)) - (and (= 10 month) (= 31 day))))) + (and (= 10 month) (= 31 day)) + (and (= 12 month) (= 10 day))))) (define special-state #f) @@ -147,6 +150,12 @@ (vector (dynamic-require 'drracket/private/honu-logo 'draw-honu) size size))] + [ada-lovelace-bday? + (set-splash-progress-bar?! #f) + (let ([size (dynamic-require 'drracket/private/ada 'ada-size)]) + (vector (dynamic-require 'drracket/private/ada 'draw-splash-ada) + size + size))] [texas-independence-day? (collection-file-path texas-plt-bw.gif "icons")] [halloween?