m
Move page script moved page UIOBJECT FontString to WoW:UIOBJECT FontString without leaving a redirect
m (Move page script moved page UIOBJECT FontString to WoW:UIOBJECT FontString without leaving a redirect) |
|||
| (2 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
{{widget}} | {{widget}} | ||
''Note: FontString:Get/SetWidth() and Get/SetHeight() behave very differently compared to usual base type funcitonality.'' | |||
== | == anchor points and height == | ||
FontString objects behave a little differently where SetHeight(), GetHeight(), SetWidth() and GetWidth() are concerned. | FontString objects behave a little differently where SetHeight(), GetHeight(), SetWidth() and GetWidth() are concerned. | ||
| Line 9: | Line 8: | ||
=== Anchoring 1 corner === | === Anchoring 1 corner === | ||
Let's assume we have a frame that is 100x100, and that we anchor our fontstring to the topleft corner only, and tell it to display a sizeable chunk of text in a 10 point font, that is ~250 pixels long if nonwrapped (i.e. [[API FontString GetStringWidth|GetStringWidth()]] would return 250). | Let's assume we have a frame that is 100x100, and that we anchor our fontstring to the topleft corner only, and tell it to display a sizeable chunk of text in a 10 point font, that is ~250 pixels long if nonwrapped (i.e. [[API FontString GetStringWidth|GetStringWidth()]] would return 250). | ||
| Line 45: | Line 42: | ||
So far, no real surprises, except for the fact that fontstrings will display without a width and height set, while other objects do not. The fun starts when we anchor more points. | So far, no real surprises, except for the fact that fontstrings will display without a width and height set, while other objects do not. The fun starts when we anchor more points. | ||
=== Anchoring more points === | === Anchoring more points === | ||
When you control the dimensions by anchoring more than one point, the drawn text will obey your points. But GetWidth() and GetHeight() continue to operate in their own little world. | When you control the dimensions by anchoring more than one point, the drawn text will obey your points. But GetWidth() and GetHeight() continue to operate in their own little world. | ||
| Line 81: | Line 75: | ||
However, calling SetWidth() with your object's actual width (which you can't get via GetWidth(), but you can try GetLeft()-GetRight()), and calling GetHeight() will still tell you how high the object actually needs to be. | However, calling SetWidth() with your object's actual width (which you can't get via GetWidth(), but you can try GetLeft()-GetRight()), and calling GetHeight() will still tell you how high the object actually needs to be. | ||
If you want to completely clear width or height once set to have WoW start returning computed values for you, you need to call SetWidth(0) or SetHeight(0). | If you want to completely clear width or height once set to have WoW start returning computed values for you, you need to call SetWidth(0) or SetHeight(0). | ||
=== Code example === | |||
This example will rescale a frame to fit the text. On all four sides a 5px margin is made. | |||
text:SetPoint("TOPLEFT",frame,"TOPLEFT",5,-5) | |||
text:SetWidth(frame:GetRight() - frame:GetLeft() - 10) | |||
frame:SetHeight(text:GetHeight() + 15) | |||
Note that the number returned by text:GetHeight() will typically be slighly less than the actual height of the text. Including a 5px margin (both top and bottom), the height of the frame is therefor set to the text height plus 15px. | |||
[[Category:Widgets]] | [[Category:Widgets]] | ||