Mercurial > wow > itemauditor
comparison Modules/DisplayInvested.lua @ 58:bdf3aba93aa9
Refactored the way the window for /ia invested works so I can add more tabs.
| author | Asa Ayers <Asa.Ayers@Gmail.com> |
|---|---|
| date | Sun, 25 Jul 2010 15:51:00 -0700 |
| parents | 5e981c1df761 |
| children | 4ec321eb0dfe |
comparison
equal
deleted
inserted
replaced
| 57:9cb0bc93ed11 | 58:bdf3aba93aa9 |
|---|---|
| 7 local priceTypeEach = 1 | 7 local priceTypeEach = 1 |
| 8 local priceTypeTotal = 2 | 8 local priceTypeTotal = 2 |
| 9 | 9 |
| 10 local promptFrame = false | 10 local promptFrame = false |
| 11 | 11 |
| 12 -- Copied from QuickAuctions | 12 local validateMoney = ItemAuditor.validateMoney |
| 13 local function validateMoney(value) | 13 local parseMoney = parseMoney |
| 14 local gold = tonumber(string.match(value, "([0-9]+)|c([0-9a-fA-F]+)g|r") or string.match(value, "([0-9]+)g")) | 14 |
| 15 local silver = tonumber(string.match(value, "([0-9]+)|c([0-9a-fA-F]+)s|r") or string.match(value, "([0-9]+)s")) | |
| 16 local copper = tonumber(string.match(value, "([0-9]+)|c([0-9a-fA-F]+)c|r") or string.match(value, "([0-9]+)c")) | |
| 17 | |
| 18 if( not gold and not silver and not copper ) then | |
| 19 return false; | |
| 20 -- return L["Invalid monney format entered, should be \"#g#s#c\", \"25g4s50c\" is 25 gold, 4 silver, 50 copper."] | |
| 21 end | |
| 22 | |
| 23 return true | |
| 24 end | |
| 25 | |
| 26 -- Copied from QuickAuctions | |
| 27 local function parseMoney(value) | |
| 28 local gold = tonumber(string.match(value, "([0-9]+)|c([0-9a-fA-F]+)g|r") or string.match(value, "([0-9]+)g")) | |
| 29 local silver = tonumber(string.match(value, "([0-9]+)|c([0-9a-fA-F]+)s|r") or string.match(value, "([0-9]+)s")) | |
| 30 local copper = tonumber(string.match(value, "([0-9]+)|c([0-9a-fA-F]+)c|r") or string.match(value, "([0-9]+)c")) | |
| 31 | |
| 32 -- Convert it all into copper | |
| 33 return (copper or 0) + ((gold or 0) * COPPER_PER_GOLD) + ((silver or 0) * COPPER_PER_SILVER) | |
| 34 | |
| 35 end | |
| 36 | 15 |
| 37 StaticPopupDialogs["ItemAuditor_NewPrice"] = { | 16 StaticPopupDialogs["ItemAuditor_NewPrice"] = { |
| 38 text = "New price %s %s", | 17 text = "New price %s %s", |
| 39 button1 = SAVE, | 18 button1 = SAVE, |
| 40 button2 = CANCEL, | 19 button2 = CANCEL, |
| 129 local investedTable = false | 108 local investedTable = false |
| 130 local function ShowInvested(container) | 109 local function ShowInvested(container) |
| 131 if investedTable == false then | 110 if investedTable == false then |
| 132 local window = container.frame | 111 local window = container.frame |
| 133 investedTable = ScrollingTable:CreateST(investedCols, 23, nil, nil, window) | 112 investedTable = ScrollingTable:CreateST(investedCols, 23, nil, nil, window) |
| 113 | |
| 114 | |
| 115 | |
| 134 investedTable.frame:SetPoint("BOTTOMLEFT",window, 10,10) | 116 investedTable.frame:SetPoint("BOTTOMLEFT",window, 10,10) |
| 135 investedTable.frame:SetPoint("TOP", window, 0, -60) | 117 investedTable.frame:SetPoint("TOP", window, 0, -60) |
| 136 investedTable.frame:SetPoint("RIGHT", window, -10,0) | 118 investedTable.frame:SetPoint("RIGHT", window, -10,0) |
| 137 investedTable:RegisterEvents({ | 119 investedTable:RegisterEvents({ |
| 138 ["OnEnter"] = function (rowFrame, cellFrame, data, cols, row, realrow, column, scrollingTable, ...) | 120 ["OnEnter"] = function (rowFrame, cellFrame, data, cols, row, realrow, column, scrollingTable, ...) |
| 172 container.parent:SetWidth(width); | 154 container.parent:SetWidth(width); |
| 173 end | 155 end |
| 174 | 156 |
| 175 | 157 |
| 176 UpdateInvestedData() | 158 UpdateInvestedData() |
| 177 end | 159 |
| 178 | 160 return investedTable |
| 179 | 161 end |
| 180 local function switchTab(container, event, group) | 162 |
| 181 container:ReleaseChildren() | 163 local function getinvestedColsWidth() |
| 182 | 164 local width = 0 |
| 183 if investedTab then investedTab:Hide() end | 165 for i, data in pairs(investedCols) do |
| 184 | 166 width = width + data.width |
| 185 if group == "tab_invested" then | 167 end |
| 186 ShowInvested(container) | 168 return width |
| 187 end | 169 end |
| 188 end | 170 |
| 189 | 171 local tabName = 'tab_invested' |
| 190 | 172 ItemAuditor:RegisterTab("Invested", tabName, getinvestedColsWidth(), ShowInvested) |
| 191 | 173 function ItemAuditor:DisplayInvested() |
| 192 displayFrame = false | 174 self:CreateFrame(tabName) |
| 193 local function CreateFrames() | 175 end |
| 194 if not displayFrame then | |
| 195 -- Create the frame container | |
| 196 displayFrame = AceGUI:Create("Frame") | |
| 197 ItemAuditor:RegisterFrame(displayFrame) | |
| 198 local window = displayFrame.frame; | |
| 199 -- I have no idea why AceGUI insists on using FULLSCREEN_DIALOG by default. | |
| 200 window:SetFrameStrata("MEDIUM") | |
| 201 displayFrame:SetTitle("ItemAuditor") | |
| 202 displayFrame:SetStatusText("") | |
| 203 | |
| 204 displayFrame:SetLayout("Fill") | |
| 205 | |
| 206 window:SetHeight(500); | |
| 207 | |
| 208 local width = 80 | |
| 209 for i, data in pairs(investedCols) do | |
| 210 width = width + data.width | |
| 211 end | |
| 212 window:SetWidth(width); | |
| 213 | |
| 214 local tab = AceGUI:Create("TabGroup") | |
| 215 tab:SetLayout("Flow") | |
| 216 tab:SetTabs({{text="Invested", value="tab_invested"}}) | |
| 217 tab:SetCallback("OnGroupSelected", switchTab) | |
| 218 tab:SelectTab("tab_invested") | |
| 219 | |
| 220 displayFrame:AddChild(tab) | |
| 221 end | |
| 222 displayFrame:Show() | |
| 223 end | |
| 224 | |
| 225 | |
| 226 | |
| 227 | |
| 228 | 176 |
| 229 function UpdateInvestedData() | 177 function UpdateInvestedData() |
| 230 if investedTable then | 178 if investedTable then |
| 231 tableData = {} --reset | 179 tableData = {} --reset |
| 232 local totalInvested = 0 | 180 local totalInvested = 0 |
| 271 i = i + 1 | 219 i = i + 1 |
| 272 end | 220 end |
| 273 end | 221 end |
| 274 | 222 |
| 275 if investedTable.frame:IsShown() then | 223 if investedTable.frame:IsShown() then |
| 276 displayFrame:SetStatusText("Total Invested: "..ItemAuditor:FormatMoney(totalInvested)) | 224 ItemAuditor:UpdateStatusText("Total Invested: "..ItemAuditor:FormatMoney(totalInvested)) |
| 277 end | 225 end |
| 278 | 226 |
| 279 investedTable:SetData(tableData, true) | 227 investedTable:SetData(tableData, true) |
| 280 end | 228 end |
| 281 end | 229 end |
| 282 | 230 |
| 283 function ItemAuditor:CreateFrames() | 231 |
| 284 CreateFrames() | |
| 285 end | |
| 286 |
