Mercurial > wow > itemauditor
comparison Modules/DisplayInvested.lua @ 48:508110e7c8ee
Merged my fix for the changelog
| author | Asa Ayers <Asa.Ayers@Gmail.com> |
|---|---|
| date | Tue, 20 Jul 2010 00:20:15 -0700 |
| parents | 9a6d4e2768fd |
| children | 5e981c1df761 |
comparison
equal
deleted
inserted
replaced
| 47:aae189bf32ce | 48:508110e7c8ee |
|---|---|
| 32 -- Convert it all into copper | 32 -- Convert it all into copper |
| 33 return (copper or 0) + ((gold or 0) * COPPER_PER_GOLD) + ((silver or 0) * COPPER_PER_SILVER) | 33 return (copper or 0) + ((gold or 0) * COPPER_PER_GOLD) + ((silver or 0) * COPPER_PER_SILVER) |
| 34 | 34 |
| 35 end | 35 end |
| 36 | 36 |
| 37 local function SaveNewValue(link, type, text) | 37 StaticPopupDialogs["ItemAuditor_NewPrice"] = { |
| 38 if not validateMoney(text) then | 38 text = "New price %s %s", |
| 39 error("Invalid value") | 39 button1 = SAVE, |
| 40 end | 40 button2 = CANCEL, |
| 41 local investedTotal, investedPerItem, numOwned = ItemAuditor:GetItemCost(link) | 41 hasEditBox = 1, |
| 42 local newValue=parseMoney(text) | 42 showAlert = 1, |
| 43 | 43 OnAccept = function() |
| 44 if type == priceTypeEach then | 44 skipCODTracking = true |
| 45 newValue = newValue * numOwned | 45 end, |
| 46 end | 46 EditBoxOnEnterPressed = function() |
| 47 | 47 if ( getglobal(this:GetParent():GetName().."Button1"):IsEnabled() == 1 ) then |
| 48 ItemAuditor:SaveValue(link, newValue-investedTotal, 0) | 48 getglobal(this:GetParent():GetName().."Button1"):Click() |
| 49 -- ItemAuditor:SaveValue(link, newValue, 0) | 49 end |
| 50 | 50 end, |
| 51 promptFrame:Hide() | 51 EditBoxOnTextChanged = function () |
| 52 end | 52 local parentName = this:GetParent():GetName() |
| 53 | 53 local editBox = getglobal( parentName.."EditBox"); |
| 54 local value = editBox:GetText() | |
| 55 if validateMoney(value) then | |
| 56 getglobal(parentName.."Button1"):Enable(); | |
| 57 else | |
| 58 getglobal(parentName.."Button1"):Disable(); | |
| 59 end | |
| 60 end, | |
| 61 EditBoxOnEscapePressed = function() | |
| 62 this:GetParent():Hide(); | |
| 63 ClearCursor(); | |
| 64 end, | |
| 65 timeout = 0, | |
| 66 hideOnEscape = 1, | |
| 67 exclusive = true, | |
| 68 } | |
| 54 | 69 |
| 55 local function PromptForNewPrice(link, type) | 70 local function PromptForNewPrice(link, type) |
| 56 local investedTotal, investedPerItem, count = ItemAuditor:GetItemCost(link) | 71 local investedTotal, investedPerItem, count = ItemAuditor:GetItemCost(link) |
| 57 local itemName, displayLink = GetItemInfo(link) | 72 |
| 58 local priceDesc = " Invested Each:" | 73 local typeText = "Invested Each" |
| 59 local price = investedPerItem | 74 local price = investedPerItem |
| 60 | |
| 61 if type == priceTypeTotal then | 75 if type == priceTypeTotal then |
| 62 priceDesc = " Invested Total:" | 76 typeText = "Invested Total" |
| 63 price = investedTotal | 77 price = investedTotal |
| 64 end | 78 |
| 65 | 79 end |
| 66 if not promptFrame then | 80 |
| 67 promptFrame = AceGUI:Create("Frame") | 81 StaticPopupDialogs["ItemAuditor_NewPrice"].text = format("Update %s: %s|nThe current value is %s", typeText, link, ItemAuditor:FormatMoney(price)) |
| 68 ItemAuditor:RegisterFrame(promptFrame) | 82 |
| 69 | 83 StaticPopupDialogs["ItemAuditor_NewPrice"].OnShow = function (self, data) |
| 70 local window = promptFrame.frame; | 84 self.editBox:SetText(ItemAuditor:FormatMoney(price, '', true)) |
| 71 local width = 345 | 85 end |
| 72 local height = 115 | 86 |
| 73 window:SetWidth(width ) | 87 StaticPopupDialogs["ItemAuditor_NewPrice"].OnAccept = function() |
| 74 window:SetHeight(height ) | 88 local name = this:GetParent():GetName().."EditBox" |
| 75 window:SetMinResize(width, height) | 89 local button = getglobal(name) |
| 76 window:SetMaxResize(width, height) | 90 local newValue = button:GetText() |
| 77 | 91 newValue = parseMoney(newValue) |
| 78 promptFrame:SetTitle("ItemAuditor") | 92 |
| 79 promptFrame:SetStatusText("Status Here") | 93 local investedTotal, investedPerItem, numOwned = ItemAuditor:GetItemCost(link) |
| 80 promptFrame:SetCallback("OnClose", function(widget) AceGUI:Release(widget); promptFrame = false end) | 94 |
| 81 promptFrame:SetLayout("Flow") | 95 if type == priceTypeEach then |
| 82 | 96 newValue = newValue * numOwned |
| 83 promptFrame.editbox = AceGUI:Create("EditBox") | 97 end |
| 84 promptFrame.editbox:SetWidth(300) | 98 |
| 85 promptFrame:AddChild(promptFrame.editbox) | 99 ItemAuditor:SaveValue(link, newValue-investedTotal, 0) |
| 86 end | 100 end |
| 87 promptFrame.editbox:SetCallback("OnEnterPressed", function(widget, event, text) SaveNewValue(link, type, text) end) | 101 StaticPopup_Show ("ItemAuditor_NewPrice", link, 'two'); |
| 88 promptFrame:SetStatusText("Current Price: "..ItemAuditor:FormatMoney(price)) | |
| 89 promptFrame.editbox:SetLabel(displayLink..priceDesc) | |
| 90 promptFrame.editbox:SetText(ItemAuditor:FormatMoney(price, "", true)) | |
| 91 | |
| 92 promptFrame:Show() | |
| 93 editBox = promptFrame.editbox | |
| 94 end | 102 end |
| 95 | 103 |
| 96 local function displayMoney(rowFrame, cellFrame, data, cols, row, realrow, column, fShow, table, ...) | 104 local function displayMoney(rowFrame, cellFrame, data, cols, row, realrow, column, fShow, table, ...) |
| 97 if fShow == true then | 105 if fShow == true then |
| 98 local money = data[realrow][column] | 106 local money = data[realrow][column] |
| 99 if money == nil then | 107 cellFrame.text:SetText(ItemAuditor:FormatMoney(data[realrow][column])) |
| 100 cellFrame.text:SetText("None") | |
| 101 else | |
| 102 cellFrame.text:SetText(ItemAuditor:FormatMoney(data[realrow][column])) | |
| 103 end | |
| 104 end | 108 end |
| 105 end | 109 end |
| 106 | 110 |
| 107 local investedCols = { | 111 local investedCols = { |
| 108 { name= "Item", width = 200, | 112 { name= "Item", width = 200, defaultsort = "desc", |
| 109 ['DoCellUpdate'] = function(rowFrame, cellFrame, data, cols, row, realrow, column, fShow, table, ...) | 113 ['DoCellUpdate'] = function(rowFrame, cellFrame, data, cols, row, realrow, column, fShow, table, ...) |
| 110 if fShow == true then | 114 if fShow == true then |
| 111 local _, link= strsplit("|", data[realrow][column], 2) | 115 local _, link= strsplit("|", data[realrow][column], 2) |
| 112 cellFrame.text:SetText(link) | 116 cellFrame.text:SetText(link) |
| 113 end | 117 end |
| 117 ['DoCellUpdate'] = displayMoney, | 121 ['DoCellUpdate'] = displayMoney, |
| 118 }, | 122 }, |
| 119 { name= "Invested Each", width = 100, align = "RIGHT", | 123 { name= "Invested Each", width = 100, align = "RIGHT", |
| 120 ['DoCellUpdate'] = displayMoney, | 124 ['DoCellUpdate'] = displayMoney, |
| 121 }, | 125 }, |
| 122 { name= "# Owned", width = 50, align = "RIGHT", defaultsort = "asc", }, | 126 { name= "# Owned", width = 50, align = "RIGHT", }, |
| 123 } | 127 } |
| 124 | 128 |
| 125 local investedTable = false | 129 local investedTable = false |
| 126 local function ShowInvested(container) | 130 local function ShowInvested(container) |
| 127 if investedTable == false then | 131 if investedTable == false then |
| 190 if not displayFrame then | 194 if not displayFrame then |
| 191 -- Create the frame container | 195 -- Create the frame container |
| 192 displayFrame = AceGUI:Create("Frame") | 196 displayFrame = AceGUI:Create("Frame") |
| 193 ItemAuditor:RegisterFrame(displayFrame) | 197 ItemAuditor:RegisterFrame(displayFrame) |
| 194 local window = displayFrame.frame; | 198 local window = displayFrame.frame; |
| 199 -- I have no idea why AceGUI insists on using FULLSCREEN_DIALOG by default. | |
| 200 window:SetFrameStrata("MEDIUM") | |
| 195 displayFrame:SetTitle("ItemAuditor") | 201 displayFrame:SetTitle("ItemAuditor") |
| 196 displayFrame:SetStatusText("") | 202 displayFrame:SetStatusText("") |
| 197 | 203 |
| 198 displayFrame:SetLayout("Fill") | 204 displayFrame:SetLayout("Fill") |
| 199 | 205 |
