Mercurial > wow > itemauditor
comparison Modules/DisplayInvested.lua @ 43:60ab9a4d2de1
Replaced my edit window with a static popup. This looks and behaves better this way. This commit also includes some small cleanup on frame strata for the invested and debug windows.
| author | Asa Ayers <Asa.Ayers@Gmail.com> |
|---|---|
| date | Mon, 19 Jul 2010 22:46:52 -0700 |
| parents | e27d13095b49 |
| children | 9a6d4e2768fd |
comparison
equal
deleted
inserted
replaced
| 42:1ff3b83b104c | 43:60ab9a4d2de1 |
|---|---|
| 49 -- ItemAuditor:SaveValue(link, newValue, 0) | 49 -- ItemAuditor:SaveValue(link, newValue, 0) |
| 50 | 50 |
| 51 promptFrame:Hide() | 51 promptFrame:Hide() |
| 52 end | 52 end |
| 53 | 53 |
| 54 StaticPopupDialogs["ItemAuditor_NewPrice"] = { | |
| 55 text = "New price %s %s", | |
| 56 button1 = SAVE, | |
| 57 button2 = CANCEL, | |
| 58 hasEditBox = 1, | |
| 59 showAlert = 1, | |
| 60 OnAccept = function() | |
| 61 skipCODTracking = true | |
| 62 end, | |
| 63 EditBoxOnEnterPressed = function() | |
| 64 if ( getglobal(this:GetParent():GetName().."Button1"):IsEnabled() == 1 ) then | |
| 65 getglobal(this:GetParent():GetName().."Button1"):Click() | |
| 66 end | |
| 67 end, | |
| 68 EditBoxOnTextChanged = function () | |
| 69 local parentName = this:GetParent():GetName() | |
| 70 local editBox = getglobal( parentName.."EditBox"); | |
| 71 local value = editBox:GetText() | |
| 72 if validateMoney(value) then | |
| 73 getglobal(parentName.."Button1"):Enable(); | |
| 74 else | |
| 75 getglobal(parentName.."Button1"):Disable(); | |
| 76 end | |
| 77 end, | |
| 78 EditBoxOnEscapePressed = function() | |
| 79 this:GetParent():Hide(); | |
| 80 ClearCursor(); | |
| 81 end, | |
| 82 timeout = 0, | |
| 83 hideOnEscape = 1, | |
| 84 exclusive = true, | |
| 85 } | |
| 54 | 86 |
| 55 local function PromptForNewPrice(link, type) | 87 local function PromptForNewPrice(link, type) |
| 88 -- function(widget, event, text) SaveNewValue(link, type, text) end | |
| 56 local investedTotal, investedPerItem, count = ItemAuditor:GetItemCost(link) | 89 local investedTotal, investedPerItem, count = ItemAuditor:GetItemCost(link) |
| 57 local itemName, displayLink = GetItemInfo(link) | 90 |
| 58 local priceDesc = " Invested Each:" | 91 local typeText = "Invested Each" |
| 59 local price = investedPerItem | 92 local price = investedPerItem |
| 60 | |
| 61 if type == priceTypeTotal then | 93 if type == priceTypeTotal then |
| 62 priceDesc = " Invested Total:" | 94 typeText = "Invested Total" |
| 63 price = investedTotal | 95 price = investedTotal |
| 64 end | 96 |
| 65 | 97 end |
| 66 if not promptFrame then | 98 |
| 67 promptFrame = AceGUI:Create("Frame") | 99 StaticPopupDialogs["ItemAuditor_NewPrice"].text = format("Update %s: %s|nThe current value is %s", typeText, link, ItemAuditor:FormatMoney(price)) |
| 68 ItemAuditor:RegisterFrame(promptFrame) | 100 |
| 69 | 101 StaticPopupDialogs["ItemAuditor_NewPrice"].OnShow = function (self, data) |
| 70 local window = promptFrame.frame; | 102 self.editBox:SetText(ItemAuditor:FormatMoney(price, '', true)) |
| 71 local width = 345 | 103 end |
| 72 local height = 115 | 104 |
| 73 window:SetWidth(width ) | 105 StaticPopupDialogs["ItemAuditor_NewPrice"].OnAccept = function() |
| 74 window:SetHeight(height ) | 106 local name = this:GetParent():GetName().."EditBox" |
| 75 window:SetMinResize(width, height) | 107 local button = getglobal(name) |
| 76 window:SetMaxResize(width, height) | 108 local newValue = button:GetText() |
| 77 | 109 newValue = parseMoney(newValue) |
| 78 promptFrame:SetTitle("ItemAuditor") | 110 |
| 79 promptFrame:SetStatusText("Status Here") | 111 local investedTotal, investedPerItem, numOwned = ItemAuditor:GetItemCost(link) |
| 80 promptFrame:SetCallback("OnClose", function(widget) AceGUI:Release(widget); promptFrame = false end) | 112 |
| 81 promptFrame:SetLayout("Flow") | 113 if type == priceTypeEach then |
| 82 | 114 newValue = newValue * numOwned |
| 83 promptFrame.editbox = AceGUI:Create("EditBox") | 115 end |
| 84 promptFrame.editbox:SetWidth(300) | 116 |
| 85 promptFrame:AddChild(promptFrame.editbox) | 117 ItemAuditor:SaveValue(link, newValue-investedTotal, 0) |
| 86 end | 118 end |
| 87 promptFrame.editbox:SetCallback("OnEnterPressed", function(widget, event, text) SaveNewValue(link, type, text) end) | 119 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 | 120 end |
| 95 | 121 |
| 96 local function displayMoney(rowFrame, cellFrame, data, cols, row, realrow, column, fShow, table, ...) | 122 local function displayMoney(rowFrame, cellFrame, data, cols, row, realrow, column, fShow, table, ...) |
| 97 if fShow == true then | 123 if fShow == true then |
| 98 local money = data[realrow][column] | 124 local money = data[realrow][column] |
| 99 if money == nil then | 125 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 | 126 end |
| 105 end | 127 end |
| 106 | 128 |
| 107 local investedCols = { | 129 local investedCols = { |
| 108 { name= "Item", width = 200, | 130 { name= "Item", width = 200, defaultsort = "desc", |
| 109 ['DoCellUpdate'] = function(rowFrame, cellFrame, data, cols, row, realrow, column, fShow, table, ...) | 131 ['DoCellUpdate'] = function(rowFrame, cellFrame, data, cols, row, realrow, column, fShow, table, ...) |
| 110 if fShow == true then | 132 if fShow == true then |
| 111 local _, link= strsplit("|", data[realrow][column], 2) | 133 local _, link= strsplit("|", data[realrow][column], 2) |
| 112 cellFrame.text:SetText(link) | 134 cellFrame.text:SetText(link) |
| 113 end | 135 end |
| 117 ['DoCellUpdate'] = displayMoney, | 139 ['DoCellUpdate'] = displayMoney, |
| 118 }, | 140 }, |
| 119 { name= "Invested Each", width = 100, align = "RIGHT", | 141 { name= "Invested Each", width = 100, align = "RIGHT", |
| 120 ['DoCellUpdate'] = displayMoney, | 142 ['DoCellUpdate'] = displayMoney, |
| 121 }, | 143 }, |
| 122 { name= "# Owned", width = 50, align = "RIGHT", defaultsort = "asc", }, | 144 { name= "# Owned", width = 50, align = "RIGHT", }, |
| 123 } | 145 } |
| 124 | 146 |
| 125 local investedTable = false | 147 local investedTable = false |
| 126 local function ShowInvested(container) | 148 local function ShowInvested(container) |
| 127 if investedTable == false then | 149 if investedTable == false then |
| 190 if not displayFrame then | 212 if not displayFrame then |
| 191 -- Create the frame container | 213 -- Create the frame container |
| 192 displayFrame = AceGUI:Create("Frame") | 214 displayFrame = AceGUI:Create("Frame") |
| 193 ItemAuditor:RegisterFrame(displayFrame) | 215 ItemAuditor:RegisterFrame(displayFrame) |
| 194 local window = displayFrame.frame; | 216 local window = displayFrame.frame; |
| 217 -- I have no idea why AceGUI insists on using FULLSCREEN_DIALOG by default. | |
| 218 window:SetFrameStrata("MEDIUM") | |
| 195 displayFrame:SetTitle("ItemAuditor") | 219 displayFrame:SetTitle("ItemAuditor") |
| 196 displayFrame:SetStatusText("") | 220 displayFrame:SetStatusText("") |
| 197 | 221 |
| 198 displayFrame:SetLayout("Fill") | 222 displayFrame:SetLayout("Fill") |
| 199 | 223 |
