[graphic-forms-cvs] r109 - in trunk: . docs/manual src/demos/unblocked src/tests/uitoolkit src/uitoolkit/widgets
junrue at common-lisp.net
junrue at common-lisp.net
Wed Apr 26 16:14:58 UTC 2006
Author: junrue
Date: Wed Apr 26 12:14:57 2006
New Revision: 109
Modified:
trunk/README.txt
trunk/docs/manual/api.texinfo
trunk/src/demos/unblocked/unblocked-window.lisp
trunk/src/tests/uitoolkit/event-tester.lisp
trunk/src/uitoolkit/widgets/timer.lisp
trunk/src/uitoolkit/widgets/widget-generics.lisp
Log:
made API change for timers -- use existing enable generic function instead of start/stop; miscellaneous doc updates
Modified: trunk/README.txt
==============================================================================
--- trunk/README.txt (original)
+++ trunk/README.txt Wed Apr 26 12:14:57 2006
@@ -34,6 +34,12 @@
http://www.cs.northwestern.edu/academics/courses/325/readings/lisp-unit.html
+Supported Common Lisp Implementations
+-------------------------------------
+
+Graphic-Forms currently supports CLISP 2.38 and LispWorks 4.4.6.
+
+
Known Problems
--------------
@@ -46,7 +52,7 @@
http://sourceforge.net/tracker/index.php?func=detail&aid=1463994&group_id=1355&atid=101355
may result in intermittent GPFs when windows with layout managers are
- resized or when timer objects are initialized.
+ resized or when timer objects are enabled.
2. Image loading currently requires installation of the ImageMagick
library as described in the next section. I have tested with Windows
@@ -60,10 +66,12 @@
not get disabled. However, the GFW:ENABLE function does otherwise
work correctly for menu items.
-4. Graphic-Forms supports CLISP 2.38 and LispWorks 4.4.6. The
- intention is to support additional Lisp vendors, but currently
- the library will not run on anything but CLISP or LW due to some
- vendor-specific features that have to be used.
+4. The src/demos/unblocked directory contains a start at a demo
+ program (a simple game where one clicks on block shapes to
+ score points, where the rest of the blocks fall down to fill
+ in the gaps). This demo program is not yet finished, but the
+ source code can still serve as sample code.
+
How To Configure and Build
@@ -145,6 +153,8 @@
(in-package :gft)
(run-tests) ;; runs the unit tests (many more to be added)
+ (gft::run-drawing-tester)
+
(gft::run-event-tester)
(gft::run-image-tester)
Modified: trunk/docs/manual/api.texinfo
==============================================================================
--- trunk/docs/manual/api.texinfo (original)
+++ trunk/docs/manual/api.texinfo Wed Apr 26 12:14:57 2006
@@ -415,18 +415,24 @@
@end quotation
@end deftp
+ at anchor{timer}
@deftp Class timer
A timer is a non-windowed object that generates events at a regular
-(adjustable) frequency. It derives from @ref{event-source}.
- at deffn Reader id-of
- at end deffn
+(adjustable) frequency. Applications handle timer events by
+implementing the @ref{event-timer} generic function. This class
+derives from @ref{event-source}.
@deffn Initarg :initial-delay
- at end deffn
- at deffn Reader initial-delay
+This initarg accepts a milliseconds value specifying how much of a
+delay should occur between the call to @ref{enable} the timer and the
+first tick event. If specified, this value must be non-negative.
@end deffn
@deffn Initarg :delay
- at end deffn
- at deffn Accessor delay
+This initarg accepts a milliseconds value specifying how much delay
+should occur between subsequent tick events. If @code{:initial-delay}
+was not specified, then this value will be used as the initial delay
+time as well. Setting @code{:delay} to zero and setting
+ at code{:initial-delay} to a positive value has the effect of creating a
+ at emph{one-shot} timer.
@end deffn
@end deftp
@@ -588,6 +594,7 @@
Implement this to respond to an object (or item within) being selected.
@end deffn
+ at anchor{event-timer}
@deffn GenericFunction event-timer dispatcher timer time
Implement this to respond to a tick from a specific timer.
@end deffn
@@ -664,9 +671,11 @@
from display-relative coordinates to this object's coordinate system.
@end deffn
+ at anchor{enable}
@deffn GenericFunction enable self flag
-Enables or disables the object, causing it to be redrawn with its
-default look and allows it to be selected.
+For widgets, this function enables or disables the object, causing it
+to be redrawn with its default look and allows it to be selected. This
+function is also used to start and stop @ref{timer}s.
@end deffn
@deffn GenericFunction enable-layout self flag
@@ -817,14 +826,6 @@
parent's coordinate system.
@end deffn
- at deffn GenericFunction start self
-Enable event generation at regular intervals.
- at end deffn
-
- at deffn GenericFunction stop self
-Stop producing events.
- at end deffn
-
@deffn GenericFunction text self
Returns the object's text.
@end deffn
Modified: trunk/src/demos/unblocked/unblocked-window.lisp
==============================================================================
--- trunk/src/demos/unblocked/unblocked-window.lisp (original)
+++ trunk/src/demos/unblocked/unblocked-window.lisp Wed Apr 26 12:14:57 2006
@@ -111,6 +111,7 @@
(let ((size (gfw:preferred-size *unblocked-win* -1 -1)))
(setf (gfw:minimum-size *unblocked-win*) size)
(setf (gfw:maximum-size *unblocked-win*) size))
+ (new-unblocked nil nil nil nil)
(gfw:show *unblocked-win* t)))
(defun unblocked ()
Modified: trunk/src/tests/uitoolkit/event-tester.lisp
==============================================================================
--- trunk/src/tests/uitoolkit/event-tester.lisp (original)
+++ trunk/src/tests/uitoolkit/event-tester.lisp Wed Apr 26 12:14:57 2006
@@ -207,12 +207,12 @@
(declare (ignore disp item time rect))
(if *timer*
(progn
- (gfw:stop *timer*)
+ (gfw:enable *timer* nil)
(setf *timer* nil)
(setf *event-tester-text* "timer stopped by user"))
(progn
(setf *timer* (make-instance 'gfw:timer :delay 1000 :dispatcher (make-instance 'event-tester-echo-dispatcher)))
- (gfw:start *timer*)
+ (gfw:enable *timer* t)
(setf *event-tester-text* (format nil
"timer ~d started init delay: ~d delay ~d"
(gfw:id-of *timer*)
Modified: trunk/src/uitoolkit/widgets/timer.lisp
==============================================================================
--- trunk/src/uitoolkit/widgets/timer.lisp (original)
+++ trunk/src/uitoolkit/widgets/timer.lisp Wed Apr 26 12:14:57 2006
@@ -108,18 +108,18 @@
(setf (slot-value self 'initial-delay) init-delay)
(setf (slot-value self 'delay) delay)))
-(defmethod start ((self timer))
- ;; use init-delay as the elapse interval for the very first
- ;; tick; the interval will be adjusted (or the timer killed)
- ;; as part of processing the first event
- ;;
- (let ((init-delay (initial-delay-of self)))
- (if (> init-delay 0)
- (reset-timer-to-delay self init-delay)
- (reset-timer-to-delay self (delay-of self)))))
-
-(defmethod stop ((self timer))
- (remove-timer (thread-context) self)) ;; kill-timer will be called on the next tick
+(defmethod enable ((self timer) flag)
+ (if flag
+ (progn
+ ;; use init-delay as the elapse interval for the very first
+ ;; tick; the interval will be adjusted (or the timer killed)
+ ;; as part of processing the first event
+ ;;
+ (let ((init-delay (initial-delay-of self)))
+ (if (> init-delay 0)
+ (reset-timer-to-delay self init-delay)
+ (reset-timer-to-delay self (delay-of self)))))
+ (remove-timer (thread-context) self))) ;; kill-timer will be called on the next tick
(defmethod running-p ((self timer))
(get-timer (thread-context) (id-of self)))
Modified: trunk/src/uitoolkit/widgets/widget-generics.lisp
==============================================================================
--- trunk/src/uitoolkit/widgets/widget-generics.lisp (original)
+++ trunk/src/uitoolkit/widgets/widget-generics.lisp Wed Apr 26 12:14:57 2006
@@ -330,15 +330,9 @@
(defgeneric size (self)
(:documentation "Returns a size object describing the size of the object in its parent's coordinate system."))
-(defgeneric start (self)
- (:documentation "Enable event generation at regular intervals."))
-
(defgeneric step-increment (self)
(:documentation "Return an integer representing the configured step size for the object."))
-(defgeneric stop (self)
- (:documentation "Stop producing events."))
-
(defgeneric text (self)
(:documentation "Returns the object's text."))
More information about the Graphic-forms-cvs
mailing list