[mcclim-cvs] CVS mcclim/Goatee
thenriksen
thenriksen at common-lisp.net
Sun Jan 7 19:36:06 UTC 2007
Update of /project/mcclim/cvsroot/mcclim/Goatee
In directory clnet:/tmp/cvs-serv18682/Goatee
Modified Files:
presentation-history.lisp
Log Message:
Now Goatee has Drei-like presentation history commands.
--- /project/mcclim/cvsroot/mcclim/Goatee/presentation-history.lisp 2004/01/20 16:07:26 1.1
+++ /project/mcclim/cvsroot/mcclim/Goatee/presentation-history.lisp 2007/01/07 19:36:06 1.2
@@ -30,67 +30,40 @@
(defun insert-ptype-history (object type)
(multiple-value-bind (line pos)
(point* *buffer*)
- (setf *insert-extent* (make-instance 'extent
- :start-line line
- :start-pos pos))
(multiple-value-bind (printed-rep accept-object)
(present-acceptably-to-string object type
+textual-view+ ; XXX
type)
- (format *trace-output* "insert-ptype-history: ~S, ~S~%"
- (pos (bp-start *insert-extent*))
- (pos (bp-end *insert-extent*)))
;; XXX accept-object
- (insert *buffer* printed-rep :line line :pos pos)
- (format *trace-output* "insert-ptype-history:: ~S, ~S~%"
- (pos (bp-start *insert-extent*))
- (pos (bp-end *insert-extent*))))))
+ (insert *buffer* printed-rep :line line :pos pos))))
-(defun cmd-presentation-history-yank (&key &allow-other-keys)
+(defun cmd-history-yank-next (&key &allow-other-keys)
(let* ((accepting-type climi::*active-history-type*)
- (history (and accepting-type
- (climi::presentation-type-history accepting-type))))
- (setq *last-history-type* accepting-type
- *last-history* history)
+ (history (and accepting-type
+ (presentation-type-history accepting-type))))
(when history
(multiple-value-bind (object type)
- (climi::presentation-history-head history accepting-type)
- (if type
- (insert-ptype-history object type))))))
+ (climi::presentation-history-next history accepting-type)
+ (when type
+ (clear-buffer *buffer*)
+ (insert-ptype-history object type))))))
-(defun cmd-presentation-history-yank-next (&key &allow-other-keys)
- (when (and *last-history-type* *last-history*)
+(defun cmd-history-yank-previous (&key &allow-other-keys)
+ (let* ((accepting-type climi::*active-history-type*)
+ (history (and accepting-type
+ (presentation-type-history accepting-type))))
+ (when history
(multiple-value-bind (object type)
- (climi::presentation-history-next *last-history* *last-history-type*)
- (when type
- (delete-region *buffer*
- (bp-start *insert-extent*)
- (bp-end *insert-extent*))
- (insert-ptype-history object type)))))
-
-
-(defun goatee-next (&key &allow-other-keys)
- (cond ((or (eq *last-command* 'cmd-presentation-history-yank)
- (and (eq *last-command* 'goatee-next)
- (or (eq *last-yank-command* 'cmd-presentation-history-yank-next)
- (eq *last-yank-command*
- 'cmd-presentation-history-yank-prev))))
- (funcall #'cmd-presentation-history-yank-next)
- (setq *last-yank-command* 'cmd-presentation-history-yank-next))
- ((or (eq *last-command* 'cmd-yank)
- (eq *last-command* 'cmd-yank-prev)
- (and (eq *last-command* 'goatee-next)
- (or (eq *last-yank-command* 'cmd-yank-next)
- (eq *last-yank-command* 'cmd-yank-prev))))
- (funcall #'cmd-yank-next)
- (setq *last-yank-command* 'cmd-yank-next))
- (t (beep))))
-
-(add-gesture-command-to-table '(#\y :control :meta)
- 'cmd-presentation-history-yank
- *simple-area-gesture-table*)
-
-(add-gesture-command-to-table '(#\y :meta)
- 'goatee-next
- *simple-area-gesture-table*)
+ (climi::presentation-history-previous history accepting-type)
+ (when type
+ (clear-buffer *buffer*)
+ (insert-ptype-history object type))))))
+
+(add-gesture-command-to-table '(#\p :meta)
+ 'cmd-history-yank-previous
+ *simple-area-gesture-table*)
+
+(add-gesture-command-to-table '(#\n :meta)
+ 'cmd-history-yank-next
+ *simple-area-gesture-table*)
More information about the Mcclim-cvs
mailing list