1 ;;; -*- Mode: Lisp; Syntax: Common-Lisp; Package: RENDERER; -*-
2 ;;; ---------------------------------------------------------------------------
3 ;;; Title: The Renderer's Data Structures
4 ;;; Created: 1999-01-08
5 ;;; Author: Gilbert Baumann <gilbert@base-engineering.com>
6 ;;; License: MIT style (see below)
7 ;;; ---------------------------------------------------------------------------
8 ;;; (c) copyright 1999 by Gilbert Baumann
10 ;;; Permission is hereby granted, free of charge, to any person obtaining
11 ;;; a copy of this software and associated documentation files (the
12 ;;; "Software"), to deal in the Software without restriction, including
13 ;;; without limitation the rights to use, copy, modify, merge, publish,
14 ;;; distribute, sublicense, and/or sell copies of the Software, and to
15 ;;; permit persons to whom the Software is furnished to do so, subject to
16 ;;; the following conditions:
18 ;;; The above copyright notice and this permission notice shall be
19 ;;; included in all copies or substantial portions of the Software.
21 ;;; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
22 ;;; EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
23 ;;; MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
24 ;;; IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
25 ;;; CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
26 ;;; TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
27 ;;; SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
30 ;; ----------------------------------------------------------------------------
31 ;; 1999-08-17 GB - Added sane accessors
32 ;; {inner,outer}-{left,right}-edge
33 ;; {inner,outer}-{width,height}
37 (in-package :RENDERER
)
39 ;;; ---- Data Structures ----------------------------------------------------------------------
41 (defstruct (text-style
42 (:constructor make-text-style-prim
43 (font font-family font-weight font-size
44 font-style font-variant
45 letter-spacing word-spacing
)))
55 ;; Note: This rcontext has to leave -- it is currently used by the CSS
56 ;; module to get to the device.
62 y
;current y coordinate
63 x0
;x-coordinate of current left margin
64 x1
;x-coordinate of current right margin
66 vertical-margin-callbacks
68 left-floating-boxen
;all left floating boxen [list of FBOX-DESC]
69 right-floating-boxen
;all right floating boxen
72 container
;Die momentane container-box
73 abspos
;Liste aller absolut positionionieren Boxen
74 ;; caches for min/max width
75 (min-width-cache (make-hash-table :test
#'eq
))
76 (max-width-cache (make-hash-table :test
#'eq
))
79 (declaim (type rc
*rcontext
*))