------------------------------- -- Namespaces ------------------------------- local _, namespace = ... namespace.Config = {} local Config = namespace.Config local ConfigWin -------------------------------------- -- Defaults (usually a database!) -------------------------------------- local defaults = { theme = { r = 1, g = 0.4, b = 0, hex = "Ff6b00" } } ------------------------------- -- Event handlers ------------------------------- function Config:Toggle() local menu = ConfigWin or Config:CreateMenu() menu:SetShown(not menu:IsShown()) end function Config:GetThemeColor() local c = defaults.theme return c.r, c.g, c.b, c.hex end local function Tab_OnClick(self) local SelectedTab = PanelTemplates_GetSelectedTab(self:GetParent()) if (SelectedTab:GetID() ~= self:GetID()) then SelectedTab.content:Hide() end PanelTemplates_SetTab(self:GetParent(), self:GetID()) self.content:Show() end local function SetTabs (frame, numTabs, ...) frame.numTabs = numTabs local tabs = {} local frameName = frame:GetName() for i = 1, numTabs do local tab = CreateFrame("Button", frameName.."Tab"..i, frame, "CharacterFrameTabButtonTemplate") tab:SetID(i) tab:SetText(select(i, ...)) tab.SetScript("OnClick", Tab_OnClick) tab.content = CreateFrame("Frame", nil, ConfigWin) tab.content:SetSize(600, 300) tab.content:SetPoint("CENTER", tab, "CENTER") tab.content:Hide() if (i == 1) then tab:SetPoint("TOPLEFT", ConfigWin, "BOTTOMLEFT", 5, 7) else tab:SetPoint("TOPLEFT", _G[frameName.."Tab"..(i-1)], "TOPRIGHT", -14, 0) end end Tab_OnClick(_G[frameName.."Tab1"]) return unpack(tabs) end local function PopulateTabs(tab) ----------------------------- -- Wishlist frame ----------------------------- tab.WishlistFrame = CreateFrame("Frame", nil, tab, "InsetFrameTemplate") tab.WishlistFrame:SetSize(200, 200) tab.WishlistFrame:SetPoint("RIGHT", tab, "RIGHT", -15, 0) tab.WishlistFrame.title = tab.WishlistFrame:CreateFontString(nil, "OVERLAY") tab.WishlistFrame.title:SetFontObject("GameFontNormal") tab.WishlistFrame.title:SetPoint("CENTER", tab.WishlistFrame, "TOP", 0, 10) tab.WishlistFrame.title:SetText("Raid X " .. "wishlist:") ----------------------------- -- Wishlist frame buttons ----------------------------- -- Clear button tab.clearButton = CreateFrame("Button", nil, tab, "GameMenuButtonTemplate") tab.clearButton:SetPoint("CENTER", tab.WishlistFrame, "BOTTOMRIGHT", -30, -10) tab.clearButton:SetSize(60, 18) tab.clearButton:SetText("Clear") tab.clearButton:SetNormalFontObject("GameFontNormal") tab.clearButton:SetHighlightFontObject("GameFontHighlight") -- Delete button tab.delButton = CreateFrame("Button", nil, tab.clearButton, "GameMenuButtonTemplate") tab.delButton:SetPoint("TOPRIGHT", tab.clearButton, "TOPLEFT", -3, 0) tab.delButton:SetSize(60, 18) tab.delButton:SetText("Delete") tab.delButton:SetNormalFontObject("GameFontNormal") tab.delButton:SetHighlightFontObject("GameFontHighlight") ----------------------------- -- Item frame ----------------------------- tab.ItemFrame = CreateFrame("Frame", nil, tab, "InsetFrameTemplate") tab.ItemFrame:SetSize(200, 200) tab.ItemFrame:SetPoint("RIGHT", tab.WishlistFrame, "LEFT", -10, 0) tab.ItemFrame.title = tab.ItemFrame:CreateFontString(nil, "OVERLAY") tab.ItemFrame.title:SetFontObject("GameFontNormal") tab.ItemFrame.title:SetPoint("CENTER", tab.ItemFrame, "TOP", 0, 10) tab.ItemFrame.title:SetText("Raid drops") ----------------------------- -- Item frame search bar ----------------------------- tab.searchBar = CreateFrame("EditBox", nil, tab, "SearchBoxTemplate") tab.searchBar:SetPoint("BOTTOM", tab.ItemFrame, "BOTTOM", 2, -16) tab.searchBar:SetSize(195, 15) end ------------------------------- -- Config function ------------------------------- function Config:CreateMenu() ConfigWin = CreateFrame("Frame", "WLC_ConfigWin", UIParent, "BasicFrameTemplate") ConfigWin:SetSize(600, 300) ConfigWin:SetPoint("CENTER", UIParent, "CENTER") ConfigWin.title = ConfigWin:CreateFontString(nil, "OVERLAY", "GameFontHighlight") ConfigWin.title:SetPoint("CENTER", ConfigWin.TitleBg, "CENTER", 0, 1) ConfigWin.title:SetText("Wislist Lootcouncil v0.1") ----------------------------- -- Content anchor frame ----------------------------- --[[ local ContentAnchor = CreateFrame("Frame", nil, ConfigWin, "InsetFrameTemplate4") ContentAnchor:SetSize(600, 300) ContentAnchor:SetPoint("CENTER", ConfigWin, "CENTER") PopulateTabs(ContentAnchor) --]] local kara, gruul, magth = SetTabs(ConfigWin, 3, "Karazhan", "Gruul", "Magtheridon") PopulateTabs(kara.content) -- PopulateTabs(gruul) -- PopulateTabs(magth) ConfigWin:Hide() return ConfigWin end