Mercurial > wow > itemauditor
view Modules/Frames.lua @ 138:7d258c041b11
Fixed an issue with /ia invested that caused all items to display twice. This was introduced by the fix in Ticket 42.
At this point ItemAuditor watches mail for auctions sold or purchased, watches for buy/sell (money and 1 item type change) and conversions/tradeskills. Milling isn't working yet because there is too much time between the first event and the last event.
author | Asa Ayers <Asa.Ayers@Gmail.com> |
---|---|
date | Sat, 02 Oct 2010 20:34:07 -0700 |
parents | f37ab41f1928 |
children | fbfd9dfa6d2b |
line wrap: on
line source
local ItemAuditor = select(2, ...) local Frames = ItemAuditor:NewModule("Frames") local AceGUI = LibStub("AceGUI-3.0") local tabs = {} function Frames.RegisterTab(text, value, callback) tabs[value] = {text=text, callback=callback} end local displayFrame = false local currentContent = false local function switchTab(container, event, group) if tabs[group] == nil then error(format("Invaid tab name: %s", tostring(group))) end local cb = tabs[group].callback container:ReleaseChildren() if currentContent then currentContent:Hide() if displayFrame then displayFrame:SetStatusText('') end end currentContent = cb(container) end function Frames.CreateFrame(selectedTab) if not displayFrame then -- Create the frame container displayFrame = AceGUI:Create("Frame") ItemAuditor:RegisterFrame(displayFrame) local window = displayFrame.frame; -- I have no idea why AceGUI insists on using FULLSCREEN_DIALOG by default. window:SetFrameStrata("MEDIUM") displayFrame:SetTitle("ItemAuditor") displayFrame:SetStatusText("") displayFrame:SetLayout("Fill") window:SetHeight(500); local tabSet = {} for key, data in pairs(tabs) do tinsert(tabSet, {text=data['text'], value=key}) -- Default to the first tab. if not selectedTab then selectedTab = key end end -- Each tab can adjust the width as needed. window:SetWidth(300); displayFrame.tab = AceGUI:Create("TabGroup") displayFrame.tab:SetLayout("Flow") displayFrame.tab:SetTabs(tabSet) displayFrame.tab:SetCallback("OnGroupSelected", switchTab) displayFrame:AddChild(displayFrame.tab) end displayFrame.frame:Raise() if not selectedTab then for key in pairs(tabs) do selectedTab = key break end end displayFrame.tab:SelectTab(selectedTab) displayFrame:Show() end function Frames.UpdateStatusText(message) if displayFrame then displayFrame:SetStatusText(message) end end function ItemAuditor:UpdateStatusText(message) return Frames.UpdateStatusText(message) end function ItemAuditor:RegisterTab(text, value, callback) return Frames.RegisterTab(text, value, callback) end function ItemAuditor:CreateFrame(selectedTab) Frames.CreateFrame(selectedTab) end