(in-package #:wol) (defun luminance (r g b) (+ (* r 0.299) (* g 0.587) (* b 0.114))) (defun std-pick-color-html-fn () (flet ((color-td (r g b) (let ((color (format nil "#~2,'0x~2,'0x~2,'0x" r g b))) (html ((:td :bgcolor color :fformat (:onclick "f42('~a');" color))"   "))))) (let* ((colors nil)) (dotimes (r 6) (dotimes (g 6) (dotimes (b 6) (push (list (* r 51) (* g 51) (* b 51)(luminance r g b)) colors)))) (setf colors (sort colors #'> :key 'fourth)) (html (:head (:title "Choose a color") ((:link :rel "stylesheet" :type "text/css" :href "/pcol.css"))) (:body :br (:h1 "Choose a color") (:jscript "function f42(d){window.opener.change_color(d);window.close();};") ((:table :class "pcolt" :align "center") (loop for x below 18 for row = (loop repeat 12 collect (pop colors)) for bl = (round (* 255 (- 1 (/ x 17)))) do (html (:tr (color-td bl bl bl) (color-td bl 0 0) (color-td 0 bl 0) (color-td 0 0 bl) (color-td 0 bl bl) (color-td bl 0 bl) (color-td bl bl 0) (loop for (r g b l) in row do (color-td r g b)))))) :br ((:div :align "center") ((:a :class "call" :href "javascript:window.close();") "Close")))))))