--[[ Functions: AtlasLoot:DewDropClick(tablename, text, tabletype, tabletype2) AtlasLoot:DewDropSubMenuClick(tablename) AtlasLoot:DewdropExpansionMenuClick(tablename, text) AtlasLoot_DefaultFrame_OnShow() AtlasLootDefaultFrame_OnHide() AtlasLoot:DewdropExpansionMenuRegister(loottable) AtlasLoot:DewdropSubMenuRegister(loottable) AtlasLoot:DewdropRegister() AtlasLoot:SetNewStyle(style) ]] --Include all needed libraries local AL = LibStub("AceLocale-3.0"):GetLocale("AtlasLoot"); local BabbleBoss = AtlasLoot_GetLocaleLibBabble("LibBabble-Boss-3.0") local BabbleFaction = AtlasLoot_GetLocaleLibBabble("LibBabble-Faction-3.0") local BabbleZone = AtlasLoot_GetLocaleLibBabble("LibBabble-Zone-3.0") --Load the 2 dewdrop menus AtlasLoot_Dewdrop = AceLibrary("Dewdrop-2.0"); AtlasLoot_DewdropSubMenu = AceLibrary("Dewdrop-2.0"); AtlasLoot_DewdropExpansionMenu = AceLibrary("Dewdrop-2.0"); ItemindexID = 2; AtlasLoot_Data["AtlasLootFallback"] = { EmptyInstance = {}; }; --[[ AtlasLootDefaultFrame_OnShow: Called whenever the loot browser is shown and sets up buttons and loot tables ]] function AtlasLootDefaultFrame_OnShow() --Definition of where I want the loot table to be shown --Remove the selection of a loot table in Atlas AtlasLootItemsFrame.activeBoss = nil; --Set the item table to the loot table --Show the last displayed loot table local lastboss = AtlasLoot.db.profile.LastBoss[AtlasLoot_Expac]; if AtlasLoot.db.profile.AutoCurrentInstance and AtlasLoot:ShowInstance() then return; elseif lastboss and lastboss[4] then ATLASLOOT_CURRENTTABLE = lastboss[5]; ATLASLOOT_LASTMODULE = lastboss[4]; AtlasLoot:IsLootTableAvailable(lastboss[4]); AtlasLoot:ShowItemsFrame(lastboss[1], "AtlasLoot_Data", lastboss[3]); AtlasLoot_DewdropSubMenu:Unregister(AtlasLootDefaultFrame_SubMenu); AtlasLoot:DewdropSubMenuRegister(AtlasLoot_SubMenus[lastboss[5]]); AtlasLoot:WishListOptionsRegister(); else AtlasLoot:ShowItemsFrame("EmptyTable", "AtlasLoot_Data", 1); end end -- Show the Instance you are in function AtlasLoot:ShowInstance() for i, v in pairs(AtlasLoot_SubMenus) do for n, t in ipairs(v) do if t[4] == BabbleZone[GetRealZoneText()] then ATLASLOOT_CURRENTTABLE = v.SubMenu; ATLASLOOT_LASTMODULE = v.Module; AtlasLoot:IsLootTableAvailable(ATLASLOOT_LASTMODULE); AtlasLoot:ShowItemsFrame(t[2], "AtlasLoot_Data", 1); AtlasLoot_DewdropSubMenu:Unregister(AtlasLootDefaultFrame_SubMenu); AtlasLoot:DewdropSubMenuRegister(AtlasLoot_SubMenus[ATLASLOOT_CURRENTTABLE]); AtlasLoot:WishListOptionsRegister(); return true; end end end end --[[ AtlasLootDefaultFrame_OnHide: When we close the loot browser, re-bind the item table to Atlas and close all Dewdrop menus ]] function AtlasLootDefaultFrame_OnHide() AtlasLoot_Dewdrop:Close(1); AtlasLoot_DewdropSubMenu:Close(1); AtlasLoot_DewdropExpansionMenu:Close(1); end --[[ AtlasLoot:DewDropClick(tablename, text, tabletype): tablename - Name of the loot table in the database text - Heading for the loot table Called when a button in AtlasLoot_Dewdrop is clicked ]] function AtlasLoot:DewDropClick(tablename, text, tablenum) ATLASLOOT_FILTER_ENABLE = false; ATLASLOOT_BACKENABLED = false; AtlasLootFilterCheck:SetChecked(false); tablename = tablename .. AtlasLoot_Expac; ATLASLOOT_CURRENTTABLE = tablename; tablenum = tablenum or 1; ATLASLOOT_LASTMODULE = AtlasLoot_SubMenus[tablename].Module; AtlasLootDefaultFrame_Menu:SetText(text); AtlasLoot:IsLootTableAvailable(AtlasLoot_SubMenus[tablename].Module); AtlasLoot_DewdropSubMenu:Unregister(AtlasLootDefaultFrame_SubMenu); AtlasLoot:DewdropSubMenuRegister(AtlasLoot_SubMenus[tablename]); local lasttable = AtlasLoot.db.profile[ATLASLOOT_CURRENTTABLE]; if lasttable then AtlasLoot:ShowItemsFrame(lasttable[1], lasttable[2], lasttable[3]); else AtlasLoot:ShowItemsFrame(AtlasLoot_SubMenus[tablename][tablenum][2], "AtlasLoot_Data", tablenum); end AtlasLoot_Dewdrop:Close(1); end --[[ AtlasLoot:DewDropSubMenuClick(tablename): tablename - Name of the loot table in the database text - Heading for the loot table Called when a button in AtlasLoot_DewdropSubMenu is clicked ]] function AtlasLoot:DewDropSubMenuClick(tablename) ATLASLOOT_BACKENABLED = false; --Show the select loot table local tablenum = AtlasLoot_Data[tablename].Loadfirst or 1; --Show the table that has been selected AtlasLoot:ShowItemsFrame(tablename, "AtlasLoot_Data", tablenum); AtlasLoot_DewdropSubMenu:Close(1); end --[[ AtlasLoot:DewdropExpansionMenuClick(expansion, name): expansion - expansion to load name - label for the expansion Called when a button in DewdropExpansionMenuClick is clicked ]] function AtlasLoot:DewdropExpansionMenuClick(expansion, name) ATLASLOOT_BACKENABLED = false; AtlasLootDefaultFrame_ExpansionMenu:SetText(name); AtlasLoot_DewdropExpansionMenu:Close(1); AtlasLoot_Expac = expansion; if ATLASLOOT_CURRENTTABLE then ATLASLOOT_CURRENTTABLE = AtlasLoot:CleandataID(ATLASLOOT_CURRENTTABLE, 1) .. AtlasLoot_Expac; AtlasLoot:IsLootTableAvailable(AtlasLoot_SubMenus[ATLASLOOT_CURRENTTABLE].Module); local tablename = AtlasLoot_SubMenus[ATLASLOOT_CURRENTTABLE][1][2]; local lasttable = AtlasLoot.db.profile[ATLASLOOT_CURRENTTABLE]; AtlasLoot_DewdropSubMenu:Unregister(AtlasLootDefaultFrame_SubMenu); AtlasLoot:DewdropSubMenuRegister(AtlasLoot_SubMenus[ATLASLOOT_CURRENTTABLE]); if lasttable then AtlasLoot:ShowItemsFrame(lasttable[1], lasttable[2], lasttable[3]); else local tablenum = AtlasLoot_Data[tablename].Loadfirst or 1; AtlasLoot:ShowItemsFrame(tablename, "AtlasLoot_Data", tablenum); end end end --[[ AtlasLoot:DewdropExpansionMenuRegister(): Adds expansion menu from expansion table in mainmenus.lua ]] function AtlasLoot:DewdropExpansionMenuRegister() AtlasLoot_DewdropExpansionMenu:Register(AtlasLootDefaultFrame_ExpansionMenu, 'point', function(parent) return "TOP", "BOTTOM" end, 'children', function(level, value) if AtlasLoot_ExpansionMenu then for k, v in ipairs(AtlasLoot_ExpansionMenu) do if type(v) == "table" then --If a link to show a expansion menu AtlasLoot_Dewdrop:AddLine( 'text', v[1], 'textR', 1, 'textG', 0.82, 'textB', 0, 'func', function(arg1, arg2, arg3) AtlasLoot:DewdropExpansionMenuClick(arg1, arg2, arg3) end, 'arg1', v[2], 'arg2', v[1], 'arg3', k, 'notCheckable', true ) end end end --Close button AtlasLoot_Dewdrop:AddLine( 'text', AL["Close Menu"], 'textR', 0, 'textG', 1, 'textB', 1, 'func', function() AtlasLoot_Dewdrop:Close() end, 'notCheckable', true ) end, 'dontHook', true ) end --[[ AtlasLoot:DewdropSubMenuRegister(loottable): loottable - Table defining the sub menu Generates the sub menu needed by passing a table of loot tables and titles ]] function AtlasLoot:DewdropSubMenuRegister(loottable) AtlasLoot_DewdropSubMenu:Register(AtlasLootDefaultFrame_SubMenu, 'point', function(parent) return "TOP", "BOTTOM" end, 'children', function(level, value) for k, v in pairs(loottable) do if type(v) == "table" then if v[3] == "Header" then AtlasLoot_DewdropSubMenu:AddLine( 'text', v[1], 'textR', 0.2, 'textG', 0.82, 'textB', 0.5, 'func', function(arg1) AtlasLoot:DewDropSubMenuClick(arg1) end, 'arg1', v[2], 'notCheckable', true ) else AtlasLoot_DewdropSubMenu:AddLine( 'text', AtlasLoot_Data[v[2]].Name, 'func', function(arg1, arg2) AtlasLoot:DewDropSubMenuClick(arg1) end, 'arg1', v[2], 'notCheckable', true ) end end end --Close button AtlasLoot_DewdropSubMenu:AddLine( 'text', AL["Close Menu"], 'textR', 0, 'textG', 1, 'textB', 1, 'func', function() AtlasLoot_DewdropSubMenu:Close() end, 'notCheckable', true ) end, 'dontHook', true ) end --[[ AtlasLoot:DewdropRegister: Constructs the main category menu from a tiered table ]] function AtlasLoot:DewdropRegister() AtlasLoot_Dewdrop:Register(AtlasLootDefaultFrame_Menu, 'point', function(parent) return "TOP", "BOTTOM" end, 'children', function(level, value) if AtlasLoot_Modules then for k, v in ipairs(AtlasLoot_Modules) do --If a link to show a submenu AtlasLoot_Dewdrop:AddLine( 'text', v[1], 'textR', 1, 'textG', 0.82, 'textB', 0, 'func', function(arg1, arg2, arg3) AtlasLoot:DewDropClick(arg1, arg2, arg3) end, 'arg1', v[2], 'arg2', v[1], 'arg3', v[3], 'notCheckable', true ) end end --Close button AtlasLoot_Dewdrop:AddLine( 'text', AL["Close Menu"], 'textR', 0, 'textG', 1, 'textB', 1, 'func', function() AtlasLoot_Dewdrop:Close() end, 'notCheckable', true ) end, 'dontHook', true ) end --[[ AtlasLoot:SetNewStyle: Create the new Default Frame style style = "new" style = "old" ]] function AtlasLoot:SetNewStyle(style) local buttons = { "AtlasLootDefaultFrame_Options", "AtlasLootDefaultFrame_LoadModules", "AtlasLootDefaultFrame_Menu", "AtlasLootDefaultFrame_SubMenu", "AtlasLootDefaultFrame_ExpansionMenu", "AtlasLootDefaultFrame_Preset1", "AtlasLootDefaultFrame_Preset2", "AtlasLootDefaultFrame_Preset3", "AtlasLootDefaultFrame_Preset4", "AtlasLootDefaultFrameSearchButton", "AtlasLootDefaultFrameSearchClearButton", "AtlasLootDefaultFrameLastResultButton", "AtlasLootDefaultFrameWishListButton", "AtlasLootDefaultFrameAdvancedSearchButton", "AtlasLootDefaultFrame_AdvancedSearchPanel_EquipButton", "AtlasLootDefaultFrame_AdvancedSearchPanel_EquipSubButton", "AtlasLootDefaultFrame_AdvancedSearchPanel_QualityButton", "AtlasLootDefaultFrame_AdvancedSearchPanel_SearchButton", "AtlasLootDefaultFrame_AdvancedSearchPanel_ClearButton", "AtlasLootDefaultFrame_MapButton", "AtlasLootDefaultFrame_MapSelectButton", "AtlasLootDefaultFrame_LoadInstanceButton", } if style == "new" then AtlasLootDefaultFrame_LootBackground:SetBackdrop({ bgFile = "Interface/AchievementFrame/UI-Achievement-StatsBackground" }); AtlasLootDefaultFrame_LootBackground:SetBackdropColor(1, 1, 1, 0.5); AtlasLootDefaultFrame:SetBackdrop({ bgFile = "Interface/AchievementFrame/UI-Achievement-AchievementBackground", edgeFile = "Interface/Tooltips/UI-Tooltip-Border", edgeSize = 16, insets = { left = 4, right = 4, top = 4, bottom = 4 } }); AtlasLootDefaultFrame:SetBackdropColor(1, 1, 1, 0.5) AtlasLootDefaultFrame:SetBackdropBorderColor(1, 0.675, 0.125, 1) AtlasLootDefaultFrameHeader:SetTexture("Interface\\AchievementFrame\\UI-Achievement-Alert-Background.blp") AtlasLootDefaultFrameHeader:SetTexCoord(0, 0.605, 0, 0.703) AtlasLootDefaultFrameHeader:SetWidth(299) AtlasLootDefaultFrameHeader:SetHeight(60) AtlasLootDefaultFrameHeader:SetPoint("TOP", AtlasLootDefaultFrame, "TOP", -3, 22) AtlasLootDefaultFrame_Options:SetNormalTexture("Interface/AchievementFrame/UI-Achievement-Category-Background") AtlasLootDefaultFrame_Options:SetHeight(24) AtlasLootDefaultFrame_Options:SetPushedTexture("Interface/AchievementFrame/UI-Achievement-Category-Background") AtlasLootDefaultFrame_Options:SetHeight(24) local function SetButtons(path) _G[path]:SetNormalTexture("Interface/AchievementFrame/UI-Achievement-Category-Background") _G[path]:SetHeight(24) _G[path]:SetPushedTexture("Interface/AchievementFrame/UI-Achievement-Category-Background") _G[path]:SetHeight(24) local tex = _G[path]:GetNormalTexture(); tex:SetTexCoord(0, 0.6640625, 0, 0.8); tex:SetHeight(32) local tex2 = _G[path]:GetPushedTexture(); tex2:SetTexCoord(0, 0.6640625, 0, 0.8); tex2:SetHeight(32) end for k, v in pairs(buttons) do SetButtons(v) end elseif style == "old" then AtlasLootDefaultFrame_LootBackground:SetBackdrop({ bgFile = "" }); AtlasLootDefaultFrame_LootBackground:SetBackdropColor(0, 0, 0.5, 0.5); AtlasLootDefaultFrame:SetBackdrop({ bgFile = "Interface/DialogFrame/UI-DialogBox-Background", edgeFile = "Interface/DialogFrame/UI-DialogBox-Border", edgeSize = 32, insets = { left = 11, right = 12, top = 12, bottom = 11 } }); AtlasLootDefaultFrame:SetBackdropColor(1, 1, 1, 1) AtlasLootDefaultFrame:SetBackdropBorderColor(1, 1, 1, 1) AtlasLootDefaultFrameHeader:SetTexture("Interface/DialogFrame/UI-DialogBox-Header") AtlasLootDefaultFrameHeader:SetTexCoord(0, 1, 0, 1) AtlasLootDefaultFrameHeader:SetWidth(425) AtlasLootDefaultFrameHeader:SetHeight(64) AtlasLootDefaultFrameHeader:SetPoint("TOP", AtlasLootDefaultFrame, "TOP", 0, 12) AtlasLootDefaultFrame_Options:SetNormalTexture("Interface/Buttons/UI-Panel-Button-Up") AtlasLootDefaultFrame_Options:SetHeight(20) AtlasLootDefaultFrame_Options:SetPushedTexture("Interface/Buttons/UI-Panel-Button-Down") AtlasLootDefaultFrame_Options:SetHeight(20) local function SetButtons(path) _G[path]:SetNormalTexture("Interface/Buttons/UI-Panel-Button-Up") _G[path]:SetHeight(20) _G[path]:SetPushedTexture("Interface/Buttons/UI-Panel-Button-Down") _G[path]:SetHeight(20) local tex = _G[path]:GetNormalTexture(); tex:SetTexCoord(0, 0.625, 0, 0.6875); tex:SetHeight(20) local tex2 = _G[path]:GetPushedTexture(); tex2:SetTexCoord(0, 0.625, 0, 0.6875); tex2:SetHeight(20) end for k, v in pairs(buttons) do SetButtons(v) end end end