Umlaute raus!
[closure-html.git] / src / protocols / css-support.lisp
blob2aade6c1f4855c28171b347385969b78fc811705
1 ;;; -*- Mode: Lisp; Syntax: Common-Lisp; Package: CLOSURE-PROTOCOL; -*-
2 ;;; ---------------------------------------------------------------------------
3 ;;; Title: Protocol to support CSS style sheet cascading
4 ;;; Created: 2002-08-07 03:40
5 ;;; Author: Gilbert Baumann <gilbert@base-engineering.com>
6 ;;; License: LGPL (See file COPYING for details).
7 ;;; ---------------------------------------------------------------------------
8 ;;; (c) copyright 2002 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:
17 ;;;
18 ;;; The above copyright notice and this permission notice shall be
19 ;;; included in all copies or substantial portions of the Software.
20 ;;;
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.
29 (in-package :CLOSURE-PROTOCOL)
31 (defgeneric element-css-class (element)
34 (defgeneric element-css-id (element)
37 (defgeneric pseudo-class-matches-p (pseudo-class element)
40 (defgeneric element-style-cache (element)
43 (defgeneric (setf element-style-cache) (new-value element)
46 (defgeneric element-implicit-style (document element)
49 (defgeneric element-explicit-style (document element)
52 ;; we want
54 #||
55 (defgeneric element-implicit-style (document-language element))
56 (defgeneric element-explicit-style (document-language element))
57 (defgeneric element-css-class (document-language element))
58 (defgeneric element-css-id (document-language element))
59 (defgeneric element-psuedo-class-matches (document-language pseudo-class element))
61 together with:
63 (defclass html-document-language ())
64 (defclass html-4.0-document-language (html-document-language))
65 (defclass html-3.2-document-language (html-document-language))
67 (defclass xml-document-language ())
69 we might get away with special variables ... and split this into e.g.
71 like:
73 (defvar *document-language*)
74 (defvar *user-agent*)
76 (defgeneric element-implicit-style-1 (user-agent document-language element))
78 (defun element-implicit-style (element)
79 (element-implicit-style-1 *user-agent* *document-language* element))
81 ;; then we want a user-agent protcol like
83 (defgeneric post-title (user-agent title))
84 (defgeneric post-link (user-agent ...)
85 (defgeneric open-uri (user-agent uri))
87 ||#
90 ;;;;;;;;;;;;; Render Support Protocol
92 (defvar *document-language*)
93 (defvar *user-agent*)
95 (defun element-replaced-element (device element)
96 (element-replaced-element-1 *document-language* *user-agent* document device element))
98 (defgeneric element-replaced-element-1 (document-language user-agent document device element)
101 (defgeneric element-base-url (document-language element)
104 (defgeneric element-imap (document-language document element)
107 (defgeneric render (document-language document device element
108 width
109 &optional flag h
110 &key selected-style )
113 (defgeneric root-element-embedded-style (language root-element)