I want to change the color of my panel when I put the cursor on it, any way to do it ?
[lua]
local sW = ScrW()
local sH = ScrH()
local col = Color(255,0,0,255)
local Example = vgui.Create("DFrame")
Example:SetSize(500,500)
Example:SetPos(sW / 2 - 250, sH / 2 - 250) -- Perfect Center. Maybe Center()?
Example:SetTitle("Example")
Example:ShowCloseButton(true)
Example.OnCursorEntered = function() -- What happens when the cursor is on it?
surface.SetColor(col) -- WE SET THE COLOR TO RED! HOORAY!!!!!!!!
surface.DrawRect(0, 0, Example:GetWide(), Example:GetTall()) -- Don't forget this, or it wont work.
end
[/lua]
Should work, untested. Enjoy.
[QUOTE=Averice;18815783][lua]
local sW = ScrW()
local sH = ScrH()
local col = Color(255,0,0,255)
local Example = vgui.Create("DFrame")
Example:SetSize(500,500)
Example:SetPos(sW / 2 - 250, sH / 2 - 250) -- Perfect Center. Maybe Center()?
Example:SetTitle("Example")
Example:ShowCloseButton(true)
Example.OnCursorEntered = function() -- What happens when the cursor is on it?
surface.SetColor(col) -- WE SET THE COLOR TO RED! HOORAY!!!!!!!!
surface.DrawRect(0, 0, Example:GetWide(), Example:GetTall()) -- Don't forget this, or it wont work.
end
[/lua]
Should work, untested. Enjoy.[/QUOTE]
That won't work, the panel needs to be drawn in it's paint function.
[editline]04:05PM[/editline]
[lua]local sW = ScrW()
local sH = ScrH()
local In = false
local Example = vgui.Create("DFrame")
Example:SetSize(500,500)
Example:SetPos(sW / 2 - 250, sH / 2 - 250)
Example:SetTitle("Example")
Example:ShowCloseButton(true)
Example.OnCursorEntered = function()
In = true
end
Example.OnCursorExited = function()
In = false
end
Example.Paint = function()
if In then
surface.SetDrawColor(255,0,0,255)
surface.DrawRect(0, 0, Example:GetWide(), Example:GetTall())
end
end[/lua]
One thing about Averice's code is I don't think surface.SetColor is function (gotta get SetDrawColor), but I may be mistaken.
*edit* Null's right.
*doubleedit* Err, Null, you still gotta use SetDrawColor, not SetColor.
[QUOTE=Entoros;18815820]Err, Null, you still gotta use SetDrawColor, not SetColor.[/QUOTE]
Fixed, didn't notice that.
[QUOTE=Entoros;18815820]One thing about Averice's code is I don't think surface.SetColor is function (gotta get SetDrawColor), but I may be mistaken.[/QUOTE]
Ops my mistake.
And yer, never bothered to use OnCursorEntered so thanks for the heads up.
[QUOTE=NullPoint;18815797]That won't work, the panel needs to be drawn in it's paint function.
[editline]04:05PM[/editline]
[lua]local sW = ScrW()
local sH = ScrH()
local In = false
local Example = vgui.Create("DFrame")
Example:SetSize(500,500)
Example:SetPos(sW / 2 - 250, sH / 2 - 250)
Example:SetTitle("Example")
Example:ShowCloseButton(true)
Example.OnCursorEntered = function()
In = true
end
Example.OnCursorExited = function()
In = false
end
Example.Paint = function()
if In then
surface.SetDrawColor(255,0,0,255)
surface.DrawRect(0, 0, Example:GetWide(), Example:GetTall())
end
end[/lua][/QUOTE]
Thanks it's working !
It is possible to make it on any Derma Control the OnCursor... = function () ?
Also I want to make square button and I want to add property on it to make another button under it, it is possible ? ( Like duplicate button )
Sorry, you need to Log In to post a reply to this thread.