Nikita Kruglickiy 1a0785862d Initial commit
2020-12-25 22:18:23 +06:00

52 lines
1.7 KiB
Plaintext

--@include label.txt
--@include radius_mixin.txt
--@include ../utils.txt
require("label.txt")
require("../utils.txt")
EButton = class("EButton", ELabel)
EButton:include(require("radius_mixin.txt"))
accessorFunc(EButton, "_textColor", "TextColor", Color(230, 230, 230))
accessorFunc(EButton, "_hoveredColor", "HoveredColor", Color(66, 66, 66))
accessorFunc(EButton, "_hoveredTextColor", "HoveredTextColor", Color(230, 230, 230))
accessorFunc(EButton, "_disabledColor", "DisabledColor", Color(32, 32, 32))
accessorFunc(EButton, "_disabledTextColor", "DisabledTextColor", Color(80, 80, 80))
function EButton:initialize()
ELabel.initialize(self)
self:setText("Button")
self:setColor(Color(46, 46, 46))
self:setSize(100, 32)
self:setRoundedCorners(true)
self:setRadius(5)
end
function EButton:paint()
local x, y = self:getAbsolutePos()
local w, h = self:getSize()
local textW, textH = self:getTextSize()
local rTL, rTR, rBR, rBL = self:getRoundedCorners()
local bgColor, textColor
if self:isEnabled() then
bgColor = self:isHovered() and self:getHoveredColor() or self:getColor()
textColor = self:isHovered() and self:getHoveredTextColor() or self:getTextColor()
else
bgColor = self:getDisabledColor()
textColor = self:getDisabledTextColor()
end
render.setColor(bgColor)
if self:getRadius() > 0 and (rTL or rTR or rBR or rBL) then
render.drawRoundedBoxEx(self:getRadius(), x, y, w, h, rTL, rTR, rBL, rBR)
else
render.drawRectFast(x, y, w, h)
end
render.setFont(self:getFont())
render.setColor(textColor)
render.drawSimpleText(x + w / 2 - textW / 2, y + h / 2 - textH / 2, self:getText())
end