ui.gadgets: Add '(>>dim)' method for 'gadget'. Add 'do-invalidate'.

db4
Eduardo Cavazos 2008-07-21 17:02:39 -05:00
parent c13e36e216
commit 22fb3f329c
1 changed files with 14 additions and 4 deletions

View File

@ -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 )