diff --git a/extra/factory/factory-menus b/extra/factory/factory-menus index dd5dc29378..fa72fa6c9a 100644 --- a/extra/factory/factory-menus +++ b/extra/factory/factory-menus @@ -1,6 +1,6 @@ ! -*-factor-*- -USING: kernel unix vars mortar slot-accessors +USING: kernel unix vars mortar mortar.sugar slot-accessors x.widgets.wm.menu x.widgets.wm.unmapped-frames-menu factory.commands factory.load ; diff --git a/extra/factory/factory.factor b/extra/factory/factory.factor index a5755c2a67..ca534f12c1 100644 --- a/extra/factory/factory.factor +++ b/extra/factory/factory.factor @@ -1,6 +1,6 @@ USING: kernel parser io io.files namespaces sequences editors threads vars - mortar slot-accessors + mortar mortar.sugar slot-accessors x x.widgets.wm.root x.widgets.wm.frame diff --git a/extra/mortar/mortar.factor b/extra/mortar/mortar.factor index c7522e1db6..b7862af7ac 100644 --- a/extra/mortar/mortar.factor +++ b/extra/mortar/mortar.factor @@ -128,7 +128,7 @@ over object-class class-methods 1 head* assoc-stack call ; ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -: new* ( class -- object ) <<- create ; +! : new* ( class -- object ) <<- create ; ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! @@ -136,13 +136,20 @@ IN: slot-accessors IN: mortar +! : generate-slot-getter ( name -- ) +! "$" over append "slot-accessors" create swap [ slot-value ] curry +! define-compound ; + : generate-slot-getter ( name -- ) -"$" over append "slot-accessors" create swap [ slot-value ] curry -define-compound ; +"$" over append "slot-accessors" create swap [ slot-value ] curry define ; + +! : generate-slot-setter ( name -- ) +! ">>" over append "slot-accessors" create swap [ swap set-slot-value ] curry +! define-compound ; : generate-slot-setter ( name -- ) ">>" over append "slot-accessors" create swap [ swap set-slot-value ] curry -define-compound ; +define ; : generate-slot-accessors ( name -- ) dup diff --git a/extra/mortar/sugar/sugar.factor b/extra/mortar/sugar/sugar.factor new file mode 100644 index 0000000000..04d2f6f651 --- /dev/null +++ b/extra/mortar/sugar/sugar.factor @@ -0,0 +1,6 @@ + +USING: mortar ; + +IN: mortar.sugar + +: new* ( class -- object ) <<- create ; \ No newline at end of file diff --git a/extra/x/gc/gc.factor b/extra/x/gc/gc.factor index 77e5313d00..8db610a1ac 100644 --- a/extra/x/gc/gc.factor +++ b/extra/x/gc/gc.factor @@ -1,5 +1,6 @@ -USING: kernel namespaces arrays x11.xlib mortar slot-accessors x x.font ; +USING: kernel namespaces arrays x11.xlib mortar mortar.sugar + slot-accessors x x.font ; IN: x.gc diff --git a/extra/x/pen/pen.factor b/extra/x/pen/pen.factor index c4fc6cfa9f..59b8aeea44 100644 --- a/extra/x/pen/pen.factor +++ b/extra/x/pen/pen.factor @@ -1,5 +1,5 @@ -USING: kernel arrays math.vectors mortar x.gc slot-accessors geom.pos ; +USING: kernel arrays math.vectors mortar mortar.sugar x.gc slot-accessors geom.pos ; IN: x.pen diff --git a/extra/x/widgets/button/button.factor b/extra/x/widgets/button/button.factor index b26431c4c2..ea46b62a69 100644 --- a/extra/x/widgets/button/button.factor +++ b/extra/x/widgets/button/button.factor @@ -1,6 +1,6 @@ USING: kernel combinators math x11.xlib - mortar slot-accessors x.gc x.widgets.label ; + mortar mortar.sugar slot-accessors x.gc x.widgets.label ; IN: x.widgets.button @@ -11,7 +11,7 @@ SYMBOL: