Revision Difference
Panel:InsertColorChange#510989
<function name="InsertColorChange" parent="Panel" type="classfunc">⤶
<description>Inserts a color change in a <page>RichText</page> element, which affects the color of all text added with <page>Panel:AppendText</page> until another color change is applied.</description>⤶
<realm>Client</realm>⤶
<args>⤶
<arg name="r" type="number">The red value (0 - 255).</arg>⤶
<arg name="g" type="number">The green value (0 - 255).</arg>⤶
<arg name="b" type="number">The blue value (0 - 255).</arg>⤶
<arg name="a" type="number">The alpha value (0 - 255).</arg>⤶
</args>⤶
</function>⤶
⤶
<example>⤶
<description>Creates a RichText panel with color coding on certain segments of text.</description>⤶
<code>⤶
-- Create a window frame⤶
TextFrame = vgui.Create("DFrame")⤶
TextFrame:SetSize(200, 200)⤶
TextFrame:Center()⤶
TextFrame:SetTitle("Colored text")⤶
TextFrame:MakePopup()⤶
⤶
-- RichText panel⤶
local richtext = vgui.Create("RichText", TextFrame)⤶
richtext:Dock(FILL)⤶
richtext:SetVerticalScrollbarEnabled(false)⤶
⤶
-- Text blocks⤶
richtext:InsertColorChange(255, 255, 192, 255)⤶
richtext:AppendText("This is an example of ")⤶
⤶
richtext:InsertColorChange(0, 255, 0, 255)⤶
richtext:AppendText("color coding ")⤶
⤶
richtext:InsertColorChange(255, 255, 192, 255)⤶
richtext:AppendText("different segments of text throughout a ")⤶
⤶
richtext:InsertColorChange(255, 200, 0, 255)⤶
richtext:AppendText("Rich Text panel.\n\n")⤶
⤶
richtext:InsertColorChange(64, 0, 255, 255)⤶
richtext:AppendText("Here is another line of text shown in the color ")⤶
⤶
richtext:InsertColorChange(128, 0, 255, 255)⤶
richtext:AppendText("purple.")⤶
⤶
-- When the panel is ready for layout, apply font and background color⤶
function richtext:PerformLayout()⤶
⤶
self:SetFontInternal("Trebuchet18")⤶
self:SetBGColor(Color(0, 16, 32))⤶
⤶
end⤶
</code>⤶
<output></output>⤶
⤶
</example>⤶
⤶
⤶
<example>⤶
<description>Word by word coloring using <page>string.Explode</page> and random colors.</description>⤶
<code>⤶
-- Create a window frame⤶
TextFrame = vgui.Create("DFrame")⤶
TextFrame:SetSize(300, 200)⤶
TextFrame:Center()⤶
TextFrame:SetTitle("Randomly Colored Words")⤶
TextFrame:MakePopup()⤶
⤶
-- RichText panel⤶
local richtext = vgui.Create("RichText", TextFrame)⤶
richtext:Dock(FILL)⤶
richtext:SetVerticalScrollbarEnabled(false)⤶
⤶
local txt = "Here's a fun example involving word by word text coloring. "..⤶
"Each word is separated by a space, colored, and appended to the Rich Text panel individually. "..⤶
"The colors are randomly generated shades of red, orange, yellow, and pink."⤶
⤶
local txt_tbl = string.Explode(" ", txt, false)⤶
⤶
for _, word in pairs(txt_tbl) do⤶
⤶
richtext:InsertColorChange(255, math.random(0, 255), math.random(0, 255), 255)⤶
richtext:AppendText(word.." ")⤶
⤶
end⤶
⤶
function richtext:PerformLayout()⤶
⤶
self:SetFontInternal("GModNotify")⤶
self:SetBGColor(Color(32, 16, 0))⤶
⤶
end⤶
</code>⤶
<output></output>⤶
⤶
</example>