;; $Id: dbadmon.dsl 0.87 1997/07/14 03:57:05 nwalsh Exp $

;; ============================ ADMONITIONS =============================

(define ($admonition$)
  (make display-group
	space-before: %block-sep%
	space-after: %block-sep%
	(process-children)))

(define ($admonpara$)
  (let ((has-title (not (node-list-empty? 
			 (select-elements 
			  (children (parent (current-node))) "TITLE")))))
  (make paragraph
	space-before: %para-sep%
	space-after: %para-sep%
	font-size: (- %bf-size% 1pt)
	font-weight: 'medium
	font-posture: 'upright
	font-family-name: %admon-font-family%
	line-spacing: (* (- %bf-size% 1pt) %line-spacing-factor%)
	start-indent: (+ (inherited-start-indent) (* (ILSTEP) 2))
	(if (and (not has-title) (= (child-number) 1))
	    (make sequence
	      font-family-name: %title-font-family%
	      font-weight: 'bold
	      (literal
	       (cond
		((have-ancestor? "IMPORTANT") 
		 (string-append 
		  (gentext-element-name "IMPORTANT")
		  (gentext-label-title-sep "IMPORTANT")))
		((have-ancestor? "NOTE") 
		 (string-append
		  (gentext-element-name "NOTE")
		  (gentext-label-title-sep "NOTE")))
		((have-ancestor? "TIP") 
		 (string-append
		  (gentext-element-name "TIP")
		  (gentext-label-title-sep "TIP")))
		(else ""))))
	    (empty-sosofo))
	(process-children))))

(element IMPORTANT ($admonition$))
(element (IMPORTANT PARA) ($admonpara$))
(element NOTE ($admonition$))
(element (NOTE PARA) ($admonpara$))
(element TIP ($admonition$))
(element (TIP PARA) ($admonpara$))

;; perils are given special treatment by generating a centered title
;;   and throwing a box around them
;; note that the paragraph indents are set by the box characteristics
;;
(define ($peril$)
  (let ((hs (HSIZE 2)))
    (make display-group
	  space-before: %block-sep%
	  space-after: %block-sep%
	  (make box
		display?: #t
		box-type: 'border
		line-thickness: 2pt
		start-indent: (+ (inherited-start-indent) (* 2 (ILSTEP)) 2pt)
		end-indent: (inherited-end-indent)
		(make paragraph
		      space-before: %para-sep%
		      space-after: %para-sep%
		      start-indent: 1em
		      end-indent: 1em
		      font-family-name: %title-font-family%
		      font-weight: 'bold
		      font-size: hs
		      line-spacing: (* hs %line-spacing-factor%)
		      quadding: 'center
		      keep-with-next?: #t
		      (literal
		        (cond
			  ((equal? (gi) "CAUTION") (gentext-element-name "CAUTION"))
			  ((equal? (gi) "WARNING") (gentext-element-name "WARNING"))
			  (else ""))))
		(process-children)))))

(element CAUTION ($peril$))
(element WARNING ($peril$))

