mirror of
https://github.com/rabbibotton/clog.git
synced 2025-12-06 02:30:42 -08:00
42 lines
1.5 KiB
Common Lisp
42 lines
1.5 KiB
Common Lisp
;; Checking the color of a CLOG object. #38
|
|
;; Kaeland Chatman
|
|
|
|
|
|
|
|
(defpackage #:web
|
|
(:use #:cl #:clog)
|
|
(:export start-web-app))
|
|
|
|
(in-package :web)
|
|
|
|
(defun my-on-click (obj)
|
|
(let ((obj-color (color (connection-data-item obj "changer"))))
|
|
;; Although the "obj-color" is a string, it is the
|
|
;; RGB value of the color property. I was expecting it to be the value
|
|
;; I set it to: "purple". Is there a way to
|
|
;; conditionally match the color in the if-statement below?
|
|
;; Or, is there a CLOG color util to help find the rgb value of a
|
|
;; CLOG object? This would help with matching in the if-statment.
|
|
|
|
;; DB: The answer is to use the rgb function. Although I would keep
|
|
;; state in lisp and not worry about the browser values.
|
|
|
|
(print obj-color)
|
|
;; (if (string-equal obj-color "purple")
|
|
(if (string-equal obj-color (rgb 128 0 128)) ; you will need to use the rgb for purple
|
|
(setf (color (connection-data-item obj "changer")) "black")
|
|
(setf (color (connection-data-item obj "changer")) "purple"))))
|
|
|
|
(defun on-new-window (body)
|
|
"On-new-window handler."
|
|
(setf (title (html-document body)) "A simple App")
|
|
(set-on-click (create-section body :h1 :content "Purple-o-nator")
|
|
#'my-on-click)
|
|
(setf (connection-data-item body "changer")
|
|
(create-section body :h1 :content "Am I purple, yet?!"))
|
|
(run body))
|
|
|
|
(defun start-web-app ()
|
|
"Start the App!"
|
|
(initialize #'on-new-window)
|
|
(open-browser))
|