forked from Bastion/Bastion
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
72 lines
1.7 KiB
72 lines
1.7 KiB
2 years ago
|
--- @type StdUi
|
||
|
local StdUi = LibStub and LibStub('StdUi', true);
|
||
|
if not StdUi then
|
||
|
return
|
||
|
end
|
||
|
|
||
|
local module, version = 'Basic', 3;
|
||
|
if not StdUi:UpgradeNeeded(module, version) then return end;
|
||
|
|
||
|
function StdUi:Frame(parent, width, height, inherits)
|
||
|
local frame = CreateFrame('Frame', nil, parent, inherits);
|
||
|
self:InitWidget(frame);
|
||
|
self:SetObjSize(frame, width, height);
|
||
|
|
||
|
return frame;
|
||
|
end
|
||
|
|
||
|
function StdUi:Panel(parent, width, height, inherits)
|
||
|
local frame = self:Frame(parent, width, height, inherits);
|
||
|
self:ApplyBackdrop(frame, 'panel');
|
||
|
|
||
|
return frame;
|
||
|
end
|
||
|
|
||
|
function StdUi:PanelWithLabel(parent, width, height, inherits, text)
|
||
|
local frame = self:Panel(parent, width, height, inherits);
|
||
|
|
||
|
frame.label = self:Header(frame, text);
|
||
|
frame.label:SetAllPoints();
|
||
|
frame.label:SetJustifyH('MIDDLE');
|
||
|
|
||
|
return frame;
|
||
|
end
|
||
|
|
||
|
function StdUi:PanelWithTitle(parent, width, height, text)
|
||
|
local frame = self:Panel(parent, width, height);
|
||
|
|
||
|
frame.titlePanel = self:PanelWithLabel(frame, 100, 20, nil, text);
|
||
|
frame.titlePanel:SetPoint('TOP', 0, -10);
|
||
|
frame.titlePanel:SetPoint('LEFT', 30, 0);
|
||
|
frame.titlePanel:SetPoint('RIGHT', -30, 0);
|
||
|
frame.titlePanel:SetBackdrop(nil);
|
||
|
|
||
|
return frame;
|
||
|
end
|
||
|
|
||
|
--- @return Texture
|
||
|
function StdUi:Texture(parent, width, height, texture)
|
||
|
local tex = parent:CreateTexture(nil, 'ARTWORK');
|
||
|
|
||
|
self:SetObjSize(tex, width, height);
|
||
|
if texture then
|
||
|
tex:SetTexture(texture);
|
||
|
end
|
||
|
|
||
|
return tex;
|
||
|
end
|
||
|
|
||
|
--- @return Texture
|
||
|
function StdUi:ArrowTexture(parent, direction)
|
||
|
local texture = self:Texture(parent, 16, 8, [[Interface\Buttons\Arrow-Up-Down]]);
|
||
|
|
||
|
if direction == 'UP' then
|
||
|
texture:SetTexCoord(0, 1, 0.5, 1);
|
||
|
else
|
||
|
texture:SetTexCoord(0, 1, 1, 0.5);
|
||
|
end
|
||
|
|
||
|
return texture;
|
||
|
end
|
||
|
|
||
|
StdUi:RegisterModule(module, version);
|