WoWInterface SVN KuiNameplates

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /
    from Rev 139 to Rev 140
    Reverse comparison

Rev 139 → Rev 140

branches/v4/layout.lua
97,6 → 97,11
tinsert(self.fontObjects, fs)
return fs
end
 
kn.SetFontSize = SetFontSize
kn.ModifyFontFlags = ModifyFontFlags
kn.CreateFontString = CreateFontString
 
------------------------------------------------------------- Frame functions --
-- set colour of health bar according to reaction/threat
local function SetHealthColour(self)
722,6 → 727,14
frame.SetGlowColour = SetGlowColour
frame.StoreGUID = StoreFrameGUID
 
--[[ TODO
past this point a frame has been initialised but not "created"
it should be possible to hide/reset anything created after this
when a profile change or setting change is detected, cycle all frames
and reset them
]]
 
 
------------------------------------------------------------------ Layout --
local parent
if profile.general.fixaa and uiscale then
749,45 → 762,12
-- using CENTER breaks pixel-perfectness with oddly sized frames
-- .. so we have to align frames manually.
local w,h = parent:GetSize()
local x,y
frame.x = floor((w / 2) - (kn.sizes.width / 2))
frame.y = floor((h / 2) - (kn.sizes.height / 2))
 
x = floor((w / 2) - (kn.sizes.width / 2))
y = floor((h / 2) - (kn.sizes.height / 2))
self:CreateBackground(frame)
self:CreateHealthBar(frame)
 
-- border ------------------------------------------------------------------
--frame.bg = (frame.carrier and frame.carrier or frame):CreateTexture(nil, 'BACKGROUND')
frame.bg:SetParent(parent)
frame.bg:SetTexture('Interface\\AddOns\\Kui_Nameplates\\FrameGlow')
frame.bg:SetTexCoord(0, .469, 0, .625)
frame.bg:SetVertexColor(0, 0, 0, .9)
 
-- background
frame.bg.fill = parent:CreateTexture(nil, 'BACKGROUND')
frame.bg.fill:SetTexture(kui.m.t.solid)
frame.bg.fill:SetVertexColor(0, 0, 0, .8)
frame.bg.fill:SetDrawLayer('ARTWORK', 1) -- (1 sub-layer above .bg)
 
frame.bg.fill:SetSize(kn.sizes.width, kn.sizes.height)
frame.bg.fill:SetPoint('BOTTOMLEFT', x, y)
 
frame.bg:ClearAllPoints()
frame.bg:SetPoint('BOTTOMLEFT', x-kn.sizes.bgOffset, y-kn.sizes.bgOffset)
frame.bg:SetPoint('TOPRIGHT', parent, 'BOTTOMLEFT', x+kn.sizes.width+kn.sizes.bgOffset, y+kn.sizes.height+kn.sizes.bgOffset)
 
-- health bar --------------------------------------------------------------
frame.health = CreateFrame('StatusBar', nil, parent)
frame.health:SetStatusBarTexture(kui.m.t.bar)
 
frame.health:ClearAllPoints()
frame.health:SetSize(kn.sizes.width-2, kn.sizes.height-2)
frame.health:SetPoint('BOTTOMLEFT', x+1, y+1)
 
if kn.SetValueSmooth then
-- smooth bar
frame.health.OrigSetValue = frame.health.SetValue
frame.health.SetValue = kn.SetValueSmooth
end
 
-- raid icon ---------------------------------------------------------------
frame.icon:SetParent(parent)
--frame.icon:SetSize(24, 24)
798,65 → 778,23
-- overlay (text is parented to this) --------------------------------------
frame.overlay = CreateFrame('Frame', nil, parent)
frame.overlay:SetAllPoints(frame.health)
 
frame.overlay:SetFrameLevel(frame.health:GetFrameLevel()+1)
 
-- highlight ---------------------------------------------------------------
if profile.general.highlight then
frame.highlight = frame.overlay:CreateTexture(nil, 'ARTWORK')
frame.highlight:SetTexture(kui.m.t.bar)
 
frame.highlight:SetAllPoints(frame.health)
 
frame.highlight:SetVertexColor(1, 1, 1)
frame.highlight:SetBlendMode('ADD')
frame.highlight:SetAlpha(.4)
frame.highlight:Hide()
end
 
-- health text -------------------------------------------------------------
frame.health.p = frame:CreateFontString(frame.overlay, {
font = kn.font, size = 'large', outline = "OUTLINE" })
frame.health.p:SetJustifyH('RIGHT')
frame.health.p:SetPoint('BOTTOMRIGHT', frame.health, 'TOPRIGHT', -2, uiscale and -(3/uiscale) or -3)
self:CreateHighlight(frame)
self:CreateHealthText(frame)
 
if profile.hp.showalt then
frame.health.mo = frame:CreateFontString(frame.overlay, {
font = kn.font, size = 'small', outline = "OUTLINE" })
frame.health.mo:SetJustifyH('RIGHT')
 
frame.health.mo:SetPoint('BOTTOMRIGHT', frame.health, -2, uiscale and -(3/uiscale) or -3)
frame.health.mo:SetAlpha(.6)
self:CreateAltHealthText(frame)
end
 
if profile.text.level then
-- level text ----------------------------------------------------------
frame.level = frame:CreateFontString(frame.level, { reset = true,
font = kn.font, size = 'name', outline = 'OUTLINE' })
frame.level:SetParent(frame.overlay)
 
frame.level:ClearAllPoints()
frame.level:SetPoint('BOTTOMLEFT', frame.health, 'TOPLEFT', 2, uiscale and -(2/uiscale) or -2)
frame.level.enabled = true
self:CreateLevel(frame)
else
frame.level:Hide()
end
 
-- name text ---------------------------------------------------------------
frame.name = frame:CreateFontString(frame.overlay, {
font = kn.font, size = 'name', outline = 'OUTLINE' })
frame.name:SetJustifyH('LEFT')
 
frame.name:SetHeight(13)
self:CreateName(frame)
 
if frame.level.enabled then
frame.name:SetPoint('LEFT', frame.level, 'RIGHT', -2, 0)
else
frame.name:SetPoint('BOTTOMLEFT', frame.health, 'TOPLEFT', 2, uiscale and -(2/uiscale) or -2)
end
 
frame.name:SetPoint('RIGHT', frame.health.p, 'LEFT')
 
----------------------------------------------------------------- Scripts --
frame:SetScript('OnShow', OnFrameShow)
frame:SetScript('OnHide', OnFrameHide)
955,6 → 893,7
end
 
---------------------------------------------------- Post db change functions --
-- n.b. this is absolutely terrible and horrible and i hate it
kn.configChangedFuncs.runOnce.fontscale = function(val)
kn:ScaleFontSizes()
end
branches/v4/create.lua New file
0,0 → 1,155
local addon = LibStub('AceAddon-3.0'):GetAddon('KuiNameplates')
local kui = LibStub('Kui-1.0')
 
------------------------------------------------------------------ Background --
function addon:CreateBackground(frame)
-- frame glow
frame.bg:SetParent(frame.parent)
frame.bg:SetTexture('Interface\\AddOns\\Kui_Nameplates\\FrameGlow')
frame.bg:SetTexCoord(0, .469, 0, .625)
frame.bg:SetVertexColor(0, 0, 0, .9)
 
-- solid background
frame.bg.fill = frame.parent:CreateTexture(nil, 'BACKGROUND')
frame.bg.fill:SetTexture(kui.m.t.solid)
frame.bg.fill:SetVertexColor(0, 0, 0, .8)
frame.bg.fill:SetDrawLayer('ARTWORK', 1) -- 1 sub-layer above .bg
 
frame.bg.fill:SetSize(addon.sizes.width, addon.sizes.height)
frame.bg.fill:SetPoint('BOTTOMLEFT', frame.x, frame.y)
 
frame.bg:ClearAllPoints()
frame.bg:SetPoint('BOTTOMLEFT',
frame.x - addon.sizes.bgOffset,
frame.y - addon.sizes.bgOffset)
frame.bg:SetPoint('TOPRIGHT', frame.parent, 'BOTTOMLEFT',
frame.x + addon.sizes.width + addon.sizes.bgOffset,
frame.y + addon.sizes.height + addon.sizes.bgOffset)
end
 
------------------------------------------------------------------ Health bar --
function addon:CreateHealthBar(frame)
frame.health = CreateFrame('StatusBar', nil, frame.parent)
frame.health:SetStatusBarTexture(kui.m.t.bar)
 
frame.health:ClearAllPoints()
frame.health:SetSize(addon.sizes.width-2, addon.sizes.height-2)
frame.health:SetPoint('BOTTOMLEFT', frame.x+1, frame.y+1)
 
if addon.SetValueSmooth then
-- smooth bar
frame.health.OrigSetValue = frame.health.SetValue
frame.health.SetValue = addon.SetValueSmooth
end
end
 
------------------------------------------------------------------- Highlight --
function addon:CreateHighlight(frame)
if not addon.db.profile.general.highlight then return end
 
frame.highlight = frame.overlay:CreateTexture(nil, 'ARTWORK')
frame.highlight:SetTexture(kui.m.t.bar)
frame.highlight:SetAllPoints(frame.health)
 
frame.highlight:SetVertexColor(1, 1, 1)
frame.highlight:SetBlendMode('ADD')
frame.highlight:SetAlpha(.4)
frame.highlight:Hide()
end
 
----------------------------------------------------------------- Health text --
function addon:CreateHealthText(frame)
frame.health.p = addon.CreateFontString(frame, frame.overlay, {
font = addon.font, size = 'large', outline = "OUTLINE" })
frame.health.p:SetJustifyH('RIGHT')
frame.health.p:SetPoint('BOTTOMRIGHT', frame.health, 'TOPRIGHT',
-2, addon.uiscale and -(3/addon.uiscale) or -3)
end
function addon:UpdateHealthText(frame)
if frame.trivial then
frame.health.p:Hide()
else
frame.health.p:Show()
end
end
 
------------------------------------------------------------- Alt health text --
function addon:CreateAltHealthText(frame)
frame.health.mo = addon.CreateFontString(frame, frame.overlay, {
font = addon.font, size = 'small', outline = "OUTLINE" })
frame.health.mo:SetJustifyH('RIGHT')
frame.health.mo:SetPoint('BOTTOMRIGHT', frame.health,
-2, addon.uiscale and -(3/addon.uiscale) or -3)
frame.health.mo:SetAlpha(.6)
end
function addon:UpdateAltHealthText(frame)
if frame.trivial then
frame.health.mo:Hide()
else
frame.health.mo:Show()
end
end
function addon:DisableAltHealthText(frame)
frame.health.mo:Hide()
end
 
------------------------------------------------------------------ Level text --
function addon:CreateLevel(frame)
if not frame.level then return end
 
frame.level = addon.CreateFontString(frame, frame.level, { reset = true,
font = addon.font, size = 'name', outline = 'OUTLINE' })
frame.level:SetParent(frame.overlay)
 
frame.level:ClearAllPoints()
frame.level:SetPoint('BOTTOMLEFT', frame.health, 'TOPLEFT',
2, addon.uiscale and -(2/addon.uiscale) or -2)
frame.level.enabled = true
end
function addon:UpdateLevel(frame)
if frame.trivial then
frame.level:Hide()
else
frame.level:Show()
end
 
self:UpdateName(frame)
end
function addon:HideLevel(frame)
frame.level:Hide()
frame.level.enabled = nil
end
 
------------------------------------------------------------------- Name text --
function addon:CreateName(frame)
frame.name = addon.CreateFontString(frame, frame.overlay, {
font = addon.font, size = 'name', outline = 'OUTLINE' })
frame.name:SetHeight(13)
 
self:UpdateName(frame)
end
function addon:UpdateName(frame)
if not frame.name then return end
 
frame.name:ClearAllPoints()
 
if frame.trivial then
addon.SetFontSize(frame.name, addon.fontSizes.small)
 
frame.name:SetJustifyH('CENTER')
frame.name:SetPoint('BOTTOMLEFT', frame.health, 'TOPLEFT', -10, 0)
frame.name:SetPoint('BOTTOMRIGHT', frame.health, 'TOPRIGHT', 10, 0)
else
addon.SetFontSize(frame.name, addon.fontSizes.name)
 
frame.name:SetJustifyH('LEFT')
frame.name:SetPoint('RIGHT', frame.health.p, 'LEFT')
 
if frame.level and frame.level.enabled then
frame.name:SetPoint('LEFT', frame.level, 'RIGHT', -2, 0)
else
frame.name:SetPoint('BOTTOMLEFT', frame.health, 'TOPLEFT',
2, addon.uiscale and -(2/addon.uiscale) or -2)
end
end
end
\ No newline at end of file
branches/v4/Kui_Nameplates.toc
8,6 → 8,7
 
core.lua
config.lua
create.lua
layout.lua
 
castbar.lua
branches/v4/config.lua
275,45 → 275,6
},
}
},
sizes = {
name = 'Sizes',
type = 'group',
inline = true,
args = {
combopoints = {
name = 'Combo points',
type = 'range',
min = 1,
softMax = 20
},
large = {
name = 'Large',
desc = 'Used for health on normal nameplates',
type = 'range',
min = 1,
softMax = 20
},
spellname = {
name = 'Spell name',
type = 'range',
min = 1,
softMax = 20
},
name = {
name = 'Name & level',
type = 'range',
min = 1,
softMax = 20
},
small = {
name = 'Small',
desc = 'Used for contextual health',
type = 'range',
min = 1,
softMax = 20
},
}
}
}
},
reload = {