Archived
1
0
Fork 0
This repository has been archived on 2024-10-19. You can view files and clone it, but cannot push or open issues or pull requests.
emacs/code/elpa/spinner-1.7.4/README.org

77 lines
2.8 KiB
Org Mode
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#+TITLE: spinner.el
Add spinners and progress-bars to the mode-line for ongoing operations.
[[file:some-spinners.gif]]
[[file:all-spinners.gif]]
* Usage
First of all, dont forget to add ~(spinner "VERSION")~ to your packages dependencies.
** Major-modes
1. Just call ~(spinner-start)~ and a spinner will be added to the mode-line.
2. Call ~(spinner-stop)~ on the same buffer when you want to remove it.
The default spinner is a line drawing that rotates. You can pass an
argument to ~spinner-start~ to specify which spinner you want. All
possibilities are listed in the ~spinner-types~ variable, but here are
a few examples for you to try:
- ~(spinner-start 'vertical-breathing 10)~
- ~(spinner-start 'minibox)~
- ~(spinner-start 'moon)~
- ~(spinner-start 'triangle)~
You can also define your own as a vector of strings (see the examples
in ~spinner-types~).
** Minor-modes
Minor-modes can create a spinner with ~spinner-create~ and then add it
to their mode-line lighter. They can then start the spinner by setting
a variable and calling ~spinner-start-timer~. Finally, they can stop
the spinner (and the timer) by just setting the same variable to nil.
Heres an example for a minor-mode named ~foo~. Assuming that
~foo--lighter~ is used as the mode-line lighter, the following code
will add an *inactive* global spinner to the mode-line.
#+begin_src emacs-lisp
(defvar foo--spinner (spinner-create 'rotating-line))
(defconst foo--lighter
'(" foo" (:eval (spinner-print foo--spinner))))
#+end_src
1. To activate the spinner, just call ~(spinner-start foo--spinner)~.
It will show up on the mode-line and start animating.
2. To get rid of it, call ~(spinner-stop foo--spinner)~. It will then
disappear again.
Some minor-modes will need spinners to be buffer-local. To achieve
that, just make the ~foo--spinner~ variable buffer-local and use the
third argument of the ~spinner-create~ function. The snippet below is an example.
#+begin_src emacs-lisp
(defvar-local foo--spinner nil)
(defconst foo--lighter
'(" foo" (:eval (spinner-print foo--spinner))))
(defun foo--start-spinner ()
"Create and start a spinner on this buffer."
(unless foo--spinner
(setq foo--spinner (spinner-create 'moon t)))
(spinner-start foo--spinner))
#+end_src
1. To activate the spinner, just call ~(foo--start-spinner)~.
2. To get rid of it, call ~(spinner-stop foo--spinner)~.
This will use the ~moon~ spinner, but you can use any of the names
defined in the ~spinner-types~ variable or even define your own.
* Extra options
Both ~spinner-start~ and ~spinner-create~ take extra options to configure the spinner, these are:
- ~FPS~: The number of frames to display per second. Defaults to ~spinner-frames-per-second~.
- ~DELAY~: After starting a spinner, it still wont be displayed for this many seconds.