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

MantleSlideBox

Слайдер. Поддерживает диапазон значений, дробные числа и привязку к ConVar.

Пример

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

local slider = vgui.Create('MantleSlideBox', frame)
slider:SetWide(400)
slider:Center()
slider:SetRange(0, 100, 0)
slider:SetText('Громкость')

Чтение и установка значения

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

local slider = vgui.Create('MantleSlideBox', frame)
slider:SetWide(400)
slider:Center()
slider:SetRange(0, 100, 0)
slider:SetText('Громкость')

slider:SetValue(50)
print(slider:GetValue()) -- 50

Обработка изменения

Переопределите :OnValueChanged. Срабатывает при каждом движении ползунка.

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

local slider = vgui.Create('MantleSlideBox', frame)
slider:SetWide(400)
slider:Center()
slider:SetRange(0, 1, 2)
slider:SetText('Прозрачность')

slider.OnValueChanged = function(self, value)
print('Прозрачность:', value)
end

Привязка к ConVar

Значение синхронизируется с ConVar, а движение ползунка переписывает его.

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

local slider = vgui.Create('MantleSlideBox', frame)
slider:SetWide(400)
slider:Center()
slider:SetRange(0, 1)
slider:SetText('Выключение интерфейса (как тумблер)')
slider:SetConvar('cl_drawhud')

SetRange(min, max, decimals) - третий аргумент задаёт количество знаков после запятой.

Методы

МетодОписание
:SetRange(int min, int max, int decimals)Диапазон и знаки после запятой. По умолчанию 0..1, 0 знаков
:SetConvar(string convar)Привязать к ConVar
:SetText(string text)Подпись слева
:SetValue(number value)Установить значение
:GetValue()Текущее значение
:OnValueChanged(panel self, number value)Вызывается при изменении