52 lines
1.7 KiB
Plaintext
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
|