[graphic-forms-cvs] r177 - in trunk: . docs/manual src/uitoolkit/widgets
junrue at common-lisp.net
junrue at common-lisp.net
Wed Jul 5 14:55:14 UTC 2006
Author: junrue
Date: Wed Jul 5 10:55:13 2006
New Revision: 177
Modified:
trunk/README.txt
trunk/docs/manual/api.texinfo
trunk/docs/manual/overview.texinfo
trunk/src/uitoolkit/widgets/heap-layout.lisp
trunk/src/uitoolkit/widgets/layout.lisp
trunk/src/uitoolkit/widgets/widget-classes.lisp
Log:
added layout-managed base class, modified window and group inheritance accordingly, some initial related refactoring in the layout code
Modified: trunk/README.txt
==============================================================================
--- trunk/README.txt (original)
+++ trunk/README.txt Wed Jul 5 10:55:13 2006
@@ -15,17 +15,17 @@
- ASDF
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/cclan/asdf/
- - Cells
- http://common-lisp.net/project/cells/
+ - Cells (latest from CVS)
+ http://www.common-lisp.net/project/cells/
- CFFI (cffi-060606 or later)
http://common-lisp.net/project/cffi/
- lw-compat
- http://common-lisp.net/project/cl-containers/lw-compat/lw-compat_latest.tar.gz
+ http://common-lisp.net/project/closer/downloads.html
- Closer to MOP
- http://common-lisp.net/project/cl-containers/closer-mop/closer-mop_latest.tar.gz
+ http://common-lisp.net/project/closer/downloads.html
- ImageMagick 6.2.6.5-Q16
http://www.imagemagick.org/download/binaries/ImageMagick-6.2.6-5-Q16-windows-dll.exe
Modified: trunk/docs/manual/api.texinfo
==============================================================================
--- trunk/docs/manual/api.texinfo (original)
+++ trunk/docs/manual/api.texinfo Wed Jul 5 10:55:13 2006
@@ -524,7 +524,7 @@
@end deftp
@anchor{group}
- at deftp Class group layout children location size style
+ at deftp Class group children location size style
@strong{NOTE:} this class is not yet fully implemented
and does not yet participate in the layout protocol.@*@*
A @code{group} represents a logical rectangular aggregation
@@ -606,9 +606,27 @@
@end deffn
@end deftp
+ at anchor{layout-managed}
+ at deftp Class layout-managed layout layout-p
+Instances of this class employ a @ref{layout-manager} to maintain
+the positions and sizes of their children.
+ at deffn Accessor layout-of
+Accepts or returns the @ref{layout-manager} associated with this
+container.
+ at end deffn
+ at deffn Initarg :layout
+Accepts a @ref{layout-manager} object whose responsibility is to manage
+the direct children of this container.
+ at end deffn
+ at deffn Reader layout-p => boolean
+Returns T if layout behavior is enabled for this container;
+ at sc{nil} otherwise.
+ at end deffn
+ at end deftp
+
@anchor{menu}
@deftp Class menu
-The menu class represents a container for menu items and submenus. It
+This class represents a container for menu items and submenus. It
derives from @ref{widget-with-items}.
@end deftp
@@ -732,23 +750,12 @@
@anchor{window}
@deftp Class window layout-p layout maximum-size minimum-size
-This is the base class for user-defined @ref{widget}s that serve as containers.
- at deffn Accessor layout-of
-Accepts or returns the @ref{layout-manager} associated with this
- at code{window}.
- at end deffn
+This is the base class for user-defined @ref{widget}s that serve as containers;
+it is also a @ref{layout-managed} subclass.
@deffn Accessor maximum-size
@end deffn
@deffn Accessor minimum-size
@end deffn
- at deffn Initarg :layout
-Accepts a @ref{layout-manager} object whose responsibility is to manage
-the direct children of this @code{window}.
- at end deffn
- at deffn Reader layout-p => boolean
-Returns T if layout behavior is enabled for the @code{window};
- at sc{nil} otherwise.
- at end deffn
@deffn Initarg :maximum-size
@end deffn
@deffn Initarg :minimum-size
Modified: trunk/docs/manual/overview.texinfo
==============================================================================
--- trunk/docs/manual/overview.texinfo (original)
+++ trunk/docs/manual/overview.texinfo Wed Jul 5 10:55:13 2006
@@ -73,14 +73,14 @@
@item ASDF
@url{http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/cclan/asdf}
- at item Cells
- at url{http://common-lisp.net/project/cells}
+ at item Cells (latest from CVS)
+ at url{http://www.common-lisp.net/project/cells/}
@item CFFI
@url{http://common-lisp.net/project/cffi}
@item Closer to MOP
- at url{http://common-lisp.net/project/cl-containers/closer-mop/closer-mop_latest.tar.gz}
+ at url{http://common-lisp.net/project/closer/downloads.html}
@item ImageMagick
@url{http://www.imagemagick.org/download/binaries/ImageMagick-6.2.6-5-Q16-windows-dll.exe}
@@ -89,7 +89,7 @@
@url{http://www.cs.northwestern.edu/academics/courses/325/readings/lisp-unit.html}
@item lw-compat
- at url{http://common-lisp.net/project/cl-containers/lw-compat/lw-compat_latest.tar.gz}
+ at url{http://common-lisp.net/project/closer/downloads.html}
@end table
Modified: trunk/src/uitoolkit/widgets/heap-layout.lisp
==============================================================================
--- trunk/src/uitoolkit/widgets/heap-layout.lisp (original)
+++ trunk/src/uitoolkit/widgets/heap-layout.lisp Wed Jul 5 10:55:13 2006
@@ -68,12 +68,12 @@
(declare (ignore parent))
(cons kid bounds)))))
-(defmethod perform ((self heap-layout) win width-hint height-hint)
+(defmethod perform ((self heap-layout) (container layout-managed) width-hint height-hint)
(let ((kids nil)
(hdwp (cffi:null-pointer))
(top (top-child-of self)))
- (when (layout-p win)
- (setf kids (compute-layout self win width-hint height-hint))
+ (when (layout-p container)
+ (setf kids (compute-layout self container width-hint height-hint))
(setf hdwp (gfs::begin-defer-window-pos (length kids)))
(loop for k in kids
do (let* ((rect (cdr k))
Modified: trunk/src/uitoolkit/widgets/layout.lisp
==============================================================================
--- trunk/src/uitoolkit/widgets/layout.lisp (original)
+++ trunk/src/uitoolkit/widgets/layout.lisp Wed Jul 5 10:55:13 2006
@@ -59,12 +59,12 @@
(setf (top-margin-of layout) vertical-margins)
(setf (bottom-margin-of layout) vertical-margins)))
-(defmethod perform ((layout layout-manager) win width-hint height-hint)
- "Calls compute-layout for a window and then handles the actual moving and resizing of its children."
+(defmethod perform ((self layout-manager) (container layout-managed) width-hint height-hint)
+ "Calls compute-layout for a container and then handles the actual moving and resizing of its children."
(let ((kids nil)
(hdwp (cffi:null-pointer)))
- (when (layout-p win)
- (setf kids (compute-layout layout win width-hint height-hint))
+ (when (layout-p container)
+ (setf kids (compute-layout self container width-hint height-hint))
(setf hdwp (gfs::begin-defer-window-pos (length kids)))
(loop for k in kids
do (let* ((rect (cdr k))
Modified: trunk/src/uitoolkit/widgets/widget-classes.lisp
==============================================================================
--- trunk/src/uitoolkit/widgets/widget-classes.lisp (original)
+++ trunk/src/uitoolkit/widgets/widget-classes.lisp Wed Jul 5 10:55:13 2006
@@ -39,12 +39,18 @@
(defclass event-dispatcher () ()
(:documentation "Instances of this class receive events on behalf of user interface objects."))
-(defclass group ()
- ((layout
+(defclass layout-managed ()
+ ((layout-p
+ :reader layout-p
+ :initform t)
+ (layout
:accessor layout-of
:initarg :layout
- :initform nil)
- (children
+ :initform nil))
+ (:documentation "Instances of this class employ a layout manager to organize their children."))
+
+(defclass group (layout-managed)
+ ((children
:accessor children-of
:initarg :children
:initform nil)
@@ -60,7 +66,7 @@
:accessor style-of
:initarg :style
:initform nil))
- (:documentation "Instances of this class act as lightweight containers for other objects."))
+ (:documentation "Instances of this class act as logical containers for other objects."))
(defclass event-source (gfs:native-object)
((dispatcher
@@ -143,15 +149,8 @@
(defclass menu (widget-with-items) ()
(:documentation "The menu class represents a container for menu items (and submenus)."))
-(defclass window (widget)
- ((layout-p
- :reader layout-p
- :initform t)
- (layout
- :accessor layout-of
- :initarg :layout
- :initform nil)
- (maximum-size
+(defclass window (widget layout-managed)
+ ((maximum-size
:accessor maximum-size
:initarg :maximum-size
:initform nil)
More information about the Graphic-forms-cvs
mailing list