PREV UP NEXT GNU Emacs Lisp Reference Manual

26.6: Finding All Frames

Function: frame-list
The function frame-list returns a list of all the frames that have not been deleted. It is analogous to buffer-list for buffers. The list that you get is newly created, so modifying the list doesn't have any effect on the internals of Emacs.
Function: visible-frame-list
This function returns a list of just the currently visible frames. See Visibility of Frames. (Terminal frames always count as ``visible'', even though only the selected one is actually displayed.)
Function: next-frame &optional frame minibuf
The function next-frame lets you cycle conveniently through all the frames from an arbitrary starting point. It returns the ``next'' frame after frame in the cycle. If frame is omitted or nil, it defaults to the selected frame.

The second argument, minibuf, says which frames to consider:

nil
Exclude minibuffer-only frames.
visible
Consider all visible frames.
0
Consider all visible or iconified frames.
a window
Consider only the frames using that particular window as their minibuffer.
anything else
Consider all frames.
Function: previous-frame &optional frame minibuf
Like next-frame, but cycles through all frames in the opposite direction.

See also next-window and previous-window, in Cyclic Window Ordering.