local WIT, core = ... core.GuideSections = {} local AceGUI = LibStub("AceGUI-3.0") function core.GuideSections.Text(resourceKey) local self = { ResourceKey = resourceKey, } self.Draw = function(frame) self.Text = self.Text or core.GetString(self.ResourceKey) local widget = AceGUI:Create("Label") widget:SetFullWidth(true) widget:SetText(self.Text) frame:AddChild(widget) end return self end function core.GuideSections.Heading(resourceKey) local self = { ResourceKey = resourceKey, } self.Draw = function(frame) self.Text = self.Text or core.GetString(self.ResourceKey) local widget = AceGUI:Create("Heading") widget.label:ClearAllPoints() widget.label:SetPoint("TOP") widget.label:SetPoint("BOTTOM") widget.label:SetJustifyH("CENTER") widget.left:Show() widget:SetFullWidth(true) widget:SetText(self.Text) frame:AddChild(widget) return widget end return self end function core.GuideSections.Section(resourceKey) local self = core.GuideSections.Heading(resourceKey) local oldDraw = self.Draw self.Draw = function(frame) local widget = oldDraw(frame) widget.label:SetPoint("LEFT") widget.left:Hide() return widget end return self end -- image width and height have to be power of 2 (16, 32, 64, 128, 256, 512, 1024) function core.GuideSections.Image(path, width, height) local self = { Path = path, Width = width, Height = height, } self.Draw = function(frame) local container = AceGUI:Create("SimpleGroup") container:SetFullWidth(true) frame:AddChild(container) local image = AceGUI:Create("Label") image:SetWidth(self.Width / core.Config.GetScaling()) image:SetHeight(self.Height / core.Config.GetScaling() + 10) container:AddChild(image) local texture = container.frame:CreateTexture(nil, "BACKGROUND") texture:SetScale(1 / core.Config.GetScaling()) texture:SetTexture(self.Path) texture:SetPoint("TOPLEFT", container.frame, "TOPLEFT", 10, -5) container:SetCallback("OnRelease", function() texture:Hide() texture = nil end) end return self end