From 15e9575cb69af8c9213ee5094df8fdebefb33277 Mon Sep 17 00:00:00 2001 From: Eduardo Cavazos Date: Mon, 14 Jan 2008 05:19:00 -0600 Subject: [PATCH] Mortar defined and used parsing words. Refactor this. --- extra/factory/factory-menus | 2 +- extra/factory/factory.factor | 2 +- extra/mortar/mortar.factor | 15 +++++++++++---- extra/mortar/sugar/sugar.factor | 6 ++++++ extra/x/gc/gc.factor | 3 ++- extra/x/pen/pen.factor | 2 +- extra/x/widgets/button/button.factor | 4 ++-- extra/x/widgets/keymenu/keymenu.factor | 2 +- extra/x/widgets/label/label.factor | 2 +- extra/x/widgets/wm/frame/drag/move/move.factor | 2 +- extra/x/widgets/wm/frame/drag/size/size.factor | 2 +- extra/x/widgets/wm/frame/frame.factor | 2 +- extra/x/widgets/wm/menu/menu.factor | 2 +- 13 files changed, 30 insertions(+), 16 deletions(-) create mode 100644 extra/mortar/sugar/sugar.factor 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: