local AL = LibStub("AceLocale-3.0"):GetLocale("AtlasLoot"); --Main AtlasLoot Frame local mainframe = CreateFrame("FRAME", "AtlasLootDefaultFrame", UIParent); mainframe:SetPoint("CENTER",0,0); mainframe:SetSize(880,690); mainframe:EnableMouse(true); mainframe:SetMovable(1); mainframe:SetFrameStrata("HIGH"); mainframe:RegisterForDrag("LeftButton"); mainframe:SetMovable(true); mainframe:EnableKeyboard(true) mainframe:Hide() mainframe:SetBackdrop({ bgFile = "Interface\\DialogFrame\\UI-DialogBox-Background", edgeFile = "Interface\\DialogFrame\\UI-DialogBox-Border", tile = "true", insets = {left = "11", right = "12", top = "12", bottom = "11"}, edgeSize = 32, titleSize = 32, }); mainframe:SetScript("OnShow", function() AtlasLootDefaultFrame_OnShow(); end); mainframe:SetScript("OnHide", function() AtlasLootDefaultFrame_OnHide() end) mainframe:SetScript("OnDragStart", function(self) self:StartMoving(); self.isMoving = true; end); mainframe:SetScript("OnDragStop", function(self) self:StopMovingOrSizing(); self.isMoving = false; end); mainframe.header = mainframe:CreateTexture("AtlasLootDefaultFrameHeader","ARTWORK"); mainframe.header:SetSize(425,64); mainframe.header:SetPoint("TOP",0,12); mainframe.header:SetTexture("Interface\\DialogFrame\\UI-DialogBox-Header"); mainframe.header.txt = mainframe:CreateFontString(nil,"ARTWORK","GameFontNormal"); mainframe.header.txt:SetPoint("TOP",0,-1); mainframe.header.txt:SetText(ATLASLOOT_VERSION); mainframe.header.notice = mainframe:CreateFontString("AtlasLootDefaultFrame_Notice","ARTWORK","GameFontNormal"); mainframe.header.notice:SetPoint("BOTTOM",0,17); --Loot Background local lootbground = CreateFrame("Frame", "AtlasLootDefaultFrame_LootBackground",AtlasLootDefaultFrame); lootbground:SetSize(540,515); lootbground:SetPoint("BOTTOMLEFT", AtlasLootDefaultFrame, "BOTTOMLEFT",40,90); lootbground.Back = lootbground:CreateTexture("AtlasLootDefaultFrame_LootBackground_Back", "BACKGROUND"); lootbground.Back:SetAllPoints(); lootbground.Back:SetPoint("TOPLEFT","AtlasLootDefaultFrame_LootBackground","TOPLEFT"); lootbground.Back:SetPoint("BOTTOMRIGHT","AtlasLootDefaultFrame_LootBackground","BOTTOMRIGHT"); lootbground:SetBackdropColor(0,0,0.5,0.5); lootbground:EnableMouse(); lootbground:SetScript("OnMouseDown",function(self, button) if _G["AtlasLootItemsFrame_BACK"]:IsVisible() and button == "RightButton" then AtlasLoot:BackButton_OnClick(); elseif AtlasLootDefaultFrame_AdvancedSearchPanel:IsVisible() and button == "RightButton" then AtlasLoot_AdvancedSearchClose(); end AtlasLoot_Dewdrop:Close(); AtlasLoot_DewdropSubMenu:Close(); AtlasLoot_DewdropExpansionMenu:Close(); AtlasLoot_WishListDrop:Close(); AtlasLoot_WishListOptions:Close(); end); ----------------------------------- Item Loot Panel ------------------------------------------- local itemframe = CreateFrame("Frame", "AtlasLootItemsFrame", AtlasLootDefaultFrame_LootBackground); itemframe:SetSize(535,510); itemframe:Hide(); itemframe:SetPoint("TOPLEFT", AtlasLootDefaultFrame_LootBackground, "TOPLEFT", 2, -2); itemframe.Label = itemframe:CreateFontString("AtlasLoot_BossName","OVERLAY","GameFontHighlightLarge"); itemframe.Label:SetPoint("TOP", "AtlasLootItemsFrame", "TOP"); itemframe.Label:SetSize(512,30); itemframe.Label:SetJustifyH("CENTER"); itemframe.Back = itemframe:CreateTexture("AtlasLootItemsFrame_Back", "BACKGROUND"); itemframe.Back:SetAllPoints(); itemframe.Back:SetPoint("TOPLEFT","AtlasLootDefaultFrame_LootBackground","TOPLEFT"); itemframe.Back:SetPoint("BOTTOMRIGHT","AtlasLootDefaultFrame_LootBackground","BOTTOMRIGHT"); itemframe:SetBackdropColor(0,0,0,0.7); itemframe:EnableMouseWheel(true); itemframe:SetScript("OnMouseWheel", function(self,delta) if AtlasLootItemsFrame_NEXT:IsVisible() and delta == -1 then AtlasLootItemsFrame_NEXT:Click(); end if AtlasLootItemsFrame_PREV:IsVisible() and delta == 1 then AtlasLootItemsFrame_PREV:Click(); end end); for num = 1, 30 do local button = CreateFrame("Button","AtlasLootItem_"..num, AtlasLootItemsFrame); button:SetID(num); button:SetSize(236,28); button:SetHighlightTexture("Interface\\QuestFrame\\UI-QuestTitleHighlight", "ADD"); button.icon = button:CreateTexture("AtlasLootItem_"..num.."_Icon","ARTWORK"); button.icon:SetSize(25,25); button.icon:SetPoint("TOPLEFT", "AtlasLootItem_"..num,"TOPLEFT",1,-1); button.name = button:CreateFontString("AtlasLootItem_"..num.."_Name","ARTWORK","GameFontNormal"); button.name:SetSize(205,12); button.name:SetPoint("TOPLEFT","AtlasLootItem_"..num.."_Icon","TOPRIGHT",3,0); button.name:SetJustifyH("LEFT"); button.extra = button:CreateFontString("AtlasLootItem_"..num.."_Extra","ARTWORK","GameFontNormal"); button.extra:SetSize(205,10); button.extra:SetPoint("TOPLEFT","AtlasLootItem_"..num.."_Name","BOTTOMLEFT",0,-1); button.extra:SetJustifyH("LEFT"); button:RegisterForClicks("AnyDown"); button.number = num; button:SetScript("OnEnter", function(self) AtlasLootItem_OnEnter(self) end); button:SetScript("OnLeave", function(self) AtlasLootItem_OnLeave(self) end); button:SetScript("OnClick", function(self, arg1) AtlasLootItem_OnClick(self, arg1) end); button.unsafe = button:CreateTexture("AtlasLootItem_"..num.."_Unsafe","BACKGROUND"); button.unsafe:Hide(); button.unsafe:SetSize(27,27); button.unsafe:SetPoint("TOPLEFT","AtlasLootItem_"..num,"TOPLEFT"); button.unsafe:SetVertexColor(1,0,0,1); if num == 1 then button:SetPoint("TOPLEFT", "AtlasLootItemsFrame", "TOPLEFT",25,-35); elseif num == 16 then button:SetPoint("TOPLEFT", "AtlasLootItem_1", "TOPRIGHT",0,0); else button:SetPoint("TOPLEFT", "AtlasLootItem_"..(num - 1), "BOTTOMLEFT"); end end -- LootInfo local lootinfo = CreateFrame("Frame", "AtlasLootInfo") lootinfo:SetSize(128,75); lootinfo.text1 = lootinfo:CreateFontString("AtlasLootInfo_Text1", "OVERLAY", "GameFontNormal"); lootinfo.text1:SetSize(180,10); lootinfo.text1:SetText("ATLASLOOT_VERSION"); lootinfo.text1:SetJustifyH("LEFT"); lootinfo.text1:SetPoint("TOPLEFT", "AtlasLootInfo", "TOPLEFT",0,25); lootinfo.text2 = lootinfo:CreateFontString("AtlasLootInfo_Text2", "OVERLAY", "GameFontNormal"); lootinfo.text2:SetSize(180,10); lootinfo.text2:SetJustifyH("LEFT"); lootinfo.text2:SetText(AL["Click boss name to view loot."]); lootinfo.text2:SetPoint("TOPLEFT", "AtlasLootInfo", "TOPLEFT",0,-2); -- Next Button local nextbtn = CreateFrame("Button", "AtlasLootItemsFrame_NEXT", AtlasLootItemsFrame); nextbtn:SetPoint("BOTTOMRIGHT", "AtlasLootItemsFrame", "BOTTOMRIGHT",-5,5); nextbtn:SetSize(32,32); nextbtn.texture = nextbtn:CreateTexture(nil, "BACKGROUND"); nextbtn.texture:SetTexture("Interface\\Buttons\\UI-PageButton-Background"); nextbtn.texture:SetSize(32,32); nextbtn.texture:SetPoint("CENTER",0,0); nextbtn:SetNormalTexture("Interface\\Buttons\\UI-SpellbookIcon-NextPage-Up"); nextbtn:SetPushedTexture("Interface\\Buttons\\UI-SpellbookIcon-NextPage-Down"); nextbtn:SetDisabledTexture("Interface\\Buttons\\UI-SpellbookIcon-NextPage-Disabled"); nextbtn:SetHighlightTexture("Interface\\Buttons\\UI-Common-MouseHilight", "ADD"); nextbtn:SetScript("OnClick", function(self) AtlasLoot:NavButton_OnClick(self) end) nextbtn:Hide(); -- Previous button local prevbtn = CreateFrame("Button", "AtlasLootItemsFrame_PREV", AtlasLootItemsFrame); prevbtn:SetPoint("BOTTOMLEFT", "AtlasLootItemsFrame", "BOTTOMLEFT",5,5); prevbtn:SetSize(32,32); prevbtn.texture = prevbtn:CreateTexture(nil, "BACKGROUND"); prevbtn.texture:SetTexture("Interface\\Buttons\\UI-PageButton-Background"); prevbtn.texture:SetSize(32,32); prevbtn.texture:SetPoint("CENTER",0,0); prevbtn:SetNormalTexture("Interface\\Buttons\\UI-SpellbookIcon-PrevPage-Up"); prevbtn:SetPushedTexture("Interface\\Buttons\\UI-SpellbookIcon-PrevPage-Down"); prevbtn:SetDisabledTexture("Interface\\Buttons\\UI-SpellbookIcon-PrevPage-Disabled"); prevbtn:SetHighlightTexture("Interface\\Buttons\\UI-Common-MouseHilight", "ADD"); prevbtn:SetScript("OnClick", function(self) AtlasLoot:NavButton_OnClick(self) end) prevbtn:Hide(); -- Back button local backbtn = CreateFrame("Button", "AtlasLootItemsFrame_BACK", AtlasLootItemsFrame, "OptionsButtonTemplate"); backbtn:SetPoint("BOTTOM", "AtlasLootItemsFrame", "BOTTOM",0,4); backbtn:SetText(AL["Back"]); backbtn:SetScript("OnClick", function(self) AtlasLoot:BackButton_OnClick() end) backbtn:Hide(); -- Wishlist Own/Swap button local swapbtn = CreateFrame("Button", "AtlasLootItemsFrame_Wishlist_Swap", AtlasLootItemsFrame, "OptionsButtonTemplate"); swapbtn:SetPoint("BOTTOM", "AtlasLootItemsFrame", "BOTTOM",50,4); swapbtn:SetScript("OnClick", function(self) AtlasLoot:WishListSwapButton("","","","","",self,true) end) swapbtn:Hide(); -- Wishlist Options button local optionsbtn = CreateFrame("Button", "AtlasLootItemsFrame_Wishlist_Options", AtlasLootItemsFrame, "OptionsButtonTemplate"); optionsbtn:SetPoint("BOTTOM", "AtlasLootItemsFrame_Wishlist_Swap", "BOTTOM",-100,0); optionsbtn:SetText(AL["Options"]); optionsbtn:SetScript("OnClick", function(self) if AtlasLoot_WishListOptions:IsOpen() then AtlasLoot_WishListOptions:Close(); else AtlasLoot_WishListOptions:Open(self); end end); optionsbtn:Hide(); -- Wishlist Item Lock button ATLASLOOT_ITEM_UNLOCK = false; local lockbtn = CreateFrame("Button", "AtlasLootItemsFrame_Wishlist_UnLock", AtlasLootItemsFrame, "OptionsButtonTemplate"); lockbtn:SetPoint("BOTTOM", "AtlasLootItemsFrame_Wishlist_Options", "BOTTOM",-100,0); lockbtn:SetScript("OnClick", function(self) if ATLASLOOT_ITEM_UNLOCK then ATLASLOOT_ITEM_UNLOCK = false; lockbtn:SetText("Locked"); else ATLASLOOT_ITEM_UNLOCK = true; lockbtn:SetText("UnLocked"); end end) lockbtn:SetScript("OnEnter", function(self) GameTooltip:ClearLines(); GameTooltip:SetOwner(self, "ANCHOR_RIGHT", -(self:GetWidth() / 2), 5); GameTooltip:AddLine("Toggle Item Moving"); GameTooltip:AddLine("Left Click to move item up"); GameTooltip:AddLine("Right Click to move item down"); GameTooltip:AddLine("Alt + Left Click to add a Custom Header"); GameTooltip:Show(); end); lockbtn:SetScript("OnLeave", function() if(GameTooltip:IsVisible()) then GameTooltip:Hide(); end end); lockbtn:SetText("Locked"); lockbtn:Hide(); -- Wishlist Share button local sharebtn = CreateFrame("Button", "AtlasLootItemsFrame_Wishlist_Share", AtlasLootItemsFrame, "OptionsButtonTemplate"); sharebtn:SetPoint("BOTTOM", "AtlasLootItemsFrame_Wishlist_Swap", "BOTTOM",100,0); sharebtn:SetText(AL["Share"]); sharebtn:SetScript("OnClick", function() AtlasLoot:ShareWishList() end) sharebtn:Hide(); -- Filter Button local filterbtn = CreateFrame("CheckButton","AtlasLootFilterCheck",AtlasLootItemsFrame,"OptionsCheckButtonTemplate"); filterbtn:SetPoint("BOTTOM", "AtlasLootItemsFrame", "BOTTOM",85 ,27); filterbtn.Label = filterbtn:CreateFontString("AtlasLootFilterCheckText","OVERLAY","GameFontNormal"); filterbtn.Label:SetText(AL["Filter"]); filterbtn.Label:SetPoint("RIGHT", AtlasLootFilterCheck, 30, 2); filterbtn:RegisterForClicks("LeftButtonDown","RightButtonDown"); filterbtn:SetScript("OnClick", function(self, btnclick) AtlasLoot_FilterEnableButton(self, btnclick) end); -- Quick Looks Button local looksbtn = CreateFrame("Button", "AtlasLootQuickLooksButton", AtlasLootItemsFrame); looksbtn:SetPoint("BOTTOM", "AtlasLootItemsFrame", "BOTTOM",58,28); looksbtn:SetSize(25,25); looksbtn.Label = looksbtn:CreateFontString("AtlasLoot_QuickLooks","OVERLAY","GameFontNormal"); looksbtn.Label:SetSize(200,25); looksbtn.Label:SetText(AL["Add to QuickLooks:"]); looksbtn.Label:SetPoint("LEFT", "AtlasLootQuickLooksButton", -125, 0); looksbtn.Label:SetJustifyH("LEFT"); looksbtn:SetNormalTexture("Interface\\Buttons\\UI-SpellbookIcon-NextPage-Up"); looksbtn:SetPushedTexture("Interface\\Buttons\\UI-SpellbookIcon-NextPage-Down"); looksbtn:SetDisabledTexture("Interface\\Buttons\\UI-SpellbookIcon-NextPage-Disabled"); looksbtn:SetHighlightTexture("Interface\\Buttons\\UI-Common-MouseHilight", "ADD"); looksbtn:SetScript("OnClick", function(self) AtlasLoot:ShowQuickLooks(self) end) looksbtn:SetScript("OnShow", function(self) if (AtlasLootItemsFrame.refresh) and ((AtlasLootItemsFrame.refresh[1] == "SearchResult") or (AtlasLootItemsFrame.refresh[1] == "WishList")) then self:Disable(); else self:Enable(); end end) looksbtn:Hide(); ------------------------------------ Buttons at the top of the frame --------------------------------------- --Close Button local closebtn = CreateFrame("Button", "AtlasLootDefaultFrame_CloseButton", AtlasLootDefaultFrame, "UIPanelCloseButton"); closebtn:SetPoint("TOPRIGHT", AtlasLootDefaultFrame, "TOPRIGHT",-10,-10); closebtn:SetScript("OnClick", function() AtlasLootDefaultFrame:Hide() end); --Load All Addon Moduels Button local loadModulebtn = CreateFrame("Button", "AtlasLootDefaultFrame_LoadModules", AtlasLootDefaultFrame, "OptionsButtonTemplate"); loadModulebtn:SetSize(105,20); loadModulebtn:SetPoint("TOPRIGHT", AtlasLootDefaultFrame, "TOPRIGHT",-38,-15); loadModulebtn:SetText(AL["Load Modules"]); loadModulebtn:SetScript("OnClick", function() AtlasLoot:LoadAllModules() end); --Options Button local optionsbtn = CreateFrame("Button", "AtlasLootDefaultFrame_Options", AtlasLootDefaultFrame, "OptionsButtonTemplate"); optionsbtn:SetSize(105,20); optionsbtn:SetPoint("TOPLEFT", AtlasLootDefaultFrame, "TOPLEFT",40,-15); optionsbtn:SetText(AL["Options"]); optionsbtn:SetScript("OnClick", function() AtlasLootOptions_Toggle() end); --Moduel Menu Button local menubtn = CreateFrame("Button", "AtlasLootDefaultFrame_Menu", AtlasLootDefaultFrame, "OptionsButtonTemplate"); menubtn:SetSize(174,25); menubtn:SetPoint("TOPLEFT", AtlasLootDefaultFrame, "TOPLEFT",38,-55); menubtn.Lable = menubtn:CreateFontString("AtlasLootDefaultFrame_SelectedCategory", "OVERLAY","GameFontNormal") menubtn.Lable:SetPoint("TOP",menubtn,"BOTTOM",0,37); menubtn.Lable:SetText("Select Module"); menubtn.Lable:Show(); menubtn:SetText(AL["Select Loot Table"]); menubtn:SetScript("OnClick", function(self) if AtlasLoot_Dewdrop:IsOpen() then AtlasLoot_Dewdrop:Close(); else AtlasLoot_Dewdrop:Open(self); end end); --SubMenu Button local submenubtn = CreateFrame("Button", "AtlasLootDefaultFrame_SubMenu", AtlasLootDefaultFrame, "OptionsButtonTemplate"); submenubtn:SetSize(200,25); submenubtn:SetPoint("LEFT", "AtlasLootDefaultFrame_Menu", "RIGHT",0,0); submenubtn.Lable = submenubtn:CreateFontString("AtlasLootDefaultFrame_SelectedTable", "OVERLAY","GameFontNormal") submenubtn.Lable:SetPoint("TOP","AtlasLootDefaultFrame_SubMenu","BOTTOM",0,37); submenubtn.Lable:SetText("Select Subcategory"); submenubtn.Lable:Show(); submenubtn.Text = submenubtn:CreateFontString("AtlasLootDefaultFrame_SubMenuText", "OVERLAY","GameFontNormal") submenubtn.Text:SetPoint("LEFT","AtlasLootDefaultFrame_SubMenu","RIGHT",0,0); submenubtn.Text:SetJustifyH("CENTER"); submenubtn.Text:SetSize(190,25); submenubtn.Text:Show(); submenubtn:SetScript("OnClick", function(self) if AtlasLoot_DewdropSubMenu:IsOpen() then AtlasLoot_DewdropSubMenu:Close(); else AtlasLoot_DewdropSubMenu:Open(self); end end); --Expansion Menu Button local expansionmenubtn = CreateFrame("Button", "AtlasLootDefaultFrame_ExpansionMenu", AtlasLootDefaultFrame, "OptionsButtonTemplate"); expansionmenubtn:SetSize(174,25); expansionmenubtn:SetPoint("LEFT", "AtlasLootDefaultFrame_SubMenu", "RIGHT",0,0); expansionmenubtn:SetText(AtlasLoot_ExpansionMenu[GetAccountExpansionLevel()+1][1]); expansionmenubtn.Lable = expansionmenubtn:CreateFontString("AtlasLootDefaultFrame_SelectedTable2", "OVERLAY","GameFontNormal") expansionmenubtn.Lable:SetPoint("TOP",expansionmenubtn,"BOTTOM",0,37); expansionmenubtn.Lable:SetText("Select Expansion"); expansionmenubtn.Lable:Show(); expansionmenubtn:SetScript("OnClick", function(self) if AtlasLoot_DewdropExpansionMenu:IsOpen() then AtlasLoot_DewdropExpansionMenu:Close(); else AtlasLoot_DewdropExpansionMenu:Open(self); end end); ---------------------------------------- Buttons Under the loot and subtable frames ------------------------------------------- --Wish List Button local wishbtn = CreateFrame("Button", "AtlasLootDefaultFrameWishListButton", AtlasLootDefaultFrame, "OptionsButtonTemplate"); wishbtn:SetPoint("BOTTOMLEFT", "AtlasLootDefaultFrame", "BOTTOMLEFT", 40, 63); wishbtn:SetSize(105,20); wishbtn:RegisterForClicks("LeftButtonDown","RightButtonDown"); wishbtn:SetScript("OnClick", function(self, btnclick)AtlasLoot:WishListButton("","","","","",self,true,btnclick) end); wishbtn:SetText(AL["Wishlist"]); wishbtn:SetScript("OnEnter", function(self) GameTooltip:ClearLines(); GameTooltip:SetOwner(self, "ANCHOR_RIGHT", -(self:GetWidth() / 2), 5); GameTooltip:AddLine("Right Click For Menu"); GameTooltip:Show(); end); wishbtn:SetScript("OnLeave", function() if(GameTooltip:IsVisible()) then GameTooltip:Hide(); end end); --Quick Look Buttons local function presetcreate(preset,num) preset:SetSize(105,20); preset:SetScript("OnEnter", function(self) if self:IsEnabled() then GameTooltip:ClearLines(); GameTooltip:SetOwner(self, "ANCHOR_RIGHT", -(self:GetWidth() / 2), 5); GameTooltip:AddLine(AtlasLootCharDB["QuickLooks"][num][6]); GameTooltip:Show(); end end); preset:SetScript("OnLeave", function() if(GameTooltip:IsVisible()) then GameTooltip:Hide(); end end); preset:SetScript("OnClick", function() if AtlasLoot:IsLootTableAvailable(AtlasLootCharDB["QuickLooks"][num][4]) then ATLASLOOT_LASTMODULE = AtlasLootCharDB["QuickLooks"][num][4]; ATLASLOOT_CURRENTTABLE = AtlasLootCharDB["QuickLooks"][num][5]; if AtlasLootCharDB["QuickLooks"][num][2] == "AtlasLootWishList" then AtlasLoot:ShowWishList(AtlasLootCharDB["QuickLooks"][num][1], AtlasLootCharDB["QuickLooks"][num][3]); else AtlasLoot:ShowItemsFrame(AtlasLootCharDB["QuickLooks"][num][1], AtlasLootCharDB["QuickLooks"][num][2], AtlasLootCharDB["QuickLooks"][num][3]); end end end); preset:SetScript("OnShow", function(self) self:SetText(AL["QuickLook"].." "..num); if ((not AtlasLootCharDB["QuickLooks"][num]) or (not AtlasLootCharDB["QuickLooks"][num][1])) or (AtlasLootCharDB["QuickLooks"][num][1]==nil) then self:Disable(); end end); end --QuickLook Button 1 local presetsize = 3.75; local preset1 = CreateFrame("Button", "AtlasLootDefaultFrame_Preset1", AtlasLootDefaultFrame, "OptionsButtonTemplate"); presetcreate(preset1,1); preset1:SetPoint("LEFT", AtlasLootDefaultFrameWishListButton, "RIGHT", presetsize, 0); --QuickLook Button 2 local preset2 = CreateFrame("Button", "AtlasLootDefaultFrame_Preset2", AtlasLootDefaultFrame, "OptionsButtonTemplate"); presetcreate(preset2,2); preset2:SetPoint("LEFT", "AtlasLootDefaultFrame_Preset1", "RIGHT", presetsize, 0); --QuickLook Button 3 local preset3 = CreateFrame("Button", "AtlasLootDefaultFrame_Preset3", AtlasLootDefaultFrame, "OptionsButtonTemplate"); presetcreate(preset3,3); preset3:SetPoint("LEFT", "AtlasLootDefaultFrame_Preset2", "RIGHT", presetsize, 0); --QuickLook Button 4 local preset4 = CreateFrame("Button", "AtlasLootDefaultFrame_Preset4", AtlasLootDefaultFrame, "OptionsButtonTemplate"); presetcreate(preset4,4); preset4:SetPoint("LEFT", "AtlasLootDefaultFrame_Preset3", "RIGHT", presetsize, 0); --Search Edit Box local searchbox = CreateFrame("EditBox","AtlasLootDefaultFrameSearchBox",AtlasLootDefaultFrame,"InputBoxTemplate"); searchbox:SetSize(190,32); searchbox:SetMaxLetters(100); searchbox:SetAutoFocus(false); searchbox:SetPoint("TOPLEFT",AtlasLootDefaultFrameWishListButton,"BOTTOMLEFT",7,-3) searchbox:SetTextInsets(0, 8, 0, 0); searchbox:SetScript("OnEnterPressed", function(self) AtlasLoot:Search(self:GetText()); self:ClearFocus(); end) local fstring = searchbox:CreateFontString("AtlasLootDefaultFrameSearchString", "ARTWORK", "GameFontNormal"); --Search Button local searchbtn = CreateFrame("Button","AtlasLootDefaultFrameSearchButton",AtlasLootDefaultFrame,"UIPanelButtonTemplate2"); searchbtn:SetSize(69,32); searchbtn:SetPoint("LEFT","AtlasLootDefaultFrameSearchBox","RIGHT",2,0); searchbtn:SetText(AL["Search"]); searchbtn:SetScript("OnClick", function() AtlasLoot:Search(AtlasLootDefaultFrameSearchBox:GetText()); AtlasLootDefaultFrameSearchBox:ClearFocus(); end); --Search Options Button local searchopt = CreateFrame("Button", "AtlasLootDefaultFrameSearchOptionsButton", AtlasLootDefaultFrameSearchButton); searchopt:SetSize(28,28); searchopt:SetPoint("LEFT","AtlasLootDefaultFrameSearchButton","RIGHT",-5,0); searchopt:SetNormalTexture("Interface\\Buttons\\UI-SpellbookIcon-NextPage-Up"); searchopt:SetPushedTexture("Interface\\Buttons\\UI-SpellbookIcon-NextPage-Down"); searchopt:SetDisabledTexture("Interface\\Buttons\\UI-SpellbookIcon-NextPage-Disabled"); searchopt:SetHighlightTexture("Interface\\Buttons\\UI-Common-MouseHilight","ADD"); searchopt:SetScript("OnClick", function(self) AtlasLoot:ShowSearchOptions(self) end) --Clear Search Button local searchclear = CreateFrame("Button","AtlasLootDefaultFrameSearchClearButton",AtlasLootDefaultFrameSearchBox,"UIPanelButtonTemplate2"); searchclear:SetSize(58,32); searchclear:SetPoint("LEFT",AtlasLootDefaultFrameSearchOptionsButton,"RIGHT",-2,0); searchclear:SetText(AL["Clear"]); searchclear:SetScript("OnClick", function() AtlasLootDefaultFrameSearchBox:SetText(""); AtlasLootDefaultFrameSearchBox:ClearFocus(); end); --Last Result Button local lastresult = CreateFrame("Button","AtlasLootDefaultFrameLastResultButton",AtlasLootDefaultFrameSearchBox,"UIPanelButtonTemplate2"); lastresult:SetSize(100,32); lastresult:SetPoint("LEFT",AtlasLootDefaultFrameSearchClearButton,"RIGHT",1,0); lastresult:SetText(AL["Last Result"]); lastresult:SetScript("OnClick", function() AtlasLoot:ShowSearchResult() end); -- Advanced Search Button local advSearch = CreateFrame("Button","AtlasLootDefaultFrameAdvancedSearchButton", AtlasLootDefaultFrame,"UIPanelButtonTemplate2"); advSearch:SetSize(95,32); advSearch:SetPoint("LEFT",AtlasLootDefaultFrameLastResultButton,"RIGHT",2); advSearch:SetText("Advanced"); advSearch:SetScript("OnClick", function() AtlasLoot_AdvancedSearchShow(); AtlasLootDefaultFrameSearchBox:ClearFocus(); end) --------------------- Diffcuility ScrollFrame ---------------------------------- local ROW_HEIGHT = 16; -- How tall is each row? local MAX_ROWS = 5; -- How many rows can be shown at once? local scrollFrame = CreateFrame("Frame", "Atlasloot_Difficulty_ScrollFrame", AtlasLootDefaultFrame); scrollFrame:EnableMouse(true); scrollFrame:SetSize(265, ROW_HEIGHT * MAX_ROWS + 16); scrollFrame:SetPoint("LEFT","AtlasLootDefaultFrame_ExpansionMenu","RIGHT",0,-39); scrollFrame:SetBackdrop({ bgFile = "Interface\\DialogFrame\\UI-DialogBox-Background", tile = true, tileSize = 16, edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", edgeSize = 16, insets = { left = 4, right = 4, top = 4, bottom = 4 }, }); scrollFrame.Lable = scrollFrame:CreateFontString("Atlasloot_HeaderLabel", "OVERLAY","GameFontNormal") scrollFrame.Lable:SetPoint("TOPLEFT",Atlasloot_Difficulty_ScrollFrame,10,-10); scrollFrame.Lable:SetJustifyH("LEFT"); scrollFrame.Lable:SetFont("GameFontNormal", 24); function AtlasLoot:ScrollFrameUpdate(hide,wishlist) local maxValue,offset,row,value; scrollFrame.wishList = nil; if wishlist then scrollFrame.wishList = wishlist; maxValue = #AtlasLootWishList[wishlist]; FauxScrollFrame_Update(scrollFrame.scrollBar, maxValue, MAX_ROWS, ROW_HEIGHT); offset = FauxScrollFrame_GetOffset(scrollFrame.scrollBar); for i = 1, MAX_ROWS do value = i + offset scrollFrame.rows[i]:SetChecked(false); scrollFrame.rows[i]:SetHighlightTexture("Interface\\QuestFrame\\UI-QuestTitleHighlight", "ADD"); if value <= maxValue and AtlasLootWishList[wishlist][value] then row = scrollFrame.rows[i] row:SetText("|cffFFd200"..AtlasLootWishList[wishlist][value].Name); row.itemIndex = value; if row.itemIndex == ATLASLOOT_CURRENT_WISHLIST_NUM then row:SetChecked(true); end row:Show() else scrollFrame.rows[i]:Hide() end end elseif AtlasLoot_Difficulty then maxValue = #AtlasLoot_Difficulty[ATLASLOOT_CURRENTTYPE]; FauxScrollFrame_Update(scrollFrame.scrollBar, maxValue, MAX_ROWS, ROW_HEIGHT); offset = FauxScrollFrame_GetOffset(scrollFrame.scrollBar); for i = 1, MAX_ROWS do value = i + offset scrollFrame.rows[i]:SetChecked(false); scrollFrame.rows[i]:SetHighlightTexture("Interface\\QuestFrame\\UI-QuestTitleHighlight", "ADD"); if value <= maxValue and AtlasLoot_Difficulty[ATLASLOOT_CURRENTTYPE][value] and hide == nil then row = scrollFrame.rows[i] row:SetText("|cffFFd200"..AtlasLoot_Difficulty[ATLASLOOT_CURRENTTYPE][value][1]); row.itemIndex = AtlasLoot_Difficulty[ATLASLOOT_CURRENTTYPE][value][2]; if row.itemIndex == ItemindexID then row:SetChecked(true); end row:Show() else scrollFrame.rows[i]:Hide() end end end end local scrollSlider = CreateFrame("ScrollFrame","AtlasLootDefaultFrameScroll", Atlasloot_Difficulty_ScrollFrame, "FauxScrollFrameTemplate"); scrollSlider:SetPoint("TOPLEFT", 0, -8); scrollSlider:SetPoint("BOTTOMRIGHT", -30, 8); scrollSlider:SetScript("OnVerticalScroll", function(self, offset) self.offset = math.floor(offset / ROW_HEIGHT + 0.5); if scrollFrame.wishList then AtlasLoot:ScrollFrameUpdate(nil,scrollFrame.wishList); else AtlasLoot:ScrollFrameUpdate(); end end) scrollSlider:SetScript("OnShow", function() if scrollFrame.wishList then AtlasLoot:ScrollFrameUpdate(nil,scrollFrame.wishList); else AtlasLoot:ScrollFrameUpdate(); end end) scrollFrame.scrollBar = scrollSlider local rows = setmetatable({}, { __index = function(t, i) local row = CreateFrame("CheckButton", "$parentRow"..i, Atlasloot_Difficulty_ScrollFrame) row:SetSize(230, ROW_HEIGHT); row:SetFrameStrata("HIGH"); row:SetNormalFontObject(GameFontHighlightLeft); row:SetCheckedTexture("Interface\\QuestFrame\\UI-QuestTitleHighlight", "ADD"); row:SetScript("OnClick", function() if scrollFrame.wishList then AtlasLoot:ShowWishList(scrollFrame.wishList,row.itemIndex); AtlasLoot_CurrentWishList["Show"].ListNum = row.itemIndex; AtlasLoot:ScrollFrameUpdate(nil,scrollFrame.wishList); else ItemindexID = row.itemIndex; if not AtlasLootDefaultFrame_AdvancedSearchPanel:IsVisible() then AtlasLoot:ShowItemsFrame(AtlasLootItemsFrame.refresh[1], AtlasLootItemsFrame.refresh[2], AtlasLootItemsFrame.refresh[3]); end AtlasLoot:ScrollFrameUpdate(); end end) if i == 1 then row:SetPoint("TOPLEFT", scrollFrame, 8, -8) else row:SetPoint("TOPLEFT", scrollFrame.rows[i-1], "BOTTOMLEFT") end rawset(t, i, row) return row end }) scrollFrame.rows = rows local MAX_ROWS2 = 26; -- How many rows can be shown at once? --------------------Subtable Frame-------------------- local subtableFrame = CreateFrame("Frame", "Atlasloot_SubTableFrame", AtlasLootDefaultFrame); subtableFrame:EnableMouse(true); subtableFrame:SetSize(265, ROW_HEIGHT * MAX_ROWS2 + 23); subtableFrame:SetPoint("BOTTOMLEFT","Atlasloot_Difficulty_ScrollFrame",0,-446); subtableFrame:SetBackdrop({ bgFile = "Interface\\DialogFrame\\UI-DialogBox-Background", tile = true, tileSize = 16, edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", edgeSize = 16, insets = { left = 4, right = 4, top = 4, bottom = 4 }, }); function AtlasLoot:SubTableScrollFrameUpdate(tablename, dataSource, tablenum) local maxValue = #_G[dataSource][tablename]; subtableFrame.tablename = tablename; subtableFrame.dataSource = dataSource; subtableFrame.tablenum = tablenum; FauxScrollFrame_Update(subtableFrame.scrollBar, maxValue, MAX_ROWS2, ROW_HEIGHT); local offset = FauxScrollFrame_GetOffset(subtableFrame.scrollBar); for i = 1, MAX_ROWS2 do local value = i + offset subtableFrame.rows[i]:SetChecked(false); subtableFrame.rows[i]:SetHighlightTexture("Interface\\QuestFrame\\UI-QuestTitleHighlight", "ADD"); if value <= maxValue and _G[dataSource][tablename][value] and tablename ~= "SearchMENU" then local row = subtableFrame.rows[i] row.dataSource = dataSource; row.tablename = tablename; row.tablenum = value; if dataSource == "AtlasLoot_MapData" then row.Text:SetText(_G[dataSource][tablename][value][1]); row:SetScript("OnEnter", function(self) GameTooltip:SetOwner(self, "ANCHOR_TOP"); GameTooltip:SetText(_G[dataSource][tablename][value][1]); GameTooltip:Show(); end) row:SetScript("OnLeave", function() GameTooltip:Hide() end) else row.Text:SetText("|cffFFd200".._G[dataSource][tablename][value].Name); row:SetScript("OnEnter", function(self) GameTooltip:Hide(); end) if tablenum == value and dataSource ~= "AtlasLoot_MapData" then row:SetChecked(true); end end row:Show(); else subtableFrame.rows[i]:Hide(); end end end local scrollSlider2 = CreateFrame("ScrollFrame","AtlasLootDefaultFrameSubTableScroll",Atlasloot_SubTableFrame,"FauxScrollFrameTemplate"); scrollSlider2:SetPoint("TOPLEFT", 0, -8) scrollSlider2:SetPoint("BOTTOMRIGHT", -30, 8) scrollSlider2:SetScript("OnVerticalScroll", function(self, offset) self.offset = math.floor(offset / ROW_HEIGHT + 0.5) AtlasLoot:SubTableScrollFrameUpdate(subtableFrame.tablename, subtableFrame.dataSource, subtableFrame.tablenum); end) subtableFrame.scrollBar = scrollSlider2 local rows2 = setmetatable({}, { __index = function(t, i) local row = CreateFrame("CheckButton", "$parentRow"..i, Atlasloot_SubTableFrame) row:SetSize(230, ROW_HEIGHT); row:SetFrameStrata("HIGH"); row:SetNormalFontObject(GameFontHighlightLeft); row:SetCheckedTexture("Interface\\QuestFrame\\UI-QuestTitleHighlight", "ADD"); row.Text = row:CreateFontString("$parentRow"..i.."Text","OVERLAY","GameFontNormal"); row.Text:SetSize(230, ROW_HEIGHT); row.Text:SetPoint("LEFT",row); row.Text:SetJustifyH("LEFT"); row:SetScript("OnClick", function() if row.dataSource ~= "AtlasLoot_MapData" then AtlasLoot:ShowItemsFrame(row.tablename, row.dataSource, row.tablenum); else row:SetChecked(false); end end) if i == 1 then row:SetPoint("TOPLEFT", subtableFrame, 8, -8) else row:SetPoint("TOPLEFT", subtableFrame.rows[i-1], "BOTTOMLEFT") end rawset(t, i, row) return row end }) subtableFrame.rows = rows2 --------------------------------- Atlas Map and map buttons ----------------------------------------------- --Atlas Map local map = CreateFrame("Frame", "AtlasLootDefaultFrame_Map", AtlasLootDefaultFrame); map:SetSize(540,515); map:SetPoint("BOTTOMLEFT", AtlasLootDefaultFrame, "BOTTOMLEFT",40,90); map:SetFrameStrata("HIGH"); map:Hide(); map:EnableMouse(); map:SetScript("OnMouseDown", function(self, button) if button == "RightButton" then AtlasLoot:MapOnShow(); end end); -- Map Button local mapbtn = CreateFrame("Button","AtlasLootDefaultFrame_MapButton", AtlasLootDefaultFrame,"OptionsButtonTemplate"); mapbtn:SetSize(90,24); mapbtn:SetPoint("BOTTOMLEFT",Atlasloot_SubTableFrame,0,-27.5); mapbtn:SetText("Map"); mapbtn:SetScript("OnClick", function() AtlasLoot:MapOnShow(); end) -- Map Select Button local mapSelbtn = CreateFrame("Button","AtlasLootDefaultFrame_MapSelectButton", AtlasLootDefaultFrame,"OptionsButtonTemplate"); mapSelbtn:SetSize(180,24); mapSelbtn:SetPoint("BOTTOMRIGHT",Atlasloot_SubTableFrame,5,-27.5); mapSelbtn:SetScript("OnClick", function(self) if AtlasLoot_MapMenu:IsOpen() then AtlasLoot_MapMenu:Close(); else AtlasLoot_MapMenu:Open(self); end end); mapSelbtn:SetText("No Map"); -- Load Current Instance Button local currentInstance = CreateFrame("Button","AtlasLootDefaultFrame_LoadInstanceButton", AtlasLootDefaultFrame,"OptionsButtonTemplate"); currentInstance:SetSize(283,24); currentInstance:SetPoint("BOTTOMRIGHT",Atlasloot_SubTableFrame,10,-58); currentInstance:SetScript("OnClick", function() AtlasLoot:ShowInstance(); end) currentInstance:SetText("Load Current Instance");