Difference between revisions of "Window.reposition"

From ComputerCraft Wiki
Jump to: navigation, search
(Created page with "{{lowercase}} {{Function |name=window.reposition |args={{type|number}} xPosition, {{type|number}} yPosition [<nowiki/>, {{type|number}} width, {{type|number}} height] |returns...")
 
m
 
(One intermediate revision by the same user not shown)
Line 12: Line 12:
 
If shrinking a window will result in some of its contents being cropped from view, then that content will be removed from the window's buffer and will ''not'' be restored if you later re-enlarge it. If a new width / height is not specified then the window will retain its previous dimensions.
 
If shrinking a window will result in some of its contents being cropped from view, then that content will be removed from the window's buffer and will ''not'' be restored if you later re-enlarge it. If a new width / height is not specified then the window will retain its previous dimensions.
  
See also: [[window.getPosition|window.getPosition()]]
+
See also: [[window.getPosition|window.getPosition()]], [[term.getSize|term.getSize()]]
 
|examples=
 
|examples=
 
{{Example
 
{{Example
|desc=Stretches and bounces a small window filled with white around the display.
+
|desc=Stretches and bounces a small window filled with white around the display until terminated (Ctrl + T).
 
|code= local xSize, ySize = term.getSize()
 
|code= local xSize, ySize = term.getSize()
 
  local xPos, yPos, xLen, yLen = math.random(xSize-5), math.random(ySize-5), math.random(5), math.random(5)
 
  local xPos, yPos, xLen, yLen = math.random(xSize-5), math.random(ySize-5), math.random(5), math.random(5)

Latest revision as of 10:41, 7 April 2014


Grid Redstone.png  Function window.reposition
A function available to window-based terminal objects created via the window API, which moves and / or resizes the window in concern.

If visible, the window will be automatically re-rendered, however the parent terminal object won't be (meaning "ghost" images of the window's previous shape / location may be left behind unless you manually clear them).

If shrinking a window will result in some of its contents being cropped from view, then that content will be removed from the window's buffer and will not be restored if you later re-enlarge it. If a new width / height is not specified then the window will retain its previous dimensions.

See also: window.getPosition(), term.getSize()
Syntax window.reposition(number xPosition, number yPosition [, number width, number height])
Returns None
Part of ComputerCraft
API term

Examples

Grid paper.png  Example
Stretches and bounces a small window filled with white around the display until terminated (Ctrl + T).
Code
local xSize, ySize = term.getSize()
local xPos, yPos, xLen, yLen = math.random(xSize-5), math.random(ySize-5), math.random(5), math.random(5)
local xDir, yDir, xLenDir, yLenDir = 1, 1, 1, 1

local smallWindow = window.create(term.current(), xPos, yPos, xLen, yLen)
smallWindow.setBackgroundColor(colours.white)

while true do
	sleep(0.2)
	
	xPos = xPos + xDir
	yPos = yPos + yDir
	xLen = xLen + xLenDir
	yLen = yLen + yLenDir
	
	term.setBackgroundColor(colours.black)
	term.clear()
	smallWindow.reposition(xPos, yPos, xLen, yLen)
	smallWindow.clear()
	
	if xPos <= 1 then xDir = 1 end
	if xPos + xLen >= xSize + 1 then xDir = -1 end
	
	if yPos <= 1 then yDir = 1 end
	if yPos + yLen >= ySize + 1 then yDir = -1 end
	
	if xLen <= 1 then xLenDir = 1 end
	if xLen >= 5 then xLenDir = -1 end
	
	if yLen <= 1 then yLenDir = 1 end
	if yLen >= 5 then yLenDir = -1 end
end