[html-document] use srfi-9 records for <html-document>

This commit is contained in:
Christopher Lam 2020-07-11 23:16:37 +08:00
parent c65d0ef1c3
commit 738c04fe26

View File

@ -22,6 +22,7 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(use-modules (gnucash html))
(use-modules (srfi srfi-9))
(use-modules (ice-9 match))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@ -29,15 +30,35 @@
;; this is the top-level object representing an entire HTML document.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define <html-document>
(make-record-type "<html-document>"
'(style-sheet style-stack style style-text title headline objects)))
(define-record-type <html-document>
(make-html-document-internal style-sheet style-stack style
style-text title headline objects)
html-document?
(style-sheet html-document-style-sheet html-document-set-style-sheet)
(style-stack html-document-style-stack html-document-set-style-stack)
(style html-document-style html-document-set-style)
(style-text html-document-style-text html-document-set-style-text)
(title html-document-title html-document-set-title)
(headline html-document-headline html-document-set-headline)
(objects html-document-objects html-document-set-objects))
(define gnc:html-document?
(record-predicate <html-document>))
(define gnc:make-html-document-internal
(record-constructor <html-document>))
(define gnc:html-document-set-title! html-document-set-title)
(define gnc:html-document-title html-document-title)
(define gnc:html-document-set-headline! html-document-set-headline)
(define gnc:html-document-headline html-document-headline)
(define gnc:html-document-set-style-sheet! html-document-set-style-sheet)
(define gnc:html-document-set-style-sheet! html-document-set-style-sheet)
(define gnc:html-document-style-sheet html-document-style-sheet)
(define gnc:html-document-set-style-stack! html-document-set-style-stack)
(define gnc:html-document-style-stack html-document-style-stack)
(define gnc:html-document-set-style-text! html-document-set-style-text)
(define gnc:html-document-style-text html-document-style-text)
(define gnc:html-document-set-style-internal! html-document-set-style)
(define gnc:html-document-style html-document-style)
(define gnc:html-document-set-objects! html-document-set-objects)
(define gnc:html-document-objects html-document-objects)
(define gnc:html-document? html-document?)
(define gnc:make-html-document-internal make-html-document-internal)
(define (gnc:make-html-document)
(gnc:make-html-document-internal
@ -50,54 +71,6 @@
'() ;; subobjects
))
(define gnc:html-document-set-title!
(record-modifier <html-document> 'title))
(define gnc:html-document-title
(record-accessor <html-document> 'title))
(define gnc:html-document-set-headline!
(record-modifier <html-document> 'headline))
(define gnc:html-document-headline
(record-accessor <html-document> 'headline))
(define gnc:html-document-set-style-sheet!
(record-modifier <html-document> 'style-sheet))
(define gnc:html-document-set-style-sheet!
(record-modifier <html-document> 'style-sheet))
(define gnc:html-document-style-sheet
(record-accessor <html-document> 'style-sheet))
(define gnc:html-document-set-style-stack!
(record-modifier <html-document> 'style-stack))
(define gnc:html-document-style-stack
(record-accessor <html-document> 'style-stack))
(define gnc:html-document-set-style-text!
(record-modifier <html-document> 'style-text))
(define gnc:html-document-style-text
(record-accessor <html-document> 'style-text))
(define gnc:html-document-set-style-internal!
(record-modifier <html-document> 'style))
(define gnc:html-document-style
(record-accessor <html-document> 'style))
(define gnc:html-document-set-objects!
(record-modifier <html-document> 'objects))
(define gnc:html-document-objects
(record-accessor <html-document> 'objects))
(define gnc:html-document?
(record-predicate <html-document>))
(define (gnc:html-document-set-style! doc tag . rest)
(gnc:html-style-table-set!
(gnc:html-document-style doc) tag