diff --git a/buy.lua b/buy.lua index d6d6faf..abd07dc 100644 --- a/buy.lua +++ b/buy.lua @@ -6,6 +6,14 @@ local selectedEntries = {} local search_query local tooltip_patterns = {} local current_page +local refresh + + +function Aux.buy.exit() + + Aux.buy.buyout_dialog_cancel() + current_page = nil +end ----------------------------------------- @@ -18,6 +26,14 @@ end ----------------------------------------- +function Aux.buy.buyout_dialog_cancel() + Aux.scan.abort() + AuxBuyBuyoutDialog:Hide() + AuxBuySearchButton:Enable() +end + +----------------------------------------- + function Aux.buy.StopButton_onclick() Aux.scan.abort() end @@ -32,7 +48,7 @@ function Aux.buy.SearchButton_onclick() entries = nil selectedEntries = {} - Aux_Buy_ScrollbarUpdate() + refresh = true local category = UIDropDownMenu_GetSelectedValue(AuxBuyCategoryDropDown) local tooltip_patterns = Aux.util.set_to_array(tooltip_patterns) @@ -77,13 +93,13 @@ function Aux.buy.SearchButton_onclick() entries = entries or {} AuxBuyStopButton:Hide() AuxBuySearchButton:Show() - Aux_Buy_ScrollbarUpdate() + refresh = true end, on_abort = function() entries = entries or {} AuxBuyStopButton:Hide() AuxBuySearchButton:Show() - Aux_Buy_ScrollbarUpdate() + refresh = true end, next_page = function(page, auctions) if auctions == Aux.scan.MAX_AUCTIONS_PER_PAGE then @@ -103,10 +119,38 @@ end ----------------------------------------- function AuxBuyEntry_OnClick() + local express_mode = IsControlKeyDown() + AuxBuySearchButton:Disable() - local i = this:GetID() - local entry = entries[i] + local entry_index = this:GetID() + local entry = entries[entry_index] + + if not express_mode then + AuxBuyBuyoutDialogBuyButton:Disable() + AuxBuyBuyoutDialogHTML:SetText(string.format( + [[ + + +

%s

+
+

+ Stack Size: %i +

+ Buyout Price: %s +

+ Unit Price: %s +

+ + + ]], + entry.name, + entry.stack_size, + Aux.util.format_money(entry.buyout_price), + Aux.util.format_money(entry.item_price) + )) + AuxBuyBuyoutDialog:Show() + end PlaySound("igMainMenuOptionCheckBoxOn") @@ -132,25 +176,47 @@ function AuxBuyEntry_OnClick() local key = Aux.auction_key(auction_item.tooltip, stack_size, auction_item.buyout_price) if key == order_key then found = true - if GetMoney() >= auction_item.buyout_price then - PlaceAuctionBid("list", i, auction_item.buyout_price) - tremove(entries,i) + if express_mode then + if GetMoney() >= auction_item.buyout_price then + tremove(entries, entry_index) + refresh = true + end + + PlaceAuctionBid("list", i, auction_item.buyout_price) Aux.scan.abort() + else + Aux.buy.buyout_dialog_buy = function() + if GetMoney() >= auction_item.buyout_price then + tremove(entries, entry_index) + refresh = true + end + + PlaceAuctionBid("list", i, auction_item.buyout_price) + + Aux.scan.abort() + AuxBuySearchButton:Enable() + AuxBuyBuyoutDialog:Hide() + end + AuxBuyBuyoutDialogBuyButton:Enable() end end end, on_complete = function() if not found then - tremove(entries,i) + tremove(entries, entry_index) + refresh = true + Aux.buy.buyout_dialog_cancel() + end + if express_mode then + AuxBuySearchButton:Enable() end - AuxBuySearchButton:Enable() - Aux_Buy_ScrollbarUpdate() end, on_abort = function() - AuxBuySearchButton:Enable() - Aux_Buy_ScrollbarUpdate() + if express_mode then + AuxBuySearchButton:Enable() + end end, } end @@ -173,13 +239,13 @@ function record_auction(name, tooltip, stack_size, buyout_price, quality, owner, if buyout_price > 0 and owner ~= UnitName("player") then tinsert(entries, { - name = name, - tooltip = tooltip, - stack_size = stack_size, - buyout_price = buyout_price, - item_price = buyout_price / stack_size, - quality = quality, - hyperlink = hyperlink, + name = name, + tooltip = tooltip, + stack_size = stack_size, + buyout_price = buyout_price, + item_price = buyout_price / stack_size, + quality = quality, + hyperlink = hyperlink, itemstring = itemstring, page = current_page, }) @@ -190,6 +256,15 @@ end ----------------------------------------- +function Aux.buy.onupdate() + if refresh then + refresh = false + Aux_Buy_ScrollbarUpdate() + end +end + +----------------------------------------- + function Aux_Buy_ScrollbarUpdate() if entries and getn(entries) == 0 then set_message("No auctions were found") @@ -265,39 +340,6 @@ end ----------------------------------------- -function report(completed, item_name, ordered_count, progress) - - AuxBuyReportHTML:SetText(string.format( - [[ - - -

Aux Buy Report%s

-
-

- %i out of %i ordered auctions of %s purchased -

- Total units purchased: %i -
- Total expense: %s -

- - - ]], - completed and '' or ' (Aborted)', - progress.auctions, - ordered_count, - item_name, - progress.units, - Aux.util.format_money(progress.expense) - )) - - AuxBuyReportHTML:SetSpacing(3) - - AuxBuyReport:Show() -end - ------------------------------------------ - function AuxBuyCategoryDropDown_Initialize(arg1) local level = arg1 or 1 diff --git a/buy.xml b/buy.xml index 05499a1..5c57199 100644 --- a/buy.xml +++ b/buy.xml @@ -2,6 +2,14 @@