diff --git a/web-world/impl.rkt b/web-world/impl.rkt index be1dc35..942cb58 100644 --- a/web-world/impl.rkt +++ b/web-world/impl.rkt @@ -35,6 +35,7 @@ view-text update-view-text + view-bind view-attr update-view-attr diff --git a/web-world/js-impl.js b/web-world/js-impl.js index 152832b..290e1c0 100644 --- a/web-world/js-impl.js +++ b/web-world/js-impl.js @@ -174,6 +174,22 @@ }); }; + MockView.prototype.bind = function(name, worldF) { + // return new EventHandler('on-tick', + // new TickEventSource(delay), + // onTick); + + return this.act( + function(cursor) { + return cursor; + //return cursor.replaceNode($(cursor.node).clone(true).bind(name, + }, + function(view) { + return view; + //view.focus.bind... + }); + }; + ////////////////////////////////////////////////////////////////////// @@ -888,5 +904,17 @@ + EXPORTS['view-bind'] = makePrimitiveProcedure( + 'view-bind', + 3, + function(MACHINE) { + var view = checkMockView(MACHINE, 'view-bind', 0); + var name = checkSymbolOrString(MACHINE, 'view-bind', 1).toString(); + var worldF = wrapFunction(checkProcedure(MACHINE, 'view-bind', 2)); + return view.bind(name, worldF); + }); + + + ////////////////////////////////////////////////////////////////////// }()); \ No newline at end of file diff --git a/web-world/racket-impl.rkt b/web-world/racket-impl.rkt index fa1085b..be0a90c 100644 --- a/web-world/racket-impl.rkt +++ b/web-world/racket-impl.rkt @@ -59,4 +59,8 @@ (error 'view-attr "Please run in JavaScript context.")) (define (update-view-attr v attr-name value) - (error 'update-view-attr "Please run in JavaScript context.")) \ No newline at end of file + (error 'update-view-attr "Please run in JavaScript context.")) + + +(define (view-bind v type worldF) + (error 'view-bind "Please run in JavaScript context.")) \ No newline at end of file