-- This file is part of CyrHUD -- -- (C) 2015 Scott Yeskie (Sasky) -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation; either version 2 of the License, or -- (at your option) any later version. -- -- This program is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. -- -- You should have received a copy of the GNU General Public License -- along with this program. If not, see <http://www.gnu.org/licenses/>. -- Setup class CyrHUD.Label = {} CyrHUD.Label.__index = CyrHUD.Label setmetatable(CyrHUD.Label, { __call = function (cls, ...) return cls.new(...) end, }) local Label = CyrHUD.Label function Label.new() local self = setmetatable({}, CyrHUD.Label) self.labelType = "uninit" self.num = CyrHUD.entryCount + 1 self.entryName = "CyrHUDEntry" .. self.num self.entry = {} local entry = self.entry --Main control/backdrop local yoff = self.num*35-5 entry.main = WINDOW_MANAGER:CreateControl(self.entryName .. "main", CyrHUD_UI, CT_BACKDROP) entry.main:SetDimensions(280, 35) entry.main:SetAnchor(TOPLEFT, CyrHUD_UI, TOPLEFT, 0, yoff) entry.main:SetCenterColor( 0, 0, 0, .3 ) entry.main:SetEdgeColor( 0, 0, 0, 0 ) -- Images entry.img1 = WINDOW_MANAGER:CreateControl(self.entryName .. "img1", entry.main, CT_TEXTURE) entry.img2 = WINDOW_MANAGER:CreateControl(self.entryName .. "img2", entry.main, CT_TEXTURE) entry.img3 = WINDOW_MANAGER:CreateControl(self.entryName .. "img3", entry.main, CT_TEXTURE) --Labels entry.txt1 = WINDOW_MANAGER:CreateControl(self.entryName .. "txt1", entry.main, CT_LABEL) entry.txt2 = WINDOW_MANAGER:CreateControl(self.entryName .. "txt2", entry.main, CT_LABEL) entry.txt3 = WINDOW_MANAGER:CreateControl(self.entryName .. "txt3", entry.main, CT_LABEL) entry.txt4 = WINDOW_MANAGER:CreateControl(self.entryName .. "txt4", entry.main, CT_LABEL) end function Label:Hide() self.entry.main:SetHidden(true) end function Label:Show() self.entry.main:SetHidden(false) end function Label:getControl(name) return self.entry[name] end function Label:moveControl(name, x, y) if self.entry[name] and name ~= "main" then self.entry[name]:ClearAnchors() self.entry[name]:SetAnchor(TOPLEFT, self.entry.main, TOPLEFT, x, y) end end function Label:resizeControl(name, width, height) if self.entry[name] and name ~= "main" then self.entry[name]:SetDimensions(width, height) end end function Label:reconfigure(type, labelObj) if self.type ~= labelObj.type then labelObj:configure(self) end end --Original create label function Label:create(entryName, num) local yoff = num*35-5 self.entry = {} local entry = {} entry.main = WINDOW_MANAGER:CreateControl(entryName .. "main", CyrHUD_UI, CT_BACKDROP) entry.main:SetDimensions(280, 35) entry.main:SetAnchor(TOPLEFT, CyrHUD_UI, TOPLEFT, 0, yoff) entry.main:SetCenterColor( 0, 0, 0, .3 ) entry.main:SetEdgeColor( 0, 0, 0, 0 ) entry.icon = WINDOW_MANAGER:CreateControl(entryName .. "icon", entry.main, CT_TEXTURE) entry.icon:SetAnchor(TOPLEFT, entry.main, TOPLEFT, -2, -2) entry.icon:SetDimensions(40,40) entry.icon:SetDrawLayer(2) entry.ua = WINDOW_MANAGER:CreateControl(entryName .. "ua", entry.main, CT_TEXTURE) entry.ua:SetAnchor(TOPLEFT, entry.main, TOPLEFT, -2, -2) entry.ua:SetDimensions(40,40) entry.ua:SetTexture("/esoui/art/mappins/ava_attackburst_64.dds") entry.ua:SetDrawLayer(1) local fontMain = "EsoUI/Common/Fonts/univers67.otf|18|soft-shadow-thick" entry.name = WINDOW_MANAGER:CreateControl(entryName .. "name", entry.main, CT_LABEL) entry.name:SetDimensions(150,30) entry.name:SetAnchor(TOPLEFT, entry.main, TOPLEFT, 35, 5) entry.name:SetFont(fontMain) --local fontSmall = "EsoUI/Common/Fonts/univers67.otf|14|soft-shadow-thin" entry.defSiege = WINDOW_MANAGER:CreateControl(entryName .. "defSiege", entry.main, CT_LABEL) entry.defSiege:SetDimensions(30,30) entry.defSiege:SetAnchor(TOPLEFT, entry.main, TOPLEFT, 220, 5) entry.defSiege:SetFont(fontMain) entry.attSiege = WINDOW_MANAGER:CreateControl(entryName .. "attSiege", entry.main, CT_LABEL) entry.attSiege:SetDimensions(30,30) entry.attSiege:SetAnchor(TOPLEFT, entry.main, TOPLEFT, 190, 5) entry.attSiege:SetFont(fontMain) entry.time = WINDOW_MANAGER:CreateControl(entryName .. "time", entry.main, CT_LABEL) entry.time:SetDimensions(30,30) entry.time:SetAnchor(TOPLEFT, entry.main, TOPLEFT, 250, 5) entry.time:SetFont(fontMain) entry.time:SetColor(.8,.8,.8) table.insert(CyrHUD.entries, entry) return entry end