;;; animate.el --- make text dance
-;; Copyright (C) 2001, 2002, 2003, 2004, 2005,
-;; 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+;; Copyright (C) 2001-2015 Free Software Foundation, Inc.
;; Maintainer: Richard Stallman <rms@gnu.org>
;; Keywords: games
(insert-char char 1))
(defvar animate-n-steps 10
- "Number of steps to use `animate-string'.")
+"*Number of steps `animate-string' will place a char before its last position.")
+
+(defvar animation-buffer-name nil
+ "String naming the default buffer for animations.
+When nil animations displayed in the buffer named *Animation*.")
;;;###autoload
(defun animate-string (string vpos &optional hpos)
- "Display STRING starting at position VPOS, HPOS, using animation.
+ "Display STRING animations starting at position VPOS, HPOS.
The characters start at randomly chosen places,
and all slide in parallel to their final positions,
passing through `animate-n-steps' positions before the final ones.
;;;###autoload
(defun animate-sequence (list-of-strings space)
- "Display strings from LIST-OF-STRING with animation in a new buffer.
-Strings will be separated from each other by SPACE lines."
+ "Display animation strings from LIST-OF-STRING with buffer *Animation*.
+Strings will be separated from each other by SPACE lines.
+ When the variable `animation-buffer-name' is non-nil display
+animation in the buffer named by variable's value, creating the
+buffer if one does not exist."
(let ((vpos (/ (- (window-height)
1 ;; For the mode-line
(* (1- (length list-of-strings)) space)
(length list-of-strings))
2)))
- (switch-to-buffer (get-buffer-create "*Animation*"))
+ (switch-to-buffer (get-buffer-create
+ (or animation-buffer-name
+ "*Animation*")))
(erase-buffer)
(sit-for 0)
(while list-of-strings
;;;###autoload
(defun animate-birthday-present (&optional name)
- "Display one's birthday present in a new buffer.
-You can specify the one's name by NAME; the default value is \"Sarah\"."
- (interactive (list (read-string "Name (default Sarah): "
- nil nil "Sarah")))
+ "Return a birthday present in the buffer *Birthday-Present*.
+When optional arg NAME is non-nil or called-interactively, prompt for
+NAME of birthday present receiver and return a birthday present in
+the buffer *Birthday-Present-for-Name*."
+ (interactive (list (read-string "Birthday present for: "
+ nil nil)))
;; Make a suitable buffer to display the birthday present in.
- (switch-to-buffer (get-buffer-create (format "*%s*" name)))
+ (switch-to-buffer (get-buffer-create
+ (if name
+ (concat "*A-Present-for-" (capitalize name) "*")
+ "*Birthday-Present*")))
(erase-buffer)
;; Display the empty buffer.
(sit-for 0)
- (animate-string "Happy Birthday," 6)
- (animate-string (format "%s" name) 7)
-
+ (if name
+ (animate-string "Happy Birthday," 6)
+ (animate-string "Happy Birthday" 6))
+ (when name (animate-string (format "%s" (capitalize name)) 7))
(sit-for 1)
(animate-string "You are my sunshine," 10 30)
(animate-string "my sunshine" 18 34)
(animate-string "to stay!" 19 34))
-(random t)
-
(provide 'animate)
;;; animate.el ends here