[graphic-forms-cvs] r470 - in trunk: docs/manual src/uitoolkit/system src/uitoolkit/widgets

junrue at common-lisp.net junrue at common-lisp.net
Fri Aug 10 04:48:35 UTC 2007


Author: junrue
Date: Fri Aug 10 00:48:34 2007
New Revision: 470

Modified:
   trunk/docs/manual/Makefile
   trunk/docs/manual/symbols.xsl
   trunk/src/uitoolkit/system/user32.lisp
   trunk/src/uitoolkit/widgets/display.lisp
Log:
revised GFW:OBTAIN-PRIMARY-DISPLAY based on Raymon Chen blog entry; minor fixes to ref manual source and makefile

Modified: trunk/docs/manual/Makefile
==============================================================================
--- trunk/docs/manual/Makefile	(original)
+++ trunk/docs/manual/Makefile	Fri Aug 10 00:48:34 2007
@@ -12,7 +12,8 @@
                catalog.xml glossary.xml graphic-forms.xml image-data-plugins.xml  \
                introduction.xml legal.xml protocols.xml miscellaneous-topics.xml
 
-COMMON-DEPS  = symbols.xsl packages.xsl clhs-table.xml win32-api-table.xml
+COMMON-DEPS  = symbols.xsl packages.xsl clhs-table.xml win32-api-table.xml        \
+               packages.xml
 
 GFC-PKG-DEPS = gfc-class-symbols-tmp.xml gfc-function-symbols-tmp.xml gfc-macro-symbols-tmp.xml
 

Modified: trunk/docs/manual/symbols.xsl
==============================================================================
--- trunk/docs/manual/symbols.xsl	(original)
+++ trunk/docs/manual/symbols.xsl	Fri Aug 10 00:48:34 2007
@@ -111,7 +111,7 @@
         </xsl:when>
         <xsl:otherwise>
           <xsl:message terminate="yes">
-            <xsl:text>gf-data.xsl: could not find argument </xsl:text><xsl:value-of select="$index - 1"/>
+            <xsl:text>symbols.xsl: could not find argument </xsl:text><xsl:value-of select="$index - 1"/>
           </xsl:message>
         </xsl:otherwise>
       </xsl:choose>

Modified: trunk/src/uitoolkit/system/user32.lisp
==============================================================================
--- trunk/src/uitoolkit/system/user32.lisp	(original)
+++ trunk/src/uitoolkit/system/user32.lisp	Fri Aug 10 00:48:34 2007
@@ -499,6 +499,13 @@
   (langid  WORD))
 
 (defcfun
+  ("MonitorFromPoint" monitor-from-point)
+  HANDLE
+  (pntx  LONG)
+  (pnty  LONG)
+  (flags DWORD))
+
+(defcfun
   ("MonitorFromWindow" monitor-from-window)
   HANDLE
   (hwnd HANDLE)

Modified: trunk/src/uitoolkit/widgets/display.lisp
==============================================================================
--- trunk/src/uitoolkit/widgets/display.lisp	(original)
+++ trunk/src/uitoolkit/widgets/display.lisp	Fri Aug 10 00:48:34 2007
@@ -52,7 +52,7 @@
           (error 'gfs:win32-warning :detail "get-monitor-info failed"))
         (push (= (logand gfs::flags gfs::+monitorinfoof-primary+) gfs::+monitorinfoof-primary+) info)
         (let ((str-ptr (cffi:foreign-slot-pointer mi-ptr 'gfs::monitorinfoex 'gfs::device)))
-          (push (cffi:foreign-string-to-lisp str-ptr :count (1- gfs::+cchdevicename+)) info))
+          (push (cffi:foreign-string-to-lisp str-ptr (1- gfs::+cchdevicename+)) info))
         (let ((rect-ptr (cffi:foreign-slot-pointer mi-ptr 'gfs::monitorinfoex 'gfs::monitor)))
           (cffi:with-foreign-slots ((gfs::left gfs::top gfs::right gfs::bottom)
                                     rect-ptr gfs::rect)
@@ -88,8 +88,14 @@
                  (push (make-instance 'display :handle hmonitor)
                        (display-visitor-results (thread-context))))))
 
+(declaim (inline obtain-primary-display))
 (defun obtain-primary-display ()
-  (find-if #'primary-p (obtain-displays)))
+  ;; In http://blogs.msdn.com/oldnewthing/archive/2007/08/09/4300545.aspx
+  ;; Raymond Chen recommends the following technique for obtaining the
+  ;; primary display.
+  ;;
+  (make-instance 'display
+                 :handle (gfs::monitor-from-point 0 0 gfs::+monitor-defaulttoprimary+)))
 
 (cffi:defcallback (top-level-window-visitor :cconv :stdcall) gfs::BOOL
     ((hwnd :pointer) (lparam gfs::LPARAM))



More information about the Graphic-forms-cvs mailing list