r13760 - trunk/ag_UnitFrames

0 views
Skip to first unread message

ace...@svn.wowace.com

unread,
Oct 12, 2006, 10:53:48 PM10/12/06
to clad...@gmail.com, wow...@googlegroups.com
Author: ag
Date: 2006-10-12 22:53:47 -0400 (Thu, 12 Oct 2006)
New Revision: 13760

Modified:
trunk/ag_UnitFrames/ag_DropdownMenu.lua
trunk/ag_UnitFrames/ag_GroupClass.lua
trunk/ag_UnitFrames/ag_UnitClass.lua
trunk/ag_UnitFrames/ag_UnitFrames.lua
Log:
ag_UnitFrames
* Improved the group layout system (nothing visible to the user except for it reacting faster) (Might have a chance of being compatible with BC if R_R_U allows frames to move)

Modified: trunk/ag_UnitFrames/ag_DropdownMenu.lua
===================================================================
--- trunk/ag_UnitFrames/ag_DropdownMenu.lua 2006-10-13 02:14:25 UTC (rev 13759)
+++ trunk/ag_UnitFrames/ag_DropdownMenu.lua 2006-10-13 02:53:47 UTC (rev 13760)
@@ -726,7 +726,6 @@
set = function(option)
self.db.profile.PartyGrouping = option
self:PARTY_MEMBERS_CHANGED()
- self:CallUnitMethods("UpdateAll")
end,
validate = {["withplayer"] = L["withplayer"], ["withoutplayer"] = L["withoutplayer"], ["nogroup"] = L["nogroup"]},
order = 6,
@@ -745,7 +744,7 @@
end,
set = function(option)
self.db.profile.RaidGrouping = option
- self:CallUnitMethods("UpdateAll")
+ self:RAID_ROSTER_UPDATE()
end,
validate = {["bysubgroup"] = L["bysubgroup"], ["byclass"] = L["byclass"], ["byrole"] = L["byrole"], ["nogroup"] = L["nogroup"], ["onebiggroup"] = L["onebiggroup"]},
order = 6,

Modified: trunk/ag_UnitFrames/ag_GroupClass.lua
===================================================================
--- trunk/ag_UnitFrames/ag_GroupClass.lua 2006-10-13 02:14:25 UTC (rev 13759)
+++ trunk/ag_UnitFrames/ag_GroupClass.lua 2006-10-13 02:53:47 UTC (rev 13760)
@@ -1,5 +1,6 @@
local AceOO = AceLibrary("AceOO-2.0")
local L = AceLibrary("AceLocale-2.0"):new("ag_UnitFrames")
+local print = function(msg) if msg then DEFAULT_CHAT_FRAME:AddMessage(msg) end end

-- Group class

@@ -113,6 +114,7 @@
end

function aUF.classes.aUFgroup.prototype:Update()
+-- print(self.name)
if self.lastFrame then
self.lastFrame:StopMovingOrSizing()
end
@@ -185,6 +187,7 @@
-- print("---"..self.name)
local empty = true
for k,v in ipairs(self.index) do
+
-- print(UnitName(v.unit))
v.frame:ClearAllPoints()
if self.index[k-1] then
@@ -192,7 +195,7 @@
else
empty = false
self.lastFrame = v.frame
- self:LoadPosition()
+ self:LoadPosition()
if self.raid then
self.anchor:ClearAllPoints()
self.anchor:SetPoint(relation2, self.lastFrame,relation1,-x,-y)
@@ -264,6 +267,7 @@
function aUF.classes.aUFgroup.prototype:OnDragStop(button)
if self.lastFrame then
self.lastFrame:StopMovingOrSizing()
+ self.lastFrame:SetUserPlaced(false)
self:SavePosition()
end
end

Modified: trunk/ag_UnitFrames/ag_UnitClass.lua
===================================================================
--- trunk/ag_UnitFrames/ag_UnitClass.lua 2006-10-13 02:14:25 UTC (rev 13759)
+++ trunk/ag_UnitFrames/ag_UnitClass.lua 2006-10-13 02:53:47 UTC (rev 13760)
@@ -108,7 +108,6 @@
self.aCount = 0
self.database = aUF.db.profile[self.type]
self:LoadScale()
- self:LoadPosition()
self:ApplyTheme()
self:BorderBackground()
self:BarTexture()
@@ -164,8 +163,10 @@

if allEvents == true then
self:RegisterEvent("PLAYER_TARGET_CHANGED","UpdateHighlight")
- self:RegisterEvent("PARTY_MEMBERS_CHANGED","UpdateAll")
- self:RegisterEvent("RAID_ROSTER_UPDATE","UpdateAll")
+
+ aUF:ObjectRegisterEvent(self,"RAID_ROSTER_UPDATE","UpdateAll")
+ aUF:ObjectRegisterEvent(self,"PARTY_MEMBERS_CHANGED","UpdateAll")
+
self:RegisterEvent("agUF_UpdateGroups", "UpdateVisibility")
end
self.eventsRegistered = true
@@ -198,6 +199,7 @@
self.framename = frameName

self.frame = CreateFrame("Button",frameName,UIParent,"AGUnitTemplate")
+
self.frame.name = self.name

self.ClassText = getglobal(frameName.."_ClassText")
@@ -291,6 +293,7 @@

function aUF.classes.aUFunit.prototype:LoadPosition()
if self.subgroup then return end
+ self.frame:ClearAllPoints()
if(aUF.db.profile.Positions[self.unit]) then
local x = aUF.db.profile.Positions[self.unit].x
local y = aUF.db.profile.Positions[self.unit].y
@@ -665,10 +668,12 @@
self:UpdatePortrait()
end
self:RegisterEvents()
+ self:UpdateVisibility()
return true
else
self:GroupingUpdate(true)
self:RegisterEvents(false,true)
+ self:UpdateVisibility()
return false
end
end
@@ -735,14 +740,9 @@
aUF.subgroups[self.subgroup].group[self.type][self.name] = self
aUF.changedSubgroups[self.subgroup] = true
end
-
- self:ScheduleEvent("UpdateGroups", function() aUF:TriggerEvent("agUF_UpdateGroups") end, 0.1, self)
- elseif self.subgroup then
- self:UpdateVisibility()
end
if self.subgroup == nil then
- self:LoadPosition()
- self:UpdateVisibility()
+ self:LoadPosition()
end
end

@@ -1229,6 +1229,7 @@
end
self.frame:StopMovingOrSizing()
self:SavePosition()
+ self.frame:SetUserPlaced(false)
end

function aUF.classes.aUFunit.prototype:OnClick(button)

Modified: trunk/ag_UnitFrames/ag_UnitFrames.lua
===================================================================
--- trunk/ag_UnitFrames/ag_UnitFrames.lua 2006-10-13 02:14:25 UTC (rev 13759)
+++ trunk/ag_UnitFrames/ag_UnitFrames.lua 2006-10-13 02:53:47 UTC (rev 13760)
@@ -44,18 +44,6 @@
self:CallUnitMethods("Reset")
end

--- EVENT REGISTERING
-
-function aUF:RegisterEvents()
- self:RegisterEvent("PLAYER_LOGIN")
- self:RegisterEvent("PARTY_MEMBERS_CHANGED")
- self:RegisterEvent("RAID_ROSTER_UPDATE")
- self:RegisterEvent("UNIT_PET","PARTY_MEMBERS_CHANGED")
- self:RegisterEvent("PLAYER_TARGET_CHANGED")
-
- self:RegisterEvent("agUF_UpdateGroups")
-end
-
function aUF:SetupVariables()
self.auraUpdates = 0
self.auraUpdatePool = {}
@@ -224,8 +212,36 @@
self.units = {}
self.subgroups = {}
self.changedSubgroups = {}
+ self.events = {}
end

+-- EVENT REGISTERING
+
+function aUF:ObjectRegisterEvent(object,event,method)
+ if not self.events[event] then
+ self.events[event] = {}
+ end
+ self.events[event][object.name] = method
+end
+
+function aUF:ObjectUnregisterEvent(object,event,method)
+ if self.events[event] then
+ if self.events[event][object.name] then
+ self.events[event][object.name] = false
+ end
+ end
+end
+
+function aUF:RegisterEvents()
+ self:RegisterEvent("PLAYER_LOGIN")
+ self:RegisterEvent("PARTY_MEMBERS_CHANGED")
+ self:RegisterEvent("RAID_ROSTER_UPDATE")
+ self:RegisterEvent("UNIT_PET","PARTY_MEMBERS_CHANGED")
+ self:RegisterEvent("PLAYER_TARGET_CHANGED")
+
+ self:RegisterEvent("agUF_UpdateGroups")
+end
+
-- EVENTS

function aUF:PLAYER_LOGIN()
@@ -252,21 +268,38 @@

function aUF:PARTY_MEMBERS_CHANGED()
for i = 1,4 do
- if aUF:CheckVisibility("party"..i) == true then
- aUF:CreateObject("party"..i)
+ if not aUF.units["party"..i] then
+ if aUF:CheckVisibility("party"..i) == true then
+ aUF:CreateObject("party"..i)
+ end
end
- if aUF:CheckVisibility("partypet"..i) == true then
- aUF:CreateObject("partypet"..i)
+ if not aUF.units["partypet"..i] then
+ if aUF:CheckVisibility("partypet"..i) == true then
+ aUF:CreateObject("partypet"..i)
+ end
end
end
+
+ for k,v in self.events.PARTY_MEMBERS_CHANGED do
+ aUF.units[k][v](aUF.units[k])
+ end
+
+ aUF:agUF_UpdateGroups()
end

function aUF:RAID_ROSTER_UPDATE()
for i = 1,40 do
- if aUF:CheckVisibility("raid"..i) == true then
- aUF:CreateObject("raid"..i,"raid"..i,"Raid")
+ if not aUF.units["raid"..i] then
+ if aUF:CheckVisibility("raid"..i) == true then
+ aUF:CreateObject("raid"..i,"raid"..i,"Raid")
+ end
end
end
+
+ for k,v in self.events.RAID_ROSTER_UPDATE do
+ aUF.units[k][v](aUF.units[k])
+ end
+
self:PARTY_MEMBERS_CHANGED()
end

Reply all
Reply to author
Forward
0 new messages