--[[ *** Gildam ***
Written by : Yukyuk, EU-Moonglade
--]]
local FOLDER_NAME, private = ...
local addon = LibStub("AceAddon-3.0"):GetAddon(private.addon_name)
-- Set up the handle for the localization
local L = LibStub("AceLocale-3.0"):GetLocale("Gildam")
local LibQTip = LibStub:GetLibrary("LibQTip-1.0")
--- Some local helper functions
local _G = _G
local tinsert, tremove, tsort, twipe = _G.table.insert, _G.table.remove, _G.table.sort, _G.table.wipe
local pairs, ipairs = _G.pairs, _G.ipairs
local Gildam_backdrop = { -- Border gold
edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border",
tile = false, tileSize = 8, edgeSize = 8,
insets = { left = 2, right = 2, top = 2, bottom = 2 }
}
local Gildam_TempPortraitAlphaMaskSmall = {
bgFile = "Interface\\CHARACTERFRAME\\TempPortraitAlphaMaskSmall", tile = false, tileSize = 20
}
-- Define the constants
local GILDAM_GG_NO_RANKBUTTONS = 17 -- number of the guild ranks buttons
local GILDAM_GR_NO_SCROLLBUTTONS = 16 -- number of scroll buttons for the Roster frame
local GILDAM_GC_NO_SCROLLBUTTONS = 30 -- number of scroll buttons for the Character frame
local GILDAM_MAX_LEVEL = 100 -- maximum level
-- Table with the frame colors.
local BBC = {
[1] = {["r"] = 1, ["g"] = 0.675, ["b"] = 0.125, ["a"] = 1}, -- gold
[2] = {["r"] = 1, ["g"] = 0, ["b"] = 0, ["a"] = 1}, -- red
[3] = {["r"] = 0, ["g"] = 1, ["b"] = 0, ["a"] = 1}, -- green
[4] = {["r"] = 0, ["g"] = 0, ["b"] = 1, ["a"] = 1}, -- blue
[5] = {["r"] = 1, ["g"] = 1, ["b"] = 0, ["a"] = 1}, -- yellow
[6] = {["r"] = 0.5, ["g"] = 0, ["b"] = 0.5, ["a"] = 1}, -- purple
[7] = {["r"] = 1, ["g"] = 0.65, ["b"] = 0, ["a"] = 1}, -- orange
[8] = {["r"] = 0.75, ["g"] = 0.75, ["b"] = 0.75, ["a"] = 1} -- silver
}
-- Index for table with frame colors. Default is silver.
local BBCi = 8
-- Table with the backgrounds textures.
local BGT = {
[1] = {["t"] = "Interface\\AddOns\\Gildam\\Icons\\BakcgroundParchmentBlack"},
[2] = {["t"] = "Interface\\AddOns\\Gildam\\Icons\\BakcgroundParchmentBlood"},
[3] = {["t"] = "Interface\\AddOns\\Gildam\\Icons\\BakcgroundParchmentMoss"},
[4] = {["t"] = "Interface\\AddOns\\Gildam\\Icons\\BakcgroundParchmentRusty"}
}
-- Index for table with background textures.
local BGTi = 1
-- Default value for background alpha/transparency.
local BGAi = 0.9
-- Table with the button border colors.
local BBB = {
[1] = {["r"] = 1, ["g"] = 0.675, ["b"] = 0.125, ["a"] = 1}, -- gold
[2] = {["r"] = 0.75, ["g"] = 0.75, ["b"] = 0.75, ["a"] = 1} -- silver
}
-- Index for table with button colors. Default is gold.
local BBBi = 1
-- Table with the button textures.
local BBG = {
[1] = {["t"] = "Interface\\AddOns\\Gildam\\Icons\\ButtonBackGroundGreen"},
[2] = {["t"] = "Interface\\AddOns\\Gildam\\Icons\\ButtonBackGroundRed"},
[3] = {["t"] = "Interface\\AddOns\\Gildam\\Icons\\ButtonBackGroundBlue"},
[4] = {["t"] = "Interface\\AddOns\\Gildam\\Icons\\ButtonBackGroundPurple"}
}
-- Index for table with button textures.
local BBGi = 1
-- Table with the Character status textures.
local CST = {
"Interface\\FriendsFrame\\StatusIcon-Online",
"Interface\\FriendsFrame\\StatusIcon-Away",
"Interface\\FriendsFrame\\StatusIcon-DnD",
"Interface\\FriendsFrame\\StatusIcon-Offline"
}
-- Table with the faction standings
local GFS = {
FACTION_STANDING_LABEL1,
FACTION_STANDING_LABEL2,
FACTION_STANDING_LABEL3,
FACTION_STANDING_LABEL4,
FACTION_STANDING_LABEL5,
FACTION_STANDING_LABEL6,
FACTION_STANDING_LABEL7,
FACTION_STANDING_LABEL8
}
-- The guild information fields we have stored.
local Field = {
Name = 1,
Rank = 2,
RankIndex = 3,
Level = 4,
Class = 5,
Zone = 6,
Note = 7,
OfficerNote = 8,
Online = 9,
Status = 10,
ClassConstant = 11,
Points = 12,
AchievementRank = 13,
IsMobile = 14,
SoR = 15,
RepStanding = 16,
LastOnline = 17,
FullName = 18,
Realm = 19
}
local Gildam_Class_order = {
WARRIOR = 1,
DEATHKNIGHT = 2,
PALADIN = 3,
MONK = 4,
PRIEST = 5,
SHAMAN = 6,
DRUID = 7,
ROGUE = 8,
MAGE = 9,
WARLOCK = 10,
HUNTER = 11,
};
local RAID_CLASS_COLORS_hex = {}
for k, v in pairs(RAID_CLASS_COLORS) do
RAID_CLASS_COLORS_hex[k] = ("|cff%02x%02x%02x"):format(v.r * 255, v.g * 255, v.b * 255)
end
local Leader_Name = ""
--------------------------------------------------------------------------------
-- This is the Gildam Guild frame
--------------------------------------------------------------------------------
function Gildam_Guild_Frame()
Gildam:Debug("Gildam_Guild_Frame")
local Gildam_GG = CreateFrame("Frame","Gildam_GG",Gildam_UI)
Gildam_GG:SetID(1)
Gildam_GG:SetPoint("TOP", "Gildam_UI", 0, -16)
Gildam_GG:SetPoint("BOTTOM", "Gildam_UI", 0, 16)
Gildam_GG:SetPoint("LEFT", "Gildam_UI", 16, 0)
Gildam_GG:SetPoint("RIGHT", "Gildam_UI", -16, 0)
Gildam_GG:SetBackdrop(Gildam_backdrop)
Gildam_GG:SetBackdropBorderColor(BBC[(BBCi)].r, BBC[(BBCi)].g, BBC[(BBCi)].b, BBC[(BBCi)].a)
-- Define the Header with the Guild name
local Gildam_GG_Header = CreateFrame("Frame","Gildam_GG_Header",Gildam_GG)
Gildam_GG_Header:SetPoint("TOP", "Gildam_GG", 0, -16)
Gildam_GG_Header:SetPoint("BOTTOM", "Gildam_GG", "TOP", 0, -60)
Gildam_GG_Header:SetPoint("LEFT", "Gildam_GG", 16, 0)
Gildam_GG_Header:SetPoint("RIGHT", "Gildam_GG", -16, 0)
Gildam_GG_Header:SetBackdrop(Gildam_backdrop)
Gildam_GG_Header:SetBackdropBorderColor(BBC[(BBCi)].r, BBC[(BBCi)].g, BBC[(BBCi)].b, BBC[(BBCi)].a)
-- Define the font string for the guild name
local Gildam_GG_Header_F1 = Gildam_GG_Header:CreateFontString("Gildam_GG_Header_F1", "ARTWORK", "GameFont_Gigantic")
Gildam_GG_Header_F1:SetAllPoints()
-- Create the container frame for the guild banner.
local Gildam_GG_GBC = CreateFrame("Frame","Gildam_GG_GBC",Gildam_GG)
Gildam_GG_GBC:SetPoint("TOPLEFT", "Gildam_GG_Header", "BOTTOMLEFT" , 0, -16)
Gildam_GG_GBC:SetPoint("BOTTOMRIGHT", "Gildam_GG_Header", "BOTTOMLEFT" , 128, -144)
Gildam_GG_GBC:SetBackdrop(Gildam_backdrop)
Gildam_GG_GBC:SetBackdropBorderColor(BBC[(BBCi)].r, BBC[(BBCi)].g, BBC[(BBCi)].b, BBC[(BBCi)].a)
-- Create the "button" for the guild banner
local Gildam_GG_GBB = CreateFrame("CheckButton","Gildam_GG_GBB",Gildam_GG_GBC,"SpellBookSkillLineTabTemplate")
Gildam_GG_GBB:SetPoint("TOPLEFT", "Gildam_GG_GBC", 4, -4)
Gildam_GG_GBB:SetPoint("BOTTOMRIGHT", "Gildam_GG_GBC", -4, 4)
Gildam_GG_GBB:SetScript("OnClick", nil)
Gildam_GG_GBB:SetScript("OnEnter", nil)
Gildam_GG_GBB:SetScript("OnLeave", nil)
Gildam_GG_GBB:SetHighlightTexture(nil)
Gildam_GG_GBB:SetCheckedTexture(nil)
Gildam_GG_GBB:Show()
-- Create the frame for the faction banner
local Gildam_GG_GBF = CreateFrame("Frame","Gildam_GG_GBF",Gildam_GG)
Gildam_GG_GBF:SetPoint("TOPRIGHT", "Gildam_GG_Header", "BOTTOMRIGHT" , 0, -16)
Gildam_GG_GBF:SetPoint("BOTTOMLEFT", "Gildam_GG_Header", "BOTTOMRIGHT" , -128, -144)
Gildam_GG_GBF:SetBackdrop(Gildam_backdrop)
Gildam_GG_GBF:SetBackdropBorderColor(BBC[(BBCi)].r, BBC[(BBCi)].g, BBC[(BBCi)].b, BBC[(BBCi)].a)
local Gildam_GG_GBF_T1 = Gildam_GG_GBF:CreateTexture("Gildam_GG_GBF_T1","ARTWORK")
Gildam_GG_GBF_T1:SetPoint("TOPLEFT", Gildam_GG_GBF, 4, -4);
Gildam_GG_GBF_T1:SetPoint("BOTTOMRIGHT", Gildam_GG_GBF, -4, 4)
-- Gets the players faction.
if private.Gildam_player_faction == "Horde" then
Gildam_GG_GBF_T1:SetTexture("Interface\\FriendsFrame\\PlusManz-Horde")
else
Gildam_GG_GBF_T1:SetTexture("Interface\\FriendsFrame\\PlusManz-Alliance")
end
-- Create the frame for the guild info
local Gildam_GG_Info = CreateFrame("Frame","Gildam_GG_Info",Gildam_GG)
Gildam_GG_Info:SetPoint("TOPLEFT", "Gildam_GG_GBB", "TOPRIGHT" , 16, 2)
Gildam_GG_Info:SetPoint("BOTTOMRIGHT", "Gildam_GG_GBF", "BOTTOMLEFT" , -16, 0)
Gildam_GG_Info:SetBackdrop(Gildam_backdrop)
Gildam_GG_Info:SetBackdropBorderColor(BBC[(BBCi)].r, BBC[(BBCi)].g, BBC[(BBCi)].b, BBC[(BBCi)].a)
-- Define the font string for the guild info
local Gildam_GG_Info_F1 = Gildam_GG_Info:CreateFontString("Gildam_GG_Info_F1", "ARTWORK", "GameFontWhite")
Gildam_GG_Info_F1:SetPoint("TOP" ,"Gildam_GG_Info", 0, 0)
Gildam_GG_Info_F1:SetPoint("BOTTOM" ,"Gildam_GG_Info", "TOP", 0, -32)
Gildam_GG_Info_F1:SetPoint("LEFT" ,"Gildam_GG_Info", 8, 0)
Gildam_GG_Info_F1:SetPoint("RIGHT" ,"Gildam_GG_Info", -8, 0)
local Gildam_GG_Info_F2 = Gildam_GG_Info:CreateFontString("Gildam_GG_Info_F2", "ARTWORK", "GameFontNormalSmall")
Gildam_GG_Info_F2:SetPoint("TOP" ,"Gildam_GG_Info", 0, -32)
Gildam_GG_Info_F2:SetPoint("BOTTOM" ,"Gildam_GG_Info", 0, -0)
Gildam_GG_Info_F2:SetPoint("LEFT" ,"Gildam_GG_Info", 8, 0)
Gildam_GG_Info_F2:SetPoint("RIGHT" ,"Gildam_GG_Info", -8, 0)
-- Define the Container for the guild message of the day
local Gildam_GG_MOTD = CreateFrame("Frame","Gildam_GG_MOTD",Gildam_GG)
Gildam_GG_MOTD:SetPoint("TOP", "Gildam_GG_GBB", "BOTTOM", 0, -16)
Gildam_GG_MOTD:SetPoint("BOTTOM", "Gildam_GG_GBB", "BOTTOM", 0, -64)
Gildam_GG_MOTD:SetPoint("LEFT", "Gildam_GG", 16, 0)
Gildam_GG_MOTD:SetPoint("RIGHT", "Gildam_GG", -16, 0)
Gildam_GG_MOTD:SetBackdrop(Gildam_backdrop)
Gildam_GG_MOTD:SetBackdropBorderColor(BBC[(BBCi)].r, BBC[(BBCi)].g, BBC[(BBCi)].b, BBC[(BBCi)].a)
-- Define the font string for the guild message of the day
local Gildam_GG_MOTD_F1 = Gildam_GG_MOTD:CreateFontString("Gildam_GG_MOTD_F1", "ARTWORK", "GameFontNormalSmall")
Gildam_GG_MOTD_F1:SetPoint("LEFT" ,"Gildam_GG_MOTD", 16, 0)
Gildam_GG_MOTD_F1:SetPoint("RIGHT" ,"Gildam_GG_MOTD", -16, 0)
-- Define the font string for the GuildInfo
local Gildam_GG_MostOnline_F1 = Gildam_GG:CreateFontString("Gildam_GG_MostOnline_F1", "ARTWORK", "GameFontNormalSmall")
Gildam_GG_MostOnline_F1:SetPoint("BOTTOM", "Gildam_GG", 0, 4)
-- Define the leader frame
local Gildam_GG_Leader = CreateFrame("Frame","Gildam_GG_Leader",Gildam_GG)
Gildam_GG_Leader:SetPoint("TOPLEFT", "Gildam_GG_MOTD", "BOTTOMLEFT", 0, -16)
Gildam_GG_Leader:SetPoint("BOTTOMRIGHT", "Gildam_GG_MOTD", "BOTTOMLEFT", 96, -40)
Gildam_GG_Leader:SetPoint("LEFT", "Gildam_GG", 16, 0)
Gildam_GG_Leader:SetPoint("RIGHT", "Gildam_GG", "LEFT", 112, 0)
Gildam_GG_Leader:SetBackdrop(Gildam_backdrop)
Gildam_GG_Leader:SetBackdropBorderColor(BBC[(BBCi)].r, BBC[(BBCi)].g, BBC[(BBCi)].b, BBC[(BBCi)].a)
-- Define the font string for the leader
local Gildam_GG_Leader_F1 = Gildam_GG_Leader:CreateFontString("Gildam_GG_Leader_F1", "ARTWORK", "GameFontWhite")
Gildam_GG_Leader_F1:SetAllPoints()
Gildam_GG_Leader_F1:SetText(LEADER)
-- Define the leader name frame
local Gildam_GG_Leader_name = CreateFrame("Frame","Gildam_GG_Leader_name",Gildam_GG)
Gildam_GG_Leader_name:SetPoint("TOPLEFT", "Gildam_GG_Leader", "TOPRIGHT", 0, 0)
Gildam_GG_Leader_name:SetPoint("BOTTOMRIGHT", "Gildam_GG_Leader", "TOPRIGHT", 96, -24)
Gildam_GG_Leader_name:SetBackdrop(Gildam_backdrop)
Gildam_GG_Leader_name:SetBackdropBorderColor(BBC[(BBCi)].r, BBC[(BBCi)].g, BBC[(BBCi)].b, BBC[(BBCi)].a)
-- Define the font string for the leader
local Gildam_GG_Leader_name_F1 = Gildam_GG_Leader_name:CreateFontString("Gildam_GG_Leader_name_F1", "ARTWORK", "GameFontNormal")
Gildam_GG_Leader_name_F1:SetAllPoints()
Gildam_GG_Leader_name_F1:SetText()
-- Define the Ranks frame
local Gildam_GG_Ranks = CreateFrame("Frame","Gildam_GG_Ranks",Gildam_GG)
Gildam_GG_Ranks:SetPoint("TOPLEFT", "Gildam_GG_Leader", "BOTTOMLEFT", 0, -16)
Gildam_GG_Ranks:SetPoint("BOTTOMRIGHT", "Gildam_GG_Leader", "BOTTOMLEFT", 96, -40)
Gildam_GG_Ranks:SetBackdrop(Gildam_backdrop)
Gildam_GG_Ranks:SetBackdropBorderColor(BBC[(BBCi)].r, BBC[(BBCi)].g, BBC[(BBCi)].b, BBC[(BBCi)].a)
-- Define the font string for the ranks.
local Gildam_GG_Ranks_F1 = Gildam_GG_Ranks:CreateFontString("Gildam_GG_Ranks_F1", "ARTWORK", "GameFontWhite")
Gildam_GG_Ranks_F1:SetAllPoints()
Gildam_GG_Ranks_F1:SetText(GUILDCONTROL_GUILDRANKS)
-- Define the container for the rank buttons.
local Gildam_GGRC2 = CreateFrame("Frame","Gildam_GGRC2",Gildam_GG)
Gildam_GGRC2:SetPoint("TOPLEFT", "Gildam_GG_Ranks", "TOPRIGHT", 0, -0)
Gildam_GGRC2:SetPoint("RIGHT", "Gildam_GG", "RIGHT", -16, 0)
Gildam_GGRC2:SetPoint("LEFT", "Gildam_GG", "LEFT", 0, 0)
Gildam_GGRC2:SetPoint("BOTTOM", "Gildam_GG_Ranks", "TOPRIGHT", 0, -24)
Gildam_GGRC2:SetBackdrop(Gildam_backdrop)
Gildam_GGRC2:SetBackdropBorderColor(BBC[(BBCi)].r, BBC[(BBCi)].g, BBC[(BBCi)].b, BBC[(BBCi)].a)
-- The table with text for the rank buttons.
local Gildam_GGRC2_text = {"#", "Gl", "Gs", "Ol", "Os", "P", "D", "Inv", "Rem", "Motd", "Epn", "Von", "Eon", "Info", "Repr", "Gold", "Event"}
-- Create the buttons that go inside the container for the rank buttons.
Gildam_GGRC2.list = {}
for i=1,GILDAM_GG_NO_RANKBUTTONS do
Gildam_GGRC2.list[i] = CreateFrame("Button",nil,Gildam_GGRC2)
Gildam_GGRC2.list[i]:SetSize(32,16)
Gildam_GGRC2.list[i]:SetPoint("TOPLEFT",Gildam_GGRC2,"TOPLEFT",(i-1)*36+16,-4)
Gildam_GGRC2.list[i]:Show()
Gildam_SetTooltip(Gildam_GGRC2.list[i], L["GGRC2_TT" .. tostring(i)])
Gildam_GGRC2.list[i].name1 = Gildam_GGRC2.list[i]:CreateFontString(nil,"ARTWORK","GameFontNormalSmall")
Gildam_GGRC2.list[i].name1:SetSize(32,16)
Gildam_GGRC2.list[i].name1:SetPoint("CENTER", Gildam_GGRC2.list[i])
Gildam_GGRC2.list[i].name1:SetText(Gildam_GGRC2_text[i])
end
-- Define the container frame for the ranks
local Gildam_GGRC1 = CreateFrame("Frame","Gildam_GGRC1",Gildam_GG)
Gildam_GGRC1:SetPoint("TOPLEFT", "Gildam_GG_Ranks", "BOTTOMLEFT", 0, 0)
Gildam_GGRC1:SetPoint("BOTTOMRIGHT", "Gildam_GG", "BOTTOMRIGHT", -16, 16)
Gildam_GGRC1:SetBackdrop(Gildam_backdrop)
Gildam_GGRC1:SetBackdropBorderColor(BBC[(BBCi)].r, BBC[(BBCi)].g, BBC[(BBCi)].b, BBC[(BBCi)].a)
-- Create the buttons that go inside the container frame for the ranks
Gildam_GGRC1.list = {}
for i=1,GuildControlGetNumRanks() do
Gildam_GGRC1.list[i] = CreateFrame("Button",nil,Gildam_GGRC1)
Gildam_GGRC1.list[i]:SetSize(400,16)
Gildam_GGRC1.list[i]:SetPoint("TOPLEFT",Gildam_GGRC1,"TOPLEFT",8,(i-1)*-16-4)
Gildam_GGRC1.list[i]:Show()
Gildam_GGRC1.list[i].name1 = Gildam_GGRC1.list[i]:CreateFontString(nil,"ARTWORK","GameFontNormal")
Gildam_GGRC1.list[i].name1:SetSize(100,16)
Gildam_GGRC1.list[i].name1:SetPoint("LEFT", Gildam_GGRC1.list[i])
Gildam_GGRC1.list[i].name1:SetJustifyH("LEFT")
Gildam_GGRC1.list[i].name2 = Gildam_GGRC1.list[i]:CreateFontString(nil,"ARTWORK","GameFontNormal")
Gildam_GGRC1.list[i].name2:SetSize(32,16)
Gildam_GGRC1.list[i].name2:SetPoint("LEFT", Gildam_GGRC1.list[i].name1, "RIGHT", 4, 0)
Gildam_GGRC1.list[i].name3 = Gildam_GGRC1.list[i]:CreateFontString(nil,"ARTWORK","GameFontNormal")
Gildam_GGRC1.list[i].name3:SetSize(32,16)
Gildam_GGRC1.list[i].name3:SetPoint("LEFT", Gildam_GGRC1.list[i].name2, "RIGHT", 4, 0)
Gildam_GGRC1.list[i].name4 = Gildam_GGRC1.list[i]:CreateFontString(nil,"ARTWORK","GameFontNormal")
Gildam_GGRC1.list[i].name4:SetSize(32,16)
Gildam_GGRC1.list[i].name4:SetPoint("LEFT", Gildam_GGRC1.list[i].name3, "RIGHT", 4, 0)
Gildam_GGRC1.list[i].name5 = Gildam_GGRC1.list[i]:CreateFontString(nil,"ARTWORK","GameFontNormal")
Gildam_GGRC1.list[i].name5:SetSize(32,16)
Gildam_GGRC1.list[i].name5:SetPoint("LEFT", Gildam_GGRC1.list[i].name4, "RIGHT", 4, 0)
Gildam_GGRC1.list[i].name6 = Gildam_GGRC1.list[i]:CreateFontString(nil,"ARTWORK","GameFontNormal")
Gildam_GGRC1.list[i].name6:SetSize(32,16)
Gildam_GGRC1.list[i].name6:SetPoint("LEFT", Gildam_GGRC1.list[i].name5, "RIGHT", 4, 0)
Gildam_GGRC1.list[i].name7 = Gildam_GGRC1.list[i]:CreateFontString(nil,"ARTWORK","GameFontNormal")
Gildam_GGRC1.list[i].name7:SetSize(32,16)
Gildam_GGRC1.list[i].name7:SetPoint("LEFT", Gildam_GGRC1.list[i].name6, "RIGHT", 4, 0)
Gildam_GGRC1.list[i].name8 = Gildam_GGRC1.list[i]:CreateFontString(nil,"ARTWORK","GameFontNormal")
Gildam_GGRC1.list[i].name8:SetSize(32,16)
Gildam_GGRC1.list[i].name8:SetPoint("LEFT", Gildam_GGRC1.list[i].name7, "RIGHT", 4, 0)
Gildam_GGRC1.list[i].name9 = Gildam_GGRC1.list[i]:CreateFontString(nil,"ARTWORK","GameFontNormal")
Gildam_GGRC1.list[i].name9:SetSize(32,16)
Gildam_GGRC1.list[i].name9:SetPoint("LEFT", Gildam_GGRC1.list[i].name8, "RIGHT", 4, 0)
Gildam_GGRC1.list[i].name10 = Gildam_GGRC1.list[i]:CreateFontString(nil,"ARTWORK","GameFontNormal")
Gildam_GGRC1.list[i].name10:SetSize(32,16)
Gildam_GGRC1.list[i].name10:SetPoint("LEFT", Gildam_GGRC1.list[i].name9, "RIGHT", 4, 0)
Gildam_GGRC1.list[i].name11 = Gildam_GGRC1.list[i]:CreateFontString(nil,"ARTWORK","GameFontNormal")
Gildam_GGRC1.list[i].name11:SetSize(32,16)
Gildam_GGRC1.list[i].name11:SetPoint("LEFT", Gildam_GGRC1.list[i].name10, "RIGHT", 4, 0)
Gildam_GGRC1.list[i].name12 = Gildam_GGRC1.list[i]:CreateFontString(nil,"ARTWORK","GameFontNormal")
Gildam_GGRC1.list[i].name12:SetSize(32,16)
Gildam_GGRC1.list[i].name12:SetPoint("LEFT", Gildam_GGRC1.list[i].name11, "RIGHT", 4, 0)
Gildam_GGRC1.list[i].name13 = Gildam_GGRC1.list[i]:CreateFontString(nil,"ARTWORK","GameFontNormal")
Gildam_GGRC1.list[i].name13:SetSize(32,16)
Gildam_GGRC1.list[i].name13:SetPoint("LEFT", Gildam_GGRC1.list[i].name12, "RIGHT", 4, 0)
Gildam_GGRC1.list[i].name14 = Gildam_GGRC1.list[i]:CreateFontString(nil,"ARTWORK","GameFontNormal")
Gildam_GGRC1.list[i].name14:SetSize(32,16)
Gildam_GGRC1.list[i].name14:SetPoint("LEFT", Gildam_GGRC1.list[i].name13, "RIGHT", 4, 0)
Gildam_GGRC1.list[i].name15 = Gildam_GGRC1.list[i]:CreateFontString(nil,"ARTWORK","GameFontNormal")
Gildam_GGRC1.list[i].name15:SetSize(32,16)
Gildam_GGRC1.list[i].name15:SetPoint("LEFT", Gildam_GGRC1.list[i].name14, "RIGHT", 4, 0)
Gildam_GGRC1.list[i].name16 = Gildam_GGRC1.list[i]:CreateFontString(nil,"ARTWORK","GameFontNormal")
Gildam_GGRC1.list[i].name16:SetSize(32,16)
Gildam_GGRC1.list[i].name16:SetPoint("LEFT", Gildam_GGRC1.list[i].name15, "RIGHT", 4, 0)
Gildam_GGRC1.list[i].name17 = Gildam_GGRC1.list[i]:CreateFontString(nil,"ARTWORK","GameFontNormal")
Gildam_GGRC1.list[i].name17:SetSize(32,16)
Gildam_GGRC1.list[i].name17:SetPoint("LEFT", Gildam_GGRC1.list[i].name16, "RIGHT", 4, 0)
Gildam_GGRC1.list[i].name18 = Gildam_GGRC1.list[i]:CreateFontString(nil,"ARTWORK","GameFontNormal")
Gildam_GGRC1.list[i].name18:SetSize(32,16)
Gildam_GGRC1.list[i].name18:SetPoint("LEFT", Gildam_GGRC1.list[i].name17, "RIGHT", 4, 0)
end
Gildam_GG:Hide()
end
-------------------------------------------------------------------------------
-- Handle the Guild Tab
-------------------------------------------------------------------------------
function Gildam_GG_Update()
Gildam:Debug("Gildam_GG_Update")
Gildam_Use_Database_Values_G()
-- Set the UI texture, alpha/transparency and border color in case they have been changed.
Gildam_UI_T:SetTexture(BGT[BGTi].t)
Gildam_UI_T:SetAlpha(BGAi)
Gildam_UI:SetBackdropBorderColor(BBC[(BBCi)].r, BBC[(BBCi)].g, BBC[(BBCi)].b, BBC[(BBCi)].a)
-- Show the guild banner.
Gildam_GG_GBB.TabardEmblem:SetSize(120, 120)
Gildam_GG_GBB.TabardIconFrame:SetSize(120,120)
Gildam_GG_GBB:SetNormalTexture("Interface\\SpellBook\\GuildSpellbooktabBG");
Gildam_GG_GBB.TabardEmblem:Show();
Gildam_GG_GBB.TabardIconFrame:Show();
SetLargeGuildTabardTextures("player", Gildam_GG_GBB.TabardEmblem, Gildam_GG_GBB:GetNormalTexture(), Gildam_GG_GBB.TabardIconFrame);
-- Set the button border color and background color in case they have been changed.
Gildam_Close:SetBackdropBorderColor(BBB[(BBBi)].r, BBB[(BBBi)].g, BBB[(BBBi)].b, BBB[(BBBi)].a)
Gildam_CloseT:SetTexture(BBG[BBGi].t)
-- Set the Guild frames color again in case they have been changed.
Gildam_GG:SetBackdropBorderColor(BBC[(BBCi)].r, BBC[(BBCi)].g, BBC[(BBCi)].b, BBC[(BBCi)].a)
Gildam_GG_Header:SetBackdropBorderColor(BBC[(BBCi)].r, BBC[(BBCi)].g, BBC[(BBCi)].b, BBC[(BBCi)].a)
Gildam_GG_GBC:SetBackdropBorderColor(BBC[(BBCi)].r, BBC[(BBCi)].g, BBC[(BBCi)].b, BBC[(BBCi)].a)
Gildam_GG_GBF:SetBackdropBorderColor(BBC[(BBCi)].r, BBC[(BBCi)].g, BBC[(BBCi)].b, BBC[(BBCi)].a)
Gildam_GG_Info:SetBackdropBorderColor(BBC[(BBCi)].r, BBC[(BBCi)].g, BBC[(BBCi)].b, BBC[(BBCi)].a)
Gildam_GG_MOTD:SetBackdropBorderColor(BBC[(BBCi)].r, BBC[(BBCi)].g, BBC[(BBCi)].b, BBC[(BBCi)].a)
Gildam_GG_Leader:SetBackdropBorderColor(BBC[(BBCi)].r, BBC[(BBCi)].g, BBC[(BBCi)].b, BBC[(BBCi)].a)
Gildam_GG_Leader_name:SetBackdropBorderColor(BBC[(BBCi)].r, BBC[(BBCi)].g, BBC[(BBCi)].b, BBC[(BBCi)].a)
Gildam_GG_Ranks:SetBackdropBorderColor(BBC[(BBCi)].r, BBC[(BBCi)].g, BBC[(BBCi)].b, BBC[(BBCi)].a)
Gildam_GGRC2:SetBackdropBorderColor(BBC[(BBCi)].r, BBC[(BBCi)].g, BBC[(BBCi)].b, BBC[(BBCi)].a)
Gildam_GGRC1:SetBackdropBorderColor(BBC[(BBCi)].r, BBC[(BBCi)].g, BBC[(BBCi)].b, BBC[(BBCi)].a)
-- Set the guild info.
Gildam_GG_Info_F1:SetText(GUILD_INFORMATION)
Gildam_GG_Info_F2:SetText(GetGuildInfoText())
-- Set the message of the day.
Gildam_GG_MOTD_F1:SetText(format(GUILD_MOTD_TEMPLATE, GetGuildRosterMOTD()))
-- Set guild name.
if private.Gildam_player_faction == "Horde" then
Gildam_GG_Header_F1:SetText(Gildam_red(GetGuildInfo("player")))
else
Gildam_GG_Header_F1:SetText(Gildam_blue(GetGuildInfo("player")))
end
-- Set GuildInfo text.
Gildam_GG_GuildInfo_F1:SetText(private.Gildam_GuildInfo_string)
-- Set Most players online text.
Gildam_GG_MostOnline_F1:SetText(format(L["Most players online: %d at %s"], private.GuildDB.most_players_online,
format(date("%A, %B %d %Y, %H:%M", private.GuildDB.most_players_online_time))))
-- Guild leader name.
Gildam_Browse_Roster()
Gildam_GG_Leader_name_F1:SetText(Leader_Name)
-- Set the names of the ranks
for i = 1, GuildControlGetNumRanks() do
if GuildControlGetRankName(i) ~= nil then
Gildam_GGRC1.list[i].name1:SetText(GuildControlGetRankName(i))
Gildam_GGRC1.list[i].name2:SetText(GetNumMembersInRank(i))
GuildControlSetRank(i)
local guildchat_listen, guildchat_speak, officerchat_listen, officerchat_speak, promote, demote,
invite_member, remove_member, set_motd, edit_public_note, view_officer_note, edit_officer_note,
modify_guild_info, _, withdraw_repair, withdraw_gold, create_guild_event = GuildControlGetRankFlags();
if guildchat_listen then
Gildam_GGRC1.list[i].name3:SetText(Gildam_green(YES))
else
Gildam_GGRC1.list[i].name3:SetText(Gildam_red(NO))
end
if guildchat_speak then
Gildam_GGRC1.list[i].name4:SetText(Gildam_green(YES))
else
Gildam_GGRC1.list[i].name4:SetText(Gildam_red(NO))
end
if officerchat_listen then
Gildam_GGRC1.list[i].name5:SetText(Gildam_green(YES))
else
Gildam_GGRC1.list[i].name5:SetText(Gildam_red(NO))
end
if officerchat_speak then
Gildam_GGRC1.list[i].name6:SetText(Gildam_green(YES))
else
Gildam_GGRC1.list[i].name6:SetText(Gildam_red(NO))
end
if promote then
Gildam_GGRC1.list[i].name7:SetText(Gildam_green(YES))
else
Gildam_GGRC1.list[i].name7:SetText(Gildam_red(NO))
end
if demote then
Gildam_GGRC1.list[i].name8:SetText(Gildam_green(YES))
else
Gildam_GGRC1.list[i].name8:SetText(Gildam_red(NO))
end
if invite_member then
Gildam_GGRC1.list[i].name9:SetText(Gildam_green(YES))
else
Gildam_GGRC1.list[i].name9:SetText(Gildam_red(NO))
end
if remove_member then
Gildam_GGRC1.list[i].name10:SetText(Gildam_green(YES))
else
Gildam_GGRC1.list[i].name10:SetText(Gildam_red(NO))
end
if set_motd then
Gildam_GGRC1.list[i].name11:SetText(Gildam_green(YES))
else
Gildam_GGRC1.list[i].name11:SetText(Gildam_red(NO))
end
if edit_public_note then
Gildam_GGRC1.list[i].name12:SetText(Gildam_green(YES))
else
Gildam_GGRC1.list[i].name12:SetText(Gildam_red(NO))
end
if view_officer_note then
Gildam_GGRC1.list[i].name13:SetText(Gildam_green(YES))
else
Gildam_GGRC1.list[i].name13:SetText(Gildam_red(NO))
end
if edit_officer_note then
Gildam_GGRC1.list[i].name14:SetText(Gildam_green(YES))
else
Gildam_GGRC1.list[i].name14:SetText(Gildam_red(NO))
end
if modify_guild_info then
Gildam_GGRC1.list[i].name15:SetText(Gildam_green(YES))
else
Gildam_GGRC1.list[i].name15:SetText(Gildam_red(NO))
end
if withdraw_repair then
Gildam_GGRC1.list[i].name16:SetText(Gildam_green(YES))
else
Gildam_GGRC1.list[i].name16:SetText(Gildam_red(NO))
end
if withdraw_gold then
Gildam_GGRC1.list[i].name17:SetText(Gildam_green(YES))
else
Gildam_GGRC1.list[i].name17:SetText(Gildam_red(NO))
end
if create_guild_event then
Gildam_GGRC1.list[i].name18:SetText(Gildam_green(YES))
else
Gildam_GGRC1.list[i].name18:SetText(Gildam_red(NO))
end
end
end
end
-------------------------------------------------------------------------------
-- Browse the guild roster and get the desired information
-------------------------------------------------------------------------------
function Gildam_Browse_Roster()
Gildam:Debug("Gildam_Browse_Roster")
for idx = 1, #private.GuildDB.roster do
local info = private.GuildDB.roster[idx]
if info[Field.RankIndex] == 0 then
Leader_Name = info[Field.Name]
end
end
end
-------------------------------------------------------------------------------
-- Use the database values.
-------------------------------------------------------------------------------
function Gildam_Use_Database_Values_G()
BBCi = addon.db.profile.frameColor
BGTi = addon.db.profile.frameTexture
BGAi = addon.db.profile.alphaBG
BBBi = addon.db.profile.buttonBorder
BBGi = addon.db.profile.buttonColor
end