[graphic-forms-cvs] r137 - trunk/src/uitoolkit/widgets
junrue at common-lisp.net
junrue at common-lisp.net
Thu May 18 19:05:02 UTC 2006
Author: junrue
Date: Thu May 18 15:05:02 2006
New Revision: 137
Modified:
trunk/src/uitoolkit/widgets/panel.lisp
trunk/src/uitoolkit/widgets/widget.lisp
Log:
avoid z-order change when location or size setf functions are called; override compute-outer-size for panels to simply return the desired client size
Modified: trunk/src/uitoolkit/widgets/panel.lisp
==============================================================================
--- trunk/src/uitoolkit/widgets/panel.lisp (original)
+++ trunk/src/uitoolkit/widgets/panel.lisp Thu May 18 15:05:02 2006
@@ -49,6 +49,10 @@
;;; methods
;;;
+(defmethod compute-outer-size ((self panel) desired-client-size)
+ (declare (ignore self))
+ (gfs:copy-size desired-client-size))
+
(defmethod compute-style-flags ((self panel) &rest extra-data)
(declare (ignore extra-data))
(let ((std-flags (logior gfs::+ws-child+ gfs::+ws-visible+)))
Modified: trunk/src/uitoolkit/widgets/widget.lisp
==============================================================================
--- trunk/src/uitoolkit/widgets/widget.lisp (original)
+++ trunk/src/uitoolkit/widgets/widget.lisp Thu May 18 15:05:02 2006
@@ -202,7 +202,7 @@
(gfs:point-x pnt)
(gfs:point-y pnt)
0 0
- gfs::+swp-nosize+))
+ (logior gfs::+swp-nosize+ gfs::+swp-nozorder+)))
(error 'gfs:win32-error :detail "set-window-pos failed")))
(defmethod owner ((self widget))
@@ -270,21 +270,22 @@
(defmethod size ((w widget))
(client-size w))
-(defmethod (setf size) :before ((sz gfs:size) (w widget))
- (declare (ignore sz))
+(defmethod (setf size) :before ((size gfs:size) (w widget))
+ (declare (ignore size))
(if (gfs:disposed-p w)
(error 'gfs:disposed-error)))
-(defmethod (setf size) ((sz gfs:size) (w widget))
+(defmethod (setf size) ((size gfs:size) (w widget))
(if (gfs:disposed-p w)
(error 'gfs:disposed-error))
(if (zerop (gfs::set-window-pos (gfs:handle w)
(cffi:null-pointer)
0 0
- (gfs:size-width sz)
- (gfs:size-height sz)
- gfs::+swp-nomove+))
- (error 'gfs:win32-error :detail "set-window-pos failed")))
+ (gfs:size-width size)
+ (gfs:size-height size)
+ (logior gfs::+swp-nomove+ gfs::+swp-nozorder+)))
+ (error 'gfs:win32-error :detail "set-window-pos failed"))
+ size)
(defmethod show :before ((w widget) flag)
(declare (ignore flag))
More information about the Graphic-forms-cvs
mailing list