From 15e9575cb69af8c9213ee5094df8fdebefb33277 Mon Sep 17 00:00:00 2001 From: Eduardo Cavazos <wayo.cavazos@gmail.com> 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: <button> { "action-1" "action-2" "action-3" } accessors define-simple-class -<button> "create" ( <button> -- button ) [ +<button> "create" !( <button> -- button ) [ new-empty <gc> new* >>gc ExposureMask ButtonPressMask bitor >>mask <- init-widget ] add-class-method diff --git a/extra/x/widgets/keymenu/keymenu.factor b/extra/x/widgets/keymenu/keymenu.factor index 6c2fbb1e5c..b10f8f5593 100644 --- a/extra/x/widgets/keymenu/keymenu.factor +++ b/extra/x/widgets/keymenu/keymenu.factor @@ -1,6 +1,6 @@ USING: kernel strings arrays sequences sequences.lib math x11.xlib - mortar slot-accessors x x.pen x.widgets ; + mortar mortar.sugar slot-accessors x x.pen x.widgets ; IN: x.widgets.keymenu diff --git a/extra/x/widgets/label/label.factor b/extra/x/widgets/label/label.factor index 11201ae9fc..39eff20221 100644 --- a/extra/x/widgets/label/label.factor +++ b/extra/x/widgets/label/label.factor @@ -1,5 +1,5 @@ -USING: kernel x11.xlib mortar slot-accessors x.gc x.widgets ; +USING: kernel x11.xlib mortar mortar.sugar slot-accessors x.gc x.widgets ; IN: x.widgets.label diff --git a/extra/x/widgets/wm/frame/drag/move/move.factor b/extra/x/widgets/wm/frame/drag/move/move.factor index 2ebb5a7286..2a6d61596e 100644 --- a/extra/x/widgets/wm/frame/drag/move/move.factor +++ b/extra/x/widgets/wm/frame/drag/move/move.factor @@ -1,6 +1,6 @@ USING: kernel combinators namespaces math.vectors x11.xlib x11.constants - mortar slot-accessors x x.gc x.widgets.wm.frame.drag ; + mortar mortar.sugar slot-accessors x x.gc x.widgets.wm.frame.drag ; IN: x.widgets.wm.frame.drag.move diff --git a/extra/x/widgets/wm/frame/drag/size/size.factor b/extra/x/widgets/wm/frame/drag/size/size.factor index e98d75259a..5ef28e2a41 100644 --- a/extra/x/widgets/wm/frame/drag/size/size.factor +++ b/extra/x/widgets/wm/frame/drag/size/size.factor @@ -1,6 +1,6 @@ USING: kernel combinators namespaces math.vectors x11.xlib x11.constants - mortar slot-accessors geom.rect x x.gc x.widgets.wm.frame.drag ; + mortar mortar.sugar slot-accessors geom.rect x x.gc x.widgets.wm.frame.drag ; IN: x.widgets.wm.frame.drag.size diff --git a/extra/x/widgets/wm/frame/frame.factor b/extra/x/widgets/wm/frame/frame.factor index 0c0075ed3b..d8f08d8772 100644 --- a/extra/x/widgets/wm/frame/frame.factor +++ b/extra/x/widgets/wm/frame/frame.factor @@ -2,7 +2,7 @@ USING: kernel io combinators namespaces quotations arrays sequences math math.vectors x11.xlib x11.constants - mortar slot-accessors + mortar mortar.sugar slot-accessors geom.rect x x.gc x.widgets x.widgets.button diff --git a/extra/x/widgets/wm/menu/menu.factor b/extra/x/widgets/wm/menu/menu.factor index e836b21374..ca79b35136 100644 --- a/extra/x/widgets/wm/menu/menu.factor +++ b/extra/x/widgets/wm/menu/menu.factor @@ -1,5 +1,5 @@ -USING: kernel x11.constants mortar slot-accessors x.widgets.keymenu ; +USING: kernel x11.constants mortar mortar.sugar slot-accessors x.widgets.keymenu ; IN: x.widgets.wm.menu