]> gitweb.factorcode.org Git - factor.git/commitdiff
ui.gadgets: Specialize default behavior on object instead of gadget
authortimor <timor.dd@googlemail.com>
Sat, 21 Nov 2020 20:02:48 +0000 (21:02 +0100)
committerJohn Benediktsson <mrjbq7@gmail.com>
Tue, 2 Mar 2021 18:53:23 +0000 (10:53 -0800)
This allows implementing mixins which then can specify default behavior for
layouting and grafting for their instances.

Specifically concerns these generics:
- `model-changed`
- `layout*`
- `graft*`
- `ungraft*`

basis/models/models.factor
basis/ui/gadgets/gadgets.factor

index 7858745772ff79ae2de05819db6caebb6f5683fd..7f85fd9052cb4bf8047bf40b55ff31d96ea31a3b 100644 (file)
@@ -57,6 +57,7 @@ DEFER: remove-connection
     [ activate-model ] [ deactivate-model ] [ value>> ] tri ;
 
 GENERIC: model-changed ( model observer -- )
+M: object model-changed 2drop ;
 
 : add-connection ( observer model -- )
     dup connections>>
index db3686997c428cd144e43a79cf11d0377a7cf9d9..a6c9888b31259ad51ca4aa1328bde57209019afd 100644 (file)
@@ -30,8 +30,6 @@ M: gadget equal? 2drop f ;
 
 M: gadget hashcode* nip identity-hashcode ;
 
-M: gadget model-changed 2drop ;
-
 : gadget-child ( gadget -- child ) children>> first ; inline
 
 : nth-gadget ( n gadget -- child ) children>> nth ; inline
@@ -202,7 +200,7 @@ M: gadget pref-dim* dim>> ;
 
 GENERIC: layout* ( gadget -- )
 
-M: gadget layout* drop ;
+M: object layout* drop ;
 
 : prefer ( gadget -- ) dup pref-dim >>dim drop ;
 
@@ -215,11 +213,11 @@ M: gadget layout* drop ;
 
 GENERIC: graft* ( gadget -- )
 
-M: gadget graft* drop ;
+M: object graft* drop ;
 
 GENERIC: ungraft* ( gadget -- )
 
-M: gadget ungraft* drop ;
+M: object ungraft* drop ;
 
 <PRIVATE