Перейти к основному содержимому

MantleBtn

Кнопка с настройкой цвета, эффектом волны и другим.

Пример

local frame = vgui.Create('MantleFrame')
frame:SetSize(600, 400)
frame:Center()
frame:MakePopup()

local btn = vgui.Create('MantleBtn', frame)
btn:SetSize(180, 60)
btn:Center()
btn:SetTxt('Нажми на меня')
btn.DoClick = function()
chat.AddText('Hello World')
chat.PlaySound()
end

С иконкой

Иконку можно указывать через текст :SetIcon("icon16/example.png", 16) или :SetIcon(mat_icon, 16).

local frame = vgui.Create('MantleFrame')
frame:SetSize(600, 500)
frame:Center()
frame:MakePopup()

local btnIcon = vgui.Create('MantleBtn', frame)
btnIcon:SetSize(200, 40)
btnIcon:Center()
btnIcon:SetTxt('Удалить')
btnIcon:SetIcon(Material('icon16/delete.png'), 16)

С эффектом волны

Волна рисуется от точки клика. Включается через :SetRipple(true).

local frame = vgui.Create('MantleFrame')
frame:SetSize(600, 500)
frame:Center()
frame:MakePopup()

local btnRipple = vgui.Create('MantleBtn', frame)
btnRipple:SetSize(200, 40)
btnRipple:SetTxt('Волна')
btnRipple:SetRipple(true)

Изменение визуала

Параметры кнопки можно переопределять, полный список возможностей найдёте в Методах.

local frame = vgui.Create('MantleFrame')
frame:SetSize(600, 500)
frame:Center()
frame:MakePopup()

local btn = vgui.Create('MantleBtn', frame)
btn:Dock(TOP)
btn:SetTall(40)
btn:DockMargin(8, 8, 8, 8)
btn:SetTxt('Акцент')
btn:SetColor(Color(182, 65, 65))
btn:SetColorHover(Color(210, 90, 90))
btn:SetRadius(32)

Отключение градиента и подсветки:

local frame = vgui.Create('MantleFrame')
frame:SetSize(600, 500)
frame:Center()
frame:MakePopup()

local btn = vgui.Create('MantleBtn', frame)
btn:Dock(TOP)
btn:SetTall(40)
btn:DockMargin(8, 8, 8, 8)
btn:SetTxt('Без градиента')
btn:SetGradient(false)
btn:SetHover(false)

Кнопка-иконка

Если текст не задан, кнопка центрирует иконку.

local frame = vgui.Create('MantleFrame')
frame:SetSize(600, 500)
frame:Center()
frame:MakePopup()

local iconBtn = vgui.Create('MantleBtn', frame)
iconBtn:SetSize(32, 32)
iconBtn:Center()
iconBtn:SetTxt('')
iconBtn:SetIcon(Material('icon16/star.png'), 16)

Методы

МетодОписание
:SetTxt(string text)Текст кнопки
:SetFont(string font)Шрифт
:SetColor(color color)Основной цвет кнопки
:SetColorHover(color color)Цвет при наведении
:SetRadius(int rad)Скругление углов. По умолчанию 16
:SetGradient(bool enabled)Градиент внизу кнопки. По умолчанию true
:SetRipple(bool enabled)Эффект волны при клике. По умолчанию false
:SetHover(bool isHover)Подсветка при наведении. По умолчанию true
:SetIcon(string|material icon, int size)Иконка

Примечания

  • Остальные методы наследуются от DButton.
  • Стандартные цвета кнопки используют тему Mantle, установка кастомных значений не позволит менять цвета.