gmod-addons/addons/screenshot_editor/lua/vgui/dscreenshotfileentry.lua
2023-01-01 11:58:19 -08:00

122 lines
2.8 KiB
Lua

local PANEL = {}
local BG_COLOR_NORMAL = Color(0, 0, 0, 230)
local BG_COLOR_HOVERED = Color(20, 20, 20, 230)
local BG_COLOR_SELECTED = Color(40, 40, 40, 230)
local BG_COLOR_TARGETED = Color(30, 106, 156, 230)
surface.CreateFont("DScreenshotFileEntry_FileName", {
font = system.IsOSX() and "Helvetica" or "Tahoma",
size = 16,
weight = 500
})
surface.CreateFont("DScreenshotFileEntry_DateCreated", {
font = system.IsOSX() and "Helvetica" or "Tahoma",
size = 16,
weight = 500
})
function PANEL:Init()
self.FileName = nil
self.FileDateCreated = nil
self:SetSize(ScrW() * 0.2, 48)
local fnLabel = vgui.Create("DLabel", self)
fnLabel:SetText("file_name.jpg")
fnLabel:SetFont("DScreenshotFileEntry_FileName")
self.FileNameLabel = fnLabel
local dcLabel = vgui.Create("DLabel", self)
dcLabel:SetText("Created January 1st, 1970")
dcLabel:SetFont("DScreenshotFileEntry_DateCreated")
self.DateCreatedLabel = dcLabel
self:SetMouseInputEnabled(true)
self:SetCursor("hand")
self.Depressed = false
self.Targeted = false
end
function PANEL:OnMousePressed(keyCode)
if keyCode == MOUSE_LEFT then
self.Depressed = true
end
end
function PANEL:OnMouseReleased(keyCode)
if keyCode == MOUSE_LEFT then
if IsValid(self.LayoutPanel) then
for _, child in ipairs(self.LayoutPanel:GetCanvas():GetChildren()) do
child.Targeted = false
end
end
self.Targeted = true
self:DoClick()
end
self.Depressed = false
end
function PANEL:OnCursorExited()
self.Depressed = false
end
function PANEL:DoClick()
if IsValid(self.LayoutPanel) then
self.LayoutPanel:OnItemSelected(self)
end
end
function PANEL:Paint(width, height)
local col = BG_COLOR_NORMAL
if self.Depressed then
col = BG_COLOR_SELECTED
elseif self:IsHovered() then
col = BG_COLOR_HOVERED
end
if self.Targeted then
col = BG_COLOR_TARGETED
end
draw.RoundedBox(8, 0, 0, width, height, col)
end
function PANEL:PerformLayout(width, height)
self.FileNameLabel:CenterVertical(0.3)
self.FileNameLabel:AlignLeft(8)
self.DateCreatedLabel:CenterVertical(0.7)
self.DateCreatedLabel:AlignRight(8)
end
function PANEL:SetFileName(fileName)
self.FileName = fileName
self.FileNameLabel:SetText(fileName)
self.FileNameLabel:SizeToContents()
end
function PANEL:SetDateCreated(time)
self.FileDateCreated = time
local dayFormat = tonumber(os.date("%d", time))
local dateFormat = os.date("Created %B %%s, %Y", time)
dateFormat = Format(
dateFormat,
dayFormat .. STNDRD(dayFormat)
)
self.DateCreatedLabel:SetText(dateFormat)
self.DateCreatedLabel:SizeToContents()
end
derma.DefineControl("DScreenshotFileEntry", "Screenshot Editor File Entry", PANEL, "DPanel")