initial commit
This commit is contained in:
Executable
+130
@@ -0,0 +1,130 @@
|
||||
local SUBFRAMES = {
|
||||
["FishingLocationsFrame"] = {
|
||||
["name"] = FishingBuddy.LOCATIONS_TAB,
|
||||
["tooltip"] = FishingBuddy.LOCATIONS_INFO,
|
||||
["toggle"] = "_LOC",
|
||||
["id"] = "1",
|
||||
},
|
||||
["FishingOutfitFrame"] = {
|
||||
["name"] = FishingBuddy.OUTFITS_TAB,
|
||||
["tooltip"] = FishingBuddy.OUTFITS_INFO,
|
||||
["toggle"] = "_OUT",
|
||||
["id"] = "2",
|
||||
},
|
||||
["FishingTrackingFrame"] = {
|
||||
["name"] = FishingBuddy.TRACKING_TAB,
|
||||
["tooltip"] = FishingBuddy.TRACKING_INFO,
|
||||
["toggle"] = "_TRK",
|
||||
["id"] = "3",
|
||||
},
|
||||
["FishingOptionsFrame"] = {
|
||||
["name"] = FishingBuddy.OPTIONS_TAB,
|
||||
["tooltip"] = FishingBuddy.OPTIONS_INFO,
|
||||
["toggle"] = "_OPT",
|
||||
["id"] = "4",
|
||||
}
|
||||
};
|
||||
|
||||
local function DisableSubFrame(frameName)
|
||||
for value,info in SUBFRAMES do
|
||||
if ( value == frameName ) then
|
||||
local id = info.id;
|
||||
local hideframe = string.format("FishingBuddyFrameTab%d", id);
|
||||
local f = getglobal(hideframe);
|
||||
if ( f ) then
|
||||
f:Hide();
|
||||
end
|
||||
id = id + 1;
|
||||
f = getglobal("FishingBuddyFrameTab"..id);
|
||||
if ( f ) then
|
||||
f:SetPoint("LEFT", hideframe, "LEFT", 0, 0)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
FishingBuddy.DisableSubFrame = DisableSubFrame;
|
||||
|
||||
local function ShowSubFrame(frameName)
|
||||
for value,_ in SUBFRAMES do
|
||||
local frame = getglobal(value);
|
||||
if ( frame ) then
|
||||
if ( value == frameName ) then
|
||||
frame:Show()
|
||||
else
|
||||
frame:Hide();
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function ToggleFishingBuddyFrame(tab)
|
||||
if ( tab == "FishingOutfitFrame" and not OutfitDisplayFrame_OnLoad and not FishingOutfitFrame:IsVisible() ) then
|
||||
return;
|
||||
end
|
||||
local subFrame = getglobal(tab);
|
||||
if ( subFrame ) then
|
||||
local id = subFrame:GetID();
|
||||
PanelTemplates_SetTab(FishingBuddyFrame, id);
|
||||
if ( FishingBuddyFrame:IsVisible() ) then
|
||||
if ( subFrame:IsVisible() ) then
|
||||
HideUIPanel(FishingBuddyFrame);
|
||||
else
|
||||
ShowSubFrame(tab);
|
||||
end
|
||||
else
|
||||
ShowUIPanel(FishingBuddyFrame);
|
||||
ShowSubFrame(tab);
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local TABFRAMES = {};
|
||||
function FishingBuddyFrameTab_OnClick()
|
||||
ToggleFishingBuddyFrame(TABFRAMES[this:GetName()]);
|
||||
PlaySound("igCharacterInfoTab");
|
||||
end
|
||||
|
||||
function FishingBuddyFrame_OnLoad()
|
||||
-- Act like Blizzard windows
|
||||
UIPanelWindows["FishingBuddyFrame"] = { area = "left", pushable = 999 };
|
||||
-- Close with escape key
|
||||
tinsert(UISpecialFrames, "FishingBuddyFrame");
|
||||
|
||||
-- Tab Handling code
|
||||
PanelTemplates_SetNumTabs(this, 4);
|
||||
PanelTemplates_SetTab(this, 1);
|
||||
|
||||
this:RegisterEvent("VARIABLES_LOADED");
|
||||
end
|
||||
|
||||
function FishingBuddyFrame_OnEvent(event)
|
||||
if ( event == "VARIABLES_LOADED" ) then
|
||||
-- set up mappings
|
||||
for frame,info in SUBFRAMES do
|
||||
local f = getglobal(frame);
|
||||
if ( f ) then
|
||||
f:SetID(info.id);
|
||||
|
||||
local tabname = "FishingBuddyFrameTab"..info.id;
|
||||
TABFRAMES[tabname] = frame;
|
||||
local tab = getglobal(tabname);
|
||||
tab:SetText(info.name);
|
||||
tab.tooltip = info.tooltip;
|
||||
tab.toggle = "TOGGLEFISHINGBUDDY"..info.toggle;
|
||||
else
|
||||
DisableSubFrame(frame);
|
||||
end
|
||||
end
|
||||
ToggleFishingBuddyFrame("FishingLocationsFrame");
|
||||
end
|
||||
end
|
||||
|
||||
function FishingBuddyFrame_OnShow()
|
||||
FishingBuddyFramePortrait:SetTexture("Interface\\LootFrame\\FishingLoot-Icon");
|
||||
FishingBuddyNameText:SetText(FishingBuddy.WINDOW_TITLE);
|
||||
UpdateMicroButtons();
|
||||
end
|
||||
|
||||
function FishingBuddyFrame_OnHide()
|
||||
UpdateMicroButtons();
|
||||
end
|
||||
Reference in New Issue
Block a user