[graphic-forms-cvs] r163 - in trunk: . docs/manual src/uitoolkit/system src/uitoolkit/widgets
junrue at common-lisp.net
junrue at common-lisp.net
Mon Jun 26 22:28:52 UTC 2006
Author: junrue
Date: Mon Jun 26 18:28:49 2006
New Revision: 163
Added:
trunk/src/uitoolkit/system/comctl32.lisp
trunk/src/uitoolkit/widgets/edit.lisp
Modified:
trunk/docs/manual/api.texinfo
trunk/graphic-forms-uitoolkit.asd
trunk/src/uitoolkit/system/system-constants.lisp
trunk/src/uitoolkit/system/system-types.lisp
trunk/src/uitoolkit/widgets/button.lisp
trunk/src/uitoolkit/widgets/label.lisp
trunk/src/uitoolkit/widgets/panel.lisp
trunk/src/uitoolkit/widgets/widget-classes.lisp
trunk/src/uitoolkit/widgets/widget-constants.lisp
trunk/src/uitoolkit/widgets/widget-generics.lisp
Log:
preparation for implementing edit control
Modified: trunk/docs/manual/api.texinfo
==============================================================================
--- trunk/docs/manual/api.texinfo (original)
+++ trunk/docs/manual/api.texinfo Mon Jun 26 18:28:49 2006
@@ -280,6 +280,55 @@
derives from @ref{native-object}.
@end deftp
+ at anchor{edit}
+ at deftp Class edit
+This subclass of @ref{control} represents a rectangular area that
+permits the user to enter and edit text. The @ref{event-focus-gain}
+and @ref{event-focus-loss} methods of each @code{edit control}'s
+ at ref{event-dispatcher} are invoked when focus is given or taken
+away. The @ref{event-modify} method is invoked when the user edits
+content.
+ at deffn Initarg :style
+ at table @code
+ at item :auto-hscroll
+Specifies that the @code{edit control} will scroll text content to the
+right by 10 characters when the user types a character at the end
+of the line.
+ at item :auto-vscroll
+Specifies that the @code{edit control} will scroll text up by a page
+when the user types @sc{enter} on the last line. This style keyword
+is only meaningful when @code{:multi-line} is also specified.
+ at item :mask-characters
+Specifies that each character of text be masked by an echo character
+instead of the one literally typed. The character can be changed via
+the @ref{echo-character} @sc{setf} method.
+ at item :multi-line
+By default, @code{edit control}s are single-line text fields. By specifying
+ at code{:multi-line}, multiple lines of text can be supplied. When the
+ at code{edit control} is in a @ref{dialog}, the @sc{enter} key will invoke
+the default @ref{button}'s @ref{event-dispatcher}, unless
+ at code{:want-return} is also specified. If @code{:auto-hscroll} is not
+specified, then text will be automatically word-wrapped.
+ at item :no-border
+By default, an @code{edit control} is rendered with a border; this style
+keyword disables that feature.
+ at item :no-hide-selection
+This specifies that any selection remain rendered even when the
+ at code{edit control} loses input focus. By default, the selection
+is hidden when focus is lost.
+ at item :read-only
+Specifies that the @code{edit control}'s contents cannot be modified by
+the user.
+ at item :want-return
+Specifies that a carriage return be inserted when the user types
+ at sc{enter}. This style keyword only applies when the @code{:multi-line}
+style is also specified. Without this style, within a dialog the
+act of typing @sc{enter} has the same effect as pressing the dialog's
+default button.
+ at end table
+ at end deffn
+ at end deftp
+
@anchor{event-dispatcher}
@deftp Class event-dispatcher
This is the base class of objects responsible for processing events on
@@ -732,6 +781,12 @@
Implement this to respond to a key up event.
@end deffn
+ at anchor{event-modify}
+ at deffn GenericFunction event-modify dispatcher widget time
+Implement this to respond to changes within a @ref{widget}, for example
+when the user types text inside an @ref{edit} control.
+ at end deffn
+
@deffn GenericFunction event-mouse-double dispatcher widget time point button
Implement this to respond to a mouse double-click.
@end deffn
@@ -883,6 +938,14 @@
from display-relative coordinates to this object's coordinate system.
@end deffn
+ at anchor{echo-character}
+ at deffn GenericFunction echo-character self => character
+Returns the character currently set to be used to mask text content,
+such as inside an @ref{edit} control created with the @code{:password}
+style keyword, or @sc{nil} if none has been set. The corresponding
+ at sc{setf} function sets this value.
+ at end deffn
+
@anchor{enable}
@deffn GenericFunction enable self flag
For widgets, this function enables or disables the object, causing it
Modified: trunk/graphic-forms-uitoolkit.asd
==============================================================================
--- trunk/graphic-forms-uitoolkit.asd (original)
+++ trunk/graphic-forms-uitoolkit.asd Mon Jun 26 18:28:49 2006
@@ -60,6 +60,7 @@
(:file "datastructs")
(:file "clib")
(:file "comdlg32")
+ (:file "comctl32")
(:file "gdi32")
(:file "kernel32")
(:file "user32")
@@ -98,6 +99,7 @@
(:file "item")
(:file "widget")
(:file "control")
+ (:file "edit")
(:file "label")
(:file "button")
(:file "widget-with-items")
Added: trunk/src/uitoolkit/system/comctl32.lisp
==============================================================================
--- (empty file)
+++ trunk/src/uitoolkit/system/comctl32.lisp Mon Jun 26 18:28:49 2006
@@ -0,0 +1,44 @@
+;;;;
+;;;; comctl32.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 "comctl32.dll")
+
+(defcfun
+ ("InitCommonControlsEx" init-common-controls)
+ BOOL
+ (init LPTR))
Modified: trunk/src/uitoolkit/system/system-constants.lisp
==============================================================================
--- trunk/src/uitoolkit/system/system-constants.lisp (original)
+++ trunk/src/uitoolkit/system/system-constants.lisp Mon Jun 26 18:28:49 2006
@@ -230,6 +230,21 @@
(defconstant +dt-hideprefix+ #x00100000)
(defconstant +dt-prefixonly+ #x00200000)
+(defconstant +es-left+ #x0000)
+(defconstant +es-center+ #x0001)
+(defconstant +es-right+ #x0002)
+(defconstant +es-multiline+ #x0004)
+(defconstant +es-uppercase+ #x0008)
+(defconstant +es-lowercase+ #x0010)
+(defconstant +es-password+ #x0020)
+(defconstant +es-autovscroll+ #x0040)
+(defconstant +es-autohscroll+ #x0080)
+(defconstant +es-nohidesel+ #x0100)
+(defconstant +es-oemconvert+ #x0400)
+(defconstant +es-readonly+ #x0800)
+(defconstant +es-wantreturn+ #x1000)
+(defconstant +es-number+ #x2000)
+
(defconstant +eto-opaque+ #x0002)
(defconstant +eto-clipped+ #x0004)
(defconstant +eto-glyph-index+ #x0010)
@@ -303,6 +318,24 @@
(defconstant +hs-cross+ 4)
(defconstant +hs-diagcross+ 5)
+(defconstant +icc-listview-classes+ #x00000001)
+(defconstant +icc-treeview-classes+ #x00000002)
+(defconstant +icc-bar-classes+ #x00000004)
+(defconstant +icc-tab-classes+ #x00000008)
+(defconstant +icc-updown-class+ #x00000010)
+(defconstant +icc-progress-class+ #x00000020)
+(defconstant +icc-hotkey-class+ #x00000040)
+(defconstant +icc-animate-class+ #x00000080)
+(defconstant +icc-win95-classes+ #x000000FF)
+(defconstant +icc-date-classes+ #x00000100)
+(defconstant +icc-userex-classes+ #x00000200)
+(defconstant +icc-cool-classes+ #x00000400)
+(defconstant +icc-internet-classes+ #x00000800)
+(defconstant +icc-pagescroller-class+ #x00001000)
+(defconstant +icc-nativefntctl-class+ #x00002000)
+(defconstant +icc-standard-classes+ #x00004000)
+(defconstant +icc-link-class+ #x00008000)
+
(defconstant +idok+ 1)
(defconstant +idcancel+ 2)
(defconstant +idabort+ 3)
Modified: trunk/src/uitoolkit/system/system-types.lisp
==============================================================================
--- trunk/src/uitoolkit/system/system-types.lisp (original)
+++ trunk/src/uitoolkit/system/system-types.lisp Mon Jun 26 18:28:49 2006
@@ -121,6 +121,10 @@
(rightmargin INT)
(lengthdrawn UINT))
+(defcstruct initcommoncontrolsex
+ (size DWORD)
+ (icc DWORD))
+
(defcstruct logbrush
(style UINT)
(color COLORREF)
Modified: trunk/src/uitoolkit/widgets/button.lisp
==============================================================================
--- trunk/src/uitoolkit/widgets/button.lisp (original)
+++ trunk/src/uitoolkit/widgets/button.lisp Mon Jun 26 18:28:49 2006
@@ -42,9 +42,9 @@
(defmethod compute-style-flags ((btn button) &rest extra-data)
(declare (ignore extra-data))
- (let ((std-flags (logior gfs::+ws-child+ gfs::+ws-visible+))
+ (let ((std-flags +default-child-style+)
(style (style-of btn)))
- (loop for sym in (style-of btn)
+ (loop for sym in style
do (cond
;; primary button styles
;;
Added: trunk/src/uitoolkit/widgets/edit.lisp
==============================================================================
--- (empty file)
+++ trunk/src/uitoolkit/widgets/edit.lisp Mon Jun 26 18:28:49 2006
@@ -0,0 +1,62 @@
+;;;;
+;;;; edit.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.widgets)
+
+;;;
+;;; methods
+;;;
+
+(defmethod compute-style-flags ((self edit) &rest extra-data)
+ (declare (ignore extra-data))
+ (let ((border-flag (if (find :no-border (style-of self)) 0 gfs::+ws-border+)))
+ (values (loop for sym in (style-of self)
+ for std-flags = (logior +default-child-style+ border-flag)
+ then (logior std-flags
+ (ecase sym
+ ;; primary edit styles
+ ;;
+ (:multi-line (logior +default-child-style+
+ gfs::+es-multiline+
+ border-flag))
+
+ ;; styles that can be combined
+ ;;
+ (:auto-hscroll gfs::+es-autohscroll+)
+ (:auto-vscroll gfs::+es-autovscroll+)
+ (:mask-characters gfs::+es-password+)
+ (:no-hide-selection gfs::+es-nohidesel+)
+ (:read-only gfs::+es-readonly+)
+ (:want-return gfs::+es-wantreturn+)))
+ finally (return std-flags))
+ 0)))
Modified: trunk/src/uitoolkit/widgets/label.lisp
==============================================================================
--- trunk/src/uitoolkit/widgets/label.lisp (original)
+++ trunk/src/uitoolkit/widgets/label.lisp Mon Jun 26 18:28:49 2006
@@ -94,8 +94,7 @@
(defmethod compute-style-flags ((label label) &rest extra-data)
(if (> (count-if-not #'null extra-data) 1)
(error 'gfs:toolkit-error :detail "only one of :image, :separator, or :text are allowed"))
- (let ((std-style (logior gfs::+ws-child+
- gfs::+ws-visible+
+ (let ((std-style (logior +default-child-style+
(cond
((first extra-data)
(compute-image-style-flags (style-of label)))
@@ -126,8 +125,7 @@
gfs::+ss-bitmap+
gfs::+ss-realsizeimage+
gfs::+ss-centerimage+
- gfs::+ws-child+
- gfs::+ws-visible+))
+ +default-child-style+))
(tr-pnt (gfg:transparency-pixel-of image)))
(if tr-pnt
(let* ((color (gfg:background-color label))
@@ -206,8 +204,7 @@
(declare (ignore ex-flags))
(gfs::set-window-long hwnd gfs::+gwl-style+ (logior etch-flags
std-flags
- gfs::+ws-child+
- gfs::+ws-visible+))))
+ +default-child-style+))))
(set-widget-text self str))
(defmethod text-baseline ((self label))
Modified: trunk/src/uitoolkit/widgets/panel.lisp
==============================================================================
--- trunk/src/uitoolkit/widgets/panel.lisp (original)
+++ trunk/src/uitoolkit/widgets/panel.lisp Mon Jun 26 18:28:49 2006
@@ -55,7 +55,7 @@
(defmethod compute-style-flags ((self panel) &rest extra-data)
(declare (ignore extra-data))
- (let ((std-flags (logior gfs::+ws-child+ gfs::+ws-visible+)))
+ (let ((std-flags +default-child-style+))
(mapc #'(lambda (sym)
(cond
;; styles that can be combined
Modified: trunk/src/uitoolkit/widgets/widget-classes.lisp
==============================================================================
--- trunk/src/uitoolkit/widgets/widget-classes.lisp (original)
+++ trunk/src/uitoolkit/widgets/widget-classes.lisp Mon Jun 26 18:28:49 2006
@@ -118,6 +118,9 @@
(defclass button (control) ()
(:documentation "This class represents selectable controls that issue notifications when clicked."))
+(defclass edit (control) ()
+ (:documentation "This class represents a control in which the user may enter and edit text."))
+
(defclass label (control) ()
(:documentation "This class represents non-selectable controls that display a string or image."))
Modified: trunk/src/uitoolkit/widgets/widget-constants.lisp
==============================================================================
--- trunk/src/uitoolkit/widgets/widget-constants.lisp (original)
+++ trunk/src/uitoolkit/widgets/widget-constants.lisp Mon Jun 26 18:28:49 2006
@@ -33,63 +33,66 @@
(in-package :graphic-forms.uitoolkit.widgets)
-(defconstant +vk-break+ #x03)
-(defconstant +vk-backspace+ #x08)
-(defconstant +vk-tab+ #x09)
-(defconstant +vk-clear+ #x0C) ; numpad-5 when numlock off
-(defconstant +vk-return+ #x0D)
-(defconstant +vk-shift+ #x10)
-(defconstant +vk-control+ #x11)
-(defconstant +vk-alt+ #x12)
-(defconstant +vk-pause+ #x13)
-(defconstant +vk-caps-lock+ #x14)
-(defconstant +vk-escape+ #x1B)
-(defconstant +vk-page-up+ #x21)
-(defconstant +vk-page-down+ #x22)
-(defconstant +vk-end+ #x23)
-(defconstant +vk-home+ #x24)
-(defconstant +vk-left+ #x25)
-(defconstant +vk-up+ #x26)
-(defconstant +vk-right+ #x27)
-(defconstant +vk-down+ #x28)
-(defconstant +vk-insert+ #x2D)
-(defconstant +vk-delete+ #x2E)
-(defconstant +vk-help+ #x2F)
-(defconstant +vk-left-win+ #x5B)
-(defconstant +vk-right-win+ #x5C)
-(defconstant +vk-applications+ #x5D)
-(defconstant +vk-numpad-0+ #x60)
-(defconstant +vk-numpad-1+ #x61)
-(defconstant +vk-numpad-2+ #x62)
-(defconstant +vk-numpad-3+ #x63)
-(defconstant +vk-numpad-4+ #x64)
-(defconstant +vk-numpad-5+ #x65)
-(defconstant +vk-numpad-6+ #x66)
-(defconstant +vk-numpad-7+ #x67)
-(defconstant +vk-numpad-8+ #x68)
-(defconstant +vk-numpad-9+ #x69)
-(defconstant +vk-numpad-*+ #x6A)
-(defconstant +vk-numpad-++ #x6B)
-(defconstant +vk-numpad--+ #x6D)
-(defconstant +vk-numpad-.+ #x6E)
-(defconstant +vk-numpad-/+ #x6F)
-(defconstant +vk-numpad-f1+ #x70)
-(defconstant +vk-numpad-f2+ #x71)
-(defconstant +vk-numpad-f3+ #x72)
-(defconstant +vk-numpad-f4+ #x73)
-(defconstant +vk-numpad-f5+ #x74)
-(defconstant +vk-numpad-f6+ #x75)
-(defconstant +vk-numpad-f7+ #x76)
-(defconstant +vk-numpad-f8+ #x77)
-(defconstant +vk-numpad-f9+ #x78)
-(defconstant +vk-numpad-f10+ #x79)
-(defconstant +vk-numpad-f11+ #x7A)
-(defconstant +vk-numpad-f12+ #x7B)
-(defconstant +vk-num-lock+ #x90)
-(defconstant +vk-scroll-lock+ #x91)
-(defconstant +vk-left-shift+ #xA0)
-(defconstant +vk-right-shift+ #xA1)
-(defconstant +vk-left-control+ #xA2)
-(defconstant +vk-right-control+ #xA3)
-(defconstant +vk-left-alt+ #xA4)
-(defconstant +vk-right-alt+ #xA5)
+(defconstant +vk-break+ #x03)
+(defconstant +vk-backspace+ #x08)
+(defconstant +vk-tab+ #x09)
+(defconstant +vk-clear+ #x0C) ; numpad-5 when numlock off
+(defconstant +vk-return+ #x0D)
+(defconstant +vk-shift+ #x10)
+(defconstant +vk-control+ #x11)
+(defconstant +vk-alt+ #x12)
+(defconstant +vk-pause+ #x13)
+(defconstant +vk-caps-lock+ #x14)
+(defconstant +vk-escape+ #x1B)
+(defconstant +vk-page-up+ #x21)
+(defconstant +vk-page-down+ #x22)
+(defconstant +vk-end+ #x23)
+(defconstant +vk-home+ #x24)
+(defconstant +vk-left+ #x25)
+(defconstant +vk-up+ #x26)
+(defconstant +vk-right+ #x27)
+(defconstant +vk-down+ #x28)
+(defconstant +vk-insert+ #x2D)
+(defconstant +vk-delete+ #x2E)
+(defconstant +vk-help+ #x2F)
+(defconstant +vk-left-win+ #x5B)
+(defconstant +vk-right-win+ #x5C)
+(defconstant +vk-applications+ #x5D)
+(defconstant +vk-numpad-0+ #x60)
+(defconstant +vk-numpad-1+ #x61)
+(defconstant +vk-numpad-2+ #x62)
+(defconstant +vk-numpad-3+ #x63)
+(defconstant +vk-numpad-4+ #x64)
+(defconstant +vk-numpad-5+ #x65)
+(defconstant +vk-numpad-6+ #x66)
+(defconstant +vk-numpad-7+ #x67)
+(defconstant +vk-numpad-8+ #x68)
+(defconstant +vk-numpad-9+ #x69)
+(defconstant +vk-numpad-*+ #x6A)
+(defconstant +vk-numpad-++ #x6B)
+(defconstant +vk-numpad--+ #x6D)
+(defconstant +vk-numpad-.+ #x6E)
+(defconstant +vk-numpad-/+ #x6F)
+(defconstant +vk-numpad-f1+ #x70)
+(defconstant +vk-numpad-f2+ #x71)
+(defconstant +vk-numpad-f3+ #x72)
+(defconstant +vk-numpad-f4+ #x73)
+(defconstant +vk-numpad-f5+ #x74)
+(defconstant +vk-numpad-f6+ #x75)
+(defconstant +vk-numpad-f7+ #x76)
+(defconstant +vk-numpad-f8+ #x77)
+(defconstant +vk-numpad-f9+ #x78)
+(defconstant +vk-numpad-f10+ #x79)
+(defconstant +vk-numpad-f11+ #x7A)
+(defconstant +vk-numpad-f12+ #x7B)
+(defconstant +vk-num-lock+ #x90)
+(defconstant +vk-scroll-lock+ #x91)
+(defconstant +vk-left-shift+ #xA0)
+(defconstant +vk-right-shift+ #xA1)
+(defconstant +vk-left-control+ #xA2)
+(defconstant +vk-right-control+ #xA3)
+(defconstant +vk-left-alt+ #xA4)
+(defconstant +vk-right-alt+ #xA5)
+
+(eval-when (:compile-toplevel :load-toplevel :execute)
+ (defconstant +default-child-style+ (logior gfs::+ws-child+ gfs::+ws-visible+)))
Modified: trunk/src/uitoolkit/widgets/widget-generics.lisp
==============================================================================
--- trunk/src/uitoolkit/widgets/widget-generics.lisp (original)
+++ trunk/src/uitoolkit/widgets/widget-generics.lisp Mon Jun 26 18:28:49 2006
@@ -129,7 +129,7 @@
(defgeneric display-to-object (self pnt)
(:documentation "Return a point that is the result of transforming the specified point from display-relative coordinates to this object's coordinate system."))
-(defgeneric echo-char (self)
+(defgeneric echo-character (self)
(:documentation "Returns the character that will be displayed when the user types text, or nil if no echo character has been set."))
(defgeneric enable (self flag)
More information about the Graphic-forms-cvs
mailing list