more progress on modes

This commit is contained in:
Simon Hirsig
2015-10-20 12:19:15 +02:00
parent 30843adc53
commit 62e32dcc4e
+58 -60
View File
@@ -1,6 +1,6 @@
Aux.buy = {} Aux.buy = {}
local process_auction, set_message, report, show_dialog, find_auction, hide_sheet, show_sheet, alpha_setter local process_auction, set_message, report, show_dialog, find_auction, hide_sheet, update_sheet, auction_alpha_setter, group_alpha_setter
local auctions local auctions
local selectedAuctions = {} local selectedAuctions = {}
local search_query local search_query
@@ -8,8 +8,12 @@ local tooltip_patterns = {}
local current_page local current_page
local refresh local refresh
local function alpha_setter(cell, datum) function auction_alpha_setter(cell, auction)
cell:SetAlpha(datum.gone and 0.4 or 1) cell:SetAlpha(auction.gone and 0.4 or 1)
end
function group_alpha_setter(cell, group)
cell:SetAlpha(Aux.util.all(group, function(auction) return auction.gone end) and 0.4 or 1)
end end
local BUYOUT, BID, FULL = 1, 2, 3 local BUYOUT, BID, FULL = 1, 2, 3
@@ -37,7 +41,7 @@ Aux.buy.modes = {
cell_initializer = Aux.sheet.default_cell_initializer('RIGHT'), cell_initializer = Aux.sheet.default_cell_initializer('RIGHT'),
cell_setter = function(cell, group) cell_setter = function(cell, group)
cell.text:SetText(group[1].stack_size) cell.text:SetText(group[1].stack_size)
-- alpha_setter(cell, group) group_alpha_setter(cell, group)
end, end,
}, },
{ {
@@ -85,7 +89,7 @@ Aux.buy.modes = {
cell.text:SetText('['..group[1].tooltip[1][1].text..']') cell.text:SetText('['..group[1].tooltip[1][1].text..']')
local color = ITEM_QUALITY_COLORS[group[1].quality] local color = ITEM_QUALITY_COLORS[group[1].quality]
cell.text:SetTextColor(color.r, color.g, color.b) cell.text:SetTextColor(color.r, color.g, color.b)
-- alpha_setter(cell, group) group_alpha_setter(cell, group)
end, end,
}, },
{ {
@@ -102,17 +106,17 @@ Aux.buy.modes = {
text = level text = level
end end
cell.text:SetText(text) cell.text:SetText(text)
-- alpha_setter(cell, datum) group_alpha_setter(cell, group)
end, end,
}, },
{ {
title = 'Auctions', title = 'Auctions',
width = 83, width = 83,
comparator = function(group1, group2) return Aux.util.compare(getn(group1), getn(group2), Aux.util.LT) end, comparator = function(group1, group2) return Aux.util.compare(getn(Aux.util.filter(group1, function(auction) return not auction.gone end)), getn(Aux.util.filter(group2, function(auction) return not auction.gone end)), Aux.util.LT) end,
cell_initializer = Aux.sheet.default_cell_initializer('RIGHT'), cell_initializer = Aux.sheet.default_cell_initializer('RIGHT'),
cell_setter = function(cell, group) cell_setter = function(cell, group)
cell.text:SetText(getn(group)) cell.text:SetText(getn(Aux.util.filter(group, function(auction) return not auction.gone end)))
-- alpha_setter(cell, group) group_alpha_setter(cell, group)
end, end,
}, },
{ {
@@ -122,7 +126,7 @@ Aux.buy.modes = {
cell_initializer = Aux.sheet.default_cell_initializer('RIGHT'), cell_initializer = Aux.sheet.default_cell_initializer('RIGHT'),
cell_setter = function(cell, group) cell_setter = function(cell, group)
cell.text:SetText(Aux.util.money_string(group[1].buyout_price_per_unit)) cell.text:SetText(Aux.util.money_string(group[1].buyout_price_per_unit))
-- alpha_setter(cell, group) group_alpha_setter(cell, group)
end, end,
}, },
{ {
@@ -132,7 +136,7 @@ Aux.buy.modes = {
cell_initializer = Aux.sheet.default_cell_initializer('RIGHT'), cell_initializer = Aux.sheet.default_cell_initializer('RIGHT'),
cell_setter = function(cell, group) cell_setter = function(cell, group)
cell.text:SetText(Aux.util.money_string(group[1].buyout_price)) cell.text:SetText(Aux.util.money_string(group[1].buyout_price))
-- alpha_setter(cell, group) group_alpha_setter(cell, group)
end, end,
}, },
}, },
@@ -159,7 +163,7 @@ Aux.buy.modes = {
cell_initializer = Aux.sheet.default_cell_initializer('RIGHT'), cell_initializer = Aux.sheet.default_cell_initializer('RIGHT'),
cell_setter = function(cell, datum) cell_setter = function(cell, datum)
cell.text:SetText(datum.stack_size) cell.text:SetText(datum.stack_size)
alpha_setter(cell, datum) auction_alpha_setter(cell, datum)
end, end,
}, },
{ {
@@ -207,7 +211,7 @@ Aux.buy.modes = {
cell.text:SetText('['..datum.tooltip[1][1].text..']') cell.text:SetText('['..datum.tooltip[1][1].text..']')
local color = ITEM_QUALITY_COLORS[datum.quality] local color = ITEM_QUALITY_COLORS[datum.quality]
cell.text:SetTextColor(color.r, color.g, color.b) cell.text:SetTextColor(color.r, color.g, color.b)
alpha_setter(cell, datum) auction_alpha_setter(cell, datum)
end, end,
}, },
{ {
@@ -224,7 +228,17 @@ Aux.buy.modes = {
text = level text = level
end end
cell.text:SetText(text) cell.text:SetText(text)
alpha_setter(cell, datum) auction_alpha_setter(cell, datum)
end,
},
{
title = '#',
width = 23,
comparator = function(row1, row2) return Aux.util.compare(row1.page, row2.page, Aux.util.LT) end,
cell_initializer = Aux.sheet.default_cell_initializer('RIGHT'),
cell_setter = function(cell, datum)
cell.text:SetText(datum.page)
auction_alpha_setter(cell, datum)
end, end,
}, },
{ {
@@ -244,7 +258,7 @@ Aux.buy.modes = {
text = '24h' text = '24h'
end end
cell.text:SetText(text) cell.text:SetText(text)
alpha_setter(cell, datum) auction_alpha_setter(cell, datum)
end, end,
}, },
{ {
@@ -254,7 +268,7 @@ Aux.buy.modes = {
cell_initializer = Aux.sheet.default_cell_initializer('LEFT'), cell_initializer = Aux.sheet.default_cell_initializer('LEFT'),
cell_setter = function(cell, datum) cell_setter = function(cell, datum)
cell.text:SetText(datum.owner) cell.text:SetText(datum.owner)
alpha_setter(cell, datum) auction_alpha_setter(cell, datum)
end, end,
}, },
{ {
@@ -264,7 +278,7 @@ Aux.buy.modes = {
cell_initializer = Aux.sheet.default_cell_initializer('RIGHT'), cell_initializer = Aux.sheet.default_cell_initializer('RIGHT'),
cell_setter = function(cell, datum) cell_setter = function(cell, datum)
cell.text:SetText(Aux.util.money_string(datum.bid_per_unit)) cell.text:SetText(Aux.util.money_string(datum.bid_per_unit))
alpha_setter(cell, datum) auction_alpha_setter(cell, datum)
end, end,
}, },
{ {
@@ -274,7 +288,7 @@ Aux.buy.modes = {
cell_initializer = Aux.sheet.default_cell_initializer('RIGHT'), cell_initializer = Aux.sheet.default_cell_initializer('RIGHT'),
cell_setter = function(cell, datum) cell_setter = function(cell, datum)
cell.text:SetText(Aux.util.money_string(datum.bid)) cell.text:SetText(Aux.util.money_string(datum.bid))
alpha_setter(cell, datum) auction_alpha_setter(cell, datum)
end, end,
}, },
}, },
@@ -301,7 +315,7 @@ Aux.buy.modes = {
cell_initializer = Aux.sheet.default_cell_initializer('RIGHT'), cell_initializer = Aux.sheet.default_cell_initializer('RIGHT'),
cell_setter = function(cell, datum) cell_setter = function(cell, datum)
cell.text:SetText(datum.stack_size) cell.text:SetText(datum.stack_size)
alpha_setter(cell, datum) auction_alpha_setter(cell, datum)
end, end,
}, },
{ {
@@ -349,7 +363,7 @@ Aux.buy.modes = {
cell.text:SetText('['..datum.tooltip[1][1].text..']') cell.text:SetText('['..datum.tooltip[1][1].text..']')
local color = ITEM_QUALITY_COLORS[datum.quality] local color = ITEM_QUALITY_COLORS[datum.quality]
cell.text:SetTextColor(color.r, color.g, color.b) cell.text:SetTextColor(color.r, color.g, color.b)
alpha_setter(cell, datum) auction_alpha_setter(cell, datum)
end, end,
}, },
{ {
@@ -366,7 +380,7 @@ Aux.buy.modes = {
text = level text = level
end end
cell.text:SetText(text) cell.text:SetText(text)
alpha_setter(cell, datum) auction_alpha_setter(cell, datum)
end, end,
}, },
{ {
@@ -386,7 +400,7 @@ Aux.buy.modes = {
text = '24h' text = '24h'
end end
cell.text:SetText(text) cell.text:SetText(text)
alpha_setter(cell, datum) auction_alpha_setter(cell, datum)
end, end,
}, },
{ {
@@ -396,7 +410,7 @@ Aux.buy.modes = {
cell_initializer = Aux.sheet.default_cell_initializer('LEFT'), cell_initializer = Aux.sheet.default_cell_initializer('LEFT'),
cell_setter = function(cell, datum) cell_setter = function(cell, datum)
cell.text:SetText(datum.owner) cell.text:SetText(datum.owner)
alpha_setter(cell, datum) auction_alpha_setter(cell, datum)
end, end,
}, },
{ {
@@ -406,7 +420,7 @@ Aux.buy.modes = {
cell_initializer = Aux.sheet.default_cell_initializer('RIGHT'), cell_initializer = Aux.sheet.default_cell_initializer('RIGHT'),
cell_setter = function(cell, datum) cell_setter = function(cell, datum)
cell.text:SetText(Aux.util.money_string(datum.bid_per_unit)) cell.text:SetText(Aux.util.money_string(datum.bid_per_unit))
alpha_setter(cell, datum) auction_alpha_setter(cell, datum)
end, end,
}, },
{ {
@@ -416,7 +430,7 @@ Aux.buy.modes = {
cell_initializer = Aux.sheet.default_cell_initializer('RIGHT'), cell_initializer = Aux.sheet.default_cell_initializer('RIGHT'),
cell_setter = function(cell, datum) cell_setter = function(cell, datum)
cell.text:SetText(Aux.util.money_string(datum.buyout_price_per_unit)) cell.text:SetText(Aux.util.money_string(datum.buyout_price_per_unit))
alpha_setter(cell, datum) auction_alpha_setter(cell, datum)
end, end,
}, },
{ {
@@ -426,7 +440,7 @@ Aux.buy.modes = {
cell_initializer = Aux.sheet.default_cell_initializer('RIGHT'), cell_initializer = Aux.sheet.default_cell_initializer('RIGHT'),
cell_setter = function(cell, datum) cell_setter = function(cell, datum)
cell.text:SetText(Aux.util.money_string(datum.bid)) cell.text:SetText(Aux.util.money_string(datum.bid))
alpha_setter(cell, datum) auction_alpha_setter(cell, datum)
end, end,
}, },
{ {
@@ -436,7 +450,7 @@ Aux.buy.modes = {
cell_initializer = Aux.sheet.default_cell_initializer('RIGHT'), cell_initializer = Aux.sheet.default_cell_initializer('RIGHT'),
cell_setter = function(cell, datum) cell_setter = function(cell, datum)
cell.text:SetText(Aux.util.money_string(datum.buyout_price)) cell.text:SetText(Aux.util.money_string(datum.buyout_price))
alpha_setter(cell, datum) auction_alpha_setter(cell, datum)
end, end,
}, },
}, },
@@ -449,7 +463,7 @@ function Aux.buy.exit()
end end
function Aux.buy.on_open() function Aux.buy.on_open()
show_sheet() update_sheet()
end end
function Aux_AuctionFrameBid_Update() function Aux_AuctionFrameBid_Update()
@@ -459,22 +473,18 @@ function Aux_AuctionFrameBid_Update()
end end
end end
-----------------------------------------
function Aux.buy.dialog_cancel() function Aux.buy.dialog_cancel()
Aux.scan.abort() Aux.scan.abort()
AuxBuyConfirmation:Hide() AuxBuyConfirmation:Hide()
show_sheet() update_sheet()
AuxBuySearchButton:Enable() AuxBuySearchButton:Enable()
end end
-----------------------------------------
function Aux.buy.StopButton_onclick() function Aux.buy.StopButton_onclick()
Aux.scan.abort() Aux.scan.abort()
end end
function show_sheet() function update_sheet()
AuxBuyBuyList:Hide() AuxBuyBuyList:Hide()
AuxBuyBidList:Hide() AuxBuyBidList:Hide()
AuxBuyFullList:Hide() AuxBuyFullList:Hide()
@@ -487,6 +497,17 @@ function show_sheet()
elseif mode == FULL then elseif mode == FULL then
AuxBuyFullList:Show() AuxBuyFullList:Show()
end end
local mode = UIDropDownMenu_GetSelectedValue(AuxBuyModeDropDown)
if mode == BUYOUT then
local buyout_auctions = auctions and Aux.util.filter(auctions, function(auction) return auction.name ~= UnitName('player') and auction.buyout_price > 0 end) or {}
Aux.list.populate(AuxBuyBuyList.sheet, auctions and Aux.util.group_by(buyout_auctions, function(a1, a2) return a1.hyperlink == a2.hyperlink and a1.stack_size == a2.stack_size and a1.buyout_price = a2.buyout_price end) or {})
elseif mode == BID then
local bid_auctions = auctions and Aux.util.filter(auctions, function(auction) return auction.name ~= UnitName('player') end) or {}
Aux.list.populate(AuxBuyBidList.sheet, bid_auctions)
elseif mode == FULL then
Aux.list.populate(AuxBuyFullList.sheet, auctions or {})
end
end end
function hide_sheet() function hide_sheet()
@@ -575,14 +596,10 @@ function Aux.buy.SearchButton_onclick()
} }
end end
-----------------------------------------
function set_message(msg) function set_message(msg)
Aux.log(msg) Aux.log(msg)
end end
-----------------------------------------
function show_dialog(buyout_mode, entry, amount) function show_dialog(buyout_mode, entry, amount)
AuxBuyConfirmation.tooltip = entry.tooltip AuxBuyConfirmation.tooltip = entry.tooltip
AuxBuyConfirmation.EnhTooltip_info = entry.EnhTooltip_info AuxBuyConfirmation.EnhTooltip_info = entry.EnhTooltip_info
@@ -699,7 +716,7 @@ function find_auction(entry, buyout_mode, express_mode)
Aux.scan.abort() Aux.scan.abort()
AuxBuySearchButton:Enable() AuxBuySearchButton:Enable()
AuxBuyConfirmation:Hide() AuxBuyConfirmation:Hide()
show_sheet() update_sheet()
end end
AuxBuyConfirmationActionButton:Enable() AuxBuyConfirmationActionButton:Enable()
end end
@@ -742,8 +759,6 @@ function AuxBuyEntry_OnClick(entry_index)
end end
end end
-----------------------------------------
function process_auction(auction_item, current_page) function process_auction(auction_item, current_page)
auctions = auctions or {} auctions = auctions or {}
@@ -777,30 +792,13 @@ function process_auction(auction_item, current_page)
end end
end end
-----------------------------------------
function Aux.buy.onupdate() function Aux.buy.onupdate()
if refresh then if refresh then
refresh = false refresh = false
Aux_Buy_ScrollbarUpdate() update_sheet()
end end
end end
-----------------------------------------
function Aux_Buy_ScrollbarUpdate()
local mode = UIDropDownMenu_GetSelectedValue(AuxBuyModeDropDown)
if mode == BUYOUT then
Aux.list.populate(AuxBuyBuyList.sheet, auctions and Aux.util.group_by(auctions, function(a1, a2) return a1.hyperlink == a2.hyperlink and a1.stack_size == a2.stack_size and a1.buyout_price = a2.buyout_price end) or {})
elseif mode == BID then
Aux.list.populate(AuxBuyBidList.sheet, auctions or {})
elseif mode == FULL then
Aux.list.populate(AuxBuyFullList.sheet, auctions or {})
end
end
-----------------------------------------
function AuxBuyCategoryDropDown_Initialize(arg1) function AuxBuyCategoryDropDown_Initialize(arg1)
local level = arg1 or 1 local level = arg1 or 1
@@ -923,7 +921,7 @@ function AuxBuyModeDropDown_Initialize()
value = i, value = i,
func = function() func = function()
UIDropDownMenu_SetSelectedValue(AuxBuyModeDropDown, this.value) UIDropDownMenu_SetSelectedValue(AuxBuyModeDropDown, this.value)
show_sheet() update_sheet()
end, end,
} }
end end