From 22fb3f329c78840e1778e5d96674043197905b2c Mon Sep 17 00:00:00 2001 From: Eduardo Cavazos Date: Mon, 21 Jul 2008 17:02:39 -0500 Subject: [PATCH] ui.gadgets: Add '(>>dim)' method for 'gadget'. Add 'do-invalidate'. --- extra/ui/gadgets/gadgets.factor | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/extra/ui/gadgets/gadgets.factor b/extra/ui/gadgets/gadgets.factor index 328d6eb749..de43704b05 100755 --- a/extra/ui/gadgets/gadgets.factor +++ b/extra/ui/gadgets/gadgets.factor @@ -170,11 +170,21 @@ DEFER: relayout [ [ 2drop ] [ set-rect-dim ] if ] 2keep [ drop ] r> if ; inline -: set-layout-dim ( dim gadget -- ) - [ invalidate ] (set-rect-dim) ; +! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -: set-gadget-dim ( dim gadget -- ) - [ invalidate* ] (set-rect-dim) ; +DEFER: in-layout? + +: do-invalidate ( gadget -- gadget ) + in-layout? get [ dup invalidate ] [ dup invalidate* ] if ; + +M: gadget (>>dim) ( dim gadget -- ) + 2dup dim>> = + [ 2drop ] + [ tuck call-next-method do-invalidate drop ] + if ; + +: set-layout-dim ( dim gadget -- ) (>>dim) ; +: set-gadget-dim ( dim gadget -- ) (>>dim) ; GENERIC: pref-dim* ( gadget -- dim )