View Single Post
06-15-10, 05:02 PM   #20
Grimsin
A Molten Giant
 
Grimsin's Avatar
AddOn Author - Click to view addons
Join Date: Sep 2006
Posts: 990
i changed it up totally think this is what Xrystal was talking about

the frame creation

lua Code:
  1. local function createPartyFrames(i)
  2.    
  3.     -- Main Frame
  4.     local frame = CreateFrame("Frame", "GrimUIPartyFrame" .. i, UIParent, "SecureUnitButtonTemplate")
  5.     frame.unit = "party" .. i
  6.    
  7.     -- Pedestal Frame
  8.     frame.PedestalFrame = CreateFrame("Frame", nil, frame)
  9.    
  10.     -- Health Bar
  11.     frame.HealthBorder = CreateFrame("button", nil, frame)
  12.     frame.HealthBar = CreateFrame("StatusBar", nil, frame)
  13.     frame.HealthNumTxtFrame = CreateFrame("Frame", nil, frame)
  14.    
  15.     -- Mana Bar
  16.     frame.ManaBorder = CreateFrame("button", nil, frame)
  17.     frame.ManaBar = CreateFrame("StatusBar", nil, frame)
  18.     frame.ManaNumTxtFrame = CreateFrame("Frame", nil, frame)
  19.    
  20.     -- Misc Frames
  21.     frame.InfoTextFrame = CreateFrame("button", nil, frame)
  22.     frame.LetterFrame = CreateFrame("Frame", nil, frame)
  23.     frame.LeaderFrame = CreateFrame("Frame", nil, frame)
  24.     frame.pvpIconFrame = CreateFrame("Frame", nil, frame)
  25.     frame.offDeadGhostTxtFrame = CreateFrame("Frame", nil, frame)
  26.    
  27.     -- Target Bar
  28.     frame.targetOfFrame = CreateFrame("Frame", nil, frame)
  29.     frame.targetOfClickFrame = CreateFrame("button", nil, frame)
  30.    
  31.     -- texture creation
  32.     frame.PedestalFrame.texture = frame.PedestalFrame:CreateTexture()
  33.     frame.LeaderFrame.texture = frame.LeaderFrame:CreateTexture()
  34.     frame.pvpIconFrame.texture = frame.pvpIconFrame:CreateTexture()
  35.     frame.targetOfFrame.texture = frame.targetOfPartyFrame:CreateTexture(nil, "BACKGROUND")
  36.  
  37.     -- font creation
  38.     frame.HealthBorder.percentHText = frame.HealthBorder:CreateFontString(nil, "OVERLAY", "GameFontNormalSmall")
  39.     frame.ManaBorder.percentMText = frame.ManaBorder:CreateFontString(nil, "OVERLAY", "GameFontNormalSmall")
  40.     frame.InfoTextFrame.NameText = frame.InfoTextFrame:CreateFontString(nil, "OVERLAY", "GameFontNormalSmall")
  41.     frame.LetterFrame.LetterHText = frame.LetterFrame:CreateFontString(nil, "OVERLAY", "GameFontNormalSmall")
  42.     frame.LetterFrame.LetterMText = frame.LetterFrame:CreateFontString(nil, "OVERLAY", "GameFontNormalSmall")
  43.     frame.HealthNumTxtFrame.chnumtxt = frame.HealthNumTxtFrame:CreateFontString(nil, "OVERLAY", "GameFontNormalSmall")
  44.     frame.HealthNumTxtFrame.mhnumtxt = frame.HealthNumTxtFrame:CreateFontString(nil, "OVERLAY", "GameFontNormalSmall")
  45.     frame.ManaNumTxtFrame.CMNumTxt = frame.ManaNumTxtFrame:CreateFontString(nil, "OVERLAY", "GameFontNormalSmall")
  46.     frame.ManaNumTxtFrame.MMNumTxt = frame.ManaNumTxtFrame:CreateFontString(nil, "OVERLAY", "GameFontNormalSmall")
  47.     frame.InfoTextFrame.LvlClassText = frame.InfoTextFrame:CreateFontString(nil, "OVERLAY", "GameFontNormalSmall")
  48.     frame.offDeadGhostTxtFrame.DeadOfflineTxt = frame.offDeadGhostTxtFrame:CreateFontString(nil, "OVERLAY", "GameFontNormalSmall")
  49.     frame.targetOfFrame.targetOfText = frame.targetOfFrame:CreateFontString(nil, "OVERLAY", "GameFontNormalSmall")
  50.  
  51.     -- event frames
  52.     frame.GUIHealthEvents = CreateFrame("Frame", nil, frame)
  53.     frame.GUIManaEvents = CreateFrame("Frame", nil, frame)
  54.     frame.GUINameTextEvents = CreateFrame("Frame", nil, frame)
  55.     frame.GUILvlClassTextEvents = CreateFrame("frame", nil, frame)
  56.     frame.GUIPartyLeaderEvent = CreateFrame("Frame", nil, frame)
  57.     frame.GUIpvpIconEvent = CreateFrame("Frame", nil, frame)
  58.     frame.GUIOffLineDeadEvents = CreateFrame("Frame", nil, frame)
  59.     frame.GUItargetOfFrameEvents = CreateFrame("frame", nil, frame)
  60.    
  61. end
  62.  
  63. for id = 1, 4 do
  64.     createPartyFrame(id)
  65. end

here is the event registration to each frame

lua Code:
  1. local function GUIRegisterPartyEvents(id)
  2. -- Health Events
  3.     local frame = _G['GrimUIPartyFrame' .. id]
  4.     frame.GUIHealthEvents:RegisterEvent("PLAYER_ENTERING_WORLD")
  5.     frame.GUIHealthEvents:RegisterEvent("UNIT_HEALTH")
  6.     frame.GUIHealthEvents:RegisterEvent("UNIT_LEVEL")
  7.     frame.GUIHealthEvents:RegisterEvent("UNIT_AURA")
  8.     frame.GUIHealthEvents:RegisterEvent("UNIT_MAXHEALTH")
  9.     frame.GUIHealthEvents:RegisterEvent("PARTY_MEMBERS_CHANGED")
  10.  
  11. -- Mana Events
  12.     frame.GUIManaEvents.RegisterEvents = GrimUI.RegisterEvents
  13.     frame.GUIManaEvents:RegisterEvents('PLAYER_ENTERING_WORLD', 'PARTY_MEMBERS_CHANGED', 'UNIT_HEALTH', 'UNIT_LEVEL', 'UNIT_MANA', 'UNIT_AURA','UNIT_DISPLAYPOWER', 'UNIT_ENERGY', 'UNIT_MAXENERGY', 'UNIT_MAXMANA', 'UNIT_MAXRUNICPOWER', 'UNIT_RUNIC_POWER', 'UNIT_RAGE')
  14.  
  15.     frame.GUINameTextEvents:RegisterEvent("PLAYER_ENTERING_WORLD")
  16.     frame.GUINameTextEvents:RegisterEvent("PARTY_MEMBERS_CHANGED")
  17.     frame.GUINameTextEvents:RegisterEvent("UNIT_NAME_UPDATE")
  18.     frame.GUINameTextEvents:RegisterEvent("UNIT_FLAGS")
  19.     frame.GUINameTextEvents:RegisterEvent("UNIT_THREAT_LIST_UPDATE")
  20.     frame.GUINameTextEvents:RegisterEvent("UNIT_THREAT_SITUATION_UPDATE")
  21.     frame.GUINameTextEvents:RegisterEvent("UNIT_COMBAT")
  22.  
  23.     frame.GUILvlClassTextEvents:RegisterEvent("PLAYER_ENTERING_WORLD")
  24.     frame.GUILvlClassTextEvents:RegisterEvent("PARTY_MEMBERS_CHANGED")
  25.     frame.GUILvlClassTextEvents:RegisterEvent("UNIT_LEVEL")
  26.  
  27.     frame.GUIPartyLeaderEvent:RegisterEvent("PLAYER_ENTERING_WORLD")
  28.     frame.GUIPartyLeaderEvent:RegisterEvent("PARTY_LEADER_CHANGED")
  29.     frame.GUIPartyLeaderEvent:RegisterEvent("PARTY_MEMBERS_CHANGED")
  30.     frame.GUIPartyLeaderEvent:RegisterEvent("ZONE_CHANGED_NEW_AREA")
  31.  
  32.     frame.GUIpvpIconEvent:RegisterEvent("PLAYER_ENTERING_WORLD")
  33.     frame.GUIpvpIconEvent:RegisterEvent("UNIT_FACTION")
  34.     frame.GUIpvpIconEvent:RegisterEvent("PARTY_MEMBERS_CHANGED")
  35.     frame.GUIpvpIconEvent:RegisterEvent("UNIT_DYNAMIC_FLAGS")
  36.  
  37.     frame.GUIOffLineDeadEvents.RegisterEvents = GrimUI.RegisterEvents
  38.     frame.GUIOffLineDeadEvents:RegisterEvents('PLAYER_ENTERING_WORLD', 'PARTY_MEMBERS_CHANGED', 'PARTY_MEMBER_DISABLE', 'PARTY_MEMBER_ENABLE', 'UNIT_HEALTH')
  39.  
  40.     frame.GUItargetOfFrameEvents.RegisterEvents = GrimUI.RegisterEvents
  41.     frame.GUItargetOfFrameEvents:RegisterEvents('PLAYER_ENTERING_WORLD', 'PARTY_MEMBERS_CHANGED', 'PARTY_LEADER_CHANGED', 'PLAYER_TARGET_CHANGED', 'UNIT_TARGET')
  42. end
  43.  
  44. for id = 1, 4 do
  45.     GUIRegisterPartyEvents(id)
  46. end

here is the new setscript

lua Code:
  1. local function GUISetPartyEventScripts(id)
  2.     local frame = _G['GrimUIPartyFrame' .. id]
  3.     frame.GUIHealthEvents:SetScript("OnEvent", function(self)
  4.         GrimUI.HealthEventFunc(self)
  5.     end)
  6.  
  7.     frame.GUIManaEvents:SetScript("OnEvent", function(self)
  8.         GrimUI.ManaEventFunc(self)
  9.     end)
  10.    
  11.     frame.GUINameTextEvents:SetScript("OnEvent", function(self)
  12.     GrimUI.PartyNameTextEvents(self)
  13.     end)
  14.    
  15.     frame.GUILvlClassTextEvents:SetScript("OnEvent", function(self)
  16.         GrimUI.LvlClassTextEvents(self)
  17.     end)
  18.     frame.GUIpvpIconEvent:SetScript("OnEvent", function(self)
  19.         GrimUI.pvpIconEvent(self)
  20.     end)
  21.     frame.GUIPartyLeaderEvent:SetScript("OnEvent", function(self)
  22.         GrimUI.PartyLeaderEvent(self)
  23.     end)
  24.     frame.GUIOffLineDeadEvents:SetScript("OnEvent", function(self)
  25.         GrimUI.DeadOffLineEvents(self)
  26.     end)
  27.  
  28.     frame.GUItargetOfFrameEvents:SetScript("OnEvent", function(self)
  29.         GrimUI.TargEventFunc(self)
  30.     end)
  31. end
  32.  
  33. for id = 1, 4 do
  34.     GUISetPartyEventScripts(id)
  35. end
__________________
"Are we there yet?"

GrimUI
[SIGPIC][/SIGPIC]

Last edited by Grimsin : 06-15-10 at 05:05 PM.
  Reply With Quote