[mcclim-cvs] CVS mcclim

crhodes crhodes at common-lisp.net
Fri Mar 10 10:56:01 UTC 2006


Update of /project/mcclim/cvsroot/mcclim
In directory clnet:/tmp/cvs-serv2943

Modified Files:
	medium.lisp 
Log Message:
Merge a hacky but functional implementation of device-font-text-styles, 
working on CLX, mcclim-freetype and postscript backends.  No exported or 
documented functionality for now.


--- /project/mcclim/cvsroot/mcclim/medium.lisp	2006/01/22 21:17:07	1.57
+++ /project/mcclim/cvsroot/mcclim/medium.lisp	2006/03/10 10:56:01	1.58
@@ -87,6 +87,7 @@
 (defgeneric text-style-fixed-width-p (text-style medium))
 
 (defgeneric text-style-equalp (style1 style2))
+(defmethod text-style-equalp ((style1 text-style) (style2 text-style)) nil)
 
 (defclass standard-text-style (text-style)
   ((family   :initarg :text-family
@@ -155,7 +156,7 @@
 
 ) ; end eval-when
 
-(defmethod print-object ((self text-style) stream)
+(defmethod print-object ((self standard-text-style) stream)
   (print-unreadable-object (self stream :type t :identity nil)
     (format stream "~{~S~^ ~}" (multiple-value-list (text-style-components self)))))
 
@@ -196,15 +197,25 @@
 ;;; Device-Font-Text-Style class
 
 (defclass device-font-text-style (text-style)
-  ())
+  ((display-device :initarg :display-device :accessor display-device)
+   (device-font-name :initarg :device-font-name :accessor device-font-name)))
+
+(defmethod print-object ((self device-font-text-style) stream)
+  (print-unreadable-object (self stream :type t :identity nil)
+    (format stream "~S on ~S" (device-font-name self) (display-device self))))
 
 (defun device-font-text-style-p (s)
   (typep s 'device-font-text-style))
 
+(defmethod text-style-equalp ((style1 device-font-text-style) (style2 device-font-text-style))
+  (eq style1 style2))
+
 (defmethod text-style-mapping ((port basic-port) text-style
                                &optional character-set)
   (declare (ignore character-set))
-  (gethash (parse-text-style text-style) (port-text-style-mappings port)))
+  (if (keywordp text-style)
+      (gethash (parse-text-style text-style) (port-text-style-mappings port))
+      (gethash text-style (port-text-style-mappings port))))
 
 (defmethod (setf text-style-mapping) (mapping (port basic-port)
                                       text-style
@@ -221,11 +232,12 @@
   (setf (gethash text-style (port-text-style-mappings port))
         mapping))
 
-(defun make-device-font-text-style (port font-name)
+(defgeneric make-device-font-text-style (port font-name))
+
+(defmethod make-device-font-text-style (port font-name)
   (let ((text-style (make-instance 'device-font-text-style
-                                   :text-family font-name
-                                   :text-face nil
-                                   :text-size nil)))
+				   :display-device port
+				   :device-font-name font-name)))
     (setf (text-style-mapping port text-style) font-name)
     text-style))
 




More information about the Mcclim-cvs mailing list