WoW:API Region GetBottom: Difference between revisions

From AddOn Studio
Jump to navigation Jump to search
No edit summary
 
m (Move page script moved page API Region GetBottom to API Region GetBottom without leaving a redirect)
 
(5 intermediate revisions by 5 users not shown)
Line 1: Line 1:
Be carefull when using this function, this function returns nil if you use it when:
{{widgetmethod}} __NOTOC__
* you handle the PLAYER_ENTERING_WORLD event
* the frame position has not been saved by WoW to layout-cache.txt.
* frame parent is UIParent


Returns the distance from the bottom/left edge of the screen to the requested edge of an object, scaled with the objects's effective scale.


This function also may return nil in other situations, I've only tested this case.
offset = MyObject:GetBottom();
offset = MyObject:GetTop();
offset = MyObject:GetLeft();
offset = MyObject:GetRight();


== Returns ==


==See also==
:;offset: Number - distance between the bottom or left side of screen, respectively, to the requested edge of the object, in pixels, scaled according to effective scale. Or '''nil''' if the object has not been positioned, or [[API Region ClearAllPoints|:ClearAllPoints]]() has been called on it.


*[[API_Frame_GetTop|Frame:GetTop()]]
== Notes ==
*[[API_Frame_GetLeft|Frame:GetLeft()]]
As an object moves towards the top of the screen, the return values for GetTop/GetBottom increase. As an object moves toward the right, the return values for GetLeft/GetRight increase. This function works for all objects including UIParent and WorldFrame.
*[[API_Frame_GetRight|Frame:GetRight()]]


This function is only guaranteed to work after the PLAYER_LOGIN event and then, only if the object in question is being Shown.  Also, currently if you re-anchor an object or Show it, you will need to wait until after the next [[UIHANDLER OnUpdate|OnUpdate]] event before this function will return the correct new value.


*[[Widget_Anchors|Widget Anchors]]
The values returned by this function are generally not nice whole numbers but are often close. Example: 767.99994277954. Use <tt>floor(bottom + 0.5)</tt> to make integer.
 
 
== Example ==
 
local playerFrameBottom = PlayerFrame:GetBottom();
local playerFrameTop    = PlayerFrame:GetTop();
local playerFrameLeft  = PlayerFrame:GetLeft();
local playerFrameRight  = PlayerFrame:GetRight();
playerFrameBottom: 650
playerFrameTop:    780
playerFrameLeft:    20
playerFrameRight:  180
 
 
== See also ==
 
*[[Widget Anchors]]

Latest revision as of 04:47, 15 August 2023

Widget API ← Region < GetBottom

Returns the distance from the bottom/left edge of the screen to the requested edge of an object, scaled with the objects's effective scale.

offset = MyObject:GetBottom();
offset = MyObject:GetTop();
offset = MyObject:GetLeft();
offset = MyObject:GetRight();

Returns[edit]

offset
Number - distance between the bottom or left side of screen, respectively, to the requested edge of the object, in pixels, scaled according to effective scale. Or nil if the object has not been positioned, or :ClearAllPoints() has been called on it.

Notes[edit]

As an object moves towards the top of the screen, the return values for GetTop/GetBottom increase. As an object moves toward the right, the return values for GetLeft/GetRight increase. This function works for all objects including UIParent and WorldFrame.

This function is only guaranteed to work after the PLAYER_LOGIN event and then, only if the object in question is being Shown. Also, currently if you re-anchor an object or Show it, you will need to wait until after the next OnUpdate event before this function will return the correct new value.

The values returned by this function are generally not nice whole numbers but are often close. Example: 767.99994277954. Use floor(bottom + 0.5) to make integer.


Example[edit]

local playerFrameBottom = PlayerFrame:GetBottom();
local playerFrameTop    = PlayerFrame:GetTop();
local playerFrameLeft   = PlayerFrame:GetLeft();
local playerFrameRight  = PlayerFrame:GetRight();

playerFrameBottom: 650
playerFrameTop:    780
playerFrameLeft:    20
playerFrameRight:  180


See also[edit]