;;; -*- mode: Lisp; Syntax: Common-Lisp; -*- ;;; ;;; Copyright (c) 2009 by the authors. ;;; ;;; See LICENCE for details. (in-package :hu.dwim.wui) ;;;;;; ;;; frame/widget (def (component e) frame/widget (top/component layer/mixin) ((content-mime-type +xhtml-mime-type+) (stylesheet-uris nil) (script-uris (make-default-script-uris)) (page-icon-uri (make-page-icon-uri :hu.dwim.wui "static/wui/" "image/miscellaneous/favicon.ico")) (title nil) (dojo-skin-name *dojo-skin-name*) (dojo-release-uri (parse-uri (string+ "static/wui/dojo/" *dojo-directory-name* "dojo/"))) (dojo-file-name *dojo-file-name*) (parse-dojo-widgets-on-load #f :type boolean) (debug-client-side :type boolean :writer (setf debug-client-side?)))) (def (macro e) frame/widget ((&rest args &key &allow-other-keys) &body content) `(make-instance 'frame/widget ,@args :content ,(the-only-element content))) (def method debug-client-side? ((self frame/widget)) (if (slot-boundp self 'debug-client-side) (slot-value self 'debug-client-side) (debug-client-side? *application*))) (def method parent-component-of ((self frame/widget)) nil) (def render-xhtml frame/widget (bind ((application *application*) (path-prefix (path-prefix-of application)) (encoding (or (when *response* (encoding-name-of *response*)) +default-encoding+)) (debug-client-side? (debug-client-side? -self-)) (javascript-supported? (not (request-parameter-value *request* +no-javascript-error-parameter-name+)))) (emit-xhtml-prologue encoding +xhtml-1.1-doctype+) ,(bind (((icon-uri &optional timestamp) (ensure-list (page-icon-uri-of -self-)))) (when icon-uri ))