[graphic-forms-cvs] r108 - in trunk: docs/manual src/tests/uitoolkit src/uitoolkit/graphics src/uitoolkit/system

junrue at common-lisp.net junrue at common-lisp.net
Wed Apr 26 15:46:19 UTC 2006


Author: junrue
Date: Wed Apr 26 11:46:18 2006
New Revision: 108

Modified:
   trunk/docs/manual/api.texinfo
   trunk/src/tests/uitoolkit/drawing-tester.lisp
   trunk/src/uitoolkit/graphics/graphics-context.lisp
   trunk/src/uitoolkit/system/gdi32.lisp
   trunk/src/uitoolkit/system/system-constants.lisp
Log:
implemented :transparent style for text drawing

Modified: trunk/docs/manual/api.texinfo
==============================================================================
--- trunk/docs/manual/api.texinfo	(original)
+++ trunk/docs/manual/api.texinfo	Wed Apr 26 11:46:18 2006
@@ -1244,15 +1244,15 @@
 following text style keywords:
 @table @code
 @item :mnemonic
-underline the mnemonic character (specified in the original string
-by preceding the character with an ampersand @samp{&})
+Underline the mnemonic character (specified in the original string
+by preceding the character with an ampersand @samp{&}).
 @item :tab
-expand tabs when the string is rendered; by default the tab-width
+Expand tabs when the string is rendered; by default the tab-width
 is 8 characters, but the optional @code{tab-width} parameter may
-be used to specify a different width
+be used to specify a different width.
 @item :transparent
- at emph{This style is not yet implemented.} the background of the
-rectangular area where text is drawn will not be modified
+The background of the rectangular area where text is drawn will not be
+modified.
 @end table
 @end deffn
 

Modified: trunk/src/tests/uitoolkit/drawing-tester.lisp
==============================================================================
--- trunk/src/tests/uitoolkit/drawing-tester.lisp	(original)
+++ trunk/src/tests/uitoolkit/drawing-tester.lisp	Wed Apr 26 11:46:18 2006
@@ -306,15 +306,13 @@
     (setf pnt (draw-a-string gc pnt (format nil "tab~ctab~ctab" #\Tab #\Tab) "Verdana" 10 nil '(:tab)))
     (setf pnt (draw-a-string gc pnt (format nil "even~cmore~ctabs" #\Tab #\Tab) "Verdana" 10 nil '(:tab)))
     (setf pnt (draw-a-string gc pnt " " "Verdana" 10 nil nil))
-    (setf pnt (draw-a-string gc pnt "and a &mnemonic" "Verdana" 10 nil '(:mnemonic)))))
+    (setf pnt (draw-a-string gc pnt "and a &mnemonic" "Verdana" 10 nil '(:mnemonic)))
 
-#|
     (setf pnt (draw-a-string gc pnt " " "Arial" 18 nil nil))
     (draw-a-string gc pnt "transparent" "Arial" 18 '(:bold) nil)
     (incf (gfs:point-x pnt) 50)
     (setf (gfg:foreground-color gc) gfg:*color-red*)
-    (draw-a-string gc pnt "text" "Arial" 10 '(:bold) '(:transparent))
-|#
+    (draw-a-string gc pnt "text" "Arial" 12 nil '(:transparent))))
 
 (defun select-text (disp item time rect)
   (declare (ignore disp time rect))

Modified: trunk/src/uitoolkit/graphics/graphics-context.lisp
==============================================================================
--- trunk/src/uitoolkit/graphics/graphics-context.lisp	(original)
+++ trunk/src/uitoolkit/graphics/graphics-context.lisp	Wed Apr 26 11:46:18 2006
@@ -437,7 +437,10 @@
   (if (gfs:disposed-p self)
     (error 'gfs:disposed-error))
   (let ((flags (compute-draw-text-style style))
-        (tb-width (if (null tab-width) 0 tab-width)))
+        (tb-width (if (null tab-width) 0 tab-width))
+        (old-bk-mode (gfs::get-bk-mode (gfs:handle self))))
+    (if (find :transparent style)
+      (gfs::set-bk-mode (gfs:handle self) gfs::+transparent+))
     (cffi:with-foreign-object (dt-ptr 'gfs::drawtextparams)
       (cffi:with-foreign-slots ((gfs::cbsize gfs::tablength gfs::leftmargin gfs::rightmargin)
                                 dt-ptr gfs::drawtextparams)
@@ -461,7 +464,8 @@
                                (length text)
                                rect-ptr
                                flags
-                               dt-ptr)))))))
+                               dt-ptr)
+            (gfs::set-bk-mode (gfs:handle self) old-bk-mode)))))))
 
 (defmethod (setf font) ((font font) (self graphics-context))
   (if (gfs:disposed-p self)

Modified: trunk/src/uitoolkit/system/gdi32.lisp
==============================================================================
--- trunk/src/uitoolkit/system/gdi32.lisp	(original)
+++ trunk/src/uitoolkit/system/gdi32.lisp	Wed Apr 26 11:46:18 2006
@@ -207,6 +207,11 @@
   (hdc HANDLE))
 
 (defcfun
+  ("GetBkMode" get-bk-mode)
+  INT
+  (hdc HANDLE))
+
+(defcfun
   ("GetDCBrushColor" get-dc-brush-color)
   COLORREF
   (hdc HANDLE))
@@ -365,6 +370,12 @@
   (color COLORREF))
 
 (defcfun
+  ("SetBkMode" set-bk-mode)
+  INT
+  (hdc HANDLE)
+  (mode INT))
+
+(defcfun
   ("SetDCBrushColor" set-dc-brush-color)
   COLORREF
   (hdc HANDLE)

Modified: trunk/src/uitoolkit/system/system-constants.lisp
==============================================================================
--- trunk/src/uitoolkit/system/system-constants.lisp	(original)
+++ trunk/src/uitoolkit/system/system-constants.lisp	Wed Apr 26 11:46:18 2006
@@ -926,3 +926,9 @@
 (defconstant +bltalignment+                   119)
 (defconstant +shadeblendcaps+                 120)
 (defconstant +colormgmtcaps+                  121)
+
+;;;
+;;; Background modes (Get/SetBkMode)
+;;;
+(defconstant +transparent+                      1)
+(defconstant +opaque+                           2)



More information about the Graphic-forms-cvs mailing list