diff --git a/clog-element-common.lisp b/clog-element-common.lisp index 17d8f7d..e6eec69 100644 --- a/clog-element-common.lisp +++ b/clog-element-common.lisp @@ -38,7 +38,8 @@ place-inside-bottom-of CLOG-OBJ. (auto-place t)) (create-child obj (format nil "~A" (if class - (format nil " class='~A'" (escape-string class)) + (format nil " class='~A'" + (escape-string class)) "") (escape-string target) (escape-string link) @@ -91,12 +92,17 @@ place-inside-bottom-of CLOG-OBJ. ;; create-br ;; ;;;;;;;;;;;;;;; -(defgeneric create-br (clog-obj &key auto-place) +(defgeneric create-br (clog-obj &key class auto-place) (:documentation "Create a new CLOG-BR as child of CLOG-OBJ that creates a line break and if :AUTO-PLACE (default t) place-inside-bottom-of CLOG-OBJ")) -(defmethod create-br ((obj clog-obj) &key (auto-place t)) - (create-child obj "
" :clog-type 'clog-br :auto-place auto-place)) +(defmethod create-br ((obj clog-obj) &key (class nil) (auto-place t)) + (create-child obj (format nil "" + (if class + (format nil " class='~A'" + (escape-string class)) + "")) + :clog-type 'clog-br :auto-place auto-place)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Implementation - clog-button @@ -118,7 +124,8 @@ CLOG-OBJ")) &key (content "") (class nil) (auto-place t)) (create-child obj (format nil "~A" (if class - (format nil " class='~A'" (escape-string class)) + (format nil " class='~A'" + (escape-string class)) "") (escape-string content)) :clog-type 'clog-button :auto-place auto-place)) @@ -156,7 +163,8 @@ CLOG-OBJ")) (default \"\") and if :AUTO-PLACE (default t) place-inside-bottom-of CLOG-OBJ")) -(defmethod create-div ((obj clog-obj) &key (content "") (class nil) (auto-place t)) +(defmethod create-div ((obj clog-obj) + &key (content "") (class nil) (auto-place t)) (create-child obj (format nil "~A" (if class (format nil " class='~A'" (escape-string class)) @@ -175,13 +183,18 @@ CLOG-OBJ")) ;; create-hr ;; ;;;;;;;;;;;;;;; -(defgeneric create-hr (clog-obj &key auto-place) +(defgeneric create-hr (clog-obj &key class auto-place) (:documentation "Create a new CLOG-HR as child of CLOG-OBJ that creates a horizontal rule (line) and if :AUTO-PLACE (default t) place-inside-bottom-of CLOG-OBJ")) -(defmethod create-hr ((obj clog-obj) &key (auto-place t)) - (create-child obj "
" :clog-type 'clog-hr :auto-place auto-place)) +(defmethod create-hr ((obj clog-obj) &key (class nil) (auto-place t)) + (create-child obj (format nil "" + (if class + (format nil " class='~A'" + (escape-string class)) + "")) + :clog-type 'clog-hr :auto-place auto-place)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Implementation - clog-img @@ -207,7 +220,8 @@ placing image to constrain image size.")) (auto-place t)) (create-child obj (format nil ")" (if class - (format nil " class='~A'" (escape-string class)) + (format nil " class='~A'" + (escape-string class)) "") (escape-string url-src) (escape-string alt-text)) @@ -259,6 +273,7 @@ placing image to constrain image size.")) ;;;;;;;;;;;;;;;;;; (defgeneric create-meter (clog-obj &key value high low maximum minimum optimum + class auto-place) (:documentation "Create a new CLOG-Meter as child of CLOG-OBJ with VALUE (default 0) HIGH (default 100) LOW (default 0) MAXIMUM (default 100) MINIMUM @@ -272,9 +287,15 @@ place-inside-bottom-of CLOG-OBJ.")) (maximum 100) (minimum 0) (optimum 50) + (class nil) (auto-place t)) - (create-child obj (format nil "" - value high low maximum minimum optimum) + (create-child obj (format nil + "" + value high low maximum minimum optimum + (if class + (format nil " class='~A'" + (escape-string class)) + "")) :clog-type 'clog-meter :auto-place auto-place)) ;;;;;;;;;;; @@ -390,16 +411,20 @@ place-inside-bottom-of CLOG-OBJ.")) ;; create-progress-bar ;; ;;;;;;;;;;;;;;;;;;;;;;;;; -(defgeneric create-progress-bar (clog-obj &key value maximum auto-place) - (:documentation "Create a new CLOG-Progress-Bar as child of CLOG-OBJ with VALUE -(default 0) MAXIMUM (default 100) and if :AUTO-PLACE (default t) +(defgeneric create-progress-bar (clog-obj &key value maximum class auto-place) + (:documentation "Create a new CLOG-Progress-Bar as child of CLOG-OBJ with +VALUE (default 0) MAXIMUM (default 100) and if :AUTO-PLACE (default t) place-inside-bottom-of CLOG-OBJ.")) -(defmethod create-progress-bar ((obj clog-obj) &key - (value 0) - (maximum 100) - (auto-place t)) - (create-child obj (format nil "" value maximum) +(defmethod create-progress-bar ((obj clog-obj) &key (value 0) + (maximum 100) + (class nil) + (auto-place t)) + (create-child obj (format nil "" value maximum + (if class + (format nil " class='~A'" + (escape-string class)) + "")) :clog-type 'clog-progress-bar :auto-place auto-place)) ;;;;;;;;;;; @@ -456,7 +481,8 @@ CLOG-OBJ")) &key (content "") (class nil) (auto-place t)) (create-child obj (format nil "~A

" (if class - (format nil " class='~A'" (escape-string class)) + (format nil " class='~A'" + (escape-string class)) "") (escape-string content)) :clog-type 'clog-p :auto-place auto-place)) @@ -482,7 +508,8 @@ CLOG-OBJ")) &key (content "") (class nil) (auto-place t)) (create-child obj (format nil "~A" (if class - (format nil " class='~A'" (escape-string class)) + (format nil " class='~A'" + (escape-string class)) "") (escape-string content)) :clog-type 'clog-span :auto-place auto-place)) @@ -514,7 +541,8 @@ CLOG-OBJ")) (create-child obj (format nil "<~A~A>~A" section (if class - (format nil " class='~A'" (escape-string class)) + (format nil " class='~A'" + (escape-string class)) "") (escape-string content) section) @@ -547,7 +575,8 @@ CLOG-OBJ")) (create-child obj (format nil "<~A~A>~A" phrase (if class - (format nil " class='~A'" (escape-string class)) + (format nil " class='~A'" + (escape-string class)) "") (escape-string content) phrase) @@ -565,12 +594,17 @@ CLOG-OBJ")) ;; create-ordered-list ;; ;;;;;;;;;;;;;;;;;;;;;;;;; -(defgeneric create-ordered-list (clog-obj &key auto-place) +(defgeneric create-ordered-list (clog-obj &key class auto-place) (:documentation "Create a new CLOG-Ordered-List as child of CLOG-OBJ and if :AUTO-PLACE (default t) place-inside-bottom-of CLOG-OBJ")) -(defmethod create-ordered-list ((obj clog-obj) &key (auto-place t)) - (create-child obj "
    " +(defmethod create-ordered-list ((obj clog-obj) + &key (class nil) (auto-place t)) + (create-child obj (format nil "" + (if class + (format nil " class='~A'" + (escape-string class)) + "")) :clog-type 'clog-ordered-list :auto-place auto-place)) ;;;;;;;;;;;;;;; @@ -628,12 +662,17 @@ is outside.")) ;; create-unordered-list ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;; -(defgeneric create-unordered-list (clog-obj &key auto-place) +(defgeneric create-unordered-list (clog-obj &key class auto-place) (:documentation "Create a new CLOG-Unordered-List as child of CLOG-OBJ and if :AUTO-PLACE (default t) place-inside-bottom-of CLOG-OBJ")) -(defmethod create-unordered-list ((obj clog-obj) &key (auto-place t)) - (create-child obj "
      " +(defmethod create-unordered-list ((obj clog-obj) &key (class nil) + (auto-place t)) + (create-child obj (format nil "" + (if class + (format nil " class='~A'" + (escape-string class)) + "")) :clog-type 'clog-unordered-list :auto-place auto-place)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -647,12 +686,19 @@ and if :AUTO-PLACE (default t) place-inside-bottom-of CLOG-OBJ")) ;; create-list-item ;; ;;;;;;;;;;;;;;;;;;;;;; -(defgeneric create-list-item (clog-obj &key content auto-place) +(defgeneric create-list-item (clog-obj &key content class auto-place) (:documentation "Create a new CLOG-List-Item as child of CLOG-OBJ and if :AUTO-PLACE (default t) place-inside-bottom-of CLOG-OBJ")) -(defmethod create-list-item ((obj clog-obj) &key (content "") (auto-place t)) - (create-child obj (format nil "
    • ~A
    • " (escape-string content)) +(defmethod create-list-item ((obj clog-obj) &key (content "") + (class nil) + (auto-place t)) + (create-child obj (format nil "~A" + (escape-string content) + (if class + (format nil " class='~A'" + (escape-string class)) + "")) :clog-type 'clog-list-item :auto-place auto-place)) ;;;;;;;;;;;;;;;; @@ -683,12 +729,17 @@ and if :AUTO-PLACE (default t) place-inside-bottom-of CLOG-OBJ")) ;; create-definition-list ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(defgeneric create-definition-list (clog-obj &key auto-place) +(defgeneric create-definition-list (clog-obj &key class auto-place) (:documentation "Create a new CLOG-Definition-List as child of CLOG-OBJ and if :AUTO-PLACE (default t) place-inside-bottom-of CLOG-OBJ")) -(defmethod create-definition-list ((obj clog-obj) &key (auto-place t)) - (create-child obj "
      " +(defmethod create-definition-list ((obj clog-obj) &key (class nil) + (auto-place t)) + (create-child obj (format nil "" + (if class + (format nil " class='~A'" + (escape-string class)) + "")) :clog-type 'clog-definition-list :auto-place auto-place)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -702,13 +753,20 @@ and if :AUTO-PLACE (default t) place-inside-bottom-of CLOG-OBJ")) ;; create-term ;; ;;;;;;;;;;;;;;;;; -(defgeneric create-term (clog-definition-list &key content auto-place) +(defgeneric create-term (clog-definition-list &key content class auto-place) (:documentation "Create a new CLOG-Term as child of CLOG-OBJ and if :AUTO-PLACE (default t) place-inside-bottom-of CLOG-OBJ")) (defmethod create-term ((obj clog-definition-list) - &key (content "") (auto-place t)) - (create-child obj (format nil "
      ~A
      " (escape-string content)) + &key (content "") + (class nil) + (auto-place t)) + (create-child obj (format nil "
      ~A
      " + (escape-string content) + (if class + (format nil " class='~A'" + (escape-string class)) + "")) :clog-type 'clog-term :auto-place auto-place)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -722,11 +780,282 @@ and if :AUTO-PLACE (default t) place-inside-bottom-of CLOG-OBJ")) ;; create-description ;; ;;;;;;;;;;;;;;;;;;;;;;;; -(defgeneric create-description (clog-definition-list &key content auto-place) +(defgeneric create-description (clog-definition-list + &key content class auto-place) (:documentation "Create a new CLOG-Description as child of CLOG-OBJ and if :AUTO-PLACE (default t) place-inside-bottom-of CLOG-OBJ")) (defmethod create-description ((obj clog-definition-list) - &key (content "") (auto-place t)) - (create-child obj (format nil "
      ~A
      " (escape-string content)) + &key (content "") + (class nil) + (auto-place t)) + (create-child obj (format nil "
      ~A
      " + (escape-string content) + (if class + (format nil " class='~A'" + (escape-string class)) + "")) :clog-type 'clog-description :auto-place auto-place)) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Implementation - clog-table +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +(defclass clog-table (clog-element)() + (:documentation "CLOG Table Objects.")) + +;;;;;;;;;;;;;;;;;; +;; create-table ;; +;;;;;;;;;;;;;;;;;; + +(defgeneric create-table (clog-obj &key class auto-place) + (:documentation "Create a new CLOG-Table as child of CLOG-OBJ +and if :AUTO-PLACE (default t) place-inside-bottom-of CLOG-OBJ")) + +(defmethod create-table ((obj clog-obj) + &key (class nil) (auto-place t)) + (create-child obj (format nil "" + (if class + (format nil " class='~A'" + (escape-string class)) + "")) + :clog-type 'clog-table :auto-place auto-place)) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Implementation - clog-table-row +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +(defclass clog-table-row (clog-element)() + (:documentation "CLOG Table-Row Objects.")) + +;;;;;;;;;;;;;;;;;;;;;; +;; create-table-row ;; +;;;;;;;;;;;;;;;;;;;;;; + +(defgeneric create-table-row (clog-obj &key class auto-place) + (:documentation "Create a new CLOG-Table-Row as child of CLOG-OBJ +and if :AUTO-PLACE (default t) place-inside-bottom-of CLOG-OBJ")) + +(defmethod create-table-row ((obj clog-obj) + &key (class nil) (auto-place t)) + (create-child obj (format nil "" + (if class + (format nil " class='~A'" + (escape-string class)) + "")) + :clog-type 'clog-table-row :auto-place auto-place)) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Implementation - clog-table-column +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +(defclass clog-table-column (clog-table-row)() + (:documentation "CLOG Table-Column Objects.")) + +;;;;;;;;;;;;;;;;;;;;;;;;; +;; create-table-column ;; +;;;;;;;;;;;;;;;;;;;;;;;;; + +(defgeneric create-table-column (clog-obj &key content + column-span + row-span + class + auto-place) + (:documentation "Create a new CLOG-Table-Column as child of CLOG-OBJ +and if :AUTO-PLACE (default t) place-inside-bottom-of CLOG-OBJ")) + +(defmethod create-table-column ((obj clog-obj) &key (content "") + (column-span 1) + (row-span 1) + (class nil) + (auto-place t)) + (create-child obj (format nil "~A" + column-span + row-span + (if class + (format nil " class='~A'" + (escape-string class)) + "") + (escape-string content)) + :clog-type 'clog-table-column :auto-place auto-place)) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Implementation - clog-table-heading +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +(defclass clog-table-heading (clog-table-row)() + (:documentation "CLOG Table-Heading Objects.")) + +;;;;;;;;;;;;;;;;;;;;;;;;;; +;; create-table-heading ;; +;;;;;;;;;;;;;;;;;;;;;;;;;; + +(defgeneric create-table-heading (clog-obj &key content + column-span + row-span + class + auto-place) + (:documentation "Create a new CLOG-Table-Heading as child of CLOG-OBJ +and if :AUTO-PLACE (default t) place-inside-bottom-of CLOG-OBJ")) + +(defmethod create-table-heading ((obj clog-obj) &key (content "") + (column-span 1) + (row-span 1) + (class nil) + (auto-place t)) + (create-child obj (format nil "~A" + column-span + row-span + (if class + (format nil " class='~A'" + (escape-string class)) + "") + (escape-string content)) + :clog-type 'clog-table-heading :auto-place auto-place)) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Implementation - clog-table-head +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +(defclass clog-table-head (clog-table)() + (:documentation "CLOG Table-Head Objects.")) + +;;;;;;;;;;;;;;;;;;;;;;; +;; create-table-head ;; +;;;;;;;;;;;;;;;;;;;;;;; + +(defgeneric create-table-head (clog-obj &key class auto-place) + (:documentation "Create a new CLOG-Table-Head as child of CLOG-OBJ +and if :AUTO-PLACE (default t) place-inside-bottom-of CLOG-OBJ")) + +(defmethod create-table-head ((obj clog-obj) + &key (class nil) (auto-place t)) + (create-child obj (format nil "" + (if class + (format nil " class='~A'" + (escape-string class)) + "")) + :clog-type 'clog-table-head :auto-place auto-place)) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Implementation - clog-table-body +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +(defclass clog-table-body (clog-table)() + (:documentation "CLOG Table-Body Objects.")) + +;;;;;;;;;;;;;;;;;;;;;;; +;; create-table-body ;; +;;;;;;;;;;;;;;;;;;;;;;; + +(defgeneric create-table-body (clog-obj &key class auto-place) + (:documentation "Create a new CLOG-Table-Body as child of CLOG-OBJ +and if :AUTO-PLACE (default t) place-inside-bottom-of CLOG-OBJ")) + +(defmethod create-table-body ((obj clog-obj) + &key (class nil) (auto-place t)) + (create-child obj (format nil "" + (if class + (format nil " class='~A'" + (escape-string class)) + "")) + :clog-type 'clog-table-body :auto-place auto-place)) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Implementation - clog-table-caption +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +(defclass clog-table-caption (clog-table)() + (:documentation "CLOG Table-Caption Objects.")) + +;;;;;;;;;;;;;;;;;;;;;;;;;; +;; create-table-caption ;; +;;;;;;;;;;;;;;;;;;;;;;;;;; + +(defgeneric create-table-caption (clog-obj &key content class auto-place) + (:documentation "Create a new CLOG-Table-Caption as child of CLOG-OBJ +and if :AUTO-PLACE (default t) place-inside-bottom-of CLOG-OBJ")) + +(defmethod create-table-caption ((obj clog-obj) + &key (content "") (class nil) (auto-place t)) + (create-child obj (format nil "~A" + (if class + (format nil " class='~A'" + (escape-string class)) + "") + (escape-string content)) + :clog-type 'clog-table-caption :auto-place auto-place)) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Implementation - clog-table-footer +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +(defclass clog-table-footer (clog-table)() + (:documentation "CLOG Table-Footer Objects.")) + +;;;;;;;;;;;;;;;;;;;;;;; +;; create-table-footer ;; +;;;;;;;;;;;;;;;;;;;;;;; + +(defgeneric create-table-footer (clog-obj &key class auto-place) + (:documentation "Create a new CLOG-Table-Footer as child of CLOG-OBJ +and if :AUTO-PLACE (default t) place-inside-bottom-of CLOG-OBJ")) + +(defmethod create-table-footer ((obj clog-obj) + &key (class nil) (auto-place t)) + (create-child obj (format nil "" + (if class + (format nil " class='~A'" + (escape-string class)) + "")) + :clog-type 'clog-table-footer :auto-place auto-place)) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Implementation - clog-table-column-group +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +(defclass clog-table-column-group (clog-table)() + (:documentation "CLOG Table-Column-Group Objects.")) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; create-table-column-group ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +(defgeneric create-table-column-group (clog-obj &key class auto-place) + (:documentation "Create a new CLOG-Table-Column-Group as child of CLOG-OBJ +and if :AUTO-PLACE (default t) place-inside-bottom-of CLOG-OBJ")) + +(defmethod create-table-column-group ((obj clog-obj) + &key (class nil) (auto-place t)) + (create-child obj (format nil "" + (if class + (format nil " class='~A'" + (escape-string class)) + "")) + :clog-type 'clog-table-column-group :auto-place auto-place)) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Implementation - clog-table-column-group-item +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +(defclass clog-table-column-group-item (clog-table-column-group)() + (:documentation "CLOG Table-Column-Group-Item Objects.")) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; create-table-column-group-item ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +(defgeneric create-table-column-group-item (clog-obj + &key column-span class auto-place) + (:documentation "Create a new CLOG-Table-Column-Group-Item as child of CLOG-OBJ +and if :AUTO-PLACE (default t) place-inside-bottom-of CLOG-OBJ")) + +(defmethod create-table-column-group-item ((obj clog-obj) + &key (column-span 1) (class nil) (auto-place t)) + (create-child obj (format nil "" + column-span + (if class + (format nil " class='~A'" + (escape-string class)) + "")) + :clog-type 'clog-table-column-group-item :auto-place auto-place)) diff --git a/clog.lisp b/clog.lisp index 1a2023a..5881b97 100644 --- a/clog.lisp +++ b/clog.lisp @@ -381,7 +381,47 @@ embedded in a native template application.)" "CLOG-Description - Class for CLOG Descriptions" (clog-description class) - (create-description generic-function)) + (create-description generic-function) + + "CLOG-Table - Class for CLOG Tables" + (clog-table class) + (create-table generic-function) + + "CLOG-Table-Row - Class for CLOG Table-Rows" + (clog-table-row class) + (create-table-row generic-function) + + "CLOG-Table-Column - Class for CLOG Table-Columns" + (clog-table-column class) + (create-table-column generic-function) + + "CLOG-Table-Heading - Class for CLOG Table-Headings" + (clog-table-heading class) + (create-table-heading generic-function) + + "CLOG-Table-Head - Class for CLOG Table-Heads" + (clog-table-head class) + (create-table-head generic-function) + + "CLOG-Table-Body - Class for CLOG Table-Bodys" + (clog-table-body class) + (create-table-body generic-function) + + "CLOG-Table-Caption - Class for CLOG Table-Captions" + (clog-table-caption class) + (create-table-caption generic-function) + + "CLOG-Table-Footer - Class for CLOG Table-Footers" + (clog-table-footer class) + (create-table-footer generic-function) + + "CLOG-Table-Column-Group - Class for CLOG Table-Column-Groups" + (clog-table-column-group class) + (create-table-column-group generic-function) + + "CLOG-Table-Column-Group-Item - Class for CLOG Table-Column-Group-Items" + (clog-table-column-group-item class) + (create-table-column-group-item generic-function)) (defsection @clog-form (:title "CLOG Form Objects") "CLOG-Form - Class for organizing Form Elements in to a From" diff --git a/doc/clog-manual.html b/doc/clog-manual.html index facb1a5..dc9d602 100644 --- a/doc/clog-manual.html +++ b/doc/clog-manual.html @@ -309,14 +309,16 @@ properties (to use for :property) are based on the event type.

        -
      • [function] INITIALIZE ON-NEW-WINDOW-HANDLER &KEY (HOST "0.0.0.0") (PORT 8080) (BOOT-FILE "/boot.html") (STATIC-ROOT #P"static-files/")

        +
      • [function] INITIALIZE ON-NEW-WINDOW-HANDLER &KEY (HOST "0.0.0.0") (PORT 8080) (BOOT-FILE "/boot.html") (STATIC-ROOT (MERGE-PATHNAMES "./static-files/" (ASDF/SYSTEM:SYSTEM-SOURCE-DIRECTORY :CLOG)))

        -

        Inititalize CLOG on a socket using HOST and PORT to serve BOOT-FILE as -the default route to establish web-socket connections and static files -located at STATIC-ROOT. If CLOG was already initialized and not shut -down, this function does the same as set-on-new-window. If the variable -clog:overide-static-root is set STATIC-ROOT will be ignored. If BOOT-FILE -is nil no default boot-file will be set for /.

      • +

        Inititalize CLOG on a socket using HOST and PORT to serve BOOT-FILE +as the default route to establish web-socket connections and static +files located at STATIC-ROOT. If CLOG was already initialized and not +shut down, this function does the same as set-on-new-window (does not +change the static-root). STATIC-ROOT by default is the "directory CLOG +is installed in ./static-files" If the variable clog:overide-static-root +is set STATIC-ROOT will be ignored. If BOOT-FILE is nil no default +boot-file will be set for root path, i.e. /.

      @@ -564,6 +566,69 @@ is nil unbind the event.

      is nil unbind the event.

    +

    + +
      +
    • [generic-function] SET-ON-DRAG-START CLOG-OBJ ON-DRAG-START-HANDLER &KEY DRAG-DATA DRAG-TYPE

      + +

      Set the ON-DRAG-START-HANDLER for CLOG-OBJ. If ON-DRAG-START-HANDLER +is nil unbind the event.

    • +
    + +

    + +
      +
    • [generic-function] SET-ON-DRAG CLOG-OBJ ON-DRAG-HANDLER

      + +

      Set the ON-DRAG-HANDLER for CLOG-OBJ. If ON-DRAG-HANDLER +is nil unbind the event.

    • +
    + +

    + +
      +
    • [generic-function] SET-ON-DRAG-END CLOG-OBJ ON-DRAG-END-HANDLER

      + +

      Set the ON-DRAG-END-HANDLER for CLOG-OBJ. If ON-DRAG-END-HANDLER +is nil unbind the event.

    • +
    + +

    + +
      +
    • [generic-function] SET-ON-DRAG-ENTER CLOG-OBJ ON-DRAG-ENTER-HANDLER

      + +

      Set the ON-DRAG-ENTER-HANDLER for CLOG-OBJ. If ON-DRAG-ENTER-HANDLER +is nil unbind the event.

    • +
    + +

    + +
      +
    • [generic-function] SET-ON-DRAG-LEAVE CLOG-OBJ ON-DRAG-LEAVE-HANDLER

      + +

      Set the ON-DRAG-LEAVE-HANDLER for CLOG-OBJ. If ON-DRAG-LEAVE-HANDLER +is nil unbind the event.

    • +
    + +

    + +
      +
    • [generic-function] SET-ON-DRAG-OVER CLOG-OBJ ON-DRAG-OVER-HANDLER

      + +

      Set the ON-DRAG-OVER-HANDLER for CLOG-OBJ. If ON-DRAG-OVER-HANDLER +is nil unbind the event.

    • +
    + +

    + +
      +
    • [generic-function] SET-ON-DROP CLOG-OBJ ON-DROP-HANDLER &KEY DRAG-TYPE

      + +

      Set the ON-DROP-HANDLER for CLOG-OBJ. If ON-DROP-HANDLER +is nil unbind the event.

    • +
    +

      @@ -2178,7 +2243,7 @@ to no actual HTML elemen.

        -
      • [generic-function] CREATE-A CLOG-OBJ &KEY LINK CONTENT TARGET AUTO-PLACE

        +
      • [generic-function] CREATE-A CLOG-OBJ &KEY LINK CONTENT TARGET CLASS AUTO-PLACE

        Create a new CLOG-A as child of CLOG-OBJ with :LINK and :CONTENT (default "") and :TARGET ("_self") and if :AUTO-PLACE (default t) @@ -2220,7 +2285,7 @@ place-inside-bottom-of CLOG-OBJ.

          -
        • [generic-function] CREATE-BR CLOG-OBJ &KEY AUTO-PLACE

          +
        • [generic-function] CREATE-BR CLOG-OBJ &KEY CLASS AUTO-PLACE

          Create a new CLOG-BR as child of CLOG-OBJ that creates a line break and if :AUTO-PLACE (default t) place-inside-bottom-of CLOG-OBJ

        • @@ -2239,7 +2304,7 @@ line break and if :AUTO-PLACE (default t) place-inside-bottom-of

            -
          • [generic-function] CREATE-BUTTON CLOG-OBJ &KEY CONTENT AUTO-PLACE

            +
          • [generic-function] CREATE-BUTTON CLOG-OBJ &KEY CONTENT CLASS AUTO-PLACE

            Create a new CLOG-Button as child of CLOG-OBJ with :CONTENT (default "") and if :AUTO-PLACE (default t) place-inside-bottom-of @@ -2267,7 +2332,7 @@ line break and if :AUTO-PLACE (default t) place-inside-bottom-of

              -
            • [generic-function] CREATE-IMG CLOG-OBJ &KEY URL-SRC ALT-TEXT AUTO-PLACE

              +
            • [generic-function] CREATE-IMG CLOG-OBJ &KEY URL-SRC ALT-TEXT CLASS AUTO-PLACE

              Create a new CLOG-Img as child of CLOG-OBJ with :URL-SRC (default "") and :ALT-TEXT (default "") if :AUTO-PLACE (default t) @@ -2296,7 +2361,7 @@ placing image to constrain image size.

              • -
              • [generic-function] CREATE-DIV CLOG-OBJ &KEY CONTENT AUTO-PLACE

                +
              • [generic-function] CREATE-DIV CLOG-OBJ &KEY CONTENT CLASS AUTO-PLACE

                Create a new CLOG-Div as child of CLOG-OBJ with :CONTENT (default "") and if :AUTO-PLACE (default t) place-inside-bottom-of @@ -2316,7 +2381,7 @@ placing image to constrain image size.

                • -
                • [generic-function] CREATE-HR CLOG-OBJ &KEY AUTO-PLACE

                  +
                • [generic-function] CREATE-HR CLOG-OBJ &KEY CLASS AUTO-PLACE

                  Create a new CLOG-HR as child of CLOG-OBJ that creates a horizontal rule (line) and if :AUTO-PLACE (default t) place-inside-bottom-of @@ -2336,7 +2401,7 @@ horizontal rule (line) and if :AUTO-PLACE (default t) place-inside-

                    -
                  • [generic-function] CREATE-METER CLOG-OBJ &KEY VALUE HIGH LOW MAXIMUM MINIMUM OPTIMUM AUTO-PLACE

                    +
                  • [generic-function] CREATE-METER CLOG-OBJ &KEY VALUE HIGH LOW MAXIMUM MINIMUM OPTIMUM CLASS AUTO-PLACE

                    Create a new CLOG-Meter as child of CLOG-OBJ with VALUE (default 0) HIGH (default 100) LOW (default 0) MAXIMUM (default 100) MINIMUM @@ -2407,10 +2472,10 @@ instead through the value property.

                    • -
                    • [generic-function] CREATE-PROGRESS-BAR CLOG-OBJ &KEY VALUE MAXIMUM AUTO-PLACE

                      +
                    • [generic-function] CREATE-PROGRESS-BAR CLOG-OBJ &KEY VALUE MAXIMUM CLASS AUTO-PLACE

                      -

                      Create a new CLOG-Progress-Bar as child of CLOG-OBJ with VALUE -(default 0) MAXIMUM (default 100) and if :AUTO-PLACE (default t) +

                      Create a new CLOG-Progress-Bar as child of CLOG-OBJ with +VALUE (default 0) MAXIMUM (default 100) and if :AUTO-PLACE (default t) place-inside-bottom-of CLOG-OBJ.

                    @@ -2445,7 +2510,7 @@ instead through the value property.

                      -
                    • [generic-function] CREATE-P CLOG-OBJ &KEY CONTENT AUTO-PLACE

                      +
                    • [generic-function] CREATE-P CLOG-OBJ &KEY CONTENT CLASS AUTO-PLACE

                      Create a new CLOG-P as child of CLOG-OBJ with :CONTENT (default "") and if :AUTO-PLACE (default t) place-inside-bottom-of @@ -2465,7 +2530,7 @@ instead through the value property.

                      • -
                      • [generic-function] CREATE-SPAN CLOG-OBJ &KEY CONTENT AUTO-PLACE

                        +
                      • [generic-function] CREATE-SPAN CLOG-OBJ &KEY CONTENT CLASS AUTO-PLACE

                        Create a new CLOG-Span as child of CLOG-OBJ with CONTENT and if :AUTO-PLACE (default t) place-inside-bottom-of @@ -2491,7 +2556,7 @@ and if :AUTO-PLACE (default t) place-inside-bottom-of

                          -
                        • [generic-function] CREATE-SECTION CLOG-OBJ SECTION &KEY CONTENT AUTO-PLACE

                          +
                        • [generic-function] CREATE-SECTION CLOG-OBJ SECTION &KEY CONTENT CLASS AUTO-PLACE

                          Create a new CLOG-Section of section type as child of CLOG-OBJ with CONTENT and if :AUTO-PLACE (default t) place-inside-bottom-of @@ -2517,7 +2582,7 @@ and if :AUTO-PLACE (default t) place-inside-bottom-of

                            -
                          • [generic-function] CREATE-PHRASE CLOG-OBJ PHRASE &KEY CONTENT AUTO-PLACE

                            +
                          • [generic-function] CREATE-PHRASE CLOG-OBJ PHRASE &KEY CONTENT CLASS AUTO-PLACE

                            Create a new CLOG-Phrase of phrase type as child of CLOG-OBJ with CONTENT and if :AUTO-PLACE (default t) place-inside-bottom-of @@ -2537,7 +2602,7 @@ and if :AUTO-PLACE (default t) place-inside-bottom-of

                              -
                            • [generic-function] CREATE-ORDERED-LIST CLOG-OBJ &KEY AUTO-PLACE

                              +
                            • [generic-function] CREATE-ORDERED-LIST CLOG-OBJ &KEY CLASS AUTO-PLACE

                              Create a new CLOG-Ordered-List as child of CLOG-OBJ and if :AUTO-PLACE (default t) place-inside-bottom-of CLOG-OBJ

                            • @@ -2585,7 +2650,7 @@ is outside.

                                -
                              • [generic-function] CREATE-UNORDERED-LIST CLOG-OBJ &KEY AUTO-PLACE

                                +
                              • [generic-function] CREATE-UNORDERED-LIST CLOG-OBJ &KEY CLASS AUTO-PLACE

                                Create a new CLOG-Unordered-List as child of CLOG-OBJ and if :AUTO-PLACE (default t) place-inside-bottom-of CLOG-OBJ

                              • @@ -2604,7 +2669,7 @@ and if :AUTO-PLACE (default t) place-inside-bottom-of CLOG-OB

                                  -
                                • [generic-function] CREATE-LIST-ITEM CLOG-OBJ &KEY CONTENT AUTO-PLACE

                                  +
                                • [generic-function] CREATE-LIST-ITEM CLOG-OBJ &KEY CONTENT CLASS AUTO-PLACE

                                  Create a new CLOG-List-Item as child of CLOG-OBJ and if :AUTO-PLACE (default t) place-inside-bottom-of CLOG-OBJ

                                • @@ -2631,7 +2696,7 @@ and if :AUTO-PLACE (default t) place-inside-bottom-of CLOG-OB

                                    -
                                  • [generic-function] CREATE-DEFINITION-LIST CLOG-OBJ &KEY AUTO-PLACE

                                    +
                                  • [generic-function] CREATE-DEFINITION-LIST CLOG-OBJ &KEY CLASS AUTO-PLACE

                                    Create a new CLOG-Definition-List as child of CLOG-OBJ and if :AUTO-PLACE (default t) place-inside-bottom-of CLOG-OBJ

                                  • @@ -2650,7 +2715,7 @@ and if :AUTO-PLACE (default t) place-inside-bottom-of CLOG-OB

                                      -
                                    • [generic-function] CREATE-TERM CLOG-DEFINITION-LIST &KEY CONTENT AUTO-PLACE

                                      +
                                    • [generic-function] CREATE-TERM CLOG-DEFINITION-LIST &KEY CONTENT CLASS AUTO-PLACE

                                      Create a new CLOG-Term as child of CLOG-OBJ and if :AUTO-PLACE (default t) place-inside-bottom-of CLOG-OBJ

                                    • @@ -2669,7 +2734,7 @@ and if :AUTO-PLACE (default t) place-inside-bottom-of [generic-function] CREATE-DESCRIPTION CLOG-DEFINITION-LIST &KEY CONTENT AUTO-PLACE

                                      +
                                    • [generic-function] CREATE-DESCRIPTION CLOG-DEFINITION-LIST &KEY CONTENT CLASS AUTO-PLACE

                                      Create a new CLOG-Description as child of CLOG-OBJ and if :AUTO-PLACE (default t) place-inside-bottom-of CLOG-OBJ

                                    • @@ -2683,6 +2748,12 @@ and if :AUTO-PLACE (default t) place-inside-bottom-of [type] FORM-METHOD-TYPE +
                                    +

                                      @@ -2694,7 +2765,7 @@ and if :AUTO-PLACE (default t) place-inside-bottom-of [generic-function] CREATE-FORM CLOG-OBJ &KEY ACTION METHOD TARGET AUTO-PLACE

                                      +
                                    • [generic-function] CREATE-FORM CLOG-OBJ &KEY ACTION METHOD TARGET CLASS AUTO-PLACE

                                      Create a new CLOG-Form as child of CLOG-OBJ that organizes a collection of form elements in to a single form if :AUTO-PLACE (default t) @@ -2897,7 +2968,8 @@ group called NAME.

                                      • [generic-function] NAME-VALUE CLOG-OBJ NAME

                                        -

                                        Returns the value of input item called NAME.

                                      • +

                                        Returns the value of input item called NAME and must +be unique name on entire document.

                                      @@ -4482,6 +4554,14 @@ on-storage event is fired for changes to :local storage keys.

                                      Load css from CSS-URL.

                                    +

                                    + +
                                      +
                                    • [generic-function] LOAD-SCRIPT CLOG-DOCUMENT SCRIPT-URL

                                      + +

                                      Load script from SCRIPT-URL.

                                    • +
                                    +

                                      diff --git a/test/test-clog.lisp b/test/test-clog.lisp index d45773f..ba83ed6 100644 --- a/test/test-clog.lisp +++ b/test/test-clog.lisp @@ -66,6 +66,19 @@ (create-list-item tmp :content "list item 2") (create-list-item tmp :content "list item 3") (setf (list-location tmp) :inside) + + (create-hr win) + + (let* ((tbl (create-table win)) + (cap (create-table-caption tbl :content "My Table")) + (rw)) + + (set-border tbl :thin :solid :black) + + (dotimes (y 10) + (setf rw (create-table-row tbl)) + (dotimes (x 6) + (create-table-column rw :content (format nil "~A X ~A" x y))))) )) (defun test ()