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

MantleFrame

Реализация окна для элементов.

Пример

local frame = vgui.Create('MantleFrame')
frame:SetSize(600, 500)
frame:Center()
frame:MakePopup()
frame:SetTitle('Заголовок')
frame:SetCenterTitle('Центральный текст')
frame:ShowAnimation()

Заголовки

SetTitle рисует заголовок слева, SetCenterTitle - по центру шапки.

local frame = vgui.Create('MantleFrame')
frame:SetSize(600, 500)
frame:Center()
frame:MakePopup()
frame:SetTitle('Слева')
frame:SetCenterTitle('По центру')

Плавное появление и закрытие

local frame = vgui.Create('MantleFrame')
frame:SetSize(600, 500)
frame:Center()
frame:ShowAnimation() -- метод анимации

-- Закрытие
timer.Simple(2, function()
if IsValid(frame) then
frame:Close()
end
end)

Отключение перетаскивания за шапку

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

Режим без шапки

Убирает шапку, а также заголовки. Подходит для всплывающих меню.

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

local sp = vgui.Create('MantleScrollPanel', frame)
sp:Dock(FILL)

for k = 1, 35 do
local pan = vgui.Create('DPanel', sp)
pan:Dock(TOP)
pan:DockMargin(0, 0, 0, 6)
pan.Paint = function(_, w, h)
draw.RoundedBox(6, 0, 0, w, h, Mantle.color.panel_alpha[2])
end
end

Прозрачный фон

Включает/отключает размытый фон. По умолчанию стоит включено.

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

frame:SetAlphaBackground(true)

Уведомление внизу окна

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

timer.Simple(1.5, function()
frame:Notify('Сохранено', 2) -- текст, длительность
end)

Скрыть кнопку закрытия

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

timer.Simple(5, function()
frame:Close()
end)

Методы

МетодОписание
:SetTitle(string title)Заголовок слева в шапке
:SetCenterTitle(string centerTitle)Заголовок по центру шапки
:SetAlphaBackground(bool isAlpha)Прозрачный фон окна. По умолчанию true
:SetDraggable(bool isDraggable)Перетаскивание окна. По умолчанию true
:ShowAnimation()Анимация появления окна
:Close()Закрыть окно
:DisableCloseBtn()Скрыть кнопку закрытия
:LiteMode()Режим без верхней панели
:Notify(string text, number duration)Уведомление внизу окна. Длительность по умолчанию 2 сек.

Примечания

  • Кнопка закрытия по ПКМ открывает контекстное меню: переключение прозрачности, отключение ввода, удаление окна.