Revision Difference
Panel:SetCommand#511024
<function name="SetCommand" parent="Panel" type="classfunc">⤶
<description>⤶
Sets the action signal command that's fired when a <page>Button</page> is clicked. The hook <page>PANEL:ActionSignal</page> is called as the click response.⤶
⤶
This has no effect on buttons unless it has had its `AddActionSignalTarget` method called (an internal function not available by default in Garry's Mod LUA).⤶
⤶
A better alternative is calling <page>Panel:Command</page> when a <page>DButton</page> is clicked.⤶
</description>⤶
<realm>Client</realm>⤶
</function>⤶
⤶
<example>⤶
<description>Creates an engine-based <page>Frame</page> panel and changes the command that's fired when you click the white close button (by default the command is set to "Close").</description>⤶
<code>⤶
-- Create a regular Frame panel⤶
TestFrame = vgui.Create("Frame")⤶
TestFrame:SetSize(200, 200)⤶
TestFrame:Center()⤶
TestFrame:MakePopup()⤶
TestFrame:SetVisible(true)⤶
⤶
local lbl = vgui.Create("DLabel", TestFrame)⤶
lbl:Dock(FILL)⤶
lbl:DockMargin(10, 10, 10, 10)⤶
lbl:SetText("Click the white button in the upper right corner of this window.")⤶
lbl:SetFont("ChatFont")⤶
lbl:SetWrap(true)⤶
⤶
-- Create a background panel so we can see the Frame's internal buttons⤶
local bg = vgui.Create("DPanel", TestFrame)⤶
bg:Dock(FILL)⤶
bg:SetBackgroundColor(Color(64, 64, 64, 192))⤶
bg:MoveToBack()⤶
⤶
-- Loop through Frame's internal components⤶
for _, child in pairs(TestFrame:GetChildren()) do⤶
⤶
-- Disable frame sizing⤶
if(string.find(child:GetName(), "Grip")) then⤶
⤶
child:SetMouseInputEnabled(false)⤶
⤶
-- Fire the "Testing" command when we click the white button⤶
elseif(child:GetName() == "frame_close") then⤶
⤶
child:SetCommand("Testing")⤶
⤶
end⤶
⤶
end⤶
⤶
function TestFrame:ActionSignal(signalName, signalValue)⤶
⤶
-- Show the signal name⤶
lbl:SetText("Received command: \""..signalName.."\"")⤶
⤶
end⤶
</code>⤶
<output></output>⤶
⤶
</example>