Files
wnsrc/lua/slib/vgui/cl_ssearchbar.lua
lifestorm 9c918c46e5 Upload
2024-08-04 23:12:27 +03:00

65 lines
1.9 KiB
Lua

--[[
| This file was obtained through the combined efforts
| of Madbluntz & Plymouth Antiquarian Society.
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
| Maloy, DrPepper10 @ RIP, Atle!
|
| Visit for more: https://plymouth.thetwilightzone.ru/
--]]
local PANEL = {}
local maincolor_15, accentcolor, margin = slib.getTheme("maincolor", 15), slib.getTheme("accentcolor"), slib.getTheme("margin")
function PANEL:Init()
self:Dock(TOP)
self:SetTall(slib.getScaledSize(25, "y"))
self.font = slib.createFont("Roboto", 15)
self.material = Material("slib/icons/search32.png", "noclamp smooth")
self.bg = maincolor_15
self.entry = vgui.Create( "STextEntry", self )
self.entry:Dock(FILL)
slib.wrapFunction(self, "SetZPos", nil, function() return self end, true)
slib.wrapFunction(self, "Dock", nil, function() return self end, true)
slib.wrapFunction(self, "DockMargin", nil, function() return self end, true)
slib.wrapFunction(self, "SetWide", nil, function() return self end, true)
end
function PANEL:addIcon()
self.icon = true
self.entry:DockMargin(slib.getScaledSize(25, "y") + margin,0,0,0)
self.entry:AccentSideLine(true)
return self
end
function PANEL:SetPlaceholder(str)
self.entry:SetPlaceholder(str)
end
function PANEL:Paint(w,h)
local size = h * .65
local pos = h * .5 - (size * .5)
if self.bg then
surface.SetDrawColor(self.bg)
surface.DrawRect(0, 0, w, h)
end
local wantedcolor = accentcolor
wantedcolor.a = self.entry:HasFocus() and 120 or 20
surface.SetDrawColor(slib.lerpColor(self, wantedcolor))
surface.DrawRect(h - 1, margin, 1, h - (margin * 2))
if self.icon then
surface.SetDrawColor(color_white)
surface.SetMaterial(self.material)
surface.DrawTexturedRect(pos, pos, size, size)
end
end
vgui.Register("SSearchBar", PANEL, "EditablePanel")