WoWInterface SVN UnitFrameTweaks

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /
    from Rev 1 to Rev 2
    Reverse comparison

Rev 1 → Rev 2

trunk/UnitFrameTweaks/PortfolioRegistration.lua New file
0,0 → 1,113
-- <= == == == == == == == == == == == == =>
-- => Option Registration
-- <= == == == == == == == == == == == == =>
 
if (not UnitFrameTweaks) then
UnitFrameTweaks = {}
end
 
local optionTable = {
id = "UnitFrameTweaks",
options = {
{
id = "HealthColor",
tvar = "HealthColor",
text = "Health Bar Color Change",
tooltipText = "Healthbar changes color as it decreases.",
type = CONTROLTYPE_CHECKBOX,
defaultValue = "1",
},
{
id = "ClassPortraits",
tvar = "ClassPortraits",
text = "Class Portraits",
tooltipText = "Replace unit portraits with class icons when applicable.",
type = CONTROLTYPE_CHECKBOX,
defaultValue = "0",
callback = UnitFrameTweaks.UpdateClassPortraits,
},
{
id = "ClassIcons",
tvar = "ClassIcons",
text = "Class Icons",
tooltipText = "Adds class icons to the target and party member frames.",
type = CONTROLTYPE_CHECKBOX,
defaultValue = "0",
callback = UnitFrameTweaks.UpdateClassIcons,
},
{
id = "HitIndicators",
text = "Hit Indicators",
subText = "Toggle the hit indicators on the unit frame portraits.",
type = CONTROLTYPE_HEADER,
},
{
id = "PlayerHitIndicator",
tvar = "PlayerHitIndicator",
text = "Player",
tooltipText = "Toggles the hit indicator on the player portrait.",
type = CONTROLTYPE_CHECKBOX,
defaultValue = "1",
callback = UnitFrameTweaks.UpdatePlayerHitIndicatorStatus,
point = {nil, nil, nil, nil, 0},
},
{
id = "TargetHitIndicator",
tvar = "TargetHitIndicator",
text = "Target",
tooltipText = "Toggles the hit indicator on the target portrait.",
type = CONTROLTYPE_CHECKBOX,
defaultValue = "0",
callback = UnitFrameTweaks.UpdateTargetHitIndicatorStatus,
point = {"TOPLEFT", "PlayerHitIndicator", "TOPRIGHT", 100, 0},
},
{
id = "PartyHitIndicator",
tvar = "PartyHitIndicator",
text = "Party",
tooltipText = "Toggles the hit indicator on the party portraits.",
type = CONTROLTYPE_CHECKBOX,
defaultValue = "0",
callback = UnitFrameTweaks.UpdatePartyHitIndicatorStatus,
point = {"TOPLEFT", "TargetHitIndicator", "TOPRIGHT", 100, 0},
},
},
savedVarTable = "UnitFrameTweaks_SavedVars",
}
 
Portfolio.RegisterOptionSet(optionTable)
 
-- <= == == == == == == == == == == == == =>
-- => Event Registration
-- <= == == == == == == == == == == == == =>
 
if (not UnitFrameTweaks.events) then
UnitFrameTweaks.events = {}
end
 
function UnitFrameTweaks.events.VARIABLES_LOADED()
UnitFrameTweaks.init = false
end
 
function UnitFrameTweaks.events.PLAYER_ENTERING_WORLD()
if (not UnitFrameTweaks.init) then
UnitFrameTweaks.init = true
--Portfolio.RegisterOptionSet(optionTable)
UnitFrameTweaks.UpdateClassIcons(UnitFrameTweaks_SavedVars["ClassIcons"])
UnitFrameTweaks.UpdateClassPortraits(UnitFrameTweaks_SavedVars["ClassPortraits"])
UnitFrameTweaks.UpdatePlayerHitIndicatorStatus(UnitFrameTweaks_SavedVars["PlayerHitIndicator"])
UnitFrameTweaks.UpdateTargetHitIndicatorStatus(UnitFrameTweaks_SavedVars["TargetHitIndicator"])
UnitFrameTweaks.UpdatePartyHitIndicatorStatus(UnitFrameTweaks_SavedVars["PartyHitIndicator"])
end
end
 
-- Event Registration
if (UnitFrameTweaks.events) then
local frame = CreateFrame("Frame", "UnitFrameTweaksFrame")
for event, func in pairs(UnitFrameTweaks.events) do
frame:RegisterEvent(event)
end
frame:SetScript("OnEvent", function(self, event, ...)
UnitFrameTweaks.events[event](self, event, ...)
end)
end
trunk/UnitFrameTweaks/UnitFrameTweaks.xml New file
0,0 → 1,16
<Ui xmlns="http://www.blizzard.com/wow/ui/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.blizzard.com/wow/ui/ C:\Projects\WoW\Bin\Interface\FrameXML\UI.xsd">
<!-- $Id: Portfolio.xml 5169 2007-12-07 11:37:43Z karlkfi $ -->
 
<Include file="Libs\Portfolio\Portfolio.xml"/>
 
<Script file="HealthColor.lua"/>
<Script file="ClassPortraits.lua"/>
<Script file="ClassIcons.lua"/>
<Include file="ClassIcons.xml"/>
<Script file="HitIndicatorStatus.lua"/>
 
<Script file="PortfolioRegistration.lua"/>
 
</Ui>
 
trunk/UnitFrameTweaks/ClassPortraits.lua New file
0,0 → 1,61
-- <= == == == == == == == == == == == == =>
-- => UnitFrame Class Portrait
-- <= == == == == == == == == == == == == =>
 
if (not UnitFrameTweaks) then
UnitFrameTweaks = {}
end
 
local unitFrames = {
player = PlayerFrame,
target = TargetFrame,
party1 = PartyMemberFrame1,
party2 = PartyMemberFrame2,
party3 = PartyMemberFrame3,
party4 = PartyMemberFrame4,
}
 
function UnitFrameTweaks.UpdateClassPortraits(value)
if (value == "1") then
for unit, unitframe in pairs(unitFrames) do
if (UnitIsPlayer(unit)) then
local localizedClass, englishClass = UnitClass(unit);
if (englishClass) then
unitframe.portrait:SetTexture("Interface\\AddOns\\UnitFrameTweaks\\Skin\\PortraitIcons\\"..englishClass);
end
end
end
else
for unit, unitframe in pairs(unitFrames) do
SetPortraitTexture(unitframe.portrait, unit);
end
end
end
 
function UnitFrameTweaks.UnitFrame_Update_After()
if (UnitFrameTweaks_SavedVars and UnitFrameTweaks_SavedVars["ClassPortraits"] == "1") then
if (UnitIsPlayer(this.unit)) then
local localizedClass, englishClass = UnitClass(this.unit);
if (englishClass) then
this.portrait:SetTexture("Interface\\AddOns\\UnitFrameTweaks\\Skin\\PortraitIcons\\"..englishClass);
end
end
end
end
 
function UnitFrameTweaks.UnitFrame_OnEvent_After(event)
if (UnitFrameTweaks_SavedVars and UnitFrameTweaks_SavedVars["ClassPortraits"] == "1") then
if ( (event == "UNIT_PORTRAIT_UPDATE") and (arg1 == this.unit) ) then
if (UnitIsPlayer(this.unit)) then
local localizedClass, englishClass = UnitClass(this.unit);
if (englishClass) then
this.portrait:SetTexture("Interface\\AddOns\\UnitFrameTweaks\\Skin\\PortraitIcons\\"..englishClass);
end
end
end
end
end
 
-- OnLoad
hooksecurefunc("UnitFrame_Update", UnitFrameTweaks.UnitFrame_Update_After)
hooksecurefunc("UnitFrame_OnEvent", UnitFrameTweaks.UnitFrame_OnEvent_After)
\ No newline at end of file
trunk/UnitFrameTweaks/UnitFrameTweaks.toc New file
0,0 → 1,17
## Interface: 30000
## Title: Unit Frame Tweaks
## Notes: Class Icons/Portraits, Health Color, and Hit Indicators.
## Author: AnduinLothar
## OptionalDeps:
## RequiredDeps: Portfolio
## SavedVariables: UnitFrameTweaks_SavedVars
## Version: 1.1
## X-Revision: $Rev: 5127 $
## X-Date: $Date: 2007-11-13 18:34:54 -0600 (Tue, 13 Nov 2007) $
## X-Category: UnitFrames
## X-Website: http://www.cosmosui.org/addons.php?info=UnitFrameTweaks
## X-Email: karlkfi@yahoo.com
## X-Feedback: http://www.cosmosui.org/forums/
## X-Localizations: enUS
## X-CompatibleLocales: enUS, enGB
UnitFrameTweaks.xml
trunk/UnitFrameTweaks/ClassIcons.xml New file
0,0 → 1,67
<Ui xmlns="http://www.blizzard.com/wow/ui/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.blizzard.com/wow/ui/
..\FrameXML\UI.xsd">
 
<!-- Class Icon Template -->
<Frame name="UnitFrameClassIconTemplate" level="OVERLAY" hidden="true" virtual="true">
<Size>
<AbsDimension x="32" y="32"/>
</Size>
<Anchors>
<Anchor point="TOPRIGHT" relativeTo="$parent" relativePoint="TOPRIGHT">
<Offset>
<AbsDimension x="-85" y="-5"/>
</Offset>
</Anchor>
</Anchors>
<Layers>
<Layer>
<Texture name="$parentTexture">
<Size>
<AbsDimension x="32" y="32"/>
</Size>
</Texture>
</Layer>
</Layers>
<Scripts>
<OnLoad>
UnitFrameTweaks.ClassIcon_OnLoad()
</OnLoad>
</Scripts>
</Frame>
 
<Frame name="$parentClassIcon" inherits="UnitFrameClassIconTemplate" parent="TargetFrame" />
 
<!-- Small Class Icon Template -->
<Frame name="UnitFrameClassIconSmallTemplate" level="OVERLAY" hidden="true" virtual="true">
<Size>
<AbsDimension x="20" y="20"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT" relativeTo="$parent" relativePoint="TOPLEFT">
<Offset>
<AbsDimension x="30" y="0"/>
</Offset>
</Anchor>
</Anchors>
<Layers>
<Layer>
<Texture name="$parentTexture">
<Size>
<AbsDimension x="20" y="20"/>
</Size>
</Texture>
</Layer>
</Layers>
<Scripts>
<OnLoad>
UnitFrameTweaks.ClassIcon_OnLoad()
</OnLoad>
</Scripts>
</Frame>
 
<Frame name="$parentClassIcon" inherits="UnitFrameClassIconSmallTemplate" parent="PartyMemberFrame1" id="1" />
<Frame name="$parentClassIcon" inherits="UnitFrameClassIconSmallTemplate" parent="PartyMemberFrame2" id="2" />
<Frame name="$parentClassIcon" inherits="UnitFrameClassIconSmallTemplate" parent="PartyMemberFrame3" id="3" />
<Frame name="$parentClassIcon" inherits="UnitFrameClassIconSmallTemplate" parent="PartyMemberFrame4" id="4" />
 
</Ui>
\ No newline at end of file
trunk/UnitFrameTweaks/ClassIcons.lua New file
0,0 → 1,88
-- <= == == == == == == == == == == == == =>
-- => Class Icons
-- <= == == == == == == == == == == == == =>
 
if (not UnitFrameTweaks) then
UnitFrameTweaks = {}
end
 
function UnitFrameTweaks.UpdateClassIcons(value)
UnitFrameTweaks.UpdatePartyClassIcons()
UnitFrameTweaks.UpdateTargetClassIcon()
-- Move the party member Master Looter icons slightly
if (value == "1") then
for i=1, 4 do
getglobal("PartyMemberFrame"..i.."MasterIcon"):ClearAllPoints()
getglobal("PartyMemberFrame"..i.."MasterIcon"):SetPoint("TOPLEFT", "PartyMemberFrame"..i, "TOPLEFT", 15, 5)
end
else
for i=1, 4 do
getglobal("PartyMemberFrame"..i.."MasterIcon"):ClearAllPoints()
getglobal("PartyMemberFrame"..i.."MasterIcon"):SetPoint("TOPLEFT", "PartyMemberFrame"..i, "TOPLEFT", 32, 0)
end
end
end
 
function UnitFrameTweaks.UpdatePartyClassIcons()
local icon;
if (UnitFrameTweaks_SavedVars["ClassIcons"] == "1") then
local localizedClass, englishClass
for i=1, GetNumPartyMembers() do
localizedClass, englishClass = UnitClass("party"..i)
icon = getglobal("PartyMemberFrame"..i.."ClassIcon")
if (englishClass) then
if (not icon:IsVisible()) then
icon:Show()
end
getglobal(icon:GetName().."Texture"):SetTexture("Interface\\AddOns\\UnitFrameTweaks\\Skin\\ClassIcons\\"..englishClass)
else
if (icon:IsVisible()) then
icon:Hide()
end
end
end
else
for i=1, GetNumPartyMembers() do
icon = getglobal("PartyMemberFrame"..i.."ClassIcon")
if (icon:IsVisible()) then
icon:Hide()
end
end
end
end
 
function UnitFrameTweaks.UpdateTargetClassIcon()
if (UnitFrameTweaks_SavedVars["ClassIcons"] == "1") then
if (UnitIsPlayer("target")) then
local localizedClass, englishClass = UnitClass("target")
if (not TargetFrameClassIcon:IsVisible()) then
TargetFrameClassIcon:Show()
end
TargetFrameClassIconTexture:SetTexture("Interface\\AddOns\\UnitFrameTweaks\\Skin\\ClassIcons\\"..englishClass)
else
TargetFrameClassIcon:Hide()
end
else
if (TargetFrameClassIcon:IsVisible()) then
TargetFrameClassIcon:Hide()
end
end
end
 
function UnitFrameTweaks.ClassIcon_OnLoad()
this:SetFrameLevel(this:GetFrameLevel()+2)
end
 
 
-- Events
if (not UnitFrameTweaks.events) then
UnitFrameTweaks.events = {}
end
 
function UnitFrameTweaks.events.PARTY_MEMBERS_CHANGED()
UnitFrameTweaks.UpdatePartyClassIcons()
end
 
function UnitFrameTweaks.events.PLAYER_TARGET_CHANGED()
UnitFrameTweaks.UpdateTargetClassIcon()
end
trunk/UnitFrameTweaks/HealthColor.lua New file
0,0 → 1,37
-- <= == == == == == == == == == == == == =>
-- => UnitFrame Health Bar Gradient
-- <= == == == == == == == == == == == == =>
 
if (not UnitFrameTweaks) then
UnitFrameTweaks = {}
end
 
function UnitFrameTweaks.HealthBar_OnValueChanged(self, value)
if (UnitFrameTweaks_SavedVars and UnitFrameTweaks_SavedVars["HealthColor"] == "1") then
if (not value) then
return;
end
local r, g, b
local min, max = self:GetMinMaxValues()
if ( (value < min) or (value > max) ) then
return;
end
if ( (max - min) > 0 ) then
value = (value - min) / (max - min)
else
value = 0;
end
if(value > 0.5) then
r = (1.0 - value) * 2
g = 1.0
else
r = 1.0;
g = value * 2
end
b = 0.0
self:SetStatusBarColor(r, g, b)
end
end
 
-- OnLoad
hooksecurefunc("HealthBar_OnValueChanged", UnitFrameTweaks.HealthBar_OnValueChanged)
trunk/UnitFrameTweaks/Skin/PortraitIcons/ROGUE.tga Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
trunk/UnitFrameTweaks/Skin/PortraitIcons/WARLOCK.tga Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
trunk/UnitFrameTweaks/Skin/PortraitIcons/HUNTER.tga Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
trunk/UnitFrameTweaks/Skin/PortraitIcons/WARRIOR.tga Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
trunk/UnitFrameTweaks/Skin/PortraitIcons/PRIEST.tga Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
trunk/UnitFrameTweaks/Skin/PortraitIcons/DRUID.tga Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
trunk/UnitFrameTweaks/Skin/PortraitIcons/SHAMAN.tga Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
trunk/UnitFrameTweaks/Skin/PortraitIcons/PALADIN.tga Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
trunk/UnitFrameTweaks/Skin/PortraitIcons/MAGE.tga Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
trunk/UnitFrameTweaks/Skin/PortraitIcons/DEATHKNIGHT.tga Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
trunk/UnitFrameTweaks/Skin/ClassIcons/ROGUE.tga Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
trunk/UnitFrameTweaks/Skin/ClassIcons/WARLOCK.tga Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
trunk/UnitFrameTweaks/Skin/ClassIcons/HUNTER.tga Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
trunk/UnitFrameTweaks/Skin/ClassIcons/WARRIOR.tga Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
trunk/UnitFrameTweaks/Skin/ClassIcons/PRIEST.tga Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
trunk/UnitFrameTweaks/Skin/ClassIcons/DRUID.tga Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
trunk/UnitFrameTweaks/Skin/ClassIcons/SHAMAN.tga Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
trunk/UnitFrameTweaks/Skin/ClassIcons/PALADIN.tga Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
trunk/UnitFrameTweaks/Skin/ClassIcons/MAGE.tga Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
trunk/UnitFrameTweaks/Skin/ClassIcons/DEATHKNIGHT.tga Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
trunk/UnitFrameTweaks/HitIndicatorStatus.lua New file
0,0 → 1,64
-- <= == == == == == == == == == == == == =>
-- => Hits Indicator Options
-- <= == == == == == == == == == == == == =>
 
if (not UnitFrameTweaks) then
UnitFrameTweaks = {}
end
 
function UnitFrameTweaks.InitializeHitIndicator(indicator, controlFrame, unit, fontHeight)
--[[
local tempthis = this;
this = controlFrame;
CombatFeedback_Initialize(indicator, 30);
this = tempthis;
]]--
controlFrame.feedbackText = indicator;
controlFrame.feedbackFontHeight = fontHeight;
controlFrame.feedbackStartTime = 0;
 
controlFrame:HookScript("OnUpdate", CombatFeedback_OnUpdate)
local currUnit = unit
controlFrame:HookScript("OnEvent", function(self, event, arg1, arg2, arg3, arg4, arg5)
if ( event == "UNIT_COMBAT" and arg1 == currUnit ) then
CombatFeedback_OnCombatEvent(self, arg2, arg3, arg4, arg5)
end
end)
end
 
function UnitFrameTweaks.UpdateHitIndicatorStatus(controlFrame, value)
if (value == "1") then
controlFrame:RegisterEvent("UNIT_COMBAT")
else
controlFrame:UnregisterEvent("UNIT_COMBAT")
end
end
 
function UnitFrameTweaks.UpdatePlayerHitIndicatorStatus(value)
UnitFrameTweaks.UpdateHitIndicatorStatus(PlayerFrame, value)
end
 
function UnitFrameTweaks.UpdateTargetHitIndicatorStatus(value)
UnitFrameTweaks.UpdateHitIndicatorStatus(TargetFrame, value)
end
 
function UnitFrameTweaks.UpdatePartyHitIndicatorStatus(value)
for i=1, MAX_PARTY_MEMBERS do
local frame = getglobal("PartyMemberFrame"..i)
UnitFrameTweaks.UpdateHitIndicatorStatus(frame, value)
end
end
 
 
--OnLoad
local indicator = TargetFrameTextureFrame:CreateFontString("TargetFrameHitIndicator", "OVERLAY", "NumberFontNormalHuge");
indicator:SetPoint("CENTER", TargetFrameTextureFrame, "TOPRIGHT", -73, -42);
UnitFrameTweaks.InitializeHitIndicator(indicator, TargetFrame, "target", 30)
 
for i=1, MAX_PARTY_MEMBERS do
local frame = getglobal("PartyMemberFrame"..i)
local anchorFrame = getglobal("PartyMemberFrame"..i.."Texture"):GetParent()
indicator = anchorFrame:CreateFontString("PartyMemberFrame"..i.."HitIndicator", "OVERLAY", "NumberFontNormalHuge");
indicator:SetPoint("CENTER", anchorFrame, "TOPLEFT", 28, -26);
UnitFrameTweaks.InitializeHitIndicator(indicator, frame, "party"..i, 20)
end