clog/tools/clog-builder-settings.lisp
2022-01-25 13:49:10 -05:00

1039 lines
32 KiB
Common Lisp

(in-package :clog-tools)
(defparameter *import-types*
(list '(:tag "label"
:control "label")
'(:tag "input"
:control "input")
'(:tag "form"
:control "form")
'(:tag "button"
:control "button")
'(:tag "a"
:control "link")
'(:tag "img"
:control "image")
'(:tag "meter"
:control "meter")
'(:tag "progress"
:control "progress")
'(:tag "ol"
:control "ol")
'(:tag "ul"
:control "ul")
'(:tag "li"
:control "li")
'(:tag "li"
:control "li")
'(:tag "table"
:control "table")
'(:tag "tr"
:control "tr")
'(:tag "td"
:control "td")
'(:tag "th"
:control "th")
'(:tag "thead"
:control "thead")
'(:tag "tbody"
:control "tbody")
'(:tag "tfoot"
:control "tfoot")
'(:tag "caption"
:control "tcaption")
'(:tag "colgroup"
:control "tcolgroup")
'(:tag "col"
:control "tcol")
'(:tag "span"
:control "span")
'(:tag "textarea"
:control "textarea")
'(:tag "style"
:control "style-block")
'(:tag "fieldset"
:control "fieldset")
'(:tag "legend"
:control "legend")
'(:tag "datalist"
:control "datalist")
'(:tag "select"
:control "dropdown")
'(:tag "option"
:control "option")
'(:tag "optgroup"
:control "optgroup")
'(:tag "dialog"
:control "dialog")
'(:tag "p"
:control "p")
'(:tag "br"
:control "br")
'(:tag "hr"
:control "hr")
'(:tag "dl"
:control "dl")
'(:tag "dt"
:control "dt")
'(:tag "dd"
:control "dd")
'(:tag "details"
:control "details")
'(:tag "summary"
:control "summary")
'(:tag "div"
:control "div")))
(defparameter *props-location*
`((:name "top"
:get ,(lambda (control)
(if (equal (positioning control) "static")
"n/a"
(top control)))
:set ,(lambda (control obj)
(setf (top control) (text obj))))
(:name "left"
:get ,(lambda (control)
(if (equal (positioning control) "static")
"n/a"
(left control)))
:set ,(lambda (control obj)
(setf (left control) (text obj))))
(:name "positioning"
:setup ,(lambda (control td1 td2)
(declare (ignore td1))
(let ((dd (create-select td2))
(v (string-downcase (positioning control))))
(add-select-options dd `(,v
"absolute"
"static"
"relative"
"sticky"
"fixed"))
(set-on-change dd (lambda (obj)
(declare (ignore obj))
(setf (positioning control) (value dd))
(set-geometry (get-placer control)
:top (position-top control)
:left (position-left control)
:width (client-width control)
:height (client-height control))
(on-populate-control-properties-win obj)))
nil)))))
(defparameter *props-with-height*
'((:name "width"
:setf clog:width)
(:name "height"
:setf clog:height)))
(defparameter *props-form-values*
`((:name "value"
:setf clog:value)
(:name "name on form"
:setf clog:name)
(:name "size"
:prop "size")
(:name "place holder"
:prop "placeholder")
(:name "default value"
:prop "defaultValue")
(:name "image url"
:prop "src")
(:name "image alt"
:prop "alt")
(:name "checked"
:get ,(lambda (control)
(property control "checked"))
:set ,(lambda (control obj)
(if (equalp (text obj) "true")
(setf (checkedp control) t)
(setf (checkedp control) nil))
(property control "required")))
(:name "read only"
:get ,(lambda (control)
(property control "readonly"))
:set ,(lambda (control obj)
(if (equalp (text obj) "true")
(setf (read-only-p control) t)
(setf (read-only-p control) nil))
(property control "readonly")))
(:name "disabled"
:get ,(lambda (control)
(property control "disabled"))
:set ,(lambda (control obj)
(if (equalp (text obj) "true")
(setf (disabledp control) t)
(setf (disabledp control) nil))
(property control "disabled")))
(:name "required"
:get ,(lambda (control)
(property control "required"))
:set ,(lambda (control obj)
(if (equalp (text obj) "true")
(setf (requiredp control) t)
(setf (requiredp control) nil))
(property control "required")))
(:name "pattern"
:prop "pattern")
(:name "minimum"
:prop "min")
(:name "maximum"
:prop "max")
(:name "element step"
:prop "step")
(:name "minimum length"
:prop "minlength")
(:name "maximum length"
:prop "maxlength")
(:name "multiple"
:get ,(lambda (control)
(property control "multiple"))
:set ,(lambda (control obj)
(if (equalp (text obj) "true")
(setf (multiplep control) t)
(setf (multiplep control) nil))
(property control "multiple")))
(:name "files accepted"
:prop "accept")))
(defparameter *props-colors*
`((:name "color"
:setup ,(lambda (control td1 td2)
(declare (ignore td1))
(let ((d1 (create-form-element td2 :text :value (color control)))
(dd (create-form-element td2 :color :value (color control))))
(make-data-list dd '("#ffffff"
"#ff0000"
"#00ff00"
"#0000ff"
"#ff00ff"))
(set-on-change dd (lambda (obj)
(declare (ignore obj))
(setf (value d1) (value dd))
(setf (color control) (value d1))))
(set-on-change d1 (lambda (obj)
(declare (ignore obj))
(setf (color control) (value d1)))))
nil))
(:name "opacity"
:style "opacity")
(:name "background color"
:setup ,(lambda (control td1 td2)
(declare (ignore td1))
(let ((d1 (create-form-element td2 :text :value (background-color control)))
(dd (create-form-element td2 :color :value (background-color control))))
(make-data-list dd '("#ffffff"
"#ff0000"
"#00ff00"
"#0000ff"
"#ff00ff"))
(set-on-change dd (lambda (obj)
(declare (ignore obj))
(setf (value d1) (value dd))
(setf (background-color control) (value d1))))
(set-on-change d1 (lambda (obj)
(declare (ignore obj))
(setf (background-color control) (value d1))))
nil)))
(:name "background attachment"
:style "background-attachment")
(:name "background image"
:style "background-image")
(:name "background position"
:style "background-position")
(:name "background origin"
:style "background-origin")
(:name "background repeat"
:style "background-repeat")
(:name "background clip"
:style "background-clip")
(:name "background size"
:style "background-size")
(:name "border"
:style "border")
(:name "border radius"
:style "border-radius")
(:name "box shadow"
:style "box-shadow")
(:name "text shadow"
:style "text-shadow")
(:name "outline"
:style "outline")
(:name "margin"
:style "margin")
(:name "padding"
:style "padding")
(:name "cursor"
:style "cursor")
(:name "font"
:style "font")
(:name "text alignment"
:style "text-align")
(:name "vertical align"
:style "vertical-align")))
(defparameter *props-contents*
`((:name "child contents"
:setup ,(lambda (control td1 td2)
(declare (ignore td1))
(let ((d1 (create-text-area td2 :value (inner-html control))))
(set-on-change d1 (lambda (obj)
(declare (ignore obj))
(setf (inner-html control) (value d1)))))
nil))))
(defparameter *props-text*
`((:name "text"
:get ,(lambda (control)
(clog::jquery-query control (format nil "contents().not(~A.children()).text()" (clog::jquery control))))
:set ,(lambda (control obj)
(clog::jquery-execute control (format nil "contents().not(~A.children()).get(0).nodeValue='~A'"
(clog::jquery control) (text obj)))))))
(defparameter *props-css*
`((:name "css classes"
:prop "className")))
(defparameter *props-base*
`((:name "hidden"
:get ,(lambda (control)
(property control "hidden"))
:set ,(lambda (control obj)
(if (equalp (text obj) "true")
(setf (hiddenp control) t)
(setf (hiddenp control) nil))
(property control "hidden")))
(:name "visible"
:get ,(lambda (control)
(style control "visibility"))
:set ,(lambda (control obj)
(if (or (equalp (text obj) "true")
(equalp (text obj) "visible"))
(setf (visiblep control) t)
(setf (visiblep control) nil))
(style control "visibility")))
(:name "editable"
:prop "contenteditable")
(:name "spell check"
:prop "spellcheck")
(:name "text direction"
:prop "test-direction")
(:name "language code"
:prop "lang")
(:name "overflow"
:style "overflow")
(:name "resizable"
:style "resize")
(:name "minimum width"
:style "min-width")
(:name "minimum height"
:style "min-height")
(:name "maximum width"
:style "max-width")
(:name "maximum height"
:style "max-height")))
(defparameter *props-nav*
'((:name "access key"
:prop "access key")
(:name "tool tip"
:prop "title")
(:name "tab index"
:prop "tabindex")
(:name "z index"
:style "z-index")))
(defparameter *props-base*
`(,@*props-location*
,@*props-with-height*
,@*props-css*
,@*props-colors*
,@*props-base*
,@*props-nav*))
(defparameter *props-element*
`(,@*props-location*
,@*props-with-height*
,@*props-text*
,@*props-css*
,@*props-colors*
,@*props-base*
,@*props-nav*))
(defparameter *props-form-element*
`(,@*props-location*
,@*props-with-height*
(:name "type"
:setup ,(lambda (control td1 td2)
(declare (ignore td1))
(let ((dd (create-select td2))
(v (string-downcase (attribute control "type"))))
(add-select-options dd `(,v
"button" "checkbox" "color" "date"
"datetime" "datetime-local" "email"
"image" "file" "hidden"
"month" "number" "password" "radio"
"range" "reset" "search" "submit"
"tel" "text" "time" "url" "week"))
(set-on-change dd (lambda (obj)
(declare (ignore obj))
(setf (attribute control "type") (value dd))
(set-geometry (get-placer control)
:top (position-top control)
:left (position-left control)
:width (client-width control)
:height (client-height control))))
nil)))
(:name "data list"
:get ,(lambda (control)
(clog::js-query control (format nil "$('#~A').attr('data-clog-name')"
(attribute control "list"))))
:set ,(lambda (control obj)
(setf (attribute control "list")
(clog::js-query control (format nil "$(\"[data-clog-name='~A']\").attr('id')"
(text obj))))))
,@*props-form-values*
,@*props-css*
,@*props-colors*
,@*props-base*
,@*props-nav*))
(defparameter *supported-controls*
(list
'(:name "select"
:description "Selection Tool"
:create nil
:create-type nil
:properties nil)
`(:name "label"
:description "Label"
:clog-type clog:clog-label
:create clog:create-label
:create-type :element
:create-content "Label"
:properties ((:name "for"
:get ,(lambda (control)
(let ((f (attribute control "for")))
(unless (equal "" f)
(clog::js-query control (format nil "$('#~A').attr('data-clog-name')"
f)))))
:set ,(lambda (control obj)
(setf (attribute control "for")
(clog::js-query control (format nil "$(\"[data-clog-name='~A']\").attr('id')"
(text obj))))))
,@*props-element*))
`(:name "button"
:description "Button"
:clog-type clog:clog-button
:create clog:create-button
:create-type :element
:create-content "Button"
:properties (,@*props-element*))
`(:name "div"
:description "Div"
:clog-type clog:clog-div
:create clog:create-div
:create-type :element
:create-content ""
:properties (,@*props-base*))
`(:name "textarea"
:description "Text Area"
:clog-type clog:clog-text-area
:create clog:create-text-area
:create-type :textarea
:create-value ""
:properties ((:name "rows"
:prop "rows")
(:name "columns"
:prop "columns")
(:name "word wrap"
:prop "wrap")
,@*props-form-element*))
`(:name "dropdown"
:description "Drop down select"
:clog-type clog:clog-select
:create clog:create-select
:create-type :base
:properties ((:name "multiple select"
:get ,(lambda (control)
(property control "multiple"))
:set ,(lambda (control obj)
(if (or (equalp (text obj) "true") (equalp (text obj) "multiple"))
(setf (attribute control "multiple") t)
(remove-attribute control "multiple"))
(property control "multiple")))
,@*props-form-element*))
`(:name "listbox"
:description "Listbox select"
:clog-type clog:clog-select
:create clog:create-select
:create-type :base
:setup ,(lambda (control content control-record)
(declare (ignore content) (ignore control-record))
(setf (size control) "4"))
:properties ((:name "multiple select"
:get ,(lambda (control)
(property control "multiple"))
:set ,(lambda (control obj)
(if (or (equalp (text obj) "true") (equalp (text obj) "multiple"))
(setf (attribute control "multiple") t)
(remove-attribute control "multiple"))
(property control "multiple")))
,@*props-form-element*))
`(:name "option"
:description "Option Item"
:clog-type clog:clog-option
:create clog:create-option
:create-content "option item"
:create-type :element
:properties ((:name "value"
:prop "value")
(:name "selected"
:get ,(lambda (control)
(property control "selected"))
:set ,(lambda (control obj)
(if (or (equalp (text obj) "true") (equalp (text obj) "selected"))
(setf (attribute control "selected") t)
(remove-attribute control "selected"))
(property control "selected")))
(:name "disabled"
:get ,(lambda (control)
(property control "disabled"))
:set ,(lambda (control obj)
(if (or (equalp (text obj) "true") (equalp (text obj) "disabled"))
(setf (attribute control "disabled") t)
(remove-attribute control "disabled"))
(property control "disabled")))
,@*props-element*))
`(:name "optgroup"
:description "Option Group"
:clog-type clog:clog-optgroup
:create clog:create-optgroup
:create-content "option group"
:create-type :element
:properties ((:name "disabled"
:get ,(lambda (control)
(property control "disabled"))
:set ,(lambda (control obj)
(if (or (equalp (text obj) "true") (equalp (text obj) "disabled"))
(setf (attribute control "disabled") t)
(remove-attribute control "disabled"))
(property control "disabled")))
,@*props-element*))
`(:name "image"
:description "Image"
:clog-type clog:clog-img
:create clog:create-img
:create-type :base
:setup ,(lambda (control content control-record)
(declare (ignore content) (ignore control-record))
(setf (url-src control) "/img/clogicon.png")
(setf (alt-text control) "Add image url"))
:properties ((:name "image url"
:prop "src")
(:name "alternative text"
:prop "alt")
,@*props-base*))
`(:name "meter"
:description "Meter"
:clog-type clog:clog-meter
:create clog:create-meter
:create-type :base
:properties ((:name "value"
:prop "value")
(:name "high"
:prop "high")
(:name "low"
:prop "low")
(:name "maximum"
:prop "max")
(:name "minimum"
:prop "min")
(:name "optimum"
:prop "optimum")
,@*props-base*))
`(:name "progress"
:description "Progress Bar"
:clog-type clog:clog-progress-bar
:create clog:create-progress-bar
:create-type :base
:properties ((:name "value"
:prop "value")
(:name "maximum"
:prop "max")
,@*props-base*))
`(:name "form"
:description "Form"
:clog-type clog:clog-form
:create clog:create-form
:create-type :base
:properties ((:name "method"
:attr "method")
(:name "encoding"
:prop "encoding")
(:name "form element count"
:get ,(lambda (control) (form-element-count control)))))
`(:name "input"
:description "Form Input"
:clog-type clog:clog-form-element
:create clog:create-form-element
:create-type :form
:create-param :text
:create-value ""
:properties (,@*props-form-element*))
`(:name "fbutton"
:description "Form Button"
:clog-type clog:clog-form-element
:create clog:create-form-element
:create-type :form
:create-param :button
:create-value "Button"
:properties (,@*props-form-element*))
`(:name "reset"
:description "Form Reset"
:clog-type clog:clog-form-element
:create clog:create-form-element
:create-type :form
:create-param :reset
:create-value "Reset"
:properties (,@*props-form-element*))
`(:name "submit"
:description "Form Submit"
:clog-type clog:clog-form-element
:create clog:create-form-element
:create-type :form
:create-param :submit
:create-value "Submit"
:properties (,@*props-form-element*))
`(:name "checkbox"
:description "Form Checkbox"
:clog-type clog:clog-form-element
:create clog:create-form-element
:create-type :form
:create-param :checkbox
:create-value ""
:properties (,@*props-form-element*))
`(:name "radio"
:description "Form Radio Button"
:clog-type clog:clog-form-element
:create clog:create-form-element
:create-type :form
:create-param :radio
:create-value ""
:properties (,@*props-form-element*))
`(:name "color"
:description "Form Color Picker"
:clog-type clog:clog-form-element
:create clog:create-form-element
:create-type :form
:create-param :color
:create-value ""
:properties (,@*props-form-element*))
`(:name "date"
:description "Form Date Picker"
:clog-type clog:clog-form-element
:create clog:create-form-element
:create-type :form
:create-param :date
:create-value ""
:properties (,@*props-form-element*))
`(:name "datetime"
:description "Form Datetime Picker"
:clog-type clog:clog-form-element
:create clog:create-form-element
:create-type :form
:create-param :datetime
:create-value ""
:properties (,@*props-form-element*))
`(:name "datetime-local"
:description "Form Datetime Local Picker"
:clog-type clog:clog-form-element
:create clog:create-form-element
:create-type :form
:create-param :datetime-local
:create-value ""
:properties (,@*props-form-element*))
`(:name "email"
:description "Form Email Input"
:clog-type clog:clog-form-element
:create clog:create-form-element
:create-type :form
:create-param :email
:create-value ""
:properties (,@*props-form-element*))
`(:name "file"
:description "Form File Input"
:clog-type clog:clog-form-element
:create clog:create-form-element
:create-type :form
:create-param :file
:create-value ""
:properties (,@*props-form-element*))
`(:name "hidden"
:description "Form Hidden Value"
:clog-type clog:clog-form-element
:create clog:create-form-element
:create-type :form
:create-param :hidden
:create-value ""
:properties (,@*props-form-element*))
`(:name "fimage"
:description "Form Image Input"
:clog-type clog:clog-form-element
:create clog:create-form-element
:create-type :form
:create-param :image
:create-value ""
:properties (,@*props-form-element*))
`(:name "month"
:description "Form Month and Year Picker"
:clog-type clog:clog-form-element
:create clog:create-form-element
:create-type :form
:create-param :month
:create-value ""
:properties (,@*props-form-element*))
`(:name "number"
:description "Form Number Picker"
:clog-type clog:clog-form-element
:create clog:create-form-element
:create-type :form
:create-param :number
:create-value ""
:properties (,@*props-form-element*))
`(:name "password"
:description "Form Password Input"
:clog-type clog:clog-form-element
:create clog:create-form-element
:create-type :form
:create-param :password
:create-value ""
:properties (,@*props-form-element*))
`(:name "range"
:description "Form Range Picker"
:clog-type clog:clog-form-element
:create clog:create-form-element
:create-type :form
:create-param :range
:create-value ""
:properties (,@*props-form-element*))
`(:name "search"
:description "Form Search Input"
:clog-type clog:clog-form-element
:create clog:create-form-element
:create-type :form
:create-param :search
:create-value ""
:properties (,@*props-form-element*))
`(:name "tel"
:description "Form Tel Input"
:clog-type clog:clog-form-element
:create clog:create-form-element
:create-type :form
:create-param :tel
:create-value ""
:properties (,@*props-form-element*))
`(:name "time"
:description "Form Time Picker"
:clog-type clog:clog-form-element
:create clog:create-form-element
:create-type :form
:create-param :time
:create-value ""
:properties (,@*props-form-element*))
`(:name "url"
:description "Form URL Input"
:clog-type clog:clog-form-element
:create clog:create-form-element
:create-type :form
:create-param :url
:create-value ""
:properties (,@*props-form-element*))
`(:name "week"
:description "Form Week Input"
:clog-type clog:clog-form-element
:create clog:create-form-element
:create-type :form
:create-param :week
:create-value ""
:properties (,@*props-form-element*))
`(:name "fieldset"
:description "Fieldset"
:clog-type clog:clog-fieldset
:create clog:create-fieldset
:create-type :base
:properties (,@*props-base*))
`(:name "legend"
:description "Fieldset Legend"
:clog-type clog:clog-legend
:create clog:create-legend
:create-content "Legend here"
:create-type :element
:properties (,@*props-element*))
`(:name "datalist"
:description "Data list"
:clog-type clog:clog-data-list
:create clog:create-data-list
:create-type :base
:properties (,@*props-base*))
`(:name "ol"
:description "Ordered List"
:clog-type clog:clog-ordered-list
:create clog:create-ordered-list
:create-type :base
:properties ((:name "list kind"
:prop "list-style-type")
(:name "list location"
:prop "list-style-position")
,@*props-element*))
`(:name "ul"
:description "Unordered List"
:clog-type clog:clog-unordered-list
:create clog:create-unordered-list
:create-type :base
:properties ((:name "value"
:prop "value")
,@*props-element*))
`(:name "li"
:description "List Item"
:clog-type clog:clog-list-item
:create clog:create-list-item
:create-type :element
:create-content "List Item"
:properties (,@*props-element*))
`(:name "table"
:description "Table"
:clog-type clog:clog-table
:create clog:create-table
:create-type :base
:properties (,@*props-base*))
`(:name "tr"
:description "Table Row"
:clog-type clog:clog-table-row
:create clog:create-table-row
:create-type :base
:properties (,@*props-base*))
`(:name "td"
:description "Table Column"
:clog-type clog:clog-table-column
:create clog:create-table-column
:create-type :element
:create-content "Column"
:properties ((:name "column span"
:attr "colspan")
(:name "row span"
:attr "rowspan")
,@*props-element*))
`(:name "th"
:description "Table Heading"
:clog-type clog:clog-table-heading
:create clog:create-table-heading
:create-type :element
:create-content "Heading"
:properties ((:name "column span"
:attr "colspan")
(:name "row span"
:attr "rowspan")
(:name "abbreviated version"
:attr "abbr")
(:name "scope"
:attr "rowspan")
,@*props-element*))
`(:name "tcolgroup"
:description "Table Column Group"
:clog-type clog:clog-table-column-group
:create clog:create-table-column-group
:create-type :base
:properties ((:name "span"
:attr "span")
,@*props-base*))
`(:name "tcol"
:description "Table Column Group Item"
:clog-type clog:clog-table-column-group-item
:create clog:create-table-column-group-item
:create-type :base
:create-content "Column Group Item"
:properties ((:name "span"
:attr "span")
,@*props-base*))
`(:name "thead"
:description "Table Head"
:clog-type clog:clog-table-head
:create clog:create-table-head
:create-type :base
:properties (,@*props-base*))
`(:name "tbody"
:description "Table Body"
:clog-type clog:clog-table-body
:create clog:create-table-body
:create-type :base
:properties (,@*props-base*))
`(:name "tfoot"
:description "Table Footer"
:clog-type clog:clog-table-footer
:create clog:create-table-footer
:create-type :base
:properties (,@*props-base*))
`(:name "tcaption"
:description "Table Caption"
:clog-type clog:clog-table-caption
:create clog:create-table-caption
:create-type :element
:create-content "Caption"
:properties ((:name "caption side"
:style "caption-side")
,@*props-element*))
`(:name "dl"
:description "Definition List"
:clog-type clog:clog-definition-list
:create clog:create-definition-list
:create-type :base
:properties (,@*props-base*))
`(:name "dt"
:description "Definition Term"
:clog-type clog:clog-term
:create clog:create-term
:create-content "Term"
:create-type :element
:properties (,@*props-element*))
`(:name "dd"
:description "Definition Description"
:clog-type clog:clog-description
:create clog:create-description
:create-content "Description"
:create-type :element
:properties (,@*props-element*))
`(:name "details"
:description "Details Block"
:clog-type clog:clog-details
:create clog:create-details
:create-type :element
:create-content "Details"
:properties ((:name "open"
:get ,(lambda (control)
(property control "open"))
:set ,(lambda (control obj)
(if (or (equalp (text obj) "true") (equalp (text obj) "open"))
(setf (attribute control "open") t)
(remove-attribute control "open"))
(property control "open")))
,@*props-element*))
`(:name "summary"
:description "Summary Block"
:clog-type clog:clog-summary
:create clog:create-summary
:create-content "Summary"
:create-type :element
:properties (,@*props-element*))
`(:name "audio"
:description "Audio Player"
:clog-type clog:clog-audio
:create clog:create-audio
:create-type :base
:properties ((:name "media url"
:prop "src")
(:name "volume"
:prop "volume")
(:name "controls"
:attr "controls")
(:name "preload"
:attr "preload")
(:name "autoplay"
:attr "autoplay")
(:name "muted"
:prop "muted")
(:name "loop"
:prop "loop")
,@*props-base*))
`(:name "video"
:description "Video Player"
:clog-type clog:clog-video
:create clog:create-video
:create-type :base
:properties ((:name "media url"
:prop "src")
(:name "volume"
:prop "volume")
(:name "controls"
:attr "controls")
(:name "preload"
:attr "preload")
(:name "autoplay"
:attr "autoplay")
(:name "muted"
:prop "muted")
(:name "loop"
:prop "loop")
,@*props-base*))
`(:name "canvas"
:description "Canvas"
:clog-type clog:clog-canvas
:create clog:create-canvas
:create-type :base
:properties (,@*props-base*))
`(:name "dialog"
:description "Dialog"
:clog-type clog:clog-dialog
:create clog:create-dialog
:create-type :element
:create-content ""
:properties ((:name "open"
:get ,(lambda (control)
(property control "open"))
:set ,(lambda (control obj)
(if (or (equalp (text obj) "true") (equalp (text obj) "open"))
(setf (attribute control "open") t)
(remove-attribute control "open"))
(property control "open")))
(:name "return value"
:prop "returnValue")
,@*props-element*))
`(:name "span"
:description "Span"
:clog-type clog:clog-span
:create clog:create-span
:create-type :element
:create-content "span"
:properties (,@*props-contents*
,@*props-element*))
`(:name "link"
:description "Link"
:clog-type clog:clog-a
:create clog:create-a
:create-type :element
:create-content "HTML Link"
:properties ((:name "href link"
:prop "href")
(:name "target"
:prop "target")
,@*props-element*))
`(:name "hr"
:description "Horizontal Rule"
:clog-type clog:clog-hr
:create clog:create-hr
:create-type :base
:properties (,@*props-base*))
`(:name "br"
:description "Line Break"
:clog-type clog:clog-br
:create clog:create-br
:create-type :base
:properties (,@*props-base*))
`(:name "p"
:description "Paragraph"
:clog-type clog:clog-p
:create clog:create-p
:create-content "Paragraph"
:create-type :element
:properties (,@*props-element*))
`(:name "style-block"
:description "Style Block"
:clog-type clog:clog-style-block
:create clog:create-style-block
:create-type :base
:properties ((:name "media"
:attr "media")
(:name "type"
:prop "type")
,@*props-contents*))))