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

--- @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);