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

;; =========================== REFERENCE PAGES ==========================

(element REFERENCE ($component$))

;; If each RefEntry begins on a new page, this title is going to wind
;; up on its own page, too, so make it a divtitlepage instead.  Otherwise,
;; just let it be a component title.
(element (REFERENCE TITLE) 
  (if %refentry-new-page%
      ($divtitlepage$)
      ($comptitle$)))

(element REFENTRY 
  (if %refentry-new-page%
      (make simple-page-sequence
	top-margin: %top-margin%
	bottom-margin: %bottom-margin%
	left-margin: %left-right-margin%
	right-margin: %left-right-margin%
	page-width: %page-width%
	page-height: %page-height%
	input-whitespace-treatment: 'collapse
	(process-children))
      ($block-container$)))

(element REFMETA
  (let* ((slevel (SECTLEVEL)) ;; the true level in the section hierarchy
	 (hlevel (if (> slevel 2) 2 slevel)) ;; limit to sect2 equiv.
	 (hs (HSIZE (- 4 hlevel))))
    (make paragraph
	  font-family-name: %title-font-family%
	  font-weight: 'bold
	  font-size: hs
	  line-spacing: (* hs %line-spacing-factor%)
	  space-before: (* hs %head-before-factor%)
	  space-after: (* hs %head-after-factor%)
	  start-indent: %body-start-indent%
	  first-line-start-indent: (- %body-start-indent%)
	  quadding: 'start
	  keep-with-next?: #t
	  (process-first-descendant "REFENTRYTITLE")
	  (if %refentry-function%
	      (sosofo-append
	       (literal " (")
	       (process-first-descendant "MANVOLNUM")
	       (literal ")"))
	      (sosofo-append (empty-sosofo)))
)))

(element REFMISCINFO (empty-sosofo)) ;; *** TO DO: finish this

(element REFNAMEDIV
  (make paragraph
	use: para-style
	space-before: %para-sep%
	start-indent: %body-start-indent%
	quadding: 'start
	(process-children)))

(element REFNAME
  (make sequence
    (if (and %refentry-generate-name% (first-sibling? (current-node)))
 	($lowtitlewithsosofo$ 1 (literal (gentext-element-name 
					  (gi (current-node)))))
 	(empty-sosofo))
    (make sequence
	  font-weight: 'medium
	  font-family-name: %refentry-name-font-family%
	  (process-children)
 	  (if (last-sibling? (current-node))
 	      (empty-sosofo)
	      (literal (gentext-intra-label-sep (gi (current-node))))))))

(element REFPURPOSE
  (make sequence
        font-family-name: %body-font-family%
    (make sequence
      (literal " \em-dash ")
      (process-children))
    (make paragraph-break)))
	
(element REFDESCRIPTOR (empty-sosofo)) ;; TO DO: finish this

(element REFCLASS
  (let ((role (attribute-string "role")))
    (make paragraph
	  use: para-style
	  space-before: %para-sep%
	  start-indent: %body-start-indent%
	  quadding: 'start
	  (make sequence
		font-weight: 'bold
		(literal
		  (if role
		      (string-append role ": ")
		      "")))
	  (process-children-trim))))

(element REFSYNOPSISDIV
  (make paragraph
	use: para-style
	space-before: %para-sep%
	start-indent: %body-start-indent%
	lines: 'asis
	font-family-name: %mono-font-family%
	(process-children)))

(element (REFSYNOPSISDIV TITLE) ($lowtitle$ 1))
(element REFSECT1 ($block-container$))
(element (REFSECT1 TITLE) ($lowtitle$ 1))
(element REFSECT2 ($block-container$))
(element (REFSECT2 TITLE) ($lowtitle$ 2))
(element REFSECT3 ($block-container$))
(element (REFSECT3 TITLE) ($lowtitle$ 3))


