blob: 95feba44b588a093215f1bdc0d5a1bdf2623f033 [file] [log] [blame]
% File src/library/utils/man/arrangeWindows.Rd
% Part of the R package, https://www.R-project.org
% Copyright 2009-2018 Duncan Murdoch and the R Core Team
% Distributed under GPL 2 or later
\name{arrangeWindows}
\alias{arrangeWindows}
\title{Rearrange Windows on MS Windows}
\description{
This function allows you to tile or cascade windows, or to minimize or
restore them (on Windows, i.e. when \code{(\link{.Platform}$OS.type == "windows")}).
This may include windows not \dQuote{belonging} to \R.
}
\usage{
arrangeWindows(action, windows, preserve = TRUE, outer = FALSE)
}
\arguments{
\item{action}{a character string, the action to perform on the
windows. The choices are
\code{c("vertical", "horizontal", "cascade", "minimize", "restore")}
with default \code{"vertical"}; see the \sQuote{Details} for the interpretation.
Abbreviations may be used.
}
\item{windows}{a \code{\link{list}} of window handles, by default
produced by \code{\link{getWindowsHandles}()}.}
\item{preserve}{If \code{TRUE}, when tiling preserve the outer
boundary of the collection of windows; otherwise make them as large
as will fit.}
\item{outer}{This argument is only used in MDI mode. If \code{TRUE},
tile the windows on the system desktop. Otherwise, tile them within
the MDI frame.}
}
\details{
The actions are as follows:
\describe{
\item{\code{"vertical"}}{Tile vertically.}
\item{\code{"horizontal"}}{Tile horizontally.}
\item{\code{"cascade"}}{Cascade the windows.}
\item{\code{"minimize"}}{Minimize all of the windows.}
\item{\code{"restore"}}{Restore all of the windows to normal size (not minimized, not maximized).}
}
The tiling and cascading are done by the standard Windows API functions, but unlike those functions,
they will apply to all of the windows in the \code{windows} list.
By default, \code{windows} is set to the result of
\code{\link{getWindowsHandles}()} (with one exception described
below). This will select windows belonging to the current \R process.
However, if the global environment contains a variable named
\code{.arrangeWindowsDefaults}, it will be used as the argument list
instead. See the \code{\link{getWindowsHandles}} man page for a
discussion of the optional arguments to that function.
When \code{action = "restore"} is used with \code{windows} unspecified,
\code{minimized = TRUE} is added to the argument list of
\code{\link{getWindowsHandles}} so that minimized windows will be restored.
In MDI mode, by default tiling and cascading will happen within the \R
GUI frame. However, if \code{outer = TRUE}, tiling is done on the system
desktop. This will generally not give desirable results if any \R child
windows are included within \code{windows}.
}
\note{
This is only available on Windows.
}
\value{
This function is called for the side effect of arranging the windows.
The list of window handles is returned invisibly.
}
\author{
Duncan Murdoch
}
\seealso{
\code{\link{getWindowsHandles}}
}
\examples{
\dontrun{## Only available on Windows :
arrangeWindows("v")
# This default is useful only in SDI mode: it will tile any Firefox window
# along with the R windows
.arrangeWindowsDefaults <- list(c("R", "all"), pattern = c("", "Firefox"))
arrangeWindows("v")
}
}
\keyword{utilities}