Author: junrue
Date: Sun Jul 9 02:35:37 2006
New Revision: 186
Modified:
trunk/docs/manual/api.texinfo
trunk/docs/manual/reference.texinfo
trunk/src/demos/textedit/textedit-window.lisp
trunk/src/demos/unblocked/double-buffered-event-dispatcher.lisp
trunk/src/demos/unblocked/tiles-panel.lisp
trunk/src/demos/unblocked/unblocked-window.lisp
trunk/src/packages.lisp
trunk/src/tests/uitoolkit/drawing-tester.lisp
trunk/src/tests/uitoolkit/event-tester.lisp
trunk/src/tests/uitoolkit/hello-world.lisp
trunk/src/tests/uitoolkit/image-tester.lisp
trunk/src/tests/uitoolkit/layout-tester.lisp
trunk/src/tests/uitoolkit/windlg.lisp
trunk/src/uitoolkit/system/system-constants.lisp
trunk/src/uitoolkit/widgets/event-generics.lisp
trunk/src/uitoolkit/widgets/event-source.lisp
trunk/src/uitoolkit/widgets/event.lisp
trunk/src/uitoolkit/widgets/widget.lisp
trunk/src/uitoolkit/widgets/window.lisp
Log:
refactored event-*** functions by removing time argument - call OBTAIN-EVENT-TIME instead now; added type argument to event-activate; significantly enhanced documentation of event functions
Modified: trunk/docs/manual/api.texinfo
==============================================================================
--- trunk/docs/manual/api.texinfo (original)
+++ trunk/docs/manual/api.texinfo Sun Jul 9 02:35:37 2006
@@ -834,112 +834,297 @@
@node event functions
@section event functions
+This chapter documents two types of functions:
+@itemize @bullet
+@item generic functions implemented in order to handle system events
+@item functions provided to help implement application message pumps
+@end itemize
+
@anchor{default-message-filter}
-@deffn Function default-message-filter gm-code msg-ptr
+@defun default-message-filter gm-code msg-ptr
Processes messages for all @ref{window}s, non-modal @ref{dialog}s, and
@ref{control}s. Accelerator keys are also translated by this
function. Returns @sc{nil} so that @ref{message-loop} will continue,
-unless @code{gm-code} is less than or equal to zero, in which case
+unless @var{gm-code} is less than or equal to zero, in which case
@sc{t} is returned so that @ref{message-loop} will exit. When
-@code{gm-code} is zero, @code{msg-ptr} identifies a @sc{WM_QUIT}
-message indicating normal shutdown. If @code{gm-code} is -1, then the
-system has reported an error during message retrieval which should be
-handled by (hopefully) graceful shutdown.
-@end deffn
+@var{gm-code} is zero, @var{msg-ptr} identifies a @sc{WM_QUIT}
+message indicating normal shutdown. If @var{gm-code} is -1, then the
+system has reported an error during message retrieval; in this
+situation, the application should attempt a graceful shutdown.
+@table @var
+@item gm-code
+The code returned by the @code{GetMessage} Win32 @sc{api} call.
+@item msg-ptr
+A pointer to a Win32 @sc{api} @code{MSG} data structure, filled in
+by @code{GetMessage} and containing raw event data to be
+translated and dispatched.
+@end table
+@end defun
-@deffn GenericFunction event-activate dispatcher widget time
-Implement this to respond to an object being activated.
+@deffn GenericFunction event-activate dispatcher widget type
+Implement this method to respond to @var{widget} being activated. For
+a @ref{top-level} @ref{window} or @ref{dialog}, this means that
+@var{widget} was brought to the foreground and its trim (titlebar and
+border) was highlighted to indicate that it is now the active
+window. For a @ref{menu}, it means that the user has clicked on the
+@ref{item} invoking @ref{widget} and it is about to be shown; this is
+an opportunity to update the menu's contents.
+@table @var
+@event-dispatcher-arg
+@item widget
+The menu, dialog, or window that has been activated.
+@item type
+Provides a hint as to how activation occurred, via one of the following
+keywords:
+@table @code
+@item :click
+Indicates that @var{widget} was activated as the result of a mouse click.
+@item :programmatic
+Indicates that @var{widget} was activated as the result of the keyboard
+interface to select a window, or programmatically via a call to
+@sc{activate}.
+@end table
+@end table
@end deffn
-@deffn GenericFunction event-arm dispatcher item time
-Implement this to respond to an object about to be selected.
+@deffn GenericFunction event-arm dispatcher item
+Implement this method to respond to the prior notice of @var{item}
+being selected. Of course, an arm event is not necessarily always
+followed by a selection, such as if the user moves the mouse across
+items on a @ref{menu}.
+@table @var
+@event-dispatcher-arg
+@item item
+The @ref{item} about to be selected.
+@end table
@end deffn
-@deffn GenericFunction event-close dispatcher widget time
-Implement this to respond to an object being closed.
+@deffn GenericFunction event-close dispatcher widget
+Implement this method to respond to @var{widget} being closed by the user.
+Only @ref{dialog}s and @ref{top-level} @ref{window}s receive close
+events.
+@table @var
+@event-dispatcher-arg
+@item widget
+The dialog or window being closed.
+@end table
@end deffn
-@deffn GenericFunction event-dispose dispatcher widget time
-Implement this to respond to an object being disposed (via
-@ref{dispose}, not the garbage collector).
+@deffn GenericFunction event-dispose dispatcher widget
+Implement this method to respond to @var{widget} being disposed (explicitly
+via @ref{dispose}, not collected via the garbage collector). This
+event function is called while the contents of @var{widget} are still
+valid.
+@table @var
+@event-dispatcher-arg
+@item widget
+The @ref{widget} being disposed.
+@end table
@end deffn
@anchor{event-focus-gain}
-@deffn GenericFunction event-focus-gain dispatcher widget time
-Implement this to respond to an object gaining keyboard focus.
+@deffn GenericFunction event-focus-gain dispatcher widget
+Implement this method to respond to @var{widget} gaining keyboard focus.
+@table @var
+@event-dispatcher-arg
+@item widget
+The @ref{widget} gaining keyboard focus.
+@end table
@end deffn
@anchor{event-focus-loss}
-@deffn GenericFunction event-focus-loss dispatcher widget time
-Implement this to respond to an object losing keyboard focus.
+@deffn GenericFunction event-focus-loss dispatcher widget
+Implement this method to respond to @var{widget} losing keyboard focus.
+@table @var
+@event-dispatcher-arg
+@item widget
+The @ref{widget} losing keyboard focus.
+@end table
@end deffn
-@deffn GenericFunction event-key-down dispatcher widget time keycode char
-Implement this to respond to a key down event.
+@deffn GenericFunction event-key-down dispatcher widget keycode char
+Implement this method to respond to a key being pressed within
+@var{widget}.
+@table @var
+@event-dispatcher-arg
+@item widget
+The @ref{widget} in which the key was pressed.
+@item keycode
+The virtual key code of the key that was pressed.
+@item char
+The character value resulting from translation of the virtual key code,
+or @sc{nil} if the key code cannot be translated.
+@end table
@end deffn
-@deffn GenericFunction event-key-up dispatcher widget time keycode char
-Implement this to respond to a key up event.
+@deffn GenericFunction event-key-up dispatcher widget keycode char
+Implement this method to respond to a key being released within @var{widget}.
+@table @var
+@event-dispatcher-arg
+@item widget
+The @ref{widget} in which the key was released.
+@item keycode
+The virtual key code of the key that was released.
+@item char
+The character value resulting from translation of the virtual key code,
+or @sc{nil} if the key code cannot be translated.
+@end table
@end deffn
@anchor{event-modify}
-@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.
+@deffn GenericFunction event-modify dispatcher widget
+Implement this method to respond to changes due to user input within
+@ref{widget}, for example when the user types text inside an
+@ref{edit} @ref{control}.
+@table @var
+@event-dispatcher-arg
+@item widget
+The @ref{widget} that was modified by the user.
+@end table
@end deffn
-@deffn GenericFunction event-mouse-double dispatcher widget time point button
-Implement this to respond to a mouse double-click.
+@deffn GenericFunction event-mouse-double dispatcher widget point button
+Implement this method to respond to a mouse button double-click within @var{widget}.
+@table @var
+@event-dispatcher-arg
+@item widget
+The @ref{widget} inside of which the mouse was double-clicked.
+@event-mouse-point-arg
+@event-mouse-button-arg
+@end table
@end deffn
-@deffn GenericFunction event-mouse-down dispatcher widget time point button
-Implement this to respond to a mouse down event.
+@deffn GenericFunction event-mouse-down dispatcher widget point button
+Implement this method to respond to a mouse button click within @var{widget}.
+@table @var
+@event-dispatcher-arg
+@item widget
+The @ref{widget} inside of which the mouse was clicked.
+@event-mouse-point-arg
+@event-mouse-button-arg
+@end table
@end deffn
-@deffn GenericFunction event-mouse-move dispatcher widget time point button
-Implement this to respond to a mouse move event.
+@deffn GenericFunction event-mouse-move dispatcher widget point button
+Implement this method to respond to a mouse move event within @var{widget}.
+@table @var
+@event-dispatcher-arg
+@item widget
+The @ref{widget} inside of which the mouse was moved.
+@event-mouse-point-arg
+@event-mouse-button-arg
+@end table
@end deffn
-@deffn GenericFunction event-mouse-up dispatcher widget time point button
-Implement this to respond to a mouse up event.
+@deffn GenericFunction event-mouse-up dispatcher widget point button
+Implement this method to respond to a mouse button being released within
+@var{widget}.
+@table @var
+@event-dispatcher-arg
+@item widget
+The @ref{widget} inside of which the mouse button was released.
+@event-mouse-point-arg
+@event-mouse-button-arg
+@end table
@end deffn
-@deffn GenericFunction event-move dispatcher widget time point
-Implement this to respond to an object being moved within its parent's
-coordinate system.
+@deffn GenericFunction event-move dispatcher widget point
+Implement this method to respond to @var{widget} being moved within its
+@ref{parent}'s coordinate system.
+@table @var
+@event-dispatcher-arg
+@item widget
+The @ref{widget} being moved.
+@item point
+The destination @ref{point} to which @var{widget} was moved.
+@end table
@end deffn
@anchor{event-paint}
-@deffn GenericFunction event-paint dispatcher widget time gc rect
-Implement this to respond to paint requests.
+@deffn GenericFunction event-paint dispatcher widget gc rect
+Implement this method to respond to system requests to repaint @var{widget}.
+@table @var
+@event-dispatcher-arg
+@item widget
+The @ref{widget} whose contents need to be repainted.
+@item gc
+A @ref{graphics-context} initialized for use during this paint event and
+which will be @ref{dispose}d after this method returns.
+@item rect
+The specific @ref{rectangle} within @var{widget} needing to be repainted.
+@end table
@end deffn
-@deffn GenericFunction event-resize dispatcher widget time size type
-Implement this to respond to an object being resized.
+@deffn GenericFunction event-resize dispatcher widget size type
+Implement this method to respond to @var{widget} being resized.
+@table @var
+@event-dispatcher-arg
+@item widget
+The @ref{widget} whose dimensions are being changed.
+@item size
+A @ref{size} object describing @var{widget}'s new dimensions.
+@item type
+Identifies three different kinds of resizing actions:
+@table @code
+@item :maximized
+Indicates that @var{widget} was expanded to its maximum size, such as
+when the user clicks on the maximize button in a @ref{window} frame.
+@item :minimized
+Indicates that @var{widget} was minimized to the taskbar.
+@item :restored
+Indicates that @var{widget} was either restored from a minimized
+state, or that resizing occurred while @var{widget} was already
+in a visible, non-maximized state.
+@end table
+@end table
@end deffn
@anchor{event-select}
-@deffn GenericFunction event-select dispatcher item time rect
-Implement this to respond to an object (or item within) being selected.
+@deffn GenericFunction event-select dispatcher widget rect
+Implement this method to handle notification that @var{widget} (or some
+@ref{item} within @var{widget}) has been clicked on by the user in order
+to invoke some action.
+@table @var
+@event-dispatcher-arg
+@item widget
+The @ref{widget} (or item) that was selected.
+@item rect
+The @ref{rectangle} bounding @var{widget}.
+@end table
@end deffn
@anchor{event-timer}
-@deffn GenericFunction event-timer dispatcher timer time
-Implement this to respond to a tick from a specific timer.
+@deffn GenericFunction event-timer dispatcher timer
+Implement this method to respond to expiration of the current
+delay configured for @var{timer}.
+@table @var
+@event-dispatcher-arg
+@item timer
+The @ref{timer} that generated this event.
+@end table
@end deffn
@anchor{message-loop}
-@deffn Function message-loop msg-filter
+@defun message-loop msg-filter
This function retrieves messages from the system with the intent of
-passing each one to the function specified by @code{msg-filter} so
+passing each one to the function specified by @var{msg-filter} so
that it may be translated and dispatched. The return value of the
-@code{msg-filter} function determines whether @code{message-loop}
-continues or returns, and this termination condition depends on the
-context of the message loop being executed. The return value is
-@sc{nil} if @code{message-loop} should continue, or not @sc{nil} if
-the loop should exit. The pre-defined implementation
-@ref{default-message-filter} is provided.
-@end deffn
+@var{msg-filter} function determines whether @code{message-loop}
+continues or returns. The return value must be @sc{nil} if
+@code{message-loop} should continue, or not @sc{nil} if the
+loop should exit.
+@table @var
+@item msg-filter
+A @sc{function} object; see @ref{default-message-filter} for more
+details.
+@end table
+@end defun
+
+@anchor{obtain-event-time}
+@defun obtain-event-time => milliseconds
+Returns the timestamp for the event currently being processed, or
+zero if called prior to the delivery of any events.
+@end defun
@node widget functions
Modified: trunk/docs/manual/reference.texinfo
==============================================================================
--- trunk/docs/manual/reference.texinfo (original)
+++ trunk/docs/manual/reference.texinfo Sun Jul 9 02:35:37 2006
@@ -75,6 +75,31 @@
@end quotation
@end macro
+@macro event-dispatcher-arg
+@item dispatcher
+The @ref{event-dispatcher} to process this event.
+@end macro
+
+@macro event-mouse-button-arg
+@item button
+A keyword identifying which mouse button was used:
+@table @code
+@item :left-button
+@item :middle-button
+@item :right-button
+@end table
+@end macro
+
+@macro event-mouse-point-arg
+@item point
+The @ref{point} location of the mouse cursor.
+@end macro
+
+@macro event-time-arg
+@item time
+This event's timestamp in milliseconds.
+@end macro
+
@c Info "requires" that x-refs end in a period or comma, or ) in the
@c case of @pxref. So the following implements that requirement for
@c the "See also" subheadings that permeate this manual, but only in
Modified: trunk/src/demos/textedit/textedit-window.lisp
==============================================================================
--- trunk/src/demos/textedit/textedit-window.lisp (original)
+++ trunk/src/demos/textedit/textedit-window.lisp Sun Jul 9 02:35:37 2006
@@ -40,19 +40,19 @@
(defvar *textedit-file-filters* '(("Text Files (*.txt)" . "*.txt")
("All Files (*.*)" . "*.*")))
-(defun manage-textedit-file-menu (disp menu time)
- (declare (ignore disp time))
+(defun manage-textedit-file-menu (disp menu type)
+ (declare (ignore disp type))
(gfw:enable (elt (gfw:items menu) 2) (gfw:text-modified-p *textedit-control*)))
-(defun textedit-file-new (disp item time rect)
- (declare (ignore disp item time rect))
+(defun textedit-file-new (disp item rect)
+ (declare (ignore disp item rect))
(when *textedit-control*
(setf (gfw:text *textedit-control*) "")
(setf (gfw:text-modified-p *textedit-control*) nil)
(setf (file-path *textedit-model*) nil)))
-(defun textedit-file-open (disp item time rect)
- (declare (ignore disp item time rect))
+(defun textedit-file-open (disp item rect)
+ (declare (ignore disp item rect))
(gfw:with-file-dialog (*textedit-win*
'(:open :add-to-recent :path-must-exist)
paths
@@ -61,14 +61,14 @@
(load-textedit-doc (first paths))
(setf (file-path *textedit-model*) (namestring (first paths))))))
-(defun textedit-file-save (disp item time rect)
+(defun textedit-file-save (disp item rect)
(if (file-path *textedit-model*)
(save-textedit-doc (file-path *textedit-model*) (gfw:text *textedit-control*))
- (textedit-file-save-as disp item time rect))
+ (textedit-file-save-as disp item rect))
(setf (gfw:text-modified-p *textedit-control*) nil))
-(defun textedit-file-save-as (disp item time rect)
- (declare (ignore disp item time rect))
+(defun textedit-file-save-as (disp item rect)
+ (declare (ignore disp item rect))
(gfw:with-file-dialog (*textedit-win*
'(:save :add-to-recent)
paths
@@ -79,15 +79,15 @@
(setf (file-path *textedit-model*) (namestring (first paths)))
(setf (gfw:text-modified-p *textedit-control*) nil))))
-(defun textedit-file-quit (disp item time rect)
- (declare (ignore disp item time rect))
+(defun textedit-file-quit (disp item rect)
+ (declare (ignore disp item rect))
(setf *textedit-control* nil)
(gfs:dispose *textedit-win*)
(setf *textedit-win* nil)
(gfw:shutdown 0))
-(defun textedit-font (disp item time rect)
- (declare (ignore disp item time rect))
+(defun textedit-font (disp item rect)
+ (declare (ignore disp item rect))
(gfw:with-graphics-context (gc *textedit-control*)
(gfw:with-font-dialog (*textedit-win* '(:no-effects) font color :gc gc :initial-font (gfg:font *textedit-control*))
(if font
@@ -95,24 +95,23 @@
(defclass textedit-win-events (gfw:event-dispatcher) ())
-(defmethod gfw:event-close ((disp textedit-win-events) window time)
- (declare (ignore window time))
- (textedit-file-quit disp nil nil nil))
+(defmethod gfw:event-close ((disp textedit-win-events) window)
+ (declare (ignore window))
+ (textedit-file-quit disp nil nil))
-(defmethod gfw:event-focus-gain ((self textedit-win-events) window time)
- (declare (ignore window time))
+(defmethod gfw:event-focus-gain ((self textedit-win-events) window)
+ (declare (ignore window))
(if *textedit-control*
(gfw:give-focus *textedit-control*)))
(defclass textedit-about-dialog-events (gfw:event-dispatcher) ())
-(defmethod gfw:event-close ((disp textedit-about-dialog-events) (dlg gfw:dialog) time)
- (declare (ignore time))
+(defmethod gfw:event-close ((disp textedit-about-dialog-events) (dlg gfw:dialog))
(call-next-method)
(gfs:dispose dlg))
-(defun about-textedit (disp item time rect)
- (declare (ignore disp item time rect))
+(defun about-textedit (disp item rect)
+ (declare (ignore disp item rect))
(let* ((image (make-instance 'gfg:image :file (merge-pathnames "src/demos/textedit/about.bmp" *textedit-startup-dir*)))
(dlg (make-instance 'gfw:dialog :owner *textedit-win*
:dispatcher (make-instance 'textedit-about-dialog-events)
@@ -153,8 +152,8 @@
:spacing 0
:style '(:vertical :normalize))))
(close-btn (make-instance 'gfw:button
- :callback (lambda (disp btn time rect)
- (declare (ignore disp btn time rect))
+ :callback (lambda (disp btn rect)
+ (declare (ignore disp btn rect))
(gfs:dispose dlg))
:style '(:cancel-button)
:text "Close"
Modified: trunk/src/demos/unblocked/double-buffered-event-dispatcher.lisp
==============================================================================
--- trunk/src/demos/unblocked/double-buffered-event-dispatcher.lisp (original)
+++ trunk/src/demos/unblocked/double-buffered-event-dispatcher.lisp Sun Jul 9 02:35:37 2006
@@ -60,6 +60,6 @@
(defmethod initialize-instance :after ((self double-buffered-event-dispatcher) &key buffer-size)
(setf (image-buffer-of self) (make-instance 'gfg:image :size buffer-size)))
-(defmethod gfw:event-paint ((self double-buffered-event-dispatcher) window time gc rect)
- (declare (ignore window time rect))
+(defmethod gfw:event-paint ((self double-buffered-event-dispatcher) window gc rect)
+ (declare (ignore window rect))
(gfg:draw-image gc (image-buffer-of self) (gfs:make-point)))
Modified: trunk/src/demos/unblocked/tiles-panel.lisp
==============================================================================
--- trunk/src/demos/unblocked/tiles-panel.lisp (original)
+++ trunk/src/demos/unblocked/tiles-panel.lisp Sun Jul 9 02:35:37 2006
@@ -94,8 +94,7 @@
(setf (gethash kind table) image)
(incf kind)))))
-(defmethod gfw:event-mouse-down ((self tiles-panel-events) panel time point button)
- (declare (ignore time))
+(defmethod gfw:event-mouse-down ((self tiles-panel-events) panel point button)
(let* ((tiles (game-tiles))
(tile-pnt (window->tiles point))
(tile-kind (obtain-tile tiles tile-pnt))
@@ -114,8 +113,7 @@
(setf (shape-pnts-of self) (shape-tile-points tmp-table))
(draw-tiles-directly panel (shape-pnts-of self) +max-tile-kinds+))))
-(defmethod gfw:event-mouse-up ((self tiles-panel-events) panel time point button)
- (declare (ignore time))
+(defmethod gfw:event-mouse-up ((self tiles-panel-events) panel point button)
(gfw:release-mouse)
(let ((tile-pnt (window->tiles point))
(shape-pnts (shape-pnts-of self)))
Modified: trunk/src/demos/unblocked/unblocked-window.lisp
==============================================================================
--- trunk/src/demos/unblocked/unblocked-window.lisp (original)
+++ trunk/src/demos/unblocked/unblocked-window.lisp Sun Jul 9 02:35:37 2006
@@ -52,14 +52,14 @@
(defun get-scoreboard-panel ()
*scoreboard-panel*)
-(defun new-unblocked (disp item time rect)
- (declare (ignore disp item time rect))
+(defun new-unblocked (disp item rect)
+ (declare (ignore disp item rect))
(new-game)
(update-panel *scoreboard-panel*)
(update-panel *tiles-panel*))
-(defun restart-unblocked (disp item time rect)
- (declare (ignore disp item time rect))
+(defun restart-unblocked (disp item rect)
+ (declare (ignore disp item rect))
(restart-game)
(update-panel *scoreboard-panel*)
(update-panel *tiles-panel*))
@@ -69,8 +69,8 @@
(kind (shape-kind shape)))
(and (> size 1) (/= kind 0) (/= kind +max-tile-kinds+))))
-(defun reveal-unblocked (disp item time rect)
- (declare (ignore disp item time rect))
+(defun reveal-unblocked (disp item rect)
+ (declare (ignore disp item rect))
(let ((shape (find-shape (game-tiles) #'accept-shape-p)))
(when shape
(let ((shape-pnts (shape-tile-points shape))
@@ -80,8 +80,8 @@
(draw-tiles-directly *tiles-panel* shape-pnts +max-tile-kinds+)
(gfw:enable timer t)))))
-(defun quit-unblocked (disp item time rect)
- (declare (ignore disp item time rect))
+(defun quit-unblocked (disp item rect)
+ (declare (ignore disp item rect))
(setf *scoreboard-panel* nil)
(setf *tiles-panel* nil)
(gfs:dispose *unblocked-win*)
@@ -90,23 +90,22 @@
(defclass unblocked-win-events (gfw:event-dispatcher) ())
-(defmethod gfw:event-close ((disp unblocked-win-events) window time)
- (declare (ignore window time))
- (quit-unblocked disp nil nil nil))
+(defmethod gfw:event-close ((disp unblocked-win-events) window)
+ (declare (ignore window))
+ (quit-unblocked disp nil nil))
-(defmethod gfw:event-timer ((disp unblocked-win-events) timer time)
- (declare (ignore timer time))
+(defmethod gfw:event-timer ((disp unblocked-win-events) timer)
+ (declare (ignore timer))
(update-panel *tiles-panel*))
(defclass unblocked-about-dialog-events (gfw:event-dispatcher) ())
-(defmethod gfw:event-close ((disp unblocked-about-dialog-events) (dlg gfw:dialog) time)
- (declare (ignore time))
+(defmethod gfw:event-close ((disp unblocked-about-dialog-events) (dlg gfw:dialog))
(call-next-method)
(gfs:dispose dlg))
-(defun about-unblocked (disp item time rect)
- (declare (ignore disp item time rect))
+(defun about-unblocked (disp item rect)
+ (declare (ignore disp item rect))
(let* ((image (make-instance 'gfg:image :file (merge-pathnames "src/demos/unblocked/about.bmp" *unblocked-startup-dir*)))
(dlg (make-instance 'gfw:dialog :owner *unblocked-win*
:dispatcher (make-instance 'unblocked-about-dialog-events)
@@ -147,8 +146,8 @@
:spacing 0
:style '(:vertical :normalize))))
(close-btn (make-instance 'gfw:button
- :callback (lambda (disp btn time rect)
- (declare (ignore disp btn time rect))
+ :callback (lambda (disp btn rect)
+ (declare (ignore disp btn rect))
(gfs:dispose dlg))
:style '(:cancel-button)
:text "Close"
@@ -204,7 +203,7 @@
(setf (gfw:minimum-size *unblocked-win*) size)
(setf (gfw:maximum-size *unblocked-win*) size))
- (new-unblocked nil nil nil nil)
+ (new-unblocked nil nil nil)
(gfw:show *unblocked-win* t)))
(defun unblocked ()
Modified: trunk/src/packages.lisp
==============================================================================
--- trunk/src/packages.lisp (original)
+++ trunk/src/packages.lisp Sun Jul 9 02:35:37 2006
@@ -441,6 +441,7 @@
#:moveable-p
#:object-to-display
#:obtain-displays
+ #:obtain-event-time
#:obtain-primary-display
#:owner
#:pack
Modified: trunk/src/tests/uitoolkit/drawing-tester.lisp
==============================================================================
--- trunk/src/tests/uitoolkit/drawing-tester.lisp (original)
+++ trunk/src/tests/uitoolkit/drawing-tester.lisp Sun Jul 9 02:35:37 2006
@@ -42,16 +42,16 @@
(gfw:check *last-checked-drawing-item* nil))
(gfw:check item t))
-(defun find-checked-item (disp menu time)
- (declare (ignore disp time))
+(defun find-checked-item (disp menu type)
+ (declare (ignore disp type))
(dotimes (i (length (gfw:items menu)))
(let ((item (elt (gfw:items menu) i)))
(when (gfw:checked-p item)
(setf *last-checked-drawing-item* item)
(return)))))
-(defun drawing-exit-fn (disp item time rect)
- (declare (ignore disp item time rect))
+(defun drawing-exit-fn (disp item rect)
+ (declare (ignore disp item rect))
(gfs:dispose *drawing-win*)
(setf *drawing-win* nil)
(gfw:shutdown 0))
@@ -61,12 +61,12 @@
:accessor draw-func-of
:initform nil)))
-(defmethod gfw:event-close ((self drawing-win-events) window time)
- (declare (ignore window time))
- (drawing-exit-fn self nil nil 0))
+(defmethod gfw:event-close ((self drawing-win-events) window)
+ (declare (ignore window))
+ (drawing-exit-fn self nil nil))
-(defmethod gfw:event-paint ((self drawing-win-events) window time gc rect)
- (declare (ignore time rect))
+(defmethod gfw:event-paint ((self drawing-win-events) window gc rect)
+ (declare (ignore rect))
(setf (gfg:background-color gc) gfg:*color-white*)
(setf (gfg:foreground-color gc) gfg:*color-white*)
(gfg:draw-filled-rectangle gc (gfs:make-rectangle :size (gfw:client-size window)))
@@ -162,8 +162,8 @@
(setf rect (gfs:make-rectangle :location (clone-point rect-pnt) :size rect-size))
(draw-rect-start-end gc rect (clone-point start-pnt) (clone-point end-pnt) delta-x #'gfg:draw-arc nil)))
-(defun select-arcs (disp item time rect)
- (declare (ignore disp time rect))
+(defun select-arcs (disp item rect)
+ (declare (ignore disp rect))
(update-drawing-item-check item)
(setf (draw-func-of *drawing-dispatcher*) #'draw-arcs)
(gfw:redraw *drawing-win*))
@@ -185,8 +185,8 @@
(setf (gfg:pen-style gc) '(:dot :square-endcap))
(gfg:draw-poly-bezier gc (gfs:make-point :x 10 :y 110) poly-pnts))))
-(defun select-beziers (disp item time rect)
- (declare (ignore disp time rect))
+(defun select-beziers (disp item rect)
+ (declare (ignore disp rect))
(update-drawing-item-check item)
(setf (draw-func-of *drawing-dispatcher*) #'draw-beziers)
(gfw:redraw *drawing-win*))
@@ -202,8 +202,8 @@
(setf rect (gfs:make-rectangle :location (clone-point rect-pnt) :size rect-size))
(draw-rectangular gc rect nil delta-x #'gfg:draw-ellipse nil)))
-(defun select-ellipses (disp item time rect)
- (declare (ignore disp time rect))
+(defun select-ellipses (disp item rect)
+ (declare (ignore disp rect))
(update-drawing-item-check item)
(setf (draw-func-of *drawing-dispatcher*) #'draw-ellipses)
(gfw:redraw *drawing-win*))
@@ -240,8 +240,8 @@
#'gfg:draw-line
nil)))
-(defun select-lines (disp item time rect)
- (declare (ignore disp time rect))
+(defun select-lines (disp item rect)
+ (declare (ignore disp rect))
(update-drawing-item-check item)
(setf (draw-func-of *drawing-dispatcher*) #'draw-lines)
(gfw:redraw *drawing-win*))
@@ -264,8 +264,8 @@
(setf rect (gfs:make-rectangle :location (clone-point rect-pnt) :size rect-size))
(draw-rectangular gc rect nil delta-x #'gfg:draw-rectangle nil)))
-(defun select-rects (disp item time rect)
- (declare (ignore disp time rect))
+(defun select-rects (disp item rect)
+ (declare (ignore disp rect))
(update-drawing-item-check item)
(setf (draw-func-of *drawing-dispatcher*) #'draw-rects)
(gfw:redraw *drawing-win*))
@@ -314,8 +314,8 @@
(setf (gfg:foreground-color gc) gfg:*color-red*)
(draw-a-string gc pnt "text" "Arial" 12 nil '(:transparent))))
-(defun select-text (disp item time rect)
- (declare (ignore disp time rect))
+(defun select-text (disp item rect)
+ (declare (ignore disp rect))
(update-drawing-item-check item)
(setf (draw-func-of *drawing-dispatcher*) #'draw-strings)
(gfw:redraw *drawing-win*))
@@ -336,8 +336,8 @@
(setf rect (gfs:make-rectangle :location (clone-point rect-pnt) :size rect-size))
(draw-rect-start-end gc rect (clone-point start-pnt) (clone-point end-pnt) delta-x #'gfg:draw-pie-wedge nil)))
-(defun select-wedges (disp item time rect)
- (declare (ignore disp time rect))
+(defun select-wedges (disp item rect)
+ (declare (ignore disp rect))
(update-drawing-item-check item)
(setf (draw-func-of *drawing-dispatcher*) #'draw-wedges)
(gfw:redraw *drawing-win*))
Modified: trunk/src/tests/uitoolkit/event-tester.lisp
==============================================================================
--- trunk/src/tests/uitoolkit/event-tester.lisp (original)
+++ trunk/src/tests/uitoolkit/event-tester.lisp Sun Jul 9 02:35:37 2006
@@ -47,16 +47,16 @@
(defclass event-tester-window-events (gfw:event-dispatcher) ())
-(defmethod gfw:event-paint ((d event-tester-window-events) window time gc rect)
- (declare (ignorable time rect))
+(defmethod gfw:event-paint ((d event-tester-window-events) window gc rect)
+ (declare (ignore rect))
(setf (gfg:background-color gc) gfg:*color-white*)
(setf (gfg:foreground-color gc) gfg:*color-blue*)
(let* ((sz (gfw:client-size window))
(pnt (gfs:make-point :x 0 :y (floor (gfs:size-height sz) 2))))
(gfg:draw-text gc *event-tester-text* pnt)))
-(defmethod gfw:event-close ((d event-tester-window-events) widget time)
- (declare (ignore widget time))
+(defmethod gfw:event-close ((d event-tester-window-events) widget)
+ (declare (ignore widget))
(exit-event-tester))
(defun text-for-modifiers ()
@@ -72,7 +72,7 @@
(not (gfw:key-toggled-p gfw:+vk-num-lock+))
(not (gfw:key-toggled-p gfw:+vk-scroll-lock+))))
-(defun text-for-mouse (action time button pnt)
+(defun text-for-mouse (action button pnt)
(format nil
"~a mouse action: ~s button: ~a point: (~d,~d) time: 0x~x ~s"
(incf *event-counter*)
@@ -80,131 +80,130 @@
button
(gfs:point-x pnt)
(gfs:point-y pnt)
- time
+ (gfw:obtain-event-time)
(text-for-modifiers)))
-(defun text-for-key (action time key-code char)
+(defun text-for-key (action key-code char)
(format nil
"~a key action: ~s char: ~s code: 0x~x time: 0x~x ~s"
(incf *event-counter*)
action
char
key-code
- time
+ (gfw:obtain-event-time)
(text-for-modifiers)))
-(defun text-for-item (text time desc)
+(defun text-for-item (text desc)
(format nil
"~a ~s: ~s time: 0x~x ~s"
(incf *event-counter*)
desc
text
- time
+ (gfw:obtain-event-time)
(text-for-modifiers)))
-(defun text-for-size (type time size)
+(defun text-for-size (type size)
(format nil
"~a resize action: ~s size: (~d,~d) time: 0x~x ~s"
(incf *event-counter*)
(symbol-name type)
(gfs:size-width size)
(gfs:size-height size)
- time
+ (gfw:obtain-event-time)
(text-for-modifiers)))
-(defun text-for-move (time pnt)
+(defun text-for-move (pnt)
(format nil
"~a move point: (~d,~d) time: 0x~x ~s"
(incf *event-counter*)
(gfs:point-x pnt)
(gfs:point-y pnt)
- time
+ (gfw:obtain-event-time)
(text-for-modifiers)))
-(defun text-for-timer (time)
+(defun text-for-timer ()
(format nil
"~a timer tick id: ~d time: 0x~x ~s"
(incf *event-counter*)
(gfw:id-of *timer*)
- time
+ (gfw:obtain-event-time)
(text-for-modifiers)))
-(defmethod gfw:event-key-down ((d event-tester-window-events) window time key-code char)
- (setf *event-tester-text* (text-for-key "down" time key-code char))
+(defmethod gfw:event-key-down ((d event-tester-window-events) window key-code char)
+ (setf *event-tester-text* (text-for-key "down" key-code char))
(gfw:redraw window))
-(defmethod gfw:event-key-up ((d event-tester-window-events) window time key-code char)
- (setf *event-tester-text* (text-for-key "up" time key-code char))
+(defmethod gfw:event-key-up ((d event-tester-window-events) window key-code char)
+ (setf *event-tester-text* (text-for-key "up" key-code char))
(gfw:redraw window))
-(defmethod gfw:event-mouse-double ((d event-tester-window-events) window time pnt button)
- (setf *event-tester-text* (text-for-mouse "double" time button pnt))
+(defmethod gfw:event-mouse-double ((d event-tester-window-events) window pnt button)
+ (setf *event-tester-text* (text-for-mouse "double" button pnt))
(gfw:redraw window))
-(defmethod gfw:event-mouse-down ((d event-tester-window-events) window time pnt button)
- (setf *event-tester-text* (text-for-mouse "down" time button pnt))
+(defmethod gfw:event-mouse-down ((d event-tester-window-events) window pnt button)
+ (setf *event-tester-text* (text-for-mouse "down" button pnt))
(setf *mouse-down-flag* t)
(gfw:redraw window))
-(defmethod gfw:event-mouse-move ((d event-tester-window-events) window time pnt button)
+(defmethod gfw:event-mouse-move ((d event-tester-window-events) window pnt button)
(when *mouse-down-flag*
- (setf *event-tester-text* (text-for-mouse "move" time button pnt))
+ (setf *event-tester-text* (text-for-mouse "move" button pnt))
(gfw:redraw window)))
-(defmethod gfw:event-mouse-up ((d event-tester-window-events) window time pnt button)
- (setf *event-tester-text* (text-for-mouse "up" time button pnt))
+(defmethod gfw:event-mouse-up ((d event-tester-window-events) window pnt button)
+ (setf *event-tester-text* (text-for-mouse "up" button pnt))
(setf *mouse-down-flag* nil)
(gfw:redraw window))
-(defmethod gfw:event-move ((d event-tester-window-events) window time pnt)
- (setf *event-tester-text* (text-for-move time pnt))
+(defmethod gfw:event-move ((d event-tester-window-events) window pnt)
+ (setf *event-tester-text* (text-for-move pnt))
(gfw:redraw window)
0)
-(defmethod gfw:event-resize ((d event-tester-window-events) window time size type)
- (setf *event-tester-text* (text-for-size type time size))
+(defmethod gfw:event-resize ((d event-tester-window-events) window size type)
+ (setf *event-tester-text* (text-for-size type size))
(gfw:redraw window)
0)
(defclass event-tester-exit-dispatcher (gfw:event-dispatcher) ())
-(defmethod gfw:event-select ((d event-tester-exit-dispatcher) item time rect)
- (declare (ignorable item time rect))
+(defmethod gfw:event-select ((d event-tester-exit-dispatcher) item rect)
+ (declare (ignore item rect))
(exit-event-tester))
-(defmethod gfw:event-arm ((d event-tester-exit-dispatcher) item time)
- (declare (ignore rect))
- (setf *event-tester-text* (text-for-item (gfw:text item) time "item armed"))
+(defmethod gfw:event-arm ((d event-tester-exit-dispatcher) item)
+ (setf *event-tester-text* (text-for-item (gfw:text item) "item armed"))
(gfw:redraw *event-tester-window*))
(defclass event-tester-echo-dispatcher (gfw:event-dispatcher) ())
-(defmethod gfw:event-select ((d event-tester-echo-dispatcher) item time rect)
+(defmethod gfw:event-select ((d event-tester-echo-dispatcher) item rect)
(declare (ignore rect))
- (setf *event-tester-text* (text-for-item (gfw:text item) time "item selected"))
+ (setf *event-tester-text* (text-for-item (gfw:text item) "item selected"))
(gfw:redraw *event-tester-window*))
-(defmethod gfw:event-arm ((d event-tester-echo-dispatcher) item time)
- (declare (ignore rect))
- (setf *event-tester-text* (text-for-item (gfw:text item) time "item armed"))
+(defmethod gfw:event-arm ((d event-tester-echo-dispatcher) item)
+ (setf *event-tester-text* (text-for-item (gfw:text item) "item armed"))
(gfw:redraw *event-tester-window*))
-(defmethod gfw:event-activate ((d event-tester-echo-dispatcher) widget time)
- (setf *event-tester-text* (text-for-item (format nil "~a" widget) time "menu activated"))
+(defmethod gfw:event-activate ((d event-tester-echo-dispatcher) widget type)
+ (declare (ignore type))
+ (setf *event-tester-text* (text-for-item (format nil "~a" widget) "menu activated"))
(gfw:redraw *event-tester-window*))
-(defmethod gfw:event-timer ((disp event-tester-echo-dispatcher) timer time)
- (declare (ignore disp timer))
- (setf *event-tester-text* (text-for-timer time))
+(defmethod gfw:event-timer ((disp event-tester-echo-dispatcher) timer)
+ (declare (ignore timer))
+ (setf *event-tester-text* (text-for-timer))
(gfw:redraw *event-tester-window*))
-(defun manage-file-menu (disp menu time)
- (declare (ignore disp time))
+(defun manage-file-menu (disp menu type)
+ (declare (ignore disp type))
(let ((item (elt (gfw:items menu) 0)))
(setf (gfw:text item) (if *timer* "Sto&p Timer" "&Start Timer"))))
-(defun manage-timer (disp item time rect)
- (declare (ignore disp item time rect))
+(defun manage-timer (disp item rect)
+ (declare (ignore disp item rect))
(if *timer*
(progn
(gfw:enable *timer* nil)
Modified: trunk/src/tests/uitoolkit/hello-world.lisp
==============================================================================
--- trunk/src/tests/uitoolkit/hello-world.lisp (original)
+++ trunk/src/tests/uitoolkit/hello-world.lisp Sun Jul 9 02:35:37 2006
@@ -37,18 +37,18 @@
(defclass hellowin-events (gfw:event-dispatcher) ())
-(defun exit-fn (disp item time rect)
- (declare (ignorable disp item time rect))
+(defun exit-fn (disp item rect)
+ (declare (ignore disp item rect))
(gfs:dispose *hello-win*)
(setf *hello-win* nil)
(gfw:shutdown 0))
-(defmethod gfw:event-close ((disp hellowin-events) window time)
+(defmethod gfw:event-close ((disp hellowin-events) window)
(declare (ignore window))
- (exit-fn disp nil time nil))
+ (exit-fn disp nil nil))
-(defmethod gfw:event-paint ((disp hellowin-events) window time gc rect)
- (declare (ignore time rect))
+(defmethod gfw:event-paint ((disp hellowin-events) window gc rect)
+ (declare (ignore rect))
(setf (gfg:background-color gc) gfg:*color-white*)
(setf (gfg:foreground-color gc) gfg:*color-white*)
(gfg:draw-filled-rectangle gc (gfs:make-rectangle :size (gfw:client-size window)))
Modified: trunk/src/tests/uitoolkit/image-tester.lisp
==============================================================================
--- trunk/src/tests/uitoolkit/image-tester.lisp (original)
+++ trunk/src/tests/uitoolkit/image-tester.lisp Sun Jul 9 02:35:37 2006
@@ -48,15 +48,15 @@
(gfs:dispose *true-image*)
(setf *true-image* nil))
-(defmethod gfw:event-close ((d image-events) window time)
- (declare (ignore window time))
+(defmethod gfw:event-close ((d image-events) window)
+ (declare (ignore window))
(dispose-images)
(gfs:dispose *image-win*)
(setf *image-win* nil)
(gfw:shutdown 0))
-(defmethod gfw:event-paint ((d image-events) window time gc rect)
- (declare (ignore window time rect))
+(defmethod gfw:event-paint ((d image-events) window gc rect)
+ (declare (ignore window rect))
(let ((pnt (gfs:make-point))
(pixel-pnt1 (gfs:make-point))
(pixel-pnt2 (gfs:make-point :x 0 :y 15)))
@@ -86,8 +86,8 @@
(incf (gfs:point-x pnt) 20)
(gfg:draw-image gc *true-image* pnt))))
-(defun exit-image-fn (disp item time rect)
- (declare (ignorable disp item time rect))
+(defun exit-image-fn (disp item rect)
+ (declare (ignorable disp item rect))
(dispose-images)
(gfs:dispose *image-win*)
(setf *image-win* nil)
Modified: trunk/src/tests/uitoolkit/layout-tester.lisp
==============================================================================
--- trunk/src/tests/uitoolkit/layout-tester.lisp (original)
+++ trunk/src/tests/uitoolkit/layout-tester.lisp Sun Jul 9 02:35:37 2006
@@ -52,14 +52,14 @@
(defclass layout-tester-events (gfw:event-dispatcher) ())
-(defmethod gfw:event-close ((d layout-tester-events) widget time)
- (declare (ignore widget time))
+(defmethod gfw:event-close ((d layout-tester-events) widget)
+ (declare (ignore widget))
(exit-layout-tester))
(defclass pack-layout-dispatcher (gfw:event-dispatcher) ())
-(defmethod gfw:event-select ((d pack-layout-dispatcher) item time rect)
- (declare (ignorable item time rect))
+(defmethod gfw:event-select ((d pack-layout-dispatcher) item rect)
+ (declare (ignore item rect))
(gfw:pack *layout-tester-win*))
(defclass layout-tester-widget-events (gfw:event-dispatcher)
@@ -71,8 +71,8 @@
:initarg :id
:initform 0)))
-(defmethod gfw:event-paint ((self layout-tester-widget-events) window time gc rect)
- (declare (ignore time rect))
+(defmethod gfw:event-paint ((self layout-tester-widget-events) window gc rect)
+ (declare (ignore rect))
(setf (gfg:background-color gc) gfg:*color-white*)
(setf (gfg:foreground-color gc) gfg:*color-white*)
(gfg:draw-filled-rectangle gc (gfs:make-rectangle :size (gfw:client-size window))))
@@ -139,8 +139,8 @@
:dispatcher be))))
(incf *widget-counter*)))
-(defmethod gfw:event-select ((d layout-tester-widget-events) btn time rect)
- (declare (ignorable time rect))
+(defmethod gfw:event-select ((d layout-tester-widget-events) btn rect)
+ (declare (ignore rect))
(setf (gfw:text btn) (funcall (toggle-fn d)))
(gfw:layout *layout-tester-win*))
@@ -154,8 +154,8 @@
:initarg :subtype
:initform :push-button)))
-(defmethod gfw:event-select ((d add-child-dispatcher) item time rect)
- (declare (ignorable item time rect))
+(defmethod gfw:event-select ((d add-child-dispatcher) item rect)
+ (declare (ignorable item rect))
(add-layout-tester-widget (widget-class d) (subtype d))
(gfw:pack *layout-tester-win*))
@@ -169,8 +169,8 @@
:initarg :sub-disp-class
:initform nil)))
-(defmethod gfw:event-activate ((d child-menu-dispatcher) menu time)
- (declare (ignore time))
+(defmethod gfw:event-activate ((d child-menu-dispatcher) menu type)
+ (declare (ignore type))
(gfw:clear-all menu)
(gfw:mapchildren *layout-tester-win*
(lambda (parent child)
@@ -192,8 +192,8 @@
(defclass remove-child-dispatcher (gfw:event-dispatcher) ())
-(defmethod gfw:event-select ((d remove-child-dispatcher) item time rect)
- (declare (ignorable time rect))
+(defmethod gfw:event-select ((d remove-child-dispatcher) item rect)
+ (declare (ignore rect))
(let ((victim (find-victim (gfw:text item))))
(unless (null victim)
(gfs:dispose victim)
@@ -201,21 +201,21 @@
(defclass visibility-child-dispatcher (gfw:event-dispatcher) ())
-(defmethod gfw:event-select ((d visibility-child-dispatcher) item time rect)
- (declare (ignorable time rect))
+(defmethod gfw:event-select ((d visibility-child-dispatcher) item rect)
+ (declare (ignore rect))
(let ((victim (find-victim (gfw:text item))))
(unless (null victim)
(gfw:show victim (not (gfw:visible-p victim)))
(gfw:layout *layout-tester-win*))))
-(defun check-flow-orient-items (disp menu time)
- (declare (ignore disp time))
+(defun check-flow-orient-items (disp menu type)
+ (declare (ignore disp type))
(let ((layout (gfw:layout-of *layout-tester-win*)))
(gfw:check (elt (gfw:items menu) 0) (find :horizontal (gfw:style-of layout)))
(gfw:check (elt (gfw:items menu) 1) (find :vertical (gfw:style-of layout)))))
-(defun set-flow-horizontal (disp item time rect)
- (declare (ignorable disp item time rect))
+(defun set-flow-horizontal (disp item rect)
+ (declare (ignorable disp item rect))
(let* ((layout (gfw:layout-of *layout-tester-win*))
(style (gfw:style-of layout)))
(setf style (remove :vertical style))
@@ -223,8 +223,8 @@
(setf (gfw:style-of layout) style)
(gfw:layout *layout-tester-win*)))
-(defun set-flow-vertical (disp item time rect)
- (declare (ignorable disp item time rect))
+(defun set-flow-vertical (disp item rect)
+ (declare (ignorable disp item rect))
(let* ((layout (gfw:layout-of *layout-tester-win*))
(style (gfw:style-of layout)))
(setf style (remove :horizontal style))
@@ -232,8 +232,8 @@
(setf (gfw:style-of layout) style)
(gfw:layout *layout-tester-win*)))
-(defun set-flow-layout-normalize (disp item time rect)
- (declare (ignorable disp item time rect))
+(defun set-flow-layout-normalize (disp item rect)
+ (declare (ignorable disp item rect))
(let* ((layout (gfw:layout-of *layout-tester-win*))
(style (gfw:style-of layout)))
(if (find :normalize style)
@@ -241,8 +241,8 @@
(setf (gfw:style-of layout) (push :normalize style)))
(gfw:layout *layout-tester-win*)))
-(defun set-flow-layout-wrap (disp item time rect)
- (declare (ignorable disp item time rect))
+(defun set-flow-layout-wrap (disp item rect)
+ (declare (ignorable disp item rect))
(let* ((layout (gfw:layout-of *layout-tester-win*))
(style (gfw:style-of layout)))
(if (find :wrap style)
@@ -250,13 +250,13 @@
(setf (gfw:style-of layout) (push :wrap style)))
(gfw:layout *layout-tester-win*)))
-(defun enable-flow-spacing-items (disp menu time)
- (declare (ignore disp time))
+(defun enable-flow-spacing-items (disp menu type)
+ (declare (ignore disp type))
(let ((spacing (gfw:spacing-of (gfw:layout-of *layout-tester-win*))))
(gfw:enable (elt (gfw:items menu) 0) (> spacing 0))))
-(defun decrease-flow-spacing (disp item time rect)
- (declare (ignore disp item time rect))
+(defun decrease-flow-spacing (disp item rect)
+ (declare (ignore disp item rect))
(let* ((layout (gfw:layout-of *layout-tester-win*))
(spacing (gfw:spacing-of layout)))
(unless (zerop spacing)
@@ -264,82 +264,82 @@
(setf (gfw:spacing-of layout) spacing)
(gfw:layout *layout-tester-win*))))
-(defun increase-flow-spacing (disp item time rect)
- (declare (ignore disp item time rect))
+(defun increase-flow-spacing (disp item rect)
+ (declare (ignore disp item rect))
(let ((layout (gfw:layout-of *layout-tester-win*)))
(incf (gfw:spacing-of layout) +spacing-delta+)
(gfw:layout *layout-tester-win*)))
-(defun enable-left-flow-margin-items (disp menu time)
- (declare (ignore disp time))
+(defun enable-left-flow-margin-items (disp menu rect)
+ (declare (ignore disp rect))
(let ((layout (gfw:layout-of *layout-tester-win*)))
(gfw:enable (elt (gfw:items menu) 0) (> (gfw:left-margin-of layout) 0))))
-(defun enable-top-flow-margin-items (disp menu time)
- (declare (ignore disp time))
+(defun enable-top-flow-margin-items (disp menu rect)
+ (declare (ignore disp rect))
(let ((layout (gfw:layout-of *layout-tester-win*)))
(gfw:enable (elt (gfw:items menu) 0) (> (gfw:top-margin-of layout) 0))))
-(defun enable-right-flow-margin-items (disp menu time)
- (declare (ignore disp time))
+(defun enable-right-flow-margin-items (disp menu rect)
+ (declare (ignore disp rect))
(let ((layout (gfw:layout-of *layout-tester-win*)))
(gfw:enable (elt (gfw:items menu) 0) (> (gfw:right-margin-of layout) 0))))
-(defun enable-bottom-flow-margin-items (disp menu time)
- (declare (ignore disp time))
+(defun enable-bottom-flow-margin-items (disp menu rect)
+ (declare (ignore disp rect))
(let ((layout (gfw:layout-of *layout-tester-win*)))
(gfw:enable (elt (gfw:items menu) 0) (> (gfw:bottom-margin-of layout) 0))))
-(defun inc-left-flow-margin (disp item time rect)
- (declare (ignore disp item time rect))
+(defun inc-left-flow-margin (disp item rect)
+ (declare (ignore disp item rect))
(let ((layout (gfw:layout-of *layout-tester-win*)))
(incf (gfw:left-margin-of layout) +margin-delta+)
(gfw:layout *layout-tester-win*)))
-(defun inc-top-flow-margin (disp item time rect)
- (declare (ignore disp item time rect))
+(defun inc-top-flow-margin (disp item rect)
+ (declare (ignore disp item rect))
(let ((layout (gfw:layout-of *layout-tester-win*)))
(incf (gfw:top-margin-of layout) +margin-delta+)
(gfw:layout *layout-tester-win*)))
-(defun inc-right-flow-margin (disp item time rect)
- (declare (ignore disp item time rect))
+(defun inc-right-flow-margin (disp item rect)
+ (declare (ignore disp item rect))
(let ((layout (gfw:layout-of *layout-tester-win*)))
(incf (gfw:right-margin-of layout) +margin-delta+)
(gfw:layout *layout-tester-win*)))
-(defun inc-bottom-flow-margin (disp item time rect)
- (declare (ignore disp item time rect))
+(defun inc-bottom-flow-margin (disp item rect)
+ (declare (ignore disp item rect))
(let ((layout (gfw:layout-of *layout-tester-win*)))
(incf (gfw:bottom-margin-of layout) +margin-delta+)
(gfw:layout *layout-tester-win*)))
-(defun dec-left-flow-margin (disp item time rect)
- (declare (ignore disp item time rect))
+(defun dec-left-flow-margin (disp item rect)
+ (declare (ignore disp item rect))
(let ((layout (gfw:layout-of *layout-tester-win*)))
(decf (gfw:left-margin-of layout) +margin-delta+)
(gfw:layout *layout-tester-win*)))
-(defun dec-top-flow-margin (disp item time rect)
- (declare (ignore disp item time rect))
+(defun dec-top-flow-margin (disp item rect)
+ (declare (ignore disp item rect))
(let ((layout (gfw:layout-of *layout-tester-win*)))
(decf (gfw:top-margin-of layout) +margin-delta+)
(gfw:layout *layout-tester-win*)))
-(defun dec-right-flow-margin (disp item time rect)
- (declare (ignore disp item time rect))
+(defun dec-right-flow-margin (disp item rect)
+ (declare (ignore disp item rect))
(let ((layout (gfw:layout-of *layout-tester-win*)))
(decf (gfw:right-margin-of layout) +margin-delta+)
(gfw:layout *layout-tester-win*)))
-(defun dec-bottom-flow-margin (disp item time rect)
- (declare (ignore disp item time rect))
+(defun dec-bottom-flow-margin (disp item rect)
+ (declare (ignore disp item rect))
(let ((layout (gfw:layout-of *layout-tester-win*)))
(decf (gfw:bottom-margin-of layout) +margin-delta+)
(gfw:layout *layout-tester-win*)))
-(defun flow-mod-callback (disp menu time)
- (declare (ignore disp time))
+(defun flow-mod-callback (disp menu type)
+ (declare (ignore disp type))
(gfw:clear-all menu)
(let ((it nil)
(margin-menu (gfw:defmenu ((:item "Left"
@@ -383,8 +383,8 @@
(setf it (gfw:append-item menu "Wrap" nil #'set-flow-layout-wrap))
(gfw:check it (find :wrap style)))))
-(defun exit-layout-callback (disp item time rect)
- (declare (ignorable disp item time rect))
+(defun exit-layout-callback (disp item rect)
+ (declare (ignorable disp item rect))
(exit-layout-tester))
(defun run-layout-tester-internal ()
Modified: trunk/src/tests/uitoolkit/windlg.lisp
==============================================================================
--- trunk/src/tests/uitoolkit/windlg.lisp (original)
+++ trunk/src/tests/uitoolkit/windlg.lisp Sun Jul 9 02:35:37 2006
@@ -37,38 +37,37 @@
(defclass main-win-events (gfw:event-dispatcher) ())
-(defun windlg-exit-fn (disp item time rect)
- (declare (ignore disp item time rect))
+(defun windlg-exit-fn (disp item rect)
+ (declare (ignore disp item rect))
(gfs:dispose *main-win*)
(setf *main-win* nil)
(gfw:shutdown 0))
-(defmethod gfw:event-close ((self main-win-events) window time)
- (declare (ignore window time))
- (windlg-exit-fn self nil nil 0))
+(defmethod gfw:event-close ((self main-win-events) window)
+ (declare (ignore window))
+ (windlg-exit-fn self nil nil))
(defclass test-win-events (gfw:event-dispatcher) ())
-(defmethod gfw:event-paint ((d test-win-events) window time gc rect)
- (declare (ignore time rect))
+(defmethod gfw:event-paint ((d test-win-events) window gc rect)
+ (declare (ignore rect))
(setf (gfg:background-color gc) gfg:*color-white*)
(setf (gfg:foreground-color gc) gfg:*color-white*)
(gfg:draw-filled-rectangle gc (gfs:make-rectangle :size (gfw:client-size window))))
(defclass test-mini-events (test-win-events) ())
-(defmethod gfw:event-close ((d test-mini-events) window time)
- (declare (ignore time))
+(defmethod gfw:event-close ((d test-mini-events) window)
(gfs:dispose window))
(defclass test-borderless-events (test-win-events) ())
-(defmethod gfw:event-mouse-down ((d test-borderless-events) window time point button)
- (declare (ignore time point button))
+(defmethod gfw:event-mouse-down ((d test-borderless-events) window point button)
+ (declare (ignore point button))
(gfs:dispose window))
-(defun create-borderless-win (disp item time rect)
- (declare (ignore disp item time rect))
+(defun create-borderless-win (disp item rect)
+ (declare (ignore disp item rect))
(let ((window (make-instance 'gfw:top-level :dispatcher (make-instance 'test-borderless-events)
:owner *main-win*
:style '(:borderless))))
@@ -76,8 +75,8 @@
(gfw:center-on-owner window)
(gfw:show window t)))
-(defun create-miniframe-win (disp item time rect)
- (declare (ignore disp item time rect))
+(defun create-miniframe-win (disp item rect)
+ (declare (ignore disp item rect))
(let ((window (make-instance 'gfw:top-level :dispatcher (make-instance 'test-mini-events)
:owner *main-win*
:text "Mini Frame"
@@ -86,8 +85,8 @@
(setf (gfw:size window) (gfs:make-size :width 150 :height 225))
(gfw:show window t)))
-(defun create-palette-win (disp item time rect)
- (declare (ignore disp item time rect))
+(defun create-palette-win (disp item rect)
+ (declare (ignore disp item rect))
(let ((window (make-instance 'gfw:top-level :dispatcher (make-instance 'test-mini-events)
:owner *main-win*
:text "Palette"
@@ -96,8 +95,8 @@
(setf (gfw:size window) (gfs:make-size :width 150 :height 225))
(gfw:show window t)))
-(defun open-file-dlg (disp item time rect)
- (declare (ignore disp item time rect))
+(defun open-file-dlg (disp item rect)
+ (declare (ignore disp item rect))
(gfw:with-file-dialog (*main-win*
'(:open :add-to-recent :multiple-select)
paths
@@ -108,8 +107,8 @@
:text "Select Lisp-related files...")
(print paths)))
-(defun save-file-dlg (disp item time rect)
- (declare (ignore disp item time rect))
+(defun save-file-dlg (disp item rect)
+ (declare (ignore disp item rect))
(gfw:with-file-dialog (*main-win*
'(:save)
paths
@@ -118,8 +117,8 @@
:initial-directory #P"c:/")
(print paths)))
-(defun choose-font-dlg (disp item time rect)
- (declare (ignore disp item time rect))
+(defun choose-font-dlg (disp item rect)
+ (declare (ignore disp item rect))
(gfw:with-graphics-context (gc *main-win*)
(gfw:with-font-dialog (*main-win* nil font color :gc gc)
(if color
@@ -129,9 +128,7 @@
(defclass dialog-events (gfw:event-dispatcher) ())
-(defmethod gfw:event-close ((disp dialog-events) (dlg gfw:dialog) time)
- (declare (ignore time))
- (format t "dialog-events event-close called~%")
+(defmethod gfw:event-close ((disp dialog-events) (dlg gfw:dialog))
(call-next-method)
(gfs:dispose dlg))
@@ -140,16 +137,13 @@
(defun truncate-text (str)
(subseq str 0 (min (length str) 5)))
-(defmethod gfw:event-focus-gain ((disp edit-control-events) (ctrl gfw:edit) time)
- (declare (ignore time))
+(defmethod gfw:event-focus-gain ((disp edit-control-events) (ctrl gfw:edit))
(format t "gained focus: ~a...~%" (truncate-text (gfw:text ctrl))))
-(defmethod gfw:event-focus-loss ((disp edit-control-events) (ctrl gfw:edit) time)
- (declare (ignore time))
+(defmethod gfw:event-focus-loss ((disp edit-control-events) (ctrl gfw:edit))
(format t "lost focus: ~a...~%" (truncate-text (gfw:text ctrl))))
-(defmethod gfw:event-modify ((disp edit-control-events) (ctrl gfw:edit) time)
- (declare (ignore time))
+(defmethod gfw:event-modify ((disp edit-control-events) (ctrl gfw:edit))
(format t "modified: ~a...~%" (truncate-text (gfw:text ctrl))))
(defun open-dlg (title style)
@@ -204,15 +198,15 @@
:style '(:vertical :normalize))
:parent dlg))
(ok-btn (make-instance 'gfw:button
- :callback (lambda (disp btn time rect)
- (declare (ignore disp btn time rect))
+ :callback (lambda (disp btn rect)
+ (declare (ignore disp btn rect))
(gfs:dispose dlg))
:style '(:default-button)
:text "OK"
:parent btn-panel))
(cancel-btn (make-instance 'gfw:button
- :callback (lambda (disp btn time rect)
- (declare (ignore disp btn time rect))
+ :callback (lambda (disp btn rect)
+ (declare (ignore disp btn rect))
(gfs:dispose dlg))
:style '(:cancel-button)
:text "Cancel"
@@ -226,12 +220,12 @@
(gfw:show dlg t)
dlg))
-(defun open-modal-dlg (disp item time rect)
- (declare (ignore disp item time rect))
+(defun open-modal-dlg (disp item rect)
+ (declare (ignore disp item rect))
(open-dlg "Modal" '(:owner-modal)))
-(defun open-modeless-dlg (disp item time rect)
- (declare (ignore disp item time rect))
+(defun open-modeless-dlg (disp item rect)
+ (declare (ignore disp item rect))
(open-dlg "Modeless" '(:modeless)))
(defun run-windlg-internal ()
Modified: trunk/src/uitoolkit/system/system-constants.lisp
==============================================================================
--- trunk/src/uitoolkit/system/system-constants.lisp (original)
+++ trunk/src/uitoolkit/system/system-constants.lisp Sun Jul 9 02:35:37 2006
@@ -889,6 +889,10 @@
(defconstant +user-timer-maximum+ #x7FFFFFFF)
(defconstant +user-timer-minimum+ #x0000000A)
+(defconstant +wa-inactive+ 0)
+(defconstant +wa-active+ 1)
+(defconstant +wa-clickactive+ 2)
+
(defconstant +wb-left+ 0)
(defconstant +wb-right+ 1)
(defconstant +wb-isdelimiter+ 2)
Modified: trunk/src/uitoolkit/widgets/event-generics.lisp
==============================================================================
--- trunk/src/uitoolkit/widgets/event-generics.lisp (original)
+++ trunk/src/uitoolkit/widgets/event-generics.lisp Sun Jul 9 02:35:37 2006
@@ -33,162 +33,157 @@
(in-package :graphic-forms.uitoolkit.widgets)
-(defgeneric event-activate (dispatcher widget time)
+(defgeneric event-activate (dispatcher widget type)
(:documentation "Implement this to respond to an object being activated.")
- (:method (dispatcher widget time)
- (declare (ignorable dispatcher widget time))))
+ (:method (dispatcher widget type)
+ (declare (ignorable dispatcher widget type))))
-(defgeneric event-arm (dispatcher item time)
+(defgeneric event-arm (dispatcher item)
(:documentation "Implement this to respond to an object about to be selected.")
- (:method (dispatcher item time)
- (declare (ignorable dispatcher item time))))
+ (:method (dispatcher item)
+ (declare (ignorable dispatcher item))))
-(defgeneric event-close (dispatcher widget time)
+(defgeneric event-close (dispatcher widget)
(:documentation "Implement this to respond to an object being closed.")
- (:method (dispatcher widget time)
- (declare (ignorable dispatcher widget time))))
+ (:method (dispatcher widget)
+ (declare (ignorable dispatcher widget))))
-(defgeneric event-collapse (dispatcher item time rect)
+(defgeneric event-collapse (dispatcher item rect)
(:documentation "Implement this to respond to an object (or item within) being collapsed.")
- (:method (dispatcher item time rect)
- (declare (ignorable dispatcher item time rect))))
+ (:method (dispatcher item rect)
+ (declare (ignorable dispatcher item rect))))
-(defgeneric event-deactivate (dispatcher widget time)
+(defgeneric event-deactivate (dispatcher widget type)
(:documentation "Implement this to respond to an object being deactivated.")
- (:method (dispatcher widget time)
- (declare (ignorable dispatcher widget time))))
+ (:method (dispatcher widget type)
+ (declare (ignorable dispatcher widget type))))
-(defgeneric event-deiconify (dispatcher widget time)
+(defgeneric event-deiconify (dispatcher widget)
(:documentation "Implement this to respond to an object being deiconified.")
- (:method (dispatcher widget time)
- (declare (ignorable dispatcher widget time))))
+ (:method (dispatcher widget)
+ (declare (ignorable dispatcher widget))))
-(defgeneric event-dispose (dispatcher widget time)
+(defgeneric event-dispose (dispatcher widget)
(:documentation "Implement this to respond to an object being disposed (via dispose, not the GC).")
- (:method (dispatcher widget time)
- (declare (ignorable dispatcher widget time))))
+ (:method (dispatcher widget)
+ (declare (ignorable dispatcher widget))))
-(defgeneric event-expand (dispatcher item time rect)
+(defgeneric event-expand (dispatcher item rect)
(:documentation "Implement this to respond to an object (or item within) being expanded.")
- (:method (dispatcher item time rect)
- (declare (ignorable dispatcher item time rect))))
+ (:method (dispatcher item rect)
+ (declare (ignorable dispatcher item rect))))
-(defgeneric event-focus-gain (dispatcher widget time)
+(defgeneric event-focus-gain (dispatcher widget)
(:documentation "Implement this to respond to an object gaining keyboard focus.")
- (:method (dispatcher widget time)
- (declare (ignorable dispatcher widget time))))
+ (:method (dispatcher widget)
+ (declare (ignorable dispatcher widget))))
-(defgeneric event-focus-loss (dispatcher widget time)
+(defgeneric event-focus-loss (dispatcher widget)
(:documentation "Implement this to respond to an object losing keyboard focus.")
- (:method (dispatcher widget time)
- (declare (ignorable dispatcher widget time))))
+ (:method (dispatcher widget)
+ (declare (ignorable dispatcher widget))))
-(defgeneric event-hide (dispatcher widget time)
+(defgeneric event-hide (dispatcher widget)
(:documentation "Implement this to respond to an object being hidden.")
- (:method (dispatcher widget time)
- (declare (ignorable dispatcher widget time))))
+ (:method (dispatcher widget)
+ (declare (ignorable dispatcher widget))))
-(defgeneric event-iconify (dispatcher widget time)
+(defgeneric event-iconify (dispatcher widget)
(:documentation "Implement this to respond to an object being iconified.")
- (:method (dispatcher widget time)
- (declare (ignorable dispatcher widget time))))
+ (:method (dispatcher widget)
+ (declare (ignorable dispatcher widget))))
-(defgeneric event-key-down (dispatcher widget time keycode char)
+(defgeneric event-key-down (dispatcher widget keycode char)
(:documentation "Implement this to respond to a key down event.")
- (:method (dispatcher widget time keycode char)
- (declare (ignorable dispatcher widget time keycode char))))
+ (:method (dispatcher widget keycode char)
+ (declare (ignorable dispatcher widget keycode char))))
-(defgeneric event-key-traverse (dispatcher widget time keycode char type)
- (:documentation "Implement this to respond to a key traversal event.")
- (:method (dispatcher widget time keycode char type)
- (declare (ignorable dispatcher widget time keycode char type))))
-
-(defgeneric event-key-up (dispatcher widget time keycode char)
+(defgeneric event-key-up (dispatcher widget keycode char)
(:documentation "Implement this to respond to a key up event.")
- (:method (dispatcher widget time keycode char)
- (declare (ignorable dispatcher widget time keycode char))))
+ (:method (dispatcher widget keycode char)
+ (declare (ignorable dispatcher widget keycode char))))
-(defgeneric event-modify (dispatcher widget time)
+(defgeneric event-modify (dispatcher widget)
(:documentation "Implement this to respond to content (e.g., text) in an object being modified.")
- (:method (dispatcher widget time)
- (declare (ignorable dispatcher widget time))))
+ (:method (dispatcher widget)
+ (declare (ignorable dispatcher widget))))
-(defgeneric event-mouse-double (dispatcher widget time point button)
+(defgeneric event-mouse-double (dispatcher widget point button)
(:documentation "Implement this to respond to a mouse double-click.")
- (:method (dispatcher widget time point button)
- (declare (ignorable dispatcher widget time point button))))
+ (:method (dispatcher widget point button)
+ (declare (ignorable dispatcher widget point button))))
-(defgeneric event-mouse-down (dispatcher widget time point button)
+(defgeneric event-mouse-down (dispatcher widget point button)
(:documentation "Implement this to respond to a mouse down event.")
- (:method (dispatcher widget time point button)
- (declare (ignorable dispatcher widget time point button))))
+ (:method (dispatcher widget point button)
+ (declare (ignorable dispatcher widget point button))))
-(defgeneric event-mouse-enter (dispatcher widget time point button)
+(defgeneric event-mouse-enter (dispatcher widget point button)
(:documentation "Implement this to respond to a mouse passing into the bounds of an object.")
- (:method (dispatcher widget time point button)
- (declare (ignorable dispatcher widget time point button))))
+ (:method (dispatcher widget point button)
+ (declare (ignorable dispatcher widget point button))))
-(defgeneric event-mouse-exit (dispatcher widget time point button)
+(defgeneric event-mouse-exit (dispatcher widget point button)
(:documentation "Implement this to respond to a mouse leaving the bounds an object.")
- (:method (dispatcher widget time point button)
- (declare (ignorable dispatcher widget time point button))))
+ (:method (dispatcher widget point button)
+ (declare (ignorable dispatcher widget point button))))
-(defgeneric event-mouse-hover (dispatcher widget time point button)
+(defgeneric event-mouse-hover (dispatcher widget point button)
(:documentation "Implement this to respond to a mouse that stops moving for a period of time within an object.")
- (:method (dispatcher widget time point button)
- (declare (ignorable dispatcher widget time point button))))
+ (:method (dispatcher widget point button)
+ (declare (ignorable dispatcher widget point button))))
-(defgeneric event-mouse-move (dispatcher widget time point button)
+(defgeneric event-mouse-move (dispatcher widget point button)
(:documentation "Implement this to respond to a mouse move event.")
- (:method (dispatcher widget time point button)
- (declare (ignorable dispatcher widget time point button))))
+ (:method (dispatcher widget point button)
+ (declare (ignorable dispatcher widget point button))))
-(defgeneric event-mouse-up (dispatcher widget time point button)
+(defgeneric event-mouse-up (dispatcher widget point button)
(:documentation "Implement this to respond to a mouse up event.")
- (:method (dispatcher widget time point button)
- (declare (ignorable dispatcher widget time point button))))
+ (:method (dispatcher widget point button)
+ (declare (ignorable dispatcher widget point button))))
-(defgeneric event-move (dispatcher widget time point)
+(defgeneric event-move (dispatcher widget point)
(:documentation "Implement this to respond to an object being moved within its parent's coordinate system.")
- (:method (dispatcher widget time point)
- (declare (ignorable dispatcher widget time point))))
+ (:method (dispatcher widget point)
+ (declare (ignorable dispatcher widget point))))
-(defgeneric event-paint (dispatcher widget time gc rect)
+(defgeneric event-paint (dispatcher widget gc rect)
(:documentation "Implement this to respond to paint requests.")
- (:method (dispatcher widget time gc rect)
- (declare (ignorable dispatcher widget time gc rect))))
+ (:method (dispatcher widget gc rect)
+ (declare (ignorable dispatcher widget gc rect))))
-(defgeneric event-pre-modify (dispatcher widget time keycode char span new-content)
+(defgeneric event-pre-modify (dispatcher widget keycode char span new-content)
(:documentation "Implement this to respond to content (e.g., text) in an object about to be modified.")
- (:method (dispatcher widget time keycode char span new-content)
- (declare (ignorable dispatcher widget time keycode char span new-content))))
+ (:method (dispatcher widget keycode char span new-content)
+ (declare (ignorable dispatcher widget keycode char span new-content))))
-(defgeneric event-pre-move (dispatcher widget time)
+(defgeneric event-pre-move (dispatcher widget)
(:documentation "Implement this to preempt moving; return T if processed or nil if not.")
- (:method (dispatcher widget time)
- (declare (ignorable dispatcher widget time))))
+ (:method (dispatcher widget)
+ (declare (ignorable dispatcher widget))))
-(defgeneric event-pre-resize (dispatcher widget time)
+(defgeneric event-pre-resize (dispatcher widget)
(:documentation "Implement this to preempt resizing; return T if processed or nil if not.")
- (:method (dispatcher widget time)
- (declare (ignorable dispatcher widget time))))
+ (:method (dispatcher widget)
+ (declare (ignorable dispatcher widget))))
-(defgeneric event-resize (dispatcher widget time size type)
+(defgeneric event-resize (dispatcher widget size type)
(:documentation "Implement this to respond to an object being resized.")
- (:method (dispatcher widget time size type)
- (declare (ignorable dispatcher widget time size type))))
+ (:method (dispatcher widget size type)
+ (declare (ignorable dispatcher widget size type))))
-(defgeneric event-select (dispatcher item time rect)
+(defgeneric event-select (dispatcher item rect)
(:documentation "Implement this to respond to an object (or item within) being selected.")
- (:method (dispatcher item time rect)
- (declare (ignorable dispatcher item time rect))))
+ (:method (dispatcher item rect)
+ (declare (ignorable dispatcher item rect))))
-(defgeneric event-show (dispatcher widget time)
+(defgeneric event-show (dispatcher widget)
(:documentation "Implement this to respond to an object being shown.")
- (:method (dispatcher widget time)
- (declare (ignorable dispatcher widget time))))
+ (:method (dispatcher widget)
+ (declare (ignorable dispatcher widget))))
-(defgeneric event-timer (dispatcher timer time)
+(defgeneric event-timer (dispatcher timer)
(:documentation "Implement this to respond to a tick from a specific timer.")
- (:method (dispatcher timer time)
- (declare (ignorable dispatcher timer time))))
+ (:method (dispatcher timer)
+ (declare (ignorable dispatcher timer))))
Modified: trunk/src/uitoolkit/widgets/event-source.lisp
==============================================================================
--- trunk/src/uitoolkit/widgets/event-source.lisp (original)
+++ trunk/src/uitoolkit/widgets/event-source.lisp Sun Jul 9 02:35:37 2006
@@ -33,9 +33,9 @@
(in-package :graphic-forms.uitoolkit.widgets)
-(defconstant +callback-info+ '((gfw:event-activate . (gfw:event-source integer))
- (gfw:event-arm . (gfw:event-source integer))
- (gfw:event-select . (gfw:event-source integer gfs:rectangle))))
+(defconstant +callback-info+ '((gfw:event-activate . (gfw:event-source symbol))
+ (gfw:event-arm . (gfw:event-source))
+ (gfw:event-select . (gfw:event-source gfs:rectangle))))
(defun make-specializer-list (disp-class arg-info)
(let ((tmp (mapcar #'find-class arg-info)))
Modified: trunk/src/uitoolkit/widgets/event.lisp
==============================================================================
--- trunk/src/uitoolkit/widgets/event.lisp (original)
+++ trunk/src/uitoolkit/widgets/event.lisp Sun Jul 9 02:35:37 2006
@@ -102,7 +102,7 @@
(when w
(setf (gfs:point-x pnt) (lo-word lparam))
(setf (gfs:point-y pnt) (hi-word lparam))
- (funcall fn (dispatcher w) w (event-time tc) pnt btn-symbol)))
+ (funcall fn (dispatcher w) w pnt btn-symbol)))
0)
(defun get-class-wndproc (hwnd)
@@ -118,17 +118,15 @@
(error 'gfs:win32-error :detail "set-window-long failed")))
(defun dispatch-notification (widget wparam-hi)
- (let ((disp (dispatcher widget))
- (time (event-time (thread-context))))
+ (let ((disp (dispatcher widget)))
(case wparam-hi
- (0 (event-select disp widget time (gfs:make-rectangle))) ; FIXME: debug
- (#.gfs::+en-killfocus+ (event-focus-loss disp widget time))
- (#.gfs::+en-setfocus+ (event-focus-gain disp widget time))
- (#.gfs::+en-update+ (event-modify disp widget time)))))
+ (0 (event-select disp widget (gfs:make-rectangle))) ; FIXME
+ (#.gfs::+en-killfocus+ (event-focus-loss disp widget))
+ (#.gfs::+en-setfocus+ (event-focus-gain disp widget))
+ (#.gfs::+en-update+ (event-modify disp widget)))))
(defun process-ctlcolor-message (wparam lparam)
- (let* ((tc (thread-context))
- (widget (get-widget tc (cffi:make-pointer lparam)))
+ (let* ((widget (get-widget (thread-context) (cffi:make-pointer lparam)))
(hdc (cffi:make-pointer wparam))
(bkgdcolor (brush-color-of widget))
(textcolor (text-color-of widget))
@@ -141,6 +139,9 @@
(setf ret-val (cffi:pointer-address (brush-handle-of widget))))
ret-val))
+(defun obtain-event-time ()
+ (event-time (thread-context)))
+
;;;
;;; process-message methods
;;;
@@ -153,10 +154,9 @@
(defmethod process-message (hwnd (msg (eql gfs::+wm-close+)) wparam lparam)
(declare (ignore wparam lparam))
- (let* ((tc (thread-context))
- (w (get-widget tc hwnd)))
+ (let ((w (get-widget (thread-context) hwnd)))
(if w
- (event-close (dispatcher w) w (event-time tc))
+ (event-close (dispatcher w) w)
(error 'gfs:toolkit-error :detail "no object for hwnd")))
0)
@@ -172,10 +172,7 @@
(if (null item)
(warn 'gfs:toolkit-warning :detail (format nil "no menu item for id ~x" wparam-lo))
(unless (null (dispatcher item))
- (event-select (dispatcher item)
- item
- (event-time tc)
- (gfs:make-rectangle)))))) ; FIXME
+ (event-select (dispatcher item) item (gfs:make-rectangle)))))) ; FIXME
((eq wparam-hi 1)
(format t "accelerator wparam: ~x lparam: ~x~%" wparam lparam)) ; FIXME: debug
(t
@@ -193,7 +190,7 @@
(unless (null menu)
(let ((d (dispatcher menu)))
(unless (null d)
- (event-activate d menu (event-time tc))))))
+ (event-activate d menu :click))))) ; FIXME: menus can be invoked programmatically, too
0)
(defmethod process-message (hwnd (msg (eql gfs::+wm-menuselect+)) wparam lparam)
@@ -203,7 +200,7 @@
(unless (null item)
(let ((d (dispatcher item)))
(unless (null d)
- (event-arm d item (event-time tc))))))
+ (event-arm d item)))))
0)
(defmethod process-message (hwnd (msg (eql gfs::+wm-create+)) wparam lparam)
@@ -223,7 +220,7 @@
(w (get-widget tc hwnd))
(ch (code-char (lo-word wparam))))
(when w
- (event-key-down (dispatcher w) w (event-time tc) (virtual-key tc) ch)))
+ (event-key-down (dispatcher w) w (virtual-key tc) ch)))
0)
(defmethod process-message (hwnd (msg (eql gfs::+wm-keydown+)) wparam lparam)
@@ -234,7 +231,7 @@
(w (get-widget tc hwnd)))
(setf (virtual-key tc) wparam-lo)
(when (and w (zerop ch))
- (event-key-down (dispatcher w) w (event-time tc) wparam-lo (code-char ch))))
+ (event-key-down (dispatcher w) w wparam-lo (code-char ch))))
0)
(defmethod process-message (hwnd (msg (eql gfs::+wm-keyup+)) wparam lparam)
@@ -244,7 +241,7 @@
(ch (gfs::map-virtual-key wparam-lo 2))
(w (get-widget tc hwnd)))
(when w
- (event-key-up (dispatcher w) w (event-time tc) wparam-lo (code-char ch))))
+ (event-key-up (dispatcher w) w wparam-lo (code-char ch))))
(setf (virtual-key tc) 0))
0)
@@ -289,14 +286,14 @@
(w (get-widget tc hwnd)))
(when w
(outer-location w (move-event-pnt tc))
- (event-move (dispatcher w) w (event-time tc) (move-event-pnt tc))))
+ (event-move (dispatcher w) w (move-event-pnt tc))))
0)
(defmethod process-message (hwnd (msg (eql gfs::+wm-moving+)) wparam lparam)
(declare (ignore wparam lparam))
(let* ((tc (thread-context))
(w (get-widget tc hwnd)))
- (if (and w (event-pre-move (dispatcher w) w (event-time tc)))
+ (if (and w (event-pre-move (dispatcher w) w))
1
0)))
@@ -318,7 +315,7 @@
:height gfs::rcpaint-height))
(let ((gc (make-instance 'gfg:graphics-context :handle (gfs::begin-paint hwnd ps-ptr))))
(unwind-protect
- (event-paint (dispatcher widget) widget (event-time tc) gc rct)
+ (event-paint (dispatcher widget) widget gc rct)
(gfs:dispose gc)
(gfs::end-paint hwnd ps-ptr))))))
(error 'gfs:toolkit-error :detail "no object for hwnd")))
@@ -357,7 +354,7 @@
(let* ((tc (thread-context))
(widget (get-widget tc hwnd)))
(if widget
- (event-focus-loss (dispatcher widget) widget (event-time tc))))
+ (event-focus-loss (dispatcher widget) widget)))
0)
(defmethod process-message (hwnd (msg (eql gfs::+wm-setfocus+)) wparam lparam)
@@ -365,7 +362,7 @@
(let* ((tc (thread-context))
(widget (get-widget tc hwnd)))
(if widget
- (event-focus-gain (dispatcher widget) widget (event-time tc))))
+ (event-focus-gain (dispatcher widget) widget)))
0)
(defmethod process-message (hwnd (msg (eql gfs::+wm-getminmaxinfo+)) wparam lparam)
@@ -407,15 +404,14 @@
(t nil))))
(when w
(outer-size w (size-event-size tc))
- #+gf-debug-widgets (format t "about to call event-resize: ~a~%" hwnd)
- (event-resize (dispatcher w) w (event-time tc) (size-event-size tc) type)))
+ (event-resize (dispatcher w) w (size-event-size tc) type)))
0)
(defmethod process-message (hwnd (msg (eql gfs::+wm-sizing+)) wparam lparam)
(declare (ignore wparam lparam))
(let* ((tc (thread-context))
(w (get-widget tc hwnd)))
- (if (and w (event-pre-resize (dispatcher w) w (event-time tc)))
+ (if (and w (event-pre-resize (dispatcher w) w))
1
0)))
@@ -427,15 +423,15 @@
(gfs::kill-timer hwnd wparam)
(cond
((<= (delay-of timer) 0)
- (event-timer (dispatcher timer) timer (event-time tc))
+ (event-timer (dispatcher timer) timer)
(gfs:dispose timer))
((/= (delay-of timer) (initial-delay-of timer))
(let ((delay (reset-timer-to-delay timer (delay-of timer))))
(setf (slot-value timer 'delay) delay)
(setf (slot-value timer 'initial-delay) delay))
- (event-timer (dispatcher timer) timer (event-time tc)))
+ (event-timer (dispatcher timer) timer))
(t
- (event-timer (dispatcher timer) timer (event-time tc))))))
+ (event-timer (dispatcher timer) timer)))))
0)
;;;
Modified: trunk/src/uitoolkit/widgets/widget.lisp
==============================================================================
--- trunk/src/uitoolkit/widgets/widget.lisp (original)
+++ trunk/src/uitoolkit/widgets/widget.lisp Sun Jul 9 02:35:37 2006
@@ -153,7 +153,7 @@
(defmethod gfs:dispose ((w widget))
(unless (null (dispatcher w))
- (event-dispose (dispatcher w) w (event-time (thread-context))))
+ (event-dispose (dispatcher w) w))
(let ((hwnd (gfs:handle w)))
(if (not (gfs:null-handle-p hwnd))
(if (zerop (gfs::destroy-window hwnd))
Modified: trunk/src/uitoolkit/widgets/window.lisp
==============================================================================
--- trunk/src/uitoolkit/widgets/window.lisp (original)
+++ trunk/src/uitoolkit/widgets/window.lisp Sun Jul 9 02:35:37 2006
@@ -180,8 +180,8 @@
(let ((sz (client-size win)))
(perform (layout-of win) win (gfs:size-width sz) (gfs:size-height sz)))))
-(defmethod event-resize ((d event-dispatcher) (win window) time size type)
- (declare (ignorable d time size type))
+(defmethod event-resize ((d event-dispatcher) (win window) size type)
+ (declare (ignore size type))
(unless (null (layout-of win))
(let ((sz (client-size win)))
(perform (layout-of win) win (gfs:size-width sz) (gfs:size-height sz)))))