Garry's Mod Wiki

Revision Difference

Panel:GetNumLines#510526

<function name="GetNumLines" parent="Panel" type="classfunc">⤶ <description>⤶ Returns the number of lines in a <page>RichText</page>. You must wait a couple frames before calling this after using <page>Panel:AppendText</page> or <page>Panel:SetText</page>, otherwise it will return the number of text lines before the text change.⤶ ⤶ <note>Even though this function can be called on any panel, it will only work with <page>RichText</page></note>⤶ </description>⤶ <realm>Client</realm>⤶ <rets>⤶ <ret name="" type="number">The number of lines.</ret>⤶ </rets>⤶ </function>⤶ ⤶ <example>⤶ <description>Creates a rich text panel with a block of text and prints out the number of text lines before and after `PerformLayout` is called.</description>⤶ <code>⤶ -- Create a window frame⤶ TextFrame = vgui.Create("DFrame")⤶ TextFrame:SetSize(200, 224)⤶ TextFrame:Center()⤶ TextFrame:SetTitle("Generic Frame")⤶ ⤶ -- RichText panel⤶ local richtext = vgui.Create("RichText", TextFrame)⤶ richtext:Dock(FILL)⤶ ⤶ -- Throw some text in the panel⤶ richtext:SetText("This is a block of text demonstrating how line wrapping and panel size relates to the number of lines shown inside of a RichText panel.")⤶ ⤶ -- Keep track of PerformLayout calls⤶ richtext.layoutCount = 0⤶ ⤶ -- Custom function for this example⤶ function richtext:NumLinesExample()⤶ print("PerformLayout called "..self.layoutCount.." times: "..richtext:GetNumLines().." line(s) returned") ⤶ end⤶ ⤶ -- Print # of lines before any layouts⤶ richtext:NumLinesExample()⤶ ⤶ -- Render update⤶ function richtext:PerformLayout()⤶ ⤶ self.layoutCount = self.layoutCount + 1⤶ self:NumLinesExample() -- Print current # of lines⤶ ⤶ end⤶ </code>⤶ <output>⤶ The panel shows 5 lines of text, but the number 5 isn't returned until PerformLayout has been called 2 times.⤶ ⤶ ```⤶ PerformLayout called 0 times: 1 line(s) returned⤶ PerformLayout called 1 times: 1 line(s) returned⤶ PerformLayout called 2 times: 5 line(s) returned⤶ ```⤶ ⤶ </output>⤶ ⤶ </example>