[graphic-forms-cvs] r102 - in trunk: . src/uitoolkit/system
junrue at common-lisp.net
junrue at common-lisp.net
Tue Apr 18 04:51:58 UTC 2006
Author: junrue
Date: Tue Apr 18 00:51:57 2006
New Revision: 102
Added:
trunk/src/uitoolkit/system/comdlg32.lisp
Modified:
trunk/graphic-forms-uitoolkit.asd
trunk/src/uitoolkit/system/system-conditions.lisp
trunk/src/uitoolkit/system/system-types.lisp
Log:
initial infrastructure for open/save dialogs
Modified: trunk/graphic-forms-uitoolkit.asd
==============================================================================
--- trunk/graphic-forms-uitoolkit.asd (original)
+++ trunk/graphic-forms-uitoolkit.asd Tue Apr 18 00:51:57 2006
@@ -59,6 +59,7 @@
(:file "system-types")
(:file "datastructs")
(:file "clib")
+ (:file "comdlg32")
(:file "gdi32")
(:file "kernel32")
(:file "user32")
Added: trunk/src/uitoolkit/system/comdlg32.lisp
==============================================================================
--- (empty file)
+++ trunk/src/uitoolkit/system/comdlg32.lisp Tue Apr 18 00:51:57 2006
@@ -0,0 +1,53 @@
+;;;;
+;;;; comdlg32.lisp
+;;;;
+;;;; Copyright (C) 2006, Jack D. Unrue
+;;;; All rights reserved.
+;;;;
+;;;; Redistribution and use in source and binary forms, with or without
+;;;; modification, are permitted provided that the following conditions
+;;;; are met:
+;;;;
+;;;; 1. Redistributions of source code must retain the above copyright
+;;;; notice, this list of conditions and the following disclaimer.
+;;;;
+;;;; 2. Redistributions in binary form must reproduce the above copyright
+;;;; notice, this list of conditions and the following disclaimer in the
+;;;; documentation and/or other materials provided with the distribution.
+;;;;
+;;;; 3. Neither the names of the authors nor the names of its contributors
+;;;; may be used to endorse or promote products derived from this software
+;;;; without specific prior written permission.
+;;;;
+;;;; THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS "AS IS" AND ANY
+;;;; EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+;;;; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DIS-
+;;;; CLAIMED. IN NO EVENT SHALL THE AUTHORS AND CONTRIBUTORS BE LIABLE FOR ANY
+;;;; DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+;;;; (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+;;;; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+;;;; ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+;;;; (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+;;;; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+;;;;
+
+(in-package :graphic-forms.uitoolkit.system)
+
+(eval-when (:compile-toplevel :load-toplevel :execute)
+ (use-package :cffi))
+
+(load-foreign-library "comdlg32.dll")
+
+(defcfun
+ ("CommDlgExtendedError" comm-dlg-extended-error)
+ DWORD)
+
+(defcfun
+ ("GetOpenFileNameA" get-open-filename)
+ BOOL
+ (ofn LPTR))
+
+(defcfun
+ ("GetSaveFileNameA" get-save-filename)
+ BOOL
+ (ofn LPTR))
Modified: trunk/src/uitoolkit/system/system-conditions.lisp
==============================================================================
--- trunk/src/uitoolkit/system/system-conditions.lisp (original)
+++ trunk/src/uitoolkit/system/system-conditions.lisp Tue Apr 18 00:51:57 2006
@@ -62,3 +62,10 @@
(defmethod print-object ((obj win32-warning) stream)
(print-unreadable-object (obj stream :type t)
(format stream "~s: error code: ~a" (detail obj) (code obj))))
+
+(define-condition comdlg-error (win32-error)
+ ((dlg-code :reader dlg-code :initarg :dlg-code :initform (comm-dlg-extended-error))))
+
+(defmethod print-object ((obj comdlg-error) stream)
+ (print-unreadable-object (obj stream :type t)
+ (format stream "~s: common dialog error code: ~a" (detail obj) (dlg-code obj))))
Modified: trunk/src/uitoolkit/system/system-types.lisp
==============================================================================
--- trunk/src/uitoolkit/system/system-types.lisp (original)
+++ trunk/src/uitoolkit/system/system-types.lisp Tue Apr 18 00:51:57 2006
@@ -208,6 +208,31 @@
(flags DWORD)
(device TCHAR :count 32)) ; CCHDEVICENAME
+(defcstruct openfilename
+ (ofnsize DWORD)
+ (ofnhwnd HANDLE)
+ (ofnhinst HANDLE)
+ (ofnfilter :string)
+ (ofncustomfilter :string)
+ (ofnmaxcustfilter DWORD)
+ (ofnfilterindex DWORD)
+ (ofnfile :string)
+ (ofnmaxfile DWORD)
+ (ofnfiletitle :string)
+ (ofnmaxfiletitle DWORD)
+ (ofninitialdir :string)
+ (ofntitle :string)
+ (ofnflags DWORD)
+ (ofnfileoffset WORD)
+ (ofnfileext WORD)
+ (ofndefext :string)
+ (ofncustdata LPARAM)
+ (ofnhookfn LPTR)
+ (ofntemplname :string)
+ (ofnpvreserved LPTR)
+ (ofndwreserved DWORD)
+ (ofnexflags DWORD))
+
(defcstruct rgbquad
(rgbblue BYTE)
(rgbgreen BYTE)
More information about the Graphic-forms-cvs
mailing list