adding forward and backward movement
This commit is contained in:
parent
4bd8d877af
commit
21c73b77c3
|
@ -48,6 +48,11 @@
|
||||||
|
|
||||||
view-down?
|
view-down?
|
||||||
view-down
|
view-down
|
||||||
|
|
||||||
|
view-forward?
|
||||||
|
view-forward
|
||||||
|
view-backward?
|
||||||
|
view-backward
|
||||||
|
|
||||||
view-text
|
view-text
|
||||||
update-view-text
|
update-view-text
|
||||||
|
|
|
@ -324,6 +324,60 @@
|
||||||
view.focus = view.focus.children(':first');
|
view.focus = view.focus.children(':first');
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
MockView.prototype.forward = function() {
|
||||||
|
return this.act(
|
||||||
|
function(cursor) {
|
||||||
|
return cursor.succ();
|
||||||
|
},
|
||||||
|
function(eventHandlers) {
|
||||||
|
return eventHandlers;
|
||||||
|
},
|
||||||
|
function(view) {
|
||||||
|
if (view.focus.children().length > 0) {
|
||||||
|
view.focus = view.focus.children(':first');
|
||||||
|
} else if (view.focus.next().length > 0) {
|
||||||
|
view.focus = view.focus.next();
|
||||||
|
} else {
|
||||||
|
while (true) {
|
||||||
|
view.focus = view.focus.parent();
|
||||||
|
if (view.focus.next().length > 0) {
|
||||||
|
view.focus = view.focus.next();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
MockView.prototype.backward = function() {
|
||||||
|
return this.act(
|
||||||
|
function(cursor) {
|
||||||
|
return cursor.pred();
|
||||||
|
},
|
||||||
|
function(eventHandlers) {
|
||||||
|
return eventHandlers;
|
||||||
|
},
|
||||||
|
function(view) {
|
||||||
|
if (view.focus.prev().length > 0) {
|
||||||
|
view.focus = view.focus.prev();
|
||||||
|
while (view.focus.children().length > 0) {
|
||||||
|
view.focus = view.focus.children(':last');
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
view.focus = view.focus.parent();
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
var mockViewIdGensym = 0;
|
var mockViewIdGensym = 0;
|
||||||
|
|
||||||
|
@ -489,6 +543,13 @@
|
||||||
return this.cursor.canRight();
|
return this.cursor.canRight();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
MockView.prototype.isForwardMovementOk = function() {
|
||||||
|
return this.cursor.canSucc();
|
||||||
|
};
|
||||||
|
|
||||||
|
MockView.prototype.isBackwardMovementOk = function() {
|
||||||
|
return this.cursor.canPred();
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////
|
||||||
|
@ -1620,6 +1681,21 @@
|
||||||
return view.down();
|
return view.down();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
EXPORTS['view-forward'] = makePrimitiveProcedure(
|
||||||
|
'view-forward',
|
||||||
|
1,
|
||||||
|
function(MACHINE) {
|
||||||
|
var view = checkMockView(MACHINE, 'view-forward', 0);
|
||||||
|
return view.forward();
|
||||||
|
});
|
||||||
|
|
||||||
|
EXPORTS['view-backward'] = makePrimitiveProcedure(
|
||||||
|
'view-backward',
|
||||||
|
1,
|
||||||
|
function(MACHINE) {
|
||||||
|
var view = checkMockView(MACHINE, 'view-backward', 0);
|
||||||
|
return view.backward();
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
EXPORTS['view-left?'] = makePrimitiveProcedure(
|
EXPORTS['view-left?'] = makePrimitiveProcedure(
|
||||||
|
@ -1655,6 +1731,24 @@
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
EXPORTS['view-forward?'] = makePrimitiveProcedure(
|
||||||
|
'view-down?',
|
||||||
|
1,
|
||||||
|
function(MACHINE) {
|
||||||
|
var view = checkMockView(MACHINE, 'view-forward?', 0);
|
||||||
|
return view.isForwardMovementOk();
|
||||||
|
});
|
||||||
|
|
||||||
|
EXPORTS['view-backward?'] = makePrimitiveProcedure(
|
||||||
|
'view-backward?',
|
||||||
|
1,
|
||||||
|
function(MACHINE) {
|
||||||
|
var view = checkMockView(MACHINE, 'view-backward?', 0);
|
||||||
|
return view.isBackwardMovementOk();
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -9,6 +9,12 @@
|
||||||
view-focus? view-focus
|
view-focus? view-focus
|
||||||
view-left view-right view-up view-down
|
view-left view-right view-up view-down
|
||||||
view-left? view-right? view-up? view-down?
|
view-left? view-right? view-up? view-down?
|
||||||
|
|
||||||
|
view-forward?
|
||||||
|
view-forward
|
||||||
|
view-backward?
|
||||||
|
view-backward
|
||||||
|
|
||||||
view-text update-view-text
|
view-text update-view-text
|
||||||
view-attr update-view-attr
|
view-attr update-view-attr
|
||||||
view-css update-view-css
|
view-css update-view-css
|
||||||
|
@ -25,6 +31,9 @@
|
||||||
view-insert-right
|
view-insert-right
|
||||||
view-insert-left
|
view-insert-left
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
view-remove
|
view-remove
|
||||||
|
|
||||||
open-output-element
|
open-output-element
|
||||||
|
@ -111,6 +120,19 @@
|
||||||
(define (view-down? v)
|
(define (view-down? v)
|
||||||
(error 'view-down? "Please run in JavaScript context"))
|
(error 'view-down? "Please run in JavaScript context"))
|
||||||
|
|
||||||
|
(define (view-forward? v)
|
||||||
|
(error 'view-forward? "Please run in JavaScript context"))
|
||||||
|
|
||||||
|
(define (view-backward? v)
|
||||||
|
(error 'view-backward? "Please run in JavaScript context"))
|
||||||
|
|
||||||
|
(define (view-forward v)
|
||||||
|
(error 'view-forward "Please run in JavaScript context"))
|
||||||
|
|
||||||
|
(define (view-backward v)
|
||||||
|
(error 'view-backward "Please run in JavaScript context"))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user