Quantcast

- Some files had their code repeated twice for some reason. Fixed.

Lanerra [01-04-12 - 10:14]
- Some files had their code repeated twice for some reason. Fixed.
Filename
oUF_Lanerra.lua
oUF_Lanerra_Config.lua
diff --git a/oUF_Lanerra.lua b/oUF_Lanerra.lua
index be8d278..50aa57c 100644
--- a/oUF_Lanerra.lua
+++ b/oUF_Lanerra.lua
@@ -1606,1545 +1606,4 @@ partyToggle:SetScript('OnEvent', function(self)
 	        end
 	     end
     end
-end)
---[[
-    Copyright  2010-2011 Lanerra. See LICENSE file for license terms.
-
-	Special thanks to P3lim for inspiration, Neav for textures and inspiration,
-    Game92 for inspiration, and Phanx for inspiration and an inline border method
---]]
-
----- Lazy Stuff Goes Here!
-
--- Disable Blizzard options that are rendered useless by having a unit frame addon
-
-for _, button in pairs({
-    'UnitFramePanelPartyBackground',
-    'UnitFramePanelPartyPets',
-	'UnitFramePanelFullSizeFocusFrame',
-
-    'CombatPanelTargetOfTarget',
-    'CombatPanelTOTDropDown',
-    'CombatPanelTOTDropDownButton',
-    'CombatPanelEnemyCastBarsOnPortrait',
-
-    'DisplayPanelShowAggroPercentage',
-
-    'FrameCategoriesButton9',
-}) do
-    _G['InterfaceOptions'..button]:SetAlpha(0.35)
-    _G['InterfaceOptions'..button]:Disable()
-    _G['InterfaceOptions'..button]:EnableMouse(false)
-end
-
-do
-    for k, v in pairs(UnitPopupMenus) do
-        for x, i in pairs(UnitPopupMenus[k]) do
-            if (i == 'SET_FOCUS' or i == 'CLEAR_FOCUS') then
-                table.remove(UnitPopupMenus[k],x)
-            end
-        end
-    end
-end
-
--------------------------------------------------
--- Variables for defining colors and appearance
--------------------------------------------------
-
-
-local colors = oUF.colors
-
-local playerClass = select(2, UnitClass('player'))
-local isHealer = (playerClass == 'DRUID' or playerClass == 'PALADIN' or playerClass == 'PRIEST' or playerClass == 'SHAMAN')
-
--- A little backdrop local to save us some typing...because I'm lazy
-local backdrop = {
-	bgFile = [[Interface\Tooltips\UI-Tooltip-Background]],
-	insets = {top = -1, left = -1, bottom = -1, right = -1},
-}
-
-local PlayerUnits = { player = true, pet = true, vehicle = true }
-
--- Dummy function
-local noop = function() return end
-
-fontstrings = { }
-
--- Custom power colors
-local PowerBarColor = PowerBarColor
-
-PowerBarColor['MANA'] = { r = 0/255, g = 0.55, b = 1 }
-PowerBarColor['RAGE'] = { r = 240/255, g = 45/255, b = 75/255 }
-PowerBarColor['FOCUS'] = { r = 255/255, g = 175/255, b = 0 }
-PowerBarColor['ENERGY'] = { r = 1, g = 1, b = 35/255 }
-PowerBarColor['RUNIC_POWER'] = { r = 0.45, g = 0.85, b = 1 }
-
--- Threat color handling
-oUF.colors.threat = { }
-for i = 1, 3 do
-	local r, g, b = GetThreatStatusColor(i)
-	oUF.colors.threat[i] = { r, g, b }
-end
-
--- Debuff color handling
-colors.Debuff = { }
-for type, color in pairs(DebuffTypeColor) do
-	if (type ~= 'none') then
-		colors.Debuff[type] = { color.r, color.g, color.b }
-	end
-end
-
--- Color conversion function
-function hex(r, g, b)
-	if(type(r) == 'table') then
-		if(r.r) then r, g, b = r.r, r.g, r.b else r, g, b = unpack(r) end
-	end
-	return ('|cff%02x%02x%02x'):format(r * 255, g * 255, b * 255)
-end
-
----- No More Lazy Stuff!
-
--- Border update function
-local function UpdateBorder(self)
-	local Threat, Debuff, Dispellable = self.threatLevel, self.debuffType, self.debuffDispellable
-
-	local color
-	if Debuff and Dispellable then
-		color = colors.Debuff[Debuff]
-    elseif Debuff and Threat then
-        color = colors.Debuff[Debuff]
-    elseif Threat and Threat > 1 then
-        color = colors.threat[Threat]
-	elseif Debuff then
-		color = colors.Debuff[Debuff]
-    elseif Threat and Threat > 0 then
-        color = colors.threat[Threat]
-    end
-
-
-	if color then
-		self:SetBackdropBorderColor(color[1], color[2], color[3], 1)
-	else
-		self:SetBackdropBorderColor(0, 0, 0, 0)
-	end
-end
-
--- Formatting function for the display of health and power text
-local function ShortValue(value)
-	if value >= 1e7 then
-		return ('%.1fm'):format(value / 1e6):gsub('%.?0+([km])$', '%1')
-	elseif value >= 1e6 then
-		return ('%.2fm'):format(value / 1e6):gsub('%.?0+([km])$', '%1')
-	elseif value >= 1e5 then
-		return ('%.0fk'):format(value / 1e3)
-	elseif value >= 1e3 then
-		return ('%.1fk'):format(value / 1e3):gsub('%.?0+([km])$', '%1')
-	else
-		return value
-	end
-end
-
-------------------------------------------
--- Functions used to build Unit Frames
-------------------------------------------
-
-
--- Build dropdown menus
-local dropdown = CreateFrame('Frame', 'oUF_LanerraDropDown', UIParent, 'UIDropDownMenuTemplate')
-
-UIDropDownMenu_Initialize(dropdown, function(self)
-	local unit = self:GetParent().unit
-	if not unit then return end
-
-	local menu, name, id
-	if UnitIsUnit(unit, 'player') then
-		menu = 'SELF'
-	elseif UnitIsUnit(unit, 'vehicle') then
-		menu = 'VEHICLE'
-	elseif UnitIsUnit(unit, 'pet') then
-		menu = 'PET'
-	elseif UnitIsPlayer(unit) then
-		id = UnitInRaid(unit)
-		if id then
-			menu = 'RAID_PLAYER'
-			name = GetRaidRosterInfo(id)
-		elseif UnitInParty(unit) then
-			menu = 'PARTY'
-		else
-			menu = 'PLAYER'
-		end
-	else
-		menu = 'TARGET'
-		name = RAID_TARGET_ICON
-	end
-	if menu then
-		UnitPopup_ShowMenu(self, menu, unit, name, id)
-	end
-end, 'MENU')
-
-local function CreateDropDown(self)
-	dropdown:SetParent(self)
-    ToggleDropDownMenu(1, nil, dropdown, 'cursor', 15, -15)
-end
-
-local Interrupt = 'Interface\\Addons\\oUF_Lanerra\\Media\\BorderInterrupt'
-local Normal = 'Interface\\Addons\\oUF_Lanerra\\Media\\BorderNormal'
-
-local function PostCastStart(Castbar, unit)
-    self.Castbar.SafeZone:SetDrawLayer('BORDER')
-    self.Castbar.SafeZone:ClearAllPoints()
-    self.Castbar.SafeZone:SetPoint('TOPRIGHT', self.Castbar)
-    self.Castbar.SafeZone:SetPoint('BOTTOMRIGHT', self.Castbar)
-
-    if (unit == 'target') then
-        if (self.Castbar.interrupt) then
-            self.Castbar.Border:SetBorderTexture(Interrupt)
-            print('Changed the border, chief!')
-            self.Castbar.Border:SetBorderColor(1, 0, 1)
-            self.Castbar.Border:SetBorderShadowColor(1, 0, 1)
-        else
-            self.Castbar.Border:SetBorderTexture(Normal)
-            self.Castbar.Border:SetBorderColor(1, 1, 1)
-            self.Castbar.Border:SetBorderShadowColor(0, 0, 0)
-        end
-    end
-end
-
-local function PostChannelStart(Castbar, unit)
-    self.Castbar.SafeZone:SetDrawLayer('ARTWORK')
-    self.Castbar.SafeZone:ClearAllPoints()
-    self.Castbar.SafeZone:SetPoint('TOPLEFT', self.Castbar)
-    self.Castbar.SafeZone:SetPoint('BOTTOMLEFT', self.Castbar)
-
-    if (unit == 'target') then
-        if (self.interrupt) then
-            self.Castbar.Border:SetBorderTexture(Interrupt)
-            self.Castbar.Border:SetBorderColor(1, 0, 1)
-            self.Castbar.Border:SetBorderShadowColor(1, 0, 1)
-        else
-            self.Castbar.Border:SetBorderTexture(Normal)
-            self.Castbar.Border:SetBorderColor(1, 1, 1)
-            self.Castbar.Border:SetBorderShadowColor(0, 0, 0)
-        end
-    end
-end
-
--- Health update function of doom!
-local UpdateHealth = function(Health, unit, min, max)
-    if (Health:GetParent().unit ~= unit) then
-        return
-	end
-
-	if (not unit == 'pet' or unit == 'focus' or unit == 'targettarget' or unit == 'player') then
-		if (UnitIsDead(unit) or UnitIsGhost(unit) or not UnitIsConnected(unit)) then
-            Health:SetValue(0)
-            Health:SetStatusBarColor(.5, .5, .5)
-        end
-	end
-
-	if (unit == 'player') then
-		if (Settings.Units.Player.Health.Percent) then
-			Health.Value:SetText((min / max * 100 and format('%d%%', min / max * 100)) or '')
-		elseif (Settings.Units.Player.Health.Deficit) then
-			Health.Value:SetText((min ~= max) and format('%d', min - max) or '')
-		elseif (Settings.Units.Player.Health.Current) then
-			Health.Value:SetText((min ~= max) and format('%d', min) or '')
-		else
-			Health.Value:SetText()
-		end
-	elseif (unit == 'target') then
-		if (Settings.Units.Target.Health.Percent) then
-			Health.Value:SetText((min / max * 100 and format('%d%%', min / max * 100)) or '')
-		elseif (Settings.Units.Target.Health.Deficit) then
-			Health.Value:SetText((min ~= max) and format('%d', min - max) or '')
-		elseif (Settings.Units.Target.Health.Current) then
-			Health.Value:SetText(ShortValue(min))
-		elseif (Settings.Units.Target.Health.PerCur) then
-            Health.Value:SetText((min/max * 100 and format('%s - %d%%', ShortValue(min), min/max * 100)))
-        else
-			Health.Value:SetText()
-		end
-	elseif (unit == 'targettarget') then
-		if (Settings.Units.ToT.Health.Percent) then
-			Health.Value:SetText((min / max * 100 < 100 and format('%d%%', min / max * 100)) or '')
-		elseif (Settings.Units.ToT.Health.Deficit) then
-			Health.Value:SetText((min ~= max) and format('%d', min - max) or '')
-		elseif (Settings.Units.ToT.Health.Current) then
-			Health.Value:SetText((min ~= max) and format('%d', min) or '')
-		else
-			Health.Value:SetText()
-		end
-	elseif (unit == 'pet') then
-		if (Settings.Units.Pet.Health.Percent) then
-			Health.Value:SetText((min / max * 100 < 100 and format('%d%%', min / max * 100)) or '')
-		elseif (Settings.Units.Pet.Health.Deficit) then
-			Health.Value:SetText((min ~= max) and format('%d', min - max) or '')
-		elseif (Settings.Units.Pet.Health.Current) then
-			Health.Value:SetText((min ~= max) and format('%d', min) or '')
-		else
-			Health.Value:SetText()
-		end
-	elseif (unit == 'focus') then
-		if (Settings.Units.Focus.Health.Percent) then
-			Health.Value:SetText((min / max * 100 < 100 and format('%d%%', min / max * 100)) or '')
-		elseif (Settings.Units.Focus.Health.Deficit) then
-			Health.Value:SetText((min ~= max) and format('%d', min - max) or '')
-		elseif (Settings.Units.Focus.Health.Current) then
-			Health.Value:SetText((min ~= max) and format('%d', min) or '')
-		else
-			Health.Value:SetText()
-		end
-	end
-
-	-- Bar Color Stuff
-	Health:SetStatusBarColor(.25, .25, .25)
-end
-
--- Group update health function
-local function UpdateGroupHealth(Health, unit, min, max)
-	if (Health:GetParent().unit ~= unit) then
-		return
-	end
-
-	if (UnitIsDead(unit) or UnitIsGhost(unit) or not UnitIsConnected(unit)) then
-        Health:SetValue(0)
-        Health:SetStatusBarColor(.5, .5, .5)
-    end
-
-    if (Settings.Units.Party.Health.Percent) then
-        Health.Value:SetText((min / max * 100 < 100 and format('%d%%', min / max * 100)) or '')
-    elseif (Settings.Units.Party.Health.Deficit) then
-        Health.Value:SetText((min ~= max) and format('%d', min - max) or '')
-    elseif (Settings.Units.Party.Health.Current) then
-        Health.Value:SetText((min ~= max) and format('%d', min) or '')
-    else
-        Health.Value:SetText()
-    end
-
-    local color = RAID_CLASS_COLORS[select(2, UnitClass(unit))]
-    if (Settings.Units.Party.Health.ClassColor) then
-        Health.colorClass = true
-    else
-        Health:SetStatusBarColor(.25, .25, .25)
-    end
-end
-
--- Raid update health function
-local function UpdateRaidHealth(Health, unit, min, max)
-	if (Health:GetParent().unit ~= unit) then
-		return
-	end
-
-	if (UnitIsDead(unit) or UnitIsGhost(unit) or not UnitIsConnected(unit)) then
-		Health:SetValue(0)
-        Health:SetStatusBarColor(.5, .5, .5)
-	else
-		if (Settings.Units.Raid.Health.Percent) then
-			Health.Value:SetText((min / max * 100 and format('%d%%', min / max * 100)) or '')
-		elseif (Settings.Units.Raid.Health.Deficit) then
-			Health.Value:SetText((min ~= max) and format('%d', min - max) or '')
-		elseif (Settings.Units.Raid.Health.Current) then
-			Health.Value:SetText((min ~= max) and format('%d', min) or '')
-		else
-			Health.Value:SetText()
-		end
-
-		local color = RAID_CLASS_COLORS[select(2, UnitClass(unit))]
-		if (Settings.Units.Raid.Health.ClassColor) then
-			Health.colorClass = true
-		else
-			Health:SetStatusBarColor(.25, .25, .25)
-		end
-	end
-end
-
--- Custom Power Updating Function
-local function UpdatePower(Power, unit, min, max)
-    local self = Power:GetParent()
-
-	local _, PowerType, altR, altG, altB = UnitPowerType(unit)
-	local UnitPower = PowerBarColor[PowerType]
-
-    if (UnitIsDeadOrGhost(unit) or not UnitIsConnected(unit)) then
-        Power:SetValue(0)
-        Power.Value:SetText('')
-    elseif (unit == 'player' and Settings.Units.Player.ShowPowerText or unit == 'target' and Settings.Units.Target.ShowPowerText) then
-        if (unit == 'target' and max == 0) then
-            Power.Value:SetText('')
-        else
-            Power.Value:SetText((min/max * 100 and format('%d%%', min/max * 100)))
-        end
-    else
-        Power.Value:SetText()
-    end
-
-    if (UnitPower) then
-        Power.Value:SetTextColor(UnitPower.r, UnitPower.g, UnitPower.b)
-	else
-        Power.Value:SetTextColor(altR, altG, altB)
-	end
-end
-
--- Add DruidPower support
-local function UpdateDruidPower(self, event, unit)
-    if (unit and unit ~= self.unit) then
-        return
-    end
-
-	local unitPower = PowerBarColor['MANA']
-    local mana = UnitPowerType('player') == 0
-    local index = GetShapeshiftForm()
-
-    if (index == 1 or index == 3) then
-        if (unitPower) then
-            self.Druid.Power:SetStatusBarColor(unitPower.r, unitPower.g, unitPower.b)
-        end
-
-        self.Druid.Power:SetAlpha(1)
-
-        local min, max = UnitPower('player', 0), UnitPowerMax('player', 0)
-
-        self.Druid.Power:SetMinMaxValues(0, max)
-        self.Druid.Power:SetValue(min)
-    else
-        self.Druid.Power:SetAlpha(0)
-    end
-end
-
--- Aura Icons for our unit frames
--- Aura Icon Show
-local AuraIconCD_OnShow = function(cd)
-	local button = cd:GetParent()
-	button:SetBorderParent(cd)
-	button.count:SetParent(cd)
-end
-
--- Aura Icon Hide
-local AuraIconCD_OnHide = function(cd)
-	local button = cd:GetParent()
-	button:SetBorderParent(button)
-	button.count:SetParent(button)
-end
--- Aura Icon Overlay
-local AuraIconOverlay_SetBorderColor = function(overlay, r, g, b)
-	if not r or not g or not b then
-		r, g, b = unpack(Settings.Media.BorderColor)
-	end
-	overlay:GetParent():SetBorderColor(r, g, b)
-end
-
--- Aura Icon Creation Function
-local function PostCreateAuraIcon(iconframe, button)
-	AddBorder(button, Settings.Media.BorderSize, Settings.Media.BorderPadding)
-
-	button.cd:SetReverse(true)
-	button.cd:SetScript('OnHide', AuraIconCD_OnHide)
-	button.cd:SetScript('OnShow', AuraIconCD_OnShow)
-	if button.cd:IsShown() then
-        AuraIconCD_OnShow(button.cd)
-    end
-
-	button.icon:SetTexCoord(0.03, 0.97, 0.03, 0.97)
-
-	button.overlay:Hide()
-	button.overlay.Hide = AuraIconOverlay_SetBorderColor
-	button.overlay.SetVertexColor = AuraIconOverlay_SetBorderColor
-	button.overlay.Show = noop
-end
-
--- Aura Icon Update Function
-local function PostUpdateAuraIcon(iconframe, unit, button, index, offset)
-	local name, _, texture, count, type, duration, timeLeft, caster, isStealable, shouldConsolidate, spellID = UnitAura(unit, index, button.filter)
-
-	if PlayerUnits[caster] then
-		button.icon:SetDesaturated(false)
-	else
-		button.icon:SetDesaturated(true)
-	end
-
-	if button.timer then return end
-
-	if OmniCC then
-		for i = 1, button:GetNumChildren() do
-			local child = select(i, button:GetChildren())
-			if child.text and (child.icon == button.icon or child.cooldown == button.cd) then
-				-- found it!
-				child.SetAlpha = noop
-				child.SetScale = noop
-
-				child.text:ClearAllPoints()
-				child.text:SetPoint('CENTER', button, 'TOP', 0, 2)
-
-				child.text:SetFont(Settings.Media.Font, unit:match('^party') and 14 or 18)
-				child.text.SetFont = noop
-
-				child.text:SetTextColor(1, 0.8, 0)
-                child.text:SetShadowOffset(1, -1)
-				child.text.SetTextColor = noop
-				child.text.SetVertexColor = noop
-
-				tinsert(fontstrings, child.text)
-
-				button.timer = child.text
-
-				return
-			end
-		end
-	else
-		button.timer = true
-	end
-end
-
--- Dispel highlighting function
-local function UpdateDispelHighlight(self, event, unit, debuffType, canDispel)
-	if (self.unit ~= unit) then
-        return
-    end
-
-	if (self.debuffType == debuffType) then
-        return
-    end
-
-	self.debuffType = debuffType
-	self.debuffDispellable = canDispel
-
-    self:UpdateBorder()
-end
-
--- Threat highlighting function
-local function UpdateThreatHighlight(self, unit, status)
-	if self.threatLevel == status then return end
-
-	self.threatLevel = status
-	self:UpdateBorder()
-end
-
--- Time to give our solo unit frames some style!
-local Stylish = function(self, unit, isSingle)
-	self.menu = CreateDropDown
-
-    self:SetScript("OnEnter", UnitFrame_OnEnter)
-    self:SetScript("OnLeave", UnitFrame_OnLeave)
-
-	self.ignoreHealComm = true
-
-	self:EnableMouse(true)
-	self:RegisterForClicks('AnyUp')
-
-    -- Health Bar-specific stylings
-	self.Health = CreateFrame('StatusBar', '$parentHealthBar', self)
-	self.Health:SetHeight(Settings.Units.Player.Height * .75)
-	self.Health:SetStatusBarTexture(Settings.Media.StatusBar)
-
-	-- Turn on the smoothness
-	self.Health.Smooth = true
-
-	self.Health.frequentUpdates = 0.2
-
-	self.Health:SetParent(self)
-	self.Health:SetPoint('TOP')
-	self.Health:SetPoint('LEFT')
-	self.Health:SetPoint('RIGHT')
-
-	self:SetBackdrop(backdrop)
-	self:SetBackdropColor(unpack(Settings.Media.BackdropColor))
-
-	if (unit == 'player') then
-		local info = self.Health:CreateFontString('$parentInfo', 'OVERLAY', 'GameFontHighlightSmall')
-		info:SetPoint('CENTER', self.Health)
-		info.frequentUpdates = .25
-		self:Tag(info, '[LanThreat] |cffff0000[LanPvPTime]|r')
-	end
-
-	-- Setup our health text
-	self.Health.Value = self.Health:CreateFontString('$parentHealthValue', 'OVERLAY')
-	self.Health.Value:SetFont(Settings.Media.Font, Settings.Media.FontSize)
-	self.Health.Value:SetShadowOffset(1, -1)
-	self.Health.Value:SetTextColor(1, 1, 1)
-
-	self.Health.PostUpdate = UpdateHealth
-
-	-- And now for the power bar and text stuff
-	self.Power = CreateFrame('StatusBar', '$parentPowerBar', self)
-	self.Power:SetHeight(Settings.Units.Player.Height * .22)
-	self.Power:SetStatusBarTexture(Settings.Media.StatusBar)
-
-	self.Power.colorClass = true
-	self.Power.colorTapping = true
-    self.Power.colorReaction = true
-
-	-- We like to keep things smooth around here
-    self.Power.frequentUpdates = 0.2
-    self.Power.Smooth = true
-
-	self.Power:SetParent(self)
-	self.Power:SetPoint('BOTTOM')
-	self.Power:SetPoint('LEFT', .2, 0)
-	self.Power:SetPoint('RIGHT', -.2, 0)
-
-	-- Now, the power bar's text
-	self.Power.Value = self.Power:CreateFontString('$parentPowerValue', 'OVERLAY')
-	self.Power.Value:SetFont(Settings.Media.Font, Settings.Media.FontSize)
-	self.Power.Value:SetShadowOffset(1, -1)
-    if (unit == 'target') then
-        self.Power.Value:SetPoint('TOPRIGHT', self.Power, 'BOTTOMRIGHT', 0, -5)
-    elseif (unit == 'player') then
-        self.Power.Value:SetPoint('LEFT', self.Health.Value, 'RIGHT', -195, 0)
-    end
-
-	self.Power.Value:SetTextColor(1, 1, 1)
-    self.Power.Value:SetJustifyH('LEFT')
-    self.Power.Value.frequentUpdates = 0.1
-
-	if (unit == 'targettarget') then
-		self.Power:Hide()
-		self.Power.Show = self.Power.Hide
-		self.Health:SetAllPoints(self)
-	end
-
-    if (unit == 'focus' and Settings.Units.Focus.VerticalHealth) then
-		self.Power:Hide()
-		self.Power.Show = self.Power.Hide
-		self.Health:SetAllPoints(self)
-		self.Health:SetOrientation('VERTICAL')
-	else
-		self.Health:SetOrientation('HORIZONTAL')
-	end
-
-    self.Power.PostUpdate = UpdatePower
-
-    -- Improve border drawing
-    self.Overlay = CreateFrame('Frame', nil, self)
-	self.Overlay:SetAllPoints(self)
-	self.Overlay:SetFrameLevel(self.Health:GetFrameLevel() + (self.Power and 3 or 2))
-
-	-- Now, to hammer out our castbars
-	if (Settings.Show.CastBars) then
-        if (unit == 'player') then
-			self.Castbar = CreateFrame('StatusBar', '$parentCastBar', self)
-            self.Castbar:SetStatusBarTexture(Settings.Media.StatusBar)
-			self.Castbar:SetScale(Settings.CastBars.Player.Scale)
-			self.Castbar:SetStatusBarColor(unpack(Settings.CastBars.Player.Color))
-
-            self.Castbar.Border = CreateFrame('Frame', nil, self.Castbar)
-            self.Castbar.Border:SetAllPoints(self.Castbar)
-            self.Castbar.Border:SetFrameLevel(self.Castbar:GetFrameLevel() + 2)
-
-			AddBorder(self.Castbar.Border, Settings.Media.BorderSize, Settings.Media.BorderPadding)
-
-			self.Castbar:SetHeight(Settings.CastBars.Player.Height)
-			self.Castbar:SetWidth(Settings.CastBars.Player.Width)
-			self.Castbar:SetParent(self)
-			self.Castbar:SetPoint(unpack(Settings.CastBars.Player.Position))
-
-			self.Castbar.Bg = self.Castbar:CreateTexture('$parentCastBarBackground', 'BACKGROUND')
-			self.Castbar.Bg:SetAllPoints(self.Castbar)
-			self.Castbar.Bg:SetTexture(Settings.Media.StatusBar)
-			self.Castbar.Bg:SetVertexColor(.1, .1, .1, .7)
-
-			self.Castbar.Text = self.Castbar:CreateFontString('$parentCastBarText', 'OVERLAY')
-			self.Castbar.Text:SetFont(Settings.Media.Font, 13)
-			self.Castbar.Text:SetShadowOffset(1, -1)
-			self.Castbar.Text:SetPoint('LEFT', self.Castbar, 'LEFT', 2, 0)
-			self.Castbar.Text:SetHeight(Settings.Media.FontSize)
-			self.Castbar.Text:SetWidth(130)
-			self.Castbar.Text:SetJustifyH('LEFT')
-			self.Castbar.Text:SetParent(self.Castbar)
-			self.Castbar.CustomTimeText = function(self, duration)
-				self.Time:SetFormattedText('%.1f/%.1f', duration, self.max)
-			end
-
-			self.Castbar.Time = self.Castbar:CreateFontString('$parentCastBarTime', 'OVERLAY')
-			self.Castbar.Time:SetFont(Settings.Media.Font, 13)
-			self.Castbar.Time:SetShadowOffset(1, -1)
-			self.Castbar.Time:SetPoint('RIGHT', self.Castbar, 'RIGHT', -2, 0)
-			self.Castbar.Time:SetParent(self.Castbar)
-			self.Castbar.Time:SetJustifyH('RIGHT')
-			self.Castbar.CustomDelayText = function(self, duration)
-				self.Time:SetFormattedText('[|cffff0000-%.1f|r] %.1f/%.1f', self.delay, duration, self.max)
-			end
-
-			self.Castbar.SafeZone = self.Castbar:CreateTexture('$parentCastBarSafeZone', 'OVERLAY')
-			self.Castbar.SafeZone:SetTexture('Interface\\Buttons\\WHITE8x8')
-			self.Castbar.SafeZone:SetVertexColor(1, .5, 0, .25)
-
-			self.PostChannelStart = UpdateChannelStart
-			self.PostCastStart = UpdateCastStart
-		elseif (unit == 'target') then
-			self.Castbar = CreateFrame('StatusBar', '$parentCastBar', self)
-			self.Castbar:SetStatusBarTexture(Settings.Media.StatusBar)
-			self.Castbar:SetStatusBarColor(unpack(Settings.CastBars.Target.Color))
-			self.Castbar:SetWidth(Settings.CastBars.Target.Width)
-			self.Castbar:SetScale(Settings.CastBars.Target.Scale)
-
-            self.Castbar.Border = CreateFrame('Frame', nil, self.Castbar)
-            self.Castbar.Border:SetAllPoints(self.Castbar)
-            self.Castbar.Border:SetFrameLevel(self.Castbar:GetFrameLevel() + 2)
-
-			AddBorder(self.Castbar.Border, Settings.Media.BorderSize, Settings.Media.BorderPadding)
-
-			self.Castbar:SetHeight(Settings.CastBars.Target.Height)
-			self.Castbar:SetParent(self)
-			self.Castbar:SetPoint(unpack(Settings.CastBars.Target.Position))
-
-			self.Castbar.Bg = self.Castbar:CreateTexture('$parentCastBarBackground', 'BORDER')
-			self.Castbar.Bg:SetAllPoints(self.Castbar)
-			self.Castbar.Bg:SetTexture(.1, .1, .1, .7)
-
-			self.Castbar.Text = self.Castbar:CreateFontString('$parentCastBarText', 'OVERLAY')
-			self.Castbar.Text:SetFont(Settings.Media.Font, 13)
-			self.Castbar.Text:SetShadowOffset(1, -1)
-			self.Castbar.Text:SetPoint('LEFT', self.Castbar, 'LEFT', 2, 0)
-			self.Castbar.Text:SetHeight(Settings.Media.FontSize)
-			self.Castbar.Text:SetWidth(130)
-			self.Castbar.Text:SetJustifyH('LEFT')
-
-			self.Castbar.Time = self.Castbar:CreateFontString('$parentCastBarTime', 'OVERLAY')
-			self.Castbar.Time:SetFont(Settings.Media.Font, 13)
-			self.Castbar.Time:SetShadowOffset(1, -1)
-			self.Castbar.Time:SetPoint('RIGHT', self.Castbar, 'RIGHT', -2, 0)
-			self.Castbar.CustomTimeText = function(self, duration)
-				if (self.casting) then
-					self.Time:SetFormattedText('%.1f', self.max - duration)
-				elseif (self.channeling) then
-					self.Time:SetFormattedText('%.1f', duration)
-				end
-			end
-
-			self.PostChannelStart = PostChannelStart
-			self.PostCastStart = PostCastStart
-		end
-	end
-
-	-- Now to skin and setup our Mirror Timers
-	for _, bar in pairs({
-		'MirrorTimer1',
-		'MirrorTimer2',
-		'MirrorTimer3',
-	}) do
-		for i, region in pairs({_G[bar]:GetRegions()}) do
-			if (region.GetTexture and region:GetTexture() == 'SolidTexture') then
-				region:Hide()
-			end
-		end
-
-        MirrorBorder = CreateFrame('Frame', nil, _G[bar])
-        MirrorBorder:SetAllPoints(_G[bar])
-        MirrorBorder:SetFrameLevel(_G[bar]:GetFrameLevel() + 2)
-		AddBorder(MirrorBorder, Settings.Media.BorderSize, Settings.Media.BorderPadding)
-
-		_G[bar..'Border']:Hide()
-
-		_G[bar]:SetParent(UIParent)
-		_G[bar]:SetScale(1.135)
-		_G[bar]:SetHeight(18)
-		_G[bar]:SetWidth(200)
-
-		_G[bar..'Background'] = _G[bar]:CreateTexture(bar..'Background', 'BACKGROUND', _G[bar])
-		_G[bar..'Background']:SetTexture('Interface\\Buttons\\WHITE8x8')
-		_G[bar..'Background']:SetAllPoints(bar)
-		_G[bar..'Background']:SetVertexColor(0, 0, 0, .5)
-
-		_G[bar..'Text']:SetFont(CastingBarFrameText:GetFont(), 13)
-		_G[bar..'Text']:ClearAllPoints()
-		_G[bar..'Text']:SetPoint('CENTER', MirrorTimer1StatusBar, 0, 1)
-
-		_G[bar..'StatusBar']:SetAllPoints(_G[bar])
-	end
-
-	-- Display the names
-	if (unit ~= 'player') then
-		local name = self.Health:CreateFontString('$parentName', 'OVERLAY')
-		name:SetFont(Settings.Media.Font, Settings.Media.FontSize)
-		name:SetShadowOffset(1, -1)
-		name:SetTextColor(1, 1, 1)
-		name:SetWidth(130)
-        name:SetParent(self.Overlay)
-		name:SetHeight(Settings.Media.FontSize)
-        name.frequentUpdates = 0.2
-
-        self.Health.Value:SetParent(self.Overlay)
-
-        self.Info = name
-        self:Tag(self.Info, '[LanShortName]')
-
-        if (unit == 'targettarget') then
-            self.Health.Value:SetPoint('BOTTOM', self.Health, 0, 1)
-            self.Health.Value:Hide()
-
-            if (Settings.Units.ToT.Health.Percent or Settings.Units.ToT.Health.Deficit or Settings.Units.ToT.Health.Current) then
-                name:SetPoint('TOP', self.Health, 0, -1)
-                self.Health.Value:Show()
-            else
-                name:SetPoint('CENTER', self.Health)
-                name:Show()
-                self.Health.Value:Hide()
-            end
-		elseif (unit == 'pet' and Settings.Units.Pet.ShowPowerText) then
-            name:Hide()
-
-            if (Settings.Units.Pet.Health.Percent or Settings.Units.Pet.Health.Deficit or Settings.Units.Pet.Health.Current) then
-                self.Power.Value:SetPoint('RIGHT', self.Health, -2, 0)
-                self.Health.Value:SetPoint('LEFT', self.Health, 2, -1)
-            end
-        elseif (unit == 'pet' and not Settings.Units.Pet.ShowPowerText) then
-            name:SetPoint('CENTER', self.Health)
-            self:Tag(self.Info, '[LanName]')
-        elseif (unit == 'focus') then
-            name:SetText()
-        elseif (unit == 'target') then
-            name:SetPoint('LEFT', self.Health, 'LEFT', 1, 0)
-			name:SetJustifyH('LEFT')
-            self:Tag(self.Info, '[LanLevel][LanClassification] [LanName]')
-            self.Health.Value:SetPoint('RIGHT', self.Health, -2, -1)
-        else
-			name:SetPoint('LEFT', self.Health, 'LEFT', 1, 0)
-			name:SetJustifyH('LEFT')
-            self:Tag(self.Info, '[LanName]')
-		end
-    else
-        self.Health.Value:SetPoint('RIGHT', self.Health, -2, -1)
-    end
-
-    if (isHealer) then
-        if (unit == 'target') then
-            local MHPB = CreateFrame('StatusBar', nil, self.Health)
-            MHPB:SetOrientation('HORIZONTAL')
-            MHPB:SetPoint('LEFT', self.Health:GetStatusBarTexture(), 'RIGHT', 0, 0)
-            MHPB:SetStatusBarTexture(Settings.Media.StatusBar)
-            MHPB:SetWidth(200)
-            MHPB:SetHeight(22)
-            MHPB:SetStatusBarColor(0, 1, 0.5, 0.25)
-
-            local OHPB = CreateFrame('StatusBar', nil, self.Health)
-            OHPB:SetOrientation('HORIZONTAL')
-            OHPB:SetPoint('LEFT', MHPB:GetStatusBarTexture(), 'RIGHT', 0, 0)
-            OHPB:SetStatusBarTexture(Settings.Media.StatusBar)
-            OHPB:SetWidth(200)
-            OHPB:SetHeight(22)
-            OHPB:SetStatusBarColor(0, 1, 0, 0.25)
-
-            self.HealPrediction = {
-                myBar = MHPB,
-                otherBar = OHPB,
-                maxOverflow = 1,
-            }
-        end
-	end
-
-	-- Display icons
-	if (unit == 'player') then
-		self.Status = self.Health:CreateFontString(nil, 'OVERLAY')
-        self.Status:SetParent(self.Overlay)
-        self.Status:SetFont(Settings.Media.Font, Settings.Media.FontSize)
-		self.Status:SetPoint('LEFT', self.Health, 'TOPLEFT', 2, 2)
-
-		self:Tag(self.Status, '[LanLeader][LanMaster]')
-
-        self.Resting = self.Overlay:CreateTexture(nil, 'OVERLAY')
-        self.Resting:SetParent(self.Overlay)
-		self.Resting:SetPoint('CENTER', self.Health, 'BOTTOMLEFT', 0, -4)
-		self.Resting:SetSize(20, 20)
-
-		self.Combat = self.Health:CreateTexture(nil, 'OVERLAY')
-        self.Combat:SetParent(self.Overlay)
-		self.Combat:SetPoint('CENTER', self.Health, 'BOTTOMRIGHT', 0, -4)
-		self.Combat:SetSize(24, 24)
-    end
-
-    -- Aura/buff/debuff handling, update those suckers!
-    if (unit == 'player' and Settings.Units.Player.ShowBuffs) then
-		local GAP = 6
-
-		self.Buffs = CreateFrame('Frame', nil, self)
-		self.Buffs:SetPoint('BOTTOMLEFT', self, 'TOPLEFT', 0, 10)
-		self.Buffs:SetPoint('BOTTOMRIGHT', self, 'TOPRIGHT', 0, 10)
-		self.Buffs:SetHeight(30)
-
-		self.Buffs['growth-x'] = 'LEFT'
-		self.Buffs['growth-y'] = 'UP'
-		self.Buffs['initialAnchor'] = 'BOTTOMRIGHT'
-		self.Buffs['num'] = math.floor((Settings.Units.Player.Width - 4 + GAP) / (30 + GAP))
-		self.Buffs['size'] = Settings.Units.Player.Height
-		self.Buffs['spacing-x'] = GAP
-		self.Buffs['spacing-y'] = GAP
-
-		self.Buffs.CustomFilter   = CustomAuraFilter
-		self.Buffs.PostCreateIcon = PostCreateAuraIcon
-		self.Buffs.PostUpdateIcon = PostUpdateAuraIcon
-
-		self.Buffs.parent = self
-	elseif (unit == 'target') then
-		local GAP = 6
-
-        local MAX_ICONS = math.floor((Settings.Units.Target.Width + GAP) / (Settings.Units.Target.Height + GAP)) - 1
-        local NUM_BUFFS = math.max(1, math.floor(MAX_ICONS * 0.2))
-        local NUM_DEBUFFS = math.min(MAX_ICONS - 1, math.floor(MAX_ICONS * 0.8))
-
-		if (isHealer) then
-            local debuff = NUM_DEBUFFS - 1
-            local buff = NUM_BUFFS + 1
-        else
-            local debuff = NUM_DEBUFFS - 1
-            local buff = NUM_BUFFS + 1
-        end
-
-        self.Debuffs = CreateFrame('Frame', nil, self)
-        self.Debuffs:SetPoint("BOTTOMLEFT", self, "TOPLEFT", 0, 24)
-		self.Debuffs:SetWidth((Settings.Units.Target.Height * NUM_DEBUFFS - 1) + (GAP * (NUM_DEBUFFS - 1)))
-		self.Debuffs:SetHeight((Settings.Units.Target.Height * 2) + (GAP * 2))
-
-		self.Debuffs['growth-x'] = 'RIGHT'
-		self.Debuffs['growth-y'] = 'UP'
-		self.Debuffs['initialAnchor'] = 'BOTTOMLEFT'
-		self.Debuffs['num'] = debuffs
-		self.Debuffs['showType'] = false
-		self.Debuffs['size'] = Settings.Units.Target.Height
-		self.Debuffs['spacing-x'] = GAP
-		self.Debuffs['spacing-y'] = GAP * 2
-
-		self.Debuffs.CustomFilter   = CustomAuraFilter
-		self.Debuffs.PostCreateIcon = PostCreateAuraIcon
-		self.Debuffs.PostUpdateIcon = PostUpdateAuraIcon
-
-		self.Debuffs.parent = self
-
-		self.Buffs = CreateFrame('Frame', nil, self)
-        self.Buffs:SetPoint('BOTTOMRIGHT', self, 'TOPRIGHT', 2, 24)
-		self.Buffs:SetWidth((Settings.Units.Target.Height * NUM_BUFFS + 1) + (GAP * (NUM_BUFFS - 1)))
-		self.Buffs:SetHeight((Settings.Units.Target.Height * 2) + (GAP * 2))
-
-		self.Buffs['growth-x'] = 'LEFT'
-		self.Buffs['growth-y'] = 'UP'
-		self.Buffs['initialAnchor'] = 'BOTTOMRIGHT'
-		self.Buffs['num'] = buffs
-		self.Buffs['showType'] = false
-		self.Buffs['size'] = Settings.Units.Target.Height
-		self.Buffs['spacing-x'] = GAP
-		self.Buffs['spacing-y'] = GAP * 2
-
-
-
-		self.Buffs.CustomFilter   = CustomAuraFilter
-		self.Buffs.PostCreateIcon = PostCreateAuraIcon
-		self.Buffs.PostUpdateIcon = PostUpdateAuraIcon
-
-		self.Buffs.parent = self
-	end
-
-	-- DebuffHighlight Support
-	self.DebuffHighlightBackdrop = false
-	self.DebuffHighlightFilter = true
-
-	-- Various oUF plugins support
-	if (unit == 'player') then
-		-- oUF_RuneBar support
-		if (IsAddOnLoaded('oUF_RuneBar') and class == 'DEATHKNIGHT') then
-			self.RuneBar = {}
-			for i = 1, 6 do
-				self.RuneBar[i] = CreateFrame('StatusBar', '$parentRuneBar', self)
-				if(i == 1) then
-					self.RuneBar[i]:SetPoint('TOPLEFT', self, 'BOTTOMLEFT', 0, -1)
-				else
-					self.RuneBar[i]:SetPoint('TOPLEFT', self.RuneBar[i-1], 'TOPRIGHT', 1, 0)
-				end
-				self.RuneBar[i]:SetStatusBarTexture(Settings.Media.StatusBar)
-				self.RuneBar[i]:SetHeight(5)
-				self.RuneBar[i]:SetWidth(200/6 - .85)
-				self.RuneBar[i]:SetBackdrop(backdrop)
-				self.RuneBar[i]:SetBackdropColor(0, 0, 0, .5)
-				self.RuneBar[i]:SetMinMaxValues(0, 1)
-
-				self.RuneBar[i].bg = self.RuneBar[i]:CreateTexture('$parentRuneBackground', 'BORDER')
-				self.RuneBar[i].bg:SetAllPoints(self.RuneBar[i])
-				self.RuneBar[i].bg:SetTexture(.1, .1, .1)
-			end
-		end
-    end
-
-    -- DruidPower Support
-    if (unit == 'player' and select(2, UnitClass('player')) == 'DRUID') then
-        self.Druid = CreateFrame('Frame')
-        self.Druid:SetParent(self)
-        self.Druid:SetFrameStrata('LOW')
-
-        self.Druid.Power = CreateFrame('StatusBar', nil, self)
-        self.Druid.Power:SetPoint('TOP', self.Power, 'BOTTOM', 0, -7)
-        self.Druid.Power:SetStatusBarTexture(Settings.Media.StatusBar)
-        self.Druid.Power:SetFrameStrata('LOW')
-        self.Druid.Power:SetFrameLevel(self.Druid:GetFrameLevel() - 1)
-        self.Druid.Power:SetHeight(10)
-        self.Druid.Power:SetWidth(200)
-        self.Druid.Power:SetBackdrop(backdrop)
-        self.Druid.Power:SetBackdropColor(0, 0, 0, 0.5)
-
-        self.DruidBorder = CreateFrame('Frame', nil, self.Druid.Power)
-        self.DruidBorder:SetAllPoints(self.Druid.Power)
-        self.DruidBorder:SetFrameLevel(self.Druid.Power:GetFrameLevel() + 2)
-
-        AddBorder(self.DruidBorder, Settings.Media.BorderSize, 5)
-
-        table.insert(self.__elements, UpdateDruidPower)
-        self:RegisterEvent('UNIT_MANA', UpdateDruidPower)
-        self:RegisterEvent('UNIT_RAGE', UpdateDruidPower)
-        self:RegisterEvent('UNIT_ENERGY', UpdateDruidPower)
-        self:RegisterEvent('UPDATE_SHAPESHIFT_FORM', UpdateDruidPower)
-    end
-
-    -- Eclipse Bar Support
-    if (select(2, UnitClass('player')) == 'DRUID') then
-        local EclipseBar = CreateFrame('Frame', nil, self)
-        EclipseBar:SetPoint('TOPLEFT', self, 'BOTTOMLEFT', 0, -10)
-        EclipseBar:SetPoint('TOPRIGHT', self, 'BOTTOMRIGHT', 0, -10)
-        EclipseBar:SetSize(200, 10)
-        EclipseBar:SetBackdrop(backdrop)
-        EclipseBar:SetBackdropColor(0, 0, 0, 0.6)
-
-        local EclipseBarBorder = CreateFrame('Frame', nil, EclipseBar)
-        EclipseBarBorder:SetAllPoints(EclipseBar)
-        EclipseBarBorder:SetFrameLevel(EclipseBar:GetFrameLevel() + 2)
-
-        AddBorder(EclipseBarBorder, Settings.Media.BorderSize, Settings.Media.BorderPadding)
-
-        local LunarBar = CreateFrame('StatusBar', nil, EclipseBar)
-        LunarBar:SetPoint('LEFT', EclipseBar, 'LEFT', 0, 0)
-        LunarBar:SetSize(200, 10)
-        LunarBar:SetStatusBarTexture(Settings.Media.StatusBar)
-        LunarBar:SetStatusBarColor(1, 1, 1)
-        EclipseBar.LunarBar = LunarBar
-
-        local SolarBar = CreateFrame('StatusBar', nil, EclipseBar)
-        SolarBar:SetPoint('LEFT', LunarBar:GetStatusBarTexture(), 'RIGHT', 0, 0)
-        SolarBar:SetSize(200, 10)
-        SolarBar:SetStatusBarTexture(Settings.Media.StatusBar)
-        SolarBar:SetStatusBarColor(1, 3/5, 0)
-        EclipseBar.SolarBar = SolarBar
-
-        local EclipseBarText = EclipseBarBorder:CreateFontString(nil, 'OVERLAY')
-        EclipseBarText:SetPoint('CENTER', EclipseBarBorder, 'CENTER', 0, 0)
-        EclipseBarText:SetFont(Settings.Media.Font, Settings.Media.FontSize, 'OUTLINE')
-        self:Tag(EclipseBarText, '[pereclipse]%')
-
-        self.EclipseBar = EclipseBar
-    end
-
-    -- Soul Shard Support
-	if (select(2, UnitClass('player')) == 'WARLOCK') then
-        local Shards = self:CreateFontString(nil, 'OVERLAY')
-        Shards:SetPoint('CENTER', self, 'RIGHT', 17, -2)
-        Shards:SetFont(Settings.Media.Font, 24, 'OUTLINE')
-        Shards:SetJustifyH('CENTER')
-        self:Tag(Shards, '[LanShards]')
-    end
-
-    -- Holy Power Support
-    if (select(2, UnitClass('player')) == 'PALADIN') then
-        local HolyPower = self:CreateFontString(nil, 'OVERLAY')
-        HolyPower:SetPoint('CENTER', self, 'RIGHT', 17, -2)
-        HolyPower:SetFont(Settings.Media.Font, 24, 'OUTLINE')
-        HolyPower:SetJustifyH('CENTER')
-        self:Tag(HolyPower, '[LanHolyPower]')
-    end
-
-    -- Combo points display
-	if (select(2, UnitClass('player')) == 'ROGUE') or (select(2, UnitClass('player')) == 'DRUID') then
-        local ComboPoints = self:CreateFontString(nil, 'OVERLAY')
-        ComboPoints:SetPoint('CENTER', self, 'RIGHT', 17, -2)
-        ComboPoints:SetFont(Settings.Media.Font, 24, 'OUTLINE')
-        ComboPoints:SetJustifyH('CENTER')
-        self:Tag(ComboPoints, '[LanCombo]')
-
-    end
-
-    -- Raid Icons
-    if (unit == 'target') then
-        self.RaidIcon = self.Overlay:CreateTexture('$parentRaidIcon', 'ARTWORK')
-        self.RaidIcon:SetHeight(18)
-        self.RaidIcon:SetWidth(18)
-        self.RaidIcon:SetPoint('CENTER', self.Overlay, 'TOP')
-        self.RaidIcon:SetTexture('Interface\\TargettingFrame\\UI-RaidTargetingIcons')
-    end
-
-	-- Custom sizes for our frames
-    if (isSingle) then
-        if (unit == 'player') then
-            self:SetSize(Settings.Units.Player.Width, Settings.Units.Player.Height)
-        elseif (unit == 'target') then
-            self:SetSize(Settings.Units.Target.Width, Settings.Units.Target.Height)
-        elseif (unit == 'pet') then
-            self:SetSize(Settings.Units.Pet.Width, Settings.Units.Pet.Height)
-        end
-
-        if (Settings.Show.ToT) then
-            if (unit == 'targettarget') then
-                self:SetSize(Settings.Units.ToT.Width, Settings.Units.ToT.Height)
-            end
-        end
-
-        if (Settings.Show.Focus) then
-            if (unit == 'focus') then
-                self:SetSize(Settings.Units.Focus.Width, Settings.Units.Focus.Height)
-            end
-        end
-    end
-
-    -- Hardcore border action!
-    AddBorder(self, Settings.Media.BorderSize, Settings.Media.BorderPadding + 2)
-    self:SetBorderParent(self.Overlay)
-
-    self.UpdateBorder = UpdateBorder
-
-    -- Dispel highlight support
-    self.DispelHighlight = UpdateDispelHighlight
-
-    -- Threat highlight support
-    self.threatLevel = 0
-	self.ThreatHighlight = UpdateThreatHighlight
-
-    return self
-end
-
--- First build the group style
-local function StylishGroup(self, unit)
-	self.menu = CreateDropDown
-
-    self:SetScript("OnEnter", UnitFrame_OnEnter)
-    self:SetScript("OnLeave", UnitFrame_OnLeave)
-
-	self.ignoreHealComm = true
-
-	self:EnableMouse(true)
-	self:RegisterForClicks('AnyUp')
-
-	if (Settings.Show.Party) then
-		if (Settings.Units.Party.Healer) then
-			self:SetSize(100, 35)
-		else
-			self:SetSize(Settings.Units.Party.Width, Settings.Units.Party.Height)
-		end
-    else
-        return
-	end
-
-	-- Health bar display for group frames
-	self.Health = CreateFrame('StatusBar', '$parentHealthBar', self)
-	self.Health:SetStatusBarTexture(Settings.Media.StatusBar, 'ARTWORK')
-
-	self.Health:SetParent(self)
-	self.Health:SetPoint('TOPRIGHT')
-	self.Health:SetPoint('BOTTOMLEFT', 0, -1)
-
-	self:SetBackdrop(backdrop)
-	self:SetBackdropColor(0, 0, 0, .5)
-
-	self.Health.PostUpdate = UpdateGroupHealth
-
-	if (Settings.Units.Party.Health.ClassColor) then
-		self.Health.colorClass = true
-	end
-
-	self.Health.Smooth = true
-    self.Health.frequentUpdates = 0.3
-
-	-- Health bar background display for group frames
-	self.Health.Background = self.Health:CreateTexture('$parentHealthBackground', 'BORDER')
-	self.Health.Background:SetAllPoints(self.Health)
-
-	-- Background Color
-	self.Health.Background:SetTexture(.08, .08, .08)
-
-	-- Health value settings
-	self.Health.Value = self.Health:CreateFontString('$parentHealthValue', 'OVERLAY')
-	self.Health.Value:SetFont(Settings.Media.Font, Settings.Media.FontSize)
-
-    -- Improve border drawing
-    self.Overlay = CreateFrame('Frame', nil, self)
-	self.Overlay:SetAllPoints(self)
-	self.Overlay:SetFrameLevel(self.Health:GetFrameLevel() + (self.Power and 3 or 2))
-
-	-- Display group names
-	self.Name = self.Health:CreateFontString('$parentName', 'OVERLAY')
-	self.Name:SetPoint('LEFT', self.Health, 5, 1)
-	self.Name:SetFont(Settings.Media.Font, 13)
-	self.Name:SetShadowOffset(1, -1)
-    self.Name.frequentUpdates = 0.3
-
-    self:Tag(self.Name, '|cffffffff[LanName]|r')
-
-	if (Settings.Units.Party.Healer) then
-		self.Name:SetPoint('CENTER', self.Health)
-	end
-
-    if isHealer then
-		local MHPB = CreateFrame('StatusBar', nil, self.Health)
-		MHPB:SetOrientation('HORIZONTAL')
-		MHPB:SetPoint('LEFT', self.Health:GetStatusBarTexture(), 'RIGHT', 0, 0)
-		MHPB:SetStatusBarTexture(Settings.Media.StatusBar)
-		MHPB:SetWidth(100)
-		MHPB:SetHeight(35)
-		MHPB:SetStatusBarColor(0, 1, 0.5, 0.25)
-
-		local OHPB = CreateFrame('StatusBar', nil, self.Health)
-		OHPB:SetOrientation('HORIZONTAL')
-		OHPB:SetPoint('LEFT', MHPB:GetStatusBarTexture(), 'RIGHT', 0, 0)
-		OHPB:SetStatusBarTexture(Settings.Media.StatusBar)
-		OHPB:SetWidth(100)
-		OHPB:SetHeight(35)
-		OHPB:SetStatusBarColor(0, 1, 0, 0.25)
-
-		self.HealPrediction = {
-			myBar = MHPB,
-			otherBar = OHPB,
-			maxOverflow = 1,
-		}
-	end
-
-	if unit == 'party' or unit == 'target' then
-		self.Status = self.Overlay:CreateFontString(nil, 'OVERLAY')
-        self.Status:SetFont(Settings.Media.Font, Settings.Media.FontSize)
-		self.Status:SetPoint('RIGHT', self.Health, 'BOTTOMRIGHT', -2, 0)
-
-		self:Tag(self.Status, '[LanMaster][LanLeader]')
-	end
-
-	-- Raid Icons
-	self.RaidIcon = self.Overlay:CreateTexture('$parentRaidIcon', 'ARTWORK')
-	self.RaidIcon:SetHeight(18)
-	self.RaidIcon:SetWidth(18)
-	self.RaidIcon:SetPoint('CENTER', self.Overlay, 'TOP')
-	self.RaidIcon:SetTexture('Interface\\TargettingFrame\\UI-RaidTargetingIcons')
-
-    -- LFD Role
-    self.LFDRole = self.Overlay:CreateTexture(nil, 'OVERLAY')
-    self.LFDRole:SetPoint('CENTER', self, 'RIGHT', 2, 0)
-    self.LFDRole:SetSize(16, 16)
-
-    -- Buffs
-    local GAP = 6
-
-    self.Buffs = CreateFrame('Frame', nil, self)
-    self.Buffs:SetPoint('BOTTOMRIGHT', self, 'TOPRIGHT', 0, 10)
-    self.Buffs:SetHeight(Settings.Units.Party.Height)
-    self.Buffs:SetWidth((Settings.Units.Party.Height * 4) + (GAP * 3))
-
-    self.Buffs['growth-x'] = 'LEFT'
-    self.Buffs['growth-y'] = 'DOWN'
-    self.Buffs['initialAnchor'] = 'TOPRIGHT'
-    self.Buffs['num'] = 4
-    self.Buffs['size'] = Settings.Units.Party.Height
-    self.Buffs['spacing-x'] = GAP
-    self.Buffs['spacing-y'] = GAP
-
-    self.Buffs.CustomFilter   = CustomAuraFilter
-    self.Buffs.PostCreateIcon = PostCreateAuraIcon
-    self.Buffs.PostUpdateIcon = PostUpdateAuraIcon
-
-    self.Buffs.parent = self
-
-	-- Range-finding support
-	self.Range = {
-		insideAlpha = 1,
-		outsideAlpha = .3,
-	}
-
-	self.SpellRange = true
-
-    -- Hardcore border action!
-    AddBorder(self, Settings.Media.BorderSize, Settings.Media.BorderPadding + 2)
-    self:SetBorderParent(self.Overlay)
-
-    self.UpdateBorder = UpdateBorder
-
-    -- Dispel highlight support
-    self.DispelHighlight = UpdateDispelHighlight
-
-    -- Threat highlight support
-    self.threatLevel = 0
-	self.ThreatHighlight = UpdateThreatHighlight
-
-    return self
-end
-
--- Now the raid style
-local function StylishRaid(self, unit)
-	self.menu = CreateDropDown
-
-    self:SetScript("OnEnter", UnitFrame_OnEnter)
-    self:SetScript("OnLeave", UnitFrame_OnLeave)
-
-	self.ignoreHealComm = true
-
-	self:EnableMouse(true)
-	self:RegisterForClicks('AnyUp')
-
-	if (Settings.Show.Raid) then
-		if (Settings.Units.Raid.Healer) then
-			self:SetSize(75, 35)
-		else
-			self:SetSize(Settings.Units.Raid.Width, Settings.Units.Raid.Height)
-		end
-    else
-        return
-	end
-
-	-- Health bar display for group frames
-	self.Health = CreateFrame('StatusBar', '$parentHealthBar', self)
-	self.Health:SetStatusBarTexture(Settings.Media.StatusBar, 'ARTWORK')
-
-	self.Health:SetParent(self)
-	self.Health:SetPoint('TOPRIGHT')
-	self.Health:SetPoint('BOTTOMLEFT', 0, -1)
-
-	self:SetBackdrop(backdrop)
-	self:SetBackdropColor(0, 0, 0, .5)
-
-	self.Health.PostUpdate = UpdateRaidHealth
-
-	if (Settings.Units.Raid.Health.ClassColor) then
-		self.Health.colorClass = true
-	end
-
-	self.Health.Smooth = true
-    self.Health.frequentUpdates = 0.3
-
-	-- Health bar background display for group frames
-	self.Health.Background = self.Health:CreateTexture('$parentHealthBackground', 'BORDER')
-	self.Health.Background:SetAllPoints(self.Health)
-
-	-- Background Color
-	self.Health.Background:SetTexture(.08, .08, .08)
-
-	-- Health value settings
-	self.Health.Value = self.Health:CreateFontString('$parentHealthValue', 'OVERLAY')
-	self.Health.Value:SetFont(Settings.Media.Font, Settings.Media.FontSize)
-
-    -- Improve border drawing
-    self.Overlay = CreateFrame('Frame', nil, self)
-	self.Overlay:SetAllPoints(self)
-	self.Overlay:SetFrameLevel(self.Health:GetFrameLevel() + (self.Power and 3 or 2))
-
-	-- Display group names
-    if (Settings.Units.Raid.Healer) then
-		self.Name = self.Health:CreateFontString('$parentName', 'OVERLAY')
-		self.Name:SetPoint('TOP', 0, -2)
-		self.Name:SetFont(Settings.Media.Font, 13)
-		self.Name:SetShadowOffset(1, -1)
-		self.Name:SetJustifyH('CENTER')
-		self:Tag(self.Name, '|cffffffff[LanRaidName]|r')
-	else
-		self.Name = self.Health:CreateFontString('$parentName', 'OVERLAY')
-		self.Name:SetPoint('LEFT', self.Health, 5, 1)
-		self.Name:SetFont(Settings.Media.Font, 13)
-		self.Name:SetShadowOffset(1, -1)
-		self:Tag(self.Name, '|cffffffff[LanName]|r')
-		self.Health:SetOrientation('HORIZONTAL')
-	end
-
-    self.Name.frequentUpdates = 0.3
-
-    if isHealer then
-		local MHPB = CreateFrame('StatusBar', nil, self.Health)
-		MHPB:SetPoint('BOTTOM', self.Health:GetStatusBarTexture(), 'TOP', 0, 0)
-		MHPB:SetStatusBarTexture(Settings.Media.StatusBar)
-		MHPB:SetWidth(75)
-		MHPB:SetHeight(35)
-		MHPB:SetStatusBarColor(0, 1, 0.5, 0.25)
-
-		local OHPB = CreateFrame('StatusBar', nil, self.Health)
-		OHPB:SetPoint('BOTTOM', MHPB:GetStatusBarTexture(), 'TOP', 0, 0)
-		OHPB:SetStatusBarTexture(Settings.Media.StatusBar)
-		OHPB:SetWidth(75)
-		OHPB:SetHeight(35)
-		OHPB:SetStatusBarColor(0, 1, 0, 0.25)
-
-		self.HealPrediction = {
-			myBar = MHPB,
-			otherBar = OHPB,
-			maxOverflow = 1,
-		}
-	end
-
-	-- Status Icons Display
-    self.Status = self.Overlay:CreateFontString(nil, 'OVERLAY')
-    self.Status:SetFont(Settings.Media.Font, Settings.Media.FontSize)
-    self.Status:SetPoint('RIGHT', self.Health, 'BOTTOMRIGHT', -2, 0)
-
-    self:Tag(self.Status, '[LanMaster][LanLeader]')
-
-	-- Raid Icons
-	self.RaidIcon = self.Overlay:CreateTexture('$parentRaidIcon', 'ARTWORK')
-	self.RaidIcon:SetHeight(18)
-	self.RaidIcon:SetWidth(18)
-	self.RaidIcon:SetPoint('CENTER', self.Overlay, 'TOP')
-	self.RaidIcon:SetTexture('Interface\\TargettingFrame\\UI-RaidTargetingIcons')
-
-    -- Range-finding support
-	self.Range = {
-		insideAlpha = 1,
-		outsideAlpha = .3,
-	}
-
-	self.SpellRange = true
-
-    -- Hardcore border action!
-    AddBorder(self, Settings.Media.BorderSize, Settings.Media.BorderPadding + 2)
-    self:SetBorderParent(self.Overlay)
-
-    self.UpdateBorder = UpdateBorder
-
-    -- Dispel highlight support
-    self.DispelHighlight = UpdateDispelHighlight
-
-    -- Threat highlight support
-    self.threatLevel = 0
-	self.ThreatHighlight = UpdateThreatHighlight
-
-    return self
-end
-
--- Now, actually bring it all together by actually spawning the frames
--- First spawn the group and raid stuff
-oUF:RegisterStyle('oUF_Lanerra_Group', StylishGroup)
-oUF:RegisterStyle('oUF_Lanerra_Raid', StylishRaid)
-
--- First up are the group frames
-oUF:Factory(function(self)
-	if (Settings.Units.Party.Healer) then
-		local group = oUF:SpawnHeader('oUF_Lanerra_Group', nil, nil, 'showParty', true, 'showFocus', true, 'columnSpacing', 10, 'unitsPerColumn', 1, 'maxColumns', 5, 'columnAnchorPoint', 'LEFT', 'groupFilter', i)
-		group:SetPoint('CENTER', UIParent, 0, -240)
-	else
-		local group = oUF:SpawnHeader('oUF_Lanerra_Group', nil, nil, 'showParty', true, 'showPlayer', true, 'showFocus', true, 'yOffset', -10)
-		if (IsAddOnLoaded('Skada')) then
-			group:SetPoint(unpack(Settings.Units.Party.TinyPosition))
-		else
-			group:SetPoint(unpack(Settings.Units.Party.Position))
-		end
-	end
-end)
-
--- Now for the raid frames
-oUF:Factory(function(self)
-    self:SetActiveStyle('oUF_Lanerra_Raid')
-
-    if (Settings.Units.Raid.Healer) then
-        raid = oUF:SpawnHeader('oUF_Lanerra_Raid', nil, nil, 'showPlayer', true, 'showRaid', true, 'xOffset', 10, 'yOffset', -5, 'point', 'LEFT', 'groupFilter', '1,2,3,4,5', 'groupingOrder', '1,2,3,4,5', 'groupBy', 'GROUP', 'maxColumns', 10, 'unitsPerColumn', 5, 'columnSpacing', 10, 'columnAnchorPoint', 'TOP')
-        raid:SetPoint('CENTER', UIParent, 0, -310)
-
-        if (Settings.Units.Raid.Healer) then
-            local RaidShift, raid = false
-            do
-                local UpdateRaid = CreateFrame('Frame')
-                UpdateRaid:RegisterEvent('RAID_ROSTER_UPDATE')
-                UpdateRaid:SetScript('OnEvent', function(self)
-                    if RaidShift == false then return end
-                    if(InCombatLockdown()) then
-                        self:RegisterEvent('PLAYER_REGEN_ENABLED')
-                    else
-                        self:UnregisterEvent('PLAYER_REGEN_ENABLED')
-                        if (GetNumRaidMembers() < 26 and GetNumRaidMembers() > 10) then
-                            raid:SetPoint('CENTER', UIParent, -105, -200)
-                        elseif (GetNumRaidMembers() < 11) then
-                            raid:SetPoint('CENTER', UIParent, -21, -200)
-                        end
-                    end
-                end)
-            end
-        end
-    else
-        raid = {}
-        for i = 1, 5 do
-            raid[i] = oUF:SpawnHeader('oUF_Lanerra_Raid'..i, nil, nil, 'groupFilter', i, 'showRaid', true, 'showParty', true, 'showFocus', true, 'yOffset', -10)
-            table.insert(raid, raid[i])
-            if (i == 1) then
-                if (IsAddOnLoaded('TinyDPS')) then
-                    raid[i]:SetPoint(unpack(Settings.Units.Raid.TinyPosition))
-                else
-                    raid[i]:SetPoint(unpack(Settings.Units.Raid.Position))
-                end
-            else
-                raid[i]:SetPoint('TOP', raid[i-1], 'BOTTOM', 0, -10)
-            end
-            raid[i]:Show()
-        end
-    end
-end)
-
--- Killin' those pesky raid frames
-for _, frame in pairs({
-	CompactPartyFrame,
-	CompactRaidFrameManager,
-	CompactRaidFrameContainer,
-}) do
-	frame:UnregisterAllEvents()
-
-    hooksecurefunc(frame, 'Show', function(self)
-        self:Hide()
-    end)
-end
-
-for _, button in pairs({
-	'OptionsButton',
-
-    'LockedModeToggle',
-	'HiddenModeToggle',
-}) do
-    _G['CompactRaidFrameManagerDisplayFrame'..button]:Hide()
-    _G['CompactRaidFrameManagerDisplayFrame'..button]:Disable()
-    _G['CompactRaidFrameManagerDisplayFrame'..button]:EnableMouse(false)
-end
-
--- Now all the solo stuff
-oUF:RegisterStyle('oUF_Lanerra', Stylish)
-oUF:Factory(function(self)
-	self:SetActiveStyle('oUF_Lanerra')
-	self:Spawn('player', 'oUF_Lanerra_Player'):SetPoint(unpack(Settings.Units.Player.Position))
-	self:Spawn('target', 'oUF_Lanerra_Target'):SetPoint(unpack(Settings.Units.Target.Position))
-	self:Spawn('targettarget', 'oUF_Lanerra_ToT'):SetPoint(unpack(Settings.Units.ToT.Position))
-	self:Spawn('pet', 'oUF_Lanerra_Pet'):SetPoint(unpack(Settings.Units.Pet.Position))
-	self:Spawn('focus', 'oUF_Lanerra_Focus'):SetPoint(unpack(Settings.Units.Focus.Position))
-end)
-
--- Handling, whether the Raid- or the Party-frame is shown
--- FIX: Quick'n'dirty fix until the oUF-conditions work again
-local partyToggle = CreateFrame('Frame')
-partyToggle:RegisterEvent('PLAYER_LOGIN')
-partyToggle:RegisterEvent('RAID_ROSTER_UPDATE')
-partyToggle:RegisterEvent('PARTY_LEADER_CHANGED')
-partyToggle:RegisterEvent('PARTY_MEMBERS_CHANGED')
-partyToggle:SetScript('OnEvent', function(self)
-    if(InCombatLockdown()) then
-        self:RegisterEvent('PLAYER_REGEN_ENABLED')
-    else
-        self:UnregisterEvent('PLAYER_REGEN_ENABLED')
-
-        --[[ This results in the following behavior: If you're in a raid, the party frame will be hidden, no matter how many members
-        your raid already has. This means, the party will be hidden if the party leader clicks the button to create a raid.
-        If you want to switch to raid view later (meaning, if the members no longer fit into the party frame), you may change the following line accordingly.--]]
-
-        if (Settings.Units.Raid.Healer) and (Settings.Units.Party.Healer) then
-	        if(GetNumRaidMembers() > 0) then
-	            _G['oUF_Lanerra_Group']:Hide()
-	            _G['oUF_Lanerra_Raid']:Show()
-	        else
-	            _G['oUF_Lanerra_Group']:Show()
-	            _G['oUF_Lanerra_Raid']:Hide()
-	        end
-	     else
-	        if(GetNumRaidMembers() > 0) then
-	            _G['oUF_Lanerra_Group']:Hide()
-	            _G['oUF_Lanerra_Raid1']:Show()
-	            _G['oUF_Lanerra_Raid2']:Show()
-	            _G['oUF_Lanerra_Raid3']:Show()
-	            _G['oUF_Lanerra_Raid4']:Show()
-	            _G['oUF_Lanerra_Raid5']:Show()
-	        else
-	            _G['oUF_Lanerra_Group']:Show()
-	            _G['oUF_Lanerra_Raid1']:Hide()
-	            _G['oUF_Lanerra_Raid2']:Hide()
-	            _G['oUF_Lanerra_Raid3']:Hide()
-	            _G['oUF_Lanerra_Raid4']:Hide()
-	            _G['oUF_Lanerra_Raid5']:Hide()
-	        end
-	     end
-    end
-end)
+end)
\ No newline at end of file
diff --git a/oUF_Lanerra_Config.lua b/oUF_Lanerra_Config.lua
index dfe0471..b4c3d24 100644
--- a/oUF_Lanerra_Config.lua
+++ b/oUF_Lanerra_Config.lua
@@ -127,133 +127,4 @@ Settings = {
             InterruptColor = {1, 0, 1},
         },
     },
-}
--- Copyright  2010-2011 Lanerra. See LICENSE file for license terms.
-Settings = {
-    Show = {
-        CastBars = true,
-        Focus = true,
-        ToT = true,
-        Party = true,
-        Raid = true,
-    },
-    Media = {
-        Border = 'Interface\\Addons\\oUF_Lanerra\\media\\borderTexture.tga',
-        StatusBar = 'Interface\\Addons\\oUF_Lanerra\\media\\statusbarTexture.tga',
-        Font = 'Interface\\Addons\\oUF_Lanerra\\media\\font.ttf',
-        FontSize = 15,
-        BorderSize = 14,
-        BorderColor = { 0.65, 0.65, 0.65 },
-        BackdropColor = { 0, 0, 0, 0.75 },
-        BorderPadding = 4
-    },
-    Units = {
-        Player = {
-            Height = 30,
-            Width = 200,
-            Position = {'CENTER', UIParent, -325, -175},
-            Health = {
-                Percent = false,
-                Deficit = false,
-                Current = true,
-            },
-            ShowPowerText = true,
-            ShowBuffs = false,
-        },
-        Pet = {
-            Height = 30,
-            Width = 80,
-            Position = {'CENTER', UIParent, -485, -175},
-            Health = {
-                Percent = false,
-                Deficit = false,
-                Current = false,
-            },
-        },
-        Target = {
-            Height = 30,
-            Width = 200,
-            Position = {'CENTER', UIParent, 325, -175},
-            Health = {
-                Percent = true,
-                Deficit = false,
-                Current = false,
-                PerCur = false,
-            },
-            ShowPowerText = true,
-        },
-        ToT = {
-            Height = 30,
-            Width = 80,
-            Position = {'CENTER', UIParent, 485, -175},
-            Health = {
-                Percent = false,
-                Deficit = false,
-                Current = false,
-            },
-        },
-        Focus = {
-            Height = 30,
-            Width = 30,
-            Position = {'CENTER', UIParent, 0, -175},
-            Health = {
-                Percent = false,
-                Deficit = false,
-                Current = false,
-            },
-            VerticalHealth = true,
-        },
-        Party = {
-            Height = 20,
-            Width = 100,
-            TinyPosition = {'TOPLEFT', UIParent, 25, -210},
-            Position = {'TOPLEFT', UIParent, 25, -25},
-            Health = {
-                Percent = true,
-                Deficit = false,
-                Current = false,
-                ClassColor = true,
-            },
-            HidePower = true, -- Reserved for future use
-            Healer = true,
-        },
-        Raid = {
-            Height = 18,
-            Width = 100,
-            TinyPosition = {'TOPLEFT', UIParent, 25, -210},
-            Position = {'TOPLEFT', UIParent, 25, -25},
-            Health = {
-                Percent = false,
-                Deficit = true,
-                Current = false,
-                ClassColor = true,
-            },
-            HidePower = true, -- Reserved for future use
-            Healer = true, -- If true, overrides height and width in this section and gets set to a static amount
-        },
-    },
-    CastBars = {
-        Player = {
-            Show = true,
-            Height = 25,
-            Width = 200,
-            Scale = 1,
-            Position = {'CENTER', UIParent, -325, -232},
-            ClassColor = false,
-            SafeZone = true,
-            Latency = false,
-            Color = {.25, .25, .25},
-        },
-        Target = {
-            Show = true,
-            Height = 25,
-            Width = 200,
-            Scale = 1,
-            Position = {'CENTER', UIParent, 325, -232},
-            ClassColor = false,
-            Color = {.25, .25, .25},
-            InterruptHighlight = false,
-            InterruptColor = {1, 0, 1},
-        },
-    },
 }
\ No newline at end of file