vanilla-wow-addons – Rev 1
?pathlinks?
--[[
Gatherer Report/Search UI
]]--
-- Scrolling variables
GATHERERINFO_TO_DISPLAY=15;
GATHERERINFO_FRAME_HEIGHT=15;
GATHERERINFO_SUBFRAMES = { "GathererInfo_ReportFrame", "GathererInfo_SearchFrame" };
-- Defaults
currentNode = "";
GathererInfo_LastSortType = "gtype";
GathererInfo_LastSearchSortType= "Cname";
GathererInfo_AutoRegion = true;
GathererInfo_LastSortReverse = false;
GathererInfoContinents = {};
GathererInfoZones = {};
numGathererInfo = 0;
GI_totalCount = 0;
-- show display frame
function showGathererInfo(tab)
local myTab = 1;
if ( tab ) then myTab = tab; end;
if ( not GathererInfo_DialogFrame:IsShown() ) then
GathererInfo_DialogFrame:Show();
PanelTemplates_SetTab(GathererInfo_DialogFrame, myTab);
ToggleGathererInfo_Dialog(GATHERERINFO_SUBFRAMES[myTab]);
else
GathererInfo_DialogFrame:Hide();
end
end
function GathererInfo_LoadContinents(...)
for c=1, arg.n, 1 do
GathererInfoContinents[c] = {}
GathererInfoContinents[c] = arg[c];
GathererInfoContinents[arg[c]] = c;
GathererInfo_LoadZones(c, GetMapZones(c));
end
end
function GathererInfo_LoadZones(c, ...)
for z=1, arg.n, 1 do
local zname = arg[z];
if ( not GathererInfoZones[c] ) then GathererInfoZones[c] = {}; end
GathererInfoZones[c][zname] = { continent=c, zone=z };
GathererInfoZones[c][z] = { continent=c, zone=zname };
end
end
-- ********************************************************************
-- dropdown menu functions
-- Continent
function GathererInfo_LocContinentDropDown_Initialize()
local index;
local info = {};
for index in GatherItems do
-- grab zone text from table initiated by Gatherer Main
info.text = GathererInfoContinents[index];
info.checked = nil;
info.func = GathererInfo_LocContinentDropDown_OnClick;
UIDropDownMenu_AddButton(info);
end
end
function GathererInfo_LocContinentDropDown_OnClick()
UIDropDownMenu_SetSelectedID(GathererInfo_LocContinentDropDown, this:GetID());
UIDropDownMenu_SetSelectedID(GathererInfo_LocZoneDropDown, 0);
UIDropDownMenu_SetText("", GathererInfo_LocZoneDropDown);
UIDropDownMenu_ClearAll(GathererInfo_LocZoneDropDown);
UIDropDownMenu_Initialize(GathererInfo_LocZoneDropDown, GathererInfo_LocZoneDropDown_Initialize);
local j=1;
while (j < GATHERERINFO_TO_DISPLAY+1) do
getglobal("GathererInfo_FrameButton"..j):Hide();
j = j+1;
end
end
-- Zone
function GathererInfo_LocZoneDropDown_Initialize()
local index;
local info = {};
local gi_cont, gi_t_cont;
gi_t_cont = UIDropDownMenu_GetText(GathererInfo_LocContinentDropDown);
if ( gi_t_cont and gi_t_cont ~= nil and gi_t_cont ~= "") then
gi_cont = GathererInfoContinents[gi_t_cont];
for index in GatherItems[gi_cont] do
-- grab zone text from table initiated by Gatherer Main
info.text = GathererInfoZones[gi_cont][index].zone;
info.checked = nil;
info.func = GathererInfo_LocZoneDropDown_OnClick;
UIDropDownMenu_AddButton(info);
end
end
end
function GathererInfo_LocZoneDropDown_OnClick()
local gi_cont, gi_zone;
local l_zone, node_idx, index;
UIDropDownMenu_SetSelectedID(GathererInfo_LocZoneDropDown, this:GetID());
GathererInfo_AutoRegion = false;
gi_cont = GathererInfoContinents[UIDropDownMenu_GetText(GathererInfo_LocContinentDropDown)];
gi_zone = GathererInfoZones[gi_cont][UIDropDownMenu_GetText(GathererInfo_LocZoneDropDown)].zone;
for l_zone in GatherItems[gi_cont] do
GI_totalCount = 0;
numGathererInfo=0;
for node_idx in GatherItems[gi_cont][gi_zone] do
for index in GatherItems[gi_cont][gi_zone][node_idx] do
GI_totalCount = GI_totalCount + GatherItems[gi_cont][gi_zone][node_idx][index].count;
numGathererInfo = numGathererInfo + 1;
end
end
end
GathererInfo_Update();
end
-- ********************************************************************
-- Display frame initialization
function GathererInfo_SetDefaultLocation()
local gi_t_cont = GathererInfoContinents[GetCurrentMapContinent()];
local gi_t_zone = GetRealZoneText();
local gi_cont = GetCurrentMapContinent();
local gi_zone = nil;
local l_cnt, l_zone;
local node_idx, index;
local found = 0;
if ( GetRealZoneText() and GathererInfoZones[gi_cont] and GathererInfoZones[gi_cont][GetRealZoneText()] ) then
gi_zone = GathererInfoZones[gi_cont][GetRealZoneText()].zone;
else
gi_zone = "unknown";
end
for l_cnt in GatherItems do
if( l_cnt == gi_cont ) then
UIDropDownMenu_SetSelectedName(GathererInfo_LocContinentDropDown, gi_t_cont);
UIDropDownMenu_SetText(gi_t_cont, GathererInfo_LocContinentDropDown);
for l_zone in GatherItems[gi_cont] do
if ( l_zone == gi_zone and GathererInfo_AutoRegion == true) then
UIDropDownMenu_SetSelectedName(GathererInfo_LocZoneDropDown, gi_t_zone);
UIDropDownMenu_SetText(gi_t_zone, GathererInfo_LocZoneDropDown);
GI_totalCount = 0;
numGathererInfo=0;
found = 1;
for node_idx in GatherItems[gi_cont][gi_zone] do
for index in GatherItems[gi_cont][gi_zone][node_idx] do
GI_totalCount = GI_totalCount + GatherItems[gi_cont][gi_zone][node_idx][index].count;
numGathererInfo = numGathererInfo + 1;
end
end
GathererInfo_Update();
end
end
end
end
end
-- update display frame relative to scrollbar
function GathererInfo_Update()
local node_idx, index;
local gatherInfoOffset = FauxScrollFrame_GetOffset(GathererInfo_ListScrollFrame);
local gi_cont, gi_zone, gi_loc;
local gatherInfoIndex;
local showScrollBar = nil;
local button;
local i = 1;
GITT = {};
-- Get continent, zone
if ( UIDropDownMenu_GetText(GathererInfo_LocContinentDropDown) and
UIDropDownMenu_GetText(GathererInfo_LocContinentDropDown) ~= "")
then
gi_cont = GathererInfoContinents[UIDropDownMenu_GetText(GathererInfo_LocContinentDropDown)];
else
gi_cont = GetCurrentMapContinent();
end
if ( UIDropDownMenu_GetText(GathererInfo_LocZoneDropDown) and
UIDropDownMenu_GetText(GathererInfo_LocZoneDropDown) ~= "")
then
gi_zone = GathererInfoZones[gi_cont][UIDropDownMenu_GetText(GathererInfo_LocZoneDropDown)].zone;
else
if ( GetRealZoneText() and GathererInfoZones[gi_cont] and GathererInfoZones[gi_cont][GetRealZoneText()] ) then
gi_zone = GathererInfoZones[gi_cont][GetRealZoneText()].zone;
else
gi_zone = nil;
end
end
-- if loc exists in stored base
if ( GatherItems and gi_cont and gi_zone and GatherItems[gi_cont] and
GatherItems[gi_cont][gi_zone] )
then
if ( GatherItems and GatherItems[gi_cont] and GatherItems[gi_cont][gi_zone] )
then
local typeNodeCount = {};
typeNodeCount[0]=0;
typeNodeCount[1]=0;
typeNodeCount[2]=0;
typeNodeCount[3]=0;
for node_idx in GatherItems[gi_cont][gi_zone] do
for index in GatherItems[gi_cont][gi_zone][node_idx] do
local gtype;
if ( type(GatherItems[gi_cont][gi_zone][node_idx][index].gtype) =="number" )
then
gtype = GatherItems[gi_cont][gi_zone][node_idx][index].gtype;
else
gtype = Gatherer_EGatherType[GatherItems[gi_cont][gi_zone][node_idx][index].gtype]
end
typeNodeCount[gtype] = typeNodeCount[gtype] + GatherItems[gi_cont][gi_zone][node_idx][index].count;
end
end
-- assign values
for node_idx in GatherItems[gi_cont][gi_zone] do
local nodeCount;
for index in GatherItems[gi_cont][gi_zone][node_idx] do
local amount = GatherItems[gi_cont][gi_zone][node_idx][index].count;
local gtype;
if ( type(GatherItems[gi_cont][gi_zone][node_idx][index].gtype) == "number" )
then
gtype = GatherItems[gi_cont][gi_zone][node_idx][index].gtype;
else
gtype = Gatherer_EGatherType[GatherItems[gi_cont][gi_zone][node_idx][index].gtype]
end
nodeCount = typeNodeCount[gtype];
local found=0;
local findex;
for findex in GITT do
if ( GITT[findex].name == node_idx ) then
found = findex;
end
end
if ( found == 0 ) then
GITT[i] = {};
GITT[i].name = node_idx;
if ( type(GatherItems[gi_cont][gi_zone][node_idx][index].gtype) == "number" ) then
GITT[i].gatherType = Gatherer_EGatherType[GatherItems[gi_cont][gi_zone][node_idx][index].gtype];
else
GITT[i].gatherType = GatherItems[gi_cont][gi_zone][node_idx][index].gtype;
end
GITT[i].typePercent = tonumber(format("%.1f",( amount / nodeCount ) * 100));
GITT[i].densityPercent = tonumber(format("%.1f",( amount / GI_totalCount ) * 100));
-- divide by zero check
if ( GITT[i].typePercent == nil ) then GITT[i].typePercent = 0; end
if ( GITT[i].densityPercent == nil ) then GITT[i].densityPercent = 0; end
GITT[i].amount = tonumber(amount);
if ( type(GatherItems[gi_cont][gi_zone][node_idx][index].icon) == "number" ) then
GITT[i].texture = Gather_IconSet["iconic"][GITT[i].gatherType][Gatherer_GetDB_IconIndex(GatherItems[gi_cont][gi_zone][node_idx][index].icon, GITT[i].gatherType)];
else
GITT[i].texture = Gather_IconSet["iconic"][GITT[i].gatherType][GatherItems[gi_cont][gi_zone][node_idx][index].icon];
end
GITT[i].nodeCount = nodeCount;
GITT[i].gi = gatherInfoOffset + i;
i = i + 1;
else
GITT[found].amount = GITT[found].amount + tonumber(amount);
GITT[found].typePercent = tonumber(format("%.1f",( GITT[found].amount / GITT[found].nodeCount ) * 100));
GITT[found].densityPercent = tonumber(format("%.1f",( GITT[found].amount / GI_totalCount ) * 100));
-- divide by zero check
if ( GITT[found].typePercent == nil ) then GITT[found].typePercent = 0; end
if ( GITT[found].densityPercent == nil ) then GITT[found].densityPercent = 0; end
found = 0;
end
end
end
end
SortGathererInfo(GathererInfo_LastSortType, false);
GathererInfo_totalcount:SetText(string.gsub(string.gsub(GATHERER_REPORT_SUMMARY, "#", GI_totalCount), "&", numGathererInfo));
end
end
-- Add items in display frame
function GathererInfo_additem_table(gatherName, gatherNumber, gatherTexture, gatherType, typePercent, densityPercent, GIlocation, GIIndex)
if ( GIlocation < GATHERERINFO_TO_DISPLAY +1) then
getglobal("GathererInfo_FrameButton"..GIlocation).gatherIndex = GIIndex;
getglobal("GathererInfo_FrameButton"..GIlocation.."Icon"):SetTexture(gatherTexture);
getglobal("GathererInfo_FrameButton"..GIlocation.."Type"):SetText(gatherType);
getglobal("GathererInfo_FrameButton"..GIlocation.."Gatherable"):SetText(gatherName);
getglobal("GathererInfo_FrameButton"..GIlocation.."Number"):SetText(gatherNumber);
getglobal("GathererInfo_FrameButton"..GIlocation.."TypePercent"):SetText(typePercent);
getglobal("GathererInfo_FrameButton"..GIlocation.."DensityPercent"):SetText(densityPercent);
getglobal("GathererInfo_FrameButton"..GIlocation):Show();
end
end
-- **************************************************************************
-- Sort functions (common to Report and Search)
function SortGathererInfo(sortType, reverse, search)
local compstr = {};
local ref_ind = 0;
local ind, newind;
local displayed=1;
local offSet = FauxScrollFrame_GetOffset(GathererInfo_ListScrollFrame);
local key1, key2, key3;
local indexToShow=0;
local search_stub;
if (search) then
search_stub = search;
else
search_stub = "";
end
for ind in GITT do
indexToShow = indexToShow + 1;
compstr[ind]= {}
-- report sort types
if ( sortType == "gtype" ) then -- keys: type, % per type, name (default sort)
key1 = GITT[ind].gatherType;
key2 = format("%.6f", GITT[ind].typePercent / 10000);
key3 = GITT[ind].name;
elseif ( sortType == "percent") then -- keys: % per type, type, name
key1 = format("%.6f", GITT[ind].typePercent / 10000);
key2 = GITT[ind].gatherType;
key3 = GITT[ind].name;
elseif ( sortType == "density" ) then -- keys: % density, type, name
key1 = format("%.6f", GITT[ind].densityPercent / 10000);
key2 = GITT[ind].gatherType;
key3 = GITT[ind].name;
elseif ( sortType == "name" ) then -- keys: name, type, % type
key1 = GITT[ind].name;
key2 = GITT[ind].gatherType;
key3 = format("%.6f", GITT[ind].typePercent / 10000);
elseif ( sortType == "amount" ) then -- keys: amount, type, name
key1 = format("%.6f", GITT[ind].amount / 10000);
key2 = GITT[ind].gatherType;
key3 = GITT[ind].name;
elseif ( search_stub and search_stub ~= "" ) then
offSet = FauxScrollFrame_GetOffset(GathererInfo_SearchListScrollFrame)
-- handle Search sort types
if ( sortType == "Cname" ) then
key1 = GITT[ind].contName;
key2 = GITT[ind].zoneName;
key3 = format("%.6f", GITT[ind].amount / 10000);
elseif ( sortType == "Zname" ) then
key1 = GITT[ind].zoneName;
key2 = GITT[ind].contName;
key3 = format("%.6f", GITT[ind].amount / 10000);
elseif ( sortType == "Namount" ) then
key1 = format("%.6f", GITT[ind].amount / 10000);
key2 = GITT[ind].contName;
key3 = GITT[ind].zoneName;
elseif ( sortType == "Npercent" ) then
key1 = format("%.6f", GITT[ind].typePercent / 10000);
key2 = GITT[ind].contName;
key3 = GITT[ind].zoneName;
elseif ( sortType == "Ndensity" ) then
key1 = format("%.6f", GITT[ind].densityPercent / 10000);
key2 = GITT[ind].contName;
key3 = GITT[ind].zoneName;
end
end
-- build sort string
compstr[ind] = key1.."/"..key2.."/"..key3.."#"..ind
end
-- call sort function
if ( reverse and not GathererInfo_LastSortReverse) then
sort(compstr, GI_reverse_sort);
GathererInfo_LastSortReverse = true;
else
sort(compstr);
GathererInfo_LastSortReverse = false;
end
-- display sorted items
for newind, data in compstr do
recup = tonumber(strsub(data, string.find(data, "#")+1));
if (newind == 1) then
ref_ind = GITT[1].gi
else
ref_ind= ref_ind + 1;
end
if ( newind > offSet and displayed < GATHERERINFO_TO_DISPLAY+1) then
if ( search_stub == "" ) then
GathererInfo_additem_table(GITT[recup].name, GITT[recup].amount, GITT[recup].texture, GITT[recup].gatherType, GITT[recup].typePercent, GITT[recup].densityPercent, newind - offSet, ref_ind);
elseif ( search_stub == "Search" ) then
GathererInfo_additem_searchtable(GITT[recup].contName, GITT[recup].amount,
GITT[recup].zoneName, GITT[recup].typePercent,
GITT[recup].densityPercent, newind - offSet, ref_ind)
end
displayed=displayed+1;
end
end
local j=displayed;
while (j < GATHERERINFO_TO_DISPLAY+1) do
getglobal("GathererInfo_"..search_stub.."FrameButton"..j):Hide();
j = j+1;
end
FauxScrollFrame_Update(getglobal("GathererInfo_"..search_stub.."ListScrollFrame"), indexToShow, GATHERERINFO_TO_DISPLAY, GATHERERINFO_FRAME_HEIGHT);
if( search_stub == "") then
GathererInfo_LastSortType = sortType;
elseif ( search_stub == "Search" ) then
GathererInfo_LastSearchSortType = sortType;
end
end
function GI_reverse_sort(token1, token2)
return token1 > token2;
end
-- ***********************************************************
-- Search UI functions
function GathererInfo_GatherTypeDropDown_Initialize()
local index;
local info = {};
for index in Gatherer_EGatherType do
if ( index ~= "Default" and type(index) == "string" ) then
info.text = index;
info.checked = nil;
info.func = GathererInfo_GatherType_OnClick;
UIDropDownMenu_AddButton(info);
end
end
end
function GathererInfo_GatherType_OnClick()
UIDropDownMenu_SetSelectedID(GathererInfo_GatherTypeDropDown, this:GetID());
UIDropDownMenu_SetSelectedID(GathererInfo_GatherItemDropDown, 0);
UIDropDownMenu_SetText("", GathererInfo_GatherItemDropDown);
UIDropDownMenu_ClearAll(GathererInfo_GatherItemDropDown);
UIDropDownMenu_Initialize(GathererInfo_GatherItemDropDown, GathererInfo_GatherItemDropDown_Initialize);
local j=1;
while (j < GATHERERINFO_TO_DISPLAY+1) do
getglobal("GathererInfo_SearchFrameButton"..j):Hide();
j = j+1;
end
end
function GathererInfo_GatherItemDropDown_Initialize()
local index;
local info = {};
local selectedGatherTypeText = UIDropDownMenu_GetText(GathererInfo_GatherTypeDropDown);
local selectedGatherType
if ( selectedGatherTypeText ) then
selectedGatherType = Gatherer_EGatherType[selectedGatherTypeText];
for index in Gather_DB_IconIndex[selectedGatherType] do
if (index ~= "default" ) then
info.text = index;
info.checked = nil;
info.func = GathererInfo_GatherItem_OnClick;
UIDropDownMenu_AddButton(info);
end
end
end
end
function GathererInfo_GatherItem_OnClick()
local item_to_search, search_item;
local gi_cont, gi_zone, gi_node, gi_index;
UIDropDownMenu_SetSelectedID(GathererInfo_GatherItemDropDown, this:GetID());
item_to_search = UIDropDownMenu_GetText(GathererInfo_GatherItemDropDown)
_, _, search_item = string.find(item_to_search, "^([^ ]+)");
GI_totalCount = 0;
for gi_cont in GatherItems do
for gi_zone in GatherItems[gi_cont] do
for gi_node in GatherItems[gi_cont][gi_zone] do
if ( string.find(gi_node, search_item, 1, true) ) then
local skip_node=-1;
for gi_index in GatherItems[gi_cont][gi_zone][gi_node] do
if ( skip_node == -1 ) then
local locIcon, locGtype;
-- check gather type
locGtype = GatherItems[gi_cont][gi_zone][gi_node][gi_index].gtype;
if ( locGtype and type(locGtype) == "string" ) then
locGtype = Gatherer_EGatherType[locGtype];
end
locIcon = GatherItems[gi_cont][gi_zone][gi_node][gi_index].icon;
if ( (type(locIcon) == "string" and locIcon == search_item) or
(type(locIcon) == "number" and locIcon == Gather_DB_IconIndex[locGtype][item_to_search] )) then
skip_node=0
GI_totalCount = GI_totalCount +1;
else
skip_node=1
end
elseif ( skip_node == 0 ) then
GI_totalCount = GI_totalCount +1;
else
break;
end
end
end
end
end
end
GathererInfo_SearchUpdate();
end
function GathererInfo_SearchUpdate()
local node_idx, index;
local gatherInfoOffset = FauxScrollFrame_GetOffset(GathererInfo_SearchListScrollFrame);
local item_to_search = UIDropDownMenu_GetText(GathererInfo_GatherItemDropDown);
local search_item;
local gi_cont, gi_zone, gi_loc;
local gatherInfoIndex;
local showScrollBar = nil;
local button;
local i = 1;
GITT = {};
-- if database exists
if ( GatherItems and item_to_search ) then
_, _, search_item = string.find(item_to_search, "([^ ]+)");
for gi_cont in GatherItems do
if ( gi_cont == 0 or not GathererInfoZones[gi_cont] ) then
Gatherer_ChatPrint("Gatherer: Warning invalid continent index ("..gi_cont..") found in data.");
else
for gi_zone in GatherItems[gi_cont] do
if ( gi_zone == 0 or not GathererInfoZones[gi_cont][gi_zone] ) then
Gatherer_ChatPrint("Gatherer: Warning invalid zone index ("..gi_zone..") found in "..gi_cont.." continent data.");
else
local nodeCount = 0;
for node_idx in GatherItems[gi_cont][gi_zone] do
for index in GatherItems[gi_cont][gi_zone][node_idx] do
nodeCount = nodeCount + 1;
end
end
-- assign values
for node_idx in GatherItems[gi_cont][gi_zone] do
local skip_node = -1;
if ( string.find(node_idx, search_item, 1, true) ) then
local amount = 0;
for index in GatherItems[gi_cont][gi_zone][node_idx] do
if ( skip_node == -1 ) then
local locIcon, locGtype;
-- check gather type
locGtype = GatherItems[gi_cont][gi_zone][node_idx][index].gtype;
if ( type(locGtype) == "string" ) then
locGtype = Gatherer_EGatherType[locGtype];
end
locIcon = GatherItems[gi_cont][gi_zone][node_idx][index].icon;
if ( (type(locIcon) == "string" and locIcon == search_item) or
(type(locIcon) == "number" and locIcon == Gather_DB_IconIndex[locGtype][item_to_search] )) then
skip_node=0
amount = amount + 1;
else
skip_node=1
end
elseif ( skip_node == 0 ) then
amount = amount + 1;
else
break;
end
end
if ( skip_node ~= 1 ) then
local found=0;
local findex;
for findex in GITT do
if ( GITT[findex].zoneName and GathererInfoZones[gi_cont][gi_zone].zone and
GITT[findex].zoneName == GathererInfoZones[gi_cont][gi_zone].zone ) then
found = findex;
end
end
if ( found == 0 ) then
GITT[i] = {};
GITT[i].contName = GathererInfoContinents[gi_cont];
GITT[i].zoneName = GathererInfoZones[gi_cont][gi_zone].zone;
GITT[i].typePercent = tonumber(format("%.1f",( amount / nodeCount ) * 100));
GITT[i].densityPercent = tonumber(format("%.1f",( amount / GI_totalCount ) * 100));
-- divide by zero check
if ( GITT[i].typePercent == nil ) then GITT[i].typePercent = 0; end
if ( GITT[i].densityPercent == nil ) then GITT[i].densityPercent = 0; end
GITT[i].amount = tonumber(amount);
GITT[i].nodeCount = nodeCount;
GITT[i].gi = gatherInfoOffset + i;
i = i + 1;
else
GITT[found].amount = GITT[found].amount + tonumber(amount);
GITT[found].typePercent = tonumber(format("%.1f",( GITT[found].amount / GITT[found].nodeCount ) * 100));
GITT[found].densityPercent = tonumber(format("%.1f",( GITT[found].amount / GI_totalCount ) * 100));
-- divide by zero check
if ( GITT[found].typePercent == nil ) then GITT[found].typePercent = 0; end
if ( GITT[found].densityPercent == nil ) then GITT[found].densityPercent = 0; end
found = 0;
end
end
end
end
end
end
end
end
local lastGITTindex = i - 1;
SortGathererInfo(GathererInfo_LastSearchSortType, false, "Search");
GathererInfo_Searchtotalcount:SetText(string.gsub(string.gsub(GATHERER_SEARCH_SUMMARY, "#", GI_totalCount), "&", lastGITTindex));
end
end
-- Add items in display frame
function GathererInfo_additem_searchtable(contName, gatherNumber, zoneName, typePercent, densityPercent, GIlocation, GIIndex)
if ( GIlocation < GATHERERINFO_TO_DISPLAY +1) then
getglobal("GathererInfo_SearchFrameButton"..GIlocation).gatherIndex = GIIndex;
getglobal("GathererInfo_SearchFrameButton"..GIlocation.."Type"):SetText(contName);
getglobal("GathererInfo_SearchFrameButton"..GIlocation.."Gatherable"):SetText(zoneName);
getglobal("GathererInfo_SearchFrameButton"..GIlocation.."Number"):SetText(gatherNumber);
getglobal("GathererInfo_SearchFrameButton"..GIlocation.."TypePercent"):SetText(typePercent);
getglobal("GathererInfo_SearchFrameButton"..GIlocation.."DensityPercent"):SetText(densityPercent);
getglobal("GathererInfo_SearchFrameButton"..GIlocation):Show();
end
end
-- ***********************************************************
-- Tab selection code
function ToggleGathererInfo_Dialog(tab)
local subFrame = getglobal(tab);
if ( subFrame ) then
PanelTemplates_SetTab(GathererInfo_DialogFrame, subFrame:GetID());
if ( GathererInfo_DialogFrame:IsVisible() ) then
PlaySound("igCharacterInfoTab");
GathererInfo_DialogFrame_ShowSubFrame(tab);
else
ShowUIPanel(GathererInfo_DialogFrame);
GathererInfo_DialogFrame_ShowSubFrame(tab);
end
end
end
function GathererInfo_DialogFrame_ShowSubFrame(frameName)
for index, value in GATHERERINFO_SUBFRAMES do
if ( value == frameName ) then
getglobal(value):Show()
else
getglobal(value):Hide();
end
end
end
function GathererInfoFrameTab_OnClick()
if ( this:GetName() == "GathererInfo_DialogFrameTab1" ) then
ToggleGathererInfo_Dialog("GathererInfo_ReportFrame");
elseif ( this:GetName() == "GathererInfo_DialogFrameTab2" ) then
ToggleGathererInfo_Dialog("GathererInfo_SearchFrame");
end
PlaySound("igCharacterInfoTab");
end