some ui improvements

This commit is contained in:
Manuel Simon Hirsig
2016-08-06 16:07:31 +02:00
parent 135ebbd536
commit b94cabfc08
22 changed files with 379 additions and 318 deletions
+1 -1
View File
@@ -13,7 +13,7 @@ aux_merchant_buy = {}
aux_merchant_sell = {}
aux_characters = {}
function public.LOAD()
function m.LOAD()
m.scan_wdb()
aux.control.event_listener('MERCHANT_SHOW', m.on_merchant_show)
+1 -1
View File
@@ -40,7 +40,7 @@ do
end
end
function public.LOAD()
function m.LOAD()
private.armor = aux.util.set(
'INVTYPE_HEAD',
'INVTYPE_NECK',
+7 -7
View File
@@ -9,7 +9,7 @@ do
for _, old_state in {scan_states[params.type]} do
m.abort(old_state.id)
end
local thread_id = aux.control.thread(aux.f(m.wait_for_callback, params.on_scan_start, m.scan))
local thread_id = aux.control.thread(aux._(m.wait_for_callback, params.on_scan_start, m.scan))
scan_states[params.type] = {
id = thread_id,
params = params,
@@ -27,14 +27,14 @@ do
end
end
for _, state in aborted do
aux.safe_call(state.params.on_abort)
aux.call(state.params.on_abort)
end
end
function private.complete()
local on_complete = m.state.params.on_complete
scan_states[m.state.params.type] = nil
aux.safe_call(on_complete)
aux.call(on_complete)
end
private.state = aux.dynamic_table(function()
@@ -103,7 +103,7 @@ end
function private.submit_query()
aux.control.when(function() return m.state.params.type ~= 'list' or CanSendAuctionQuery() end, function()
aux.safe_call(m.state.params.on_submit_query)
aux.call(m.state.params.on_submit_query)
m.state.last_query_time = GetTime()
if m.state.params.type == 'bidder' then
GetBidderAuctionItems(m.state.page)
@@ -153,11 +153,11 @@ function private.scan_page(i)
aux.history.process_auction(auction_info)
if aux.safe_call(m.state.params.auto_buy_validator, auction_info) then
if aux.call(m.state.params.auto_buy_validator, auction_info) then
local send_signal, signal_received = aux.util.signal()
aux.control.when(signal_received, recurse)
aux.place_bid(auction_info.query_type, auction_info.index, auction_info.buyout_price, aux.f(send_signal, true))
return aux.control.thread(aux.control.when, aux.util.later(GetTime(), 10), aux.f(send_signal, false))
aux.place_bid(auction_info.query_type, auction_info.index, auction_info.buyout_price, aux._(send_signal, true))
return aux.control.thread(aux.control.when, aux.util.later(GetTime(), 10), aux._(send_signal, false))
elseif not m.query.validator or m.query.validator(auction_info) then
return m.wait_for_callback(m.state.params.on_auction, auction_info, function(removed)
if removed then
+1 -1
View File
@@ -111,7 +111,7 @@ function public.stop()
slot = nil
end
m.state = nil
aux.safe_call(callback, slot)
aux.call(callback, slot)
end
end
+4 -4
View File
@@ -6,7 +6,7 @@ private.game_tooltip_hooks = {}
private.hooked_setter = nil
private.game_tooltip_money = nil
function public.LOAD()
function m.LOAD()
for func, hook in m.game_tooltip_hooks do
local func, hook = func, hook
aux.hook(
@@ -28,7 +28,7 @@ function public.LOAD()
local name, _, quality = GetItemInfo(arg[1])
if not IsShiftKeyDown() and not IsControlKeyDown() and name then
local _, _, _, hex = GetItemQualityColor(quality)
local link = hex.. '|H'..arg[1]..'|h['..name..']|h|r'
local link = hex.. '|H'..arg[1]..'|h['..name..']|h'..FONT_COLOR_CODE_CLOSE
m.extend_tooltip(ItemRefTooltip, link, 1)
end
return result
@@ -131,7 +131,7 @@ function m.game_tooltip_hooks:SetHyperlink(itemstring)
local name, _, quality = GetItemInfo(itemstring)
if name then
local _, _, _, hex = GetItemQualityColor(quality)
local link = hex.. '|H'..itemstring..'|h['..name..']|h|r'
local link = hex.. '|H'..itemstring..'|h['..name..']|h'..FONT_COLOR_CODE_CLOSE
m.extend_tooltip(GameTooltip, link, 1)
end
end
@@ -183,7 +183,7 @@ function m.game_tooltip_hooks:SetInboxItem(index)
if id then
local _, itemstring, quality = GetItemInfo(id)
local _, _, _, hex = GetItemQualityColor(tonumber(quality))
local link = hex.. '|H'..itemstring..'|h['..name..']|h|r'
local link = hex.. '|H'..itemstring..'|h['..name..']|h'..FONT_COLOR_CODE_CLOSE
m.extend_tooltip(GameTooltip, link, quantity)
end
end
+6 -6
View File
@@ -5,7 +5,7 @@ private.listeners = {}
private.threads = {}
public.thread_id = nil
function public.LOAD()
function m.LOAD()
m.event_frame:SetScript('OnUpdate', m.on_update)
m.event_frame:SetScript('OnEvent', m.on_event)
end
@@ -55,7 +55,7 @@ function public.kill_thread(thread_id)
end
function public.event_listener(event, cb)
local listener_id = aux.unique()
local listener_id = aux.id()
m.listeners[listener_id] = { event=event, cb=cb, kill=function(...) if arg.n == 0 or arg[1] then m.kill_listener(listener_id) end end }
m.event_frame:RegisterEvent(event)
return listener_id
@@ -69,8 +69,8 @@ function public.on_next_event(event, callback)
end
function public.thread(k, ...)
local thread_id = aux.unique()
m.threads[thread_id] = { k = aux.f(k, unpack(arg)) }
local thread_id = aux.id()
m.threads[thread_id] = { k = aux._(k, unpack(arg)) }
return thread_id
end
@@ -78,7 +78,7 @@ function public.wait(k, ...)
if type(k) == 'number' then
m.when(function() k = k - 1 return k <= 1 end, unpack(arg))
else
m.threads[m.thread_id].k = aux.f(k, unpack(arg))
m.threads[m.thread_id].k = aux._(k, unpack(arg))
end
end
@@ -86,6 +86,6 @@ function public.when(p, k, ...)
if p() then
return k(unpack(arg))
else
return m.wait(m.when, p, aux.f(k, unpack(arg)))
return m.wait(m.when, p, aux._(k, unpack(arg)))
end
end
+98 -38
View File
@@ -2,13 +2,17 @@ local addon = aux_module()
aux = tremove(addon, 1)
local m, public, private = unpack(addon)
private.modules = { aux }
private.modules = {}
function private.initialize_module(public_declarator)
public_declarator.LOAD = nil
end
m.initialize_module(public)
function public.module(name)
local module = aux_module()
local public_interface = tremove(module, 1)
local public_interface, private_interface, public_declarator, private_declarator = unpack(aux_module())
m.initialize_module(public_declarator)
tinsert(m.modules, public_interface)
public[name] = public_interface
return unpack(module)
return private_interface, public_declarator, private_declarator
end
private.tabs = {}
@@ -40,46 +44,104 @@ end
do
local x = 0
function public.unique()
function public.id()
x = x + 1
return x
end
end
do
local mt = {
__newindex = function(self, key, value)
rawget(self, '_f')()[key] = value
end,
__index = function(self, key)
return rawget(self, '_f')()[key]
end,
__call = function(self)
return rawget(self, '_f')()
end,
}
function public.dynamic_table(f)
return setmetatable({ _f=f }, mt)
end
end
function public.f(f, ...)
local params = arg
return function(...)
for i=1,arg.n do
tinsert(params, arg[i])
end
return f(unpack(params))
local mt = {
__newindex = function(self, name, method)
if strsub(name, 1, 2) == '__' then
self._metatable[name] = method
else
self._methods[name] = method
end
end,
__call = function(self, ...)
setmetatable(self._methods, self._metatable.__index)
self._metatable.__index =self._methods
local object = setmetatable({}, self._metatable)
for name, method in self._methods do
object[name] = method
end
self._constructor(object, unpack(arg))
return object
end,
}
function public.class(constructor)
return setmetatable({_constructor=constructor, _methods={}, _metatable={}}, mt)
end
end
function public.safe_call(f, ...)
public.this = {}
do
local formal_parameters = {}
for i=1,9 do
local key = 'arg'..i
public[key] = {}
formal_parameters[m[key]] = i
end
local function call(f, arg1, arg2)
local params = {}
for i=1,arg1.n do
if arg1[i] == m.this then
tinsert(params, this)
elseif formal_parameters[arg1[i]] then
tinsert(params, arg2[formal_parameters[arg1[i]]])
else
tinsert(params, arg1[i])
end
end
return f(unpack(params))
end
function public._(f, ...)
local arg1 = arg
return function(...)
return call(f, arg1, arg)
end
end
end
do
local mt = {
__newindex = function(self, key, value)
self._f()[key] = value
end,
__index = function(self, key)
return self._f()[key]
end,
__call = function(self)
return self._f()
end,
}
function public.dynamic_table(f)
return setmetatable({_f=f}, mt)
end
end
do
local mt = {
__index = function(self, key)
return self:_cb(key)
end,
__call = function(self)
return self:_cb()
end,
}
function public.index_function(cb)
return setmetatable({_cb = cb}, mt)
end
end
function public.call(f, ...)
if f then
return f(unpack(arg))
end
end
function public.safe_index(t, ...)
function public.index(t, ...)
for i=1,arg.n do
if t then
t = t[arg[i]]
@@ -118,7 +180,7 @@ function public.on_load()
btn:SetWidth(65)
btn:SetHeight(24)
btn:SetText('Close')
btn:SetScript('OnClick', m.f(HideUIPanel, AuxFrame))
btn:SetScript('OnClick', m._(HideUIPanel, AuxFrame))
public.close_button = btn
end
@@ -138,9 +200,7 @@ function public.on_load()
end
for _, module in m.modules do
if module('LOAD') then
module.LOAD()
end
m.call(module.LOAD)
end
end
@@ -148,7 +208,7 @@ function public.on_event()
if event == 'VARIABLES_LOADED' then
m.on_load()
elseif event == 'ADDON_LOADED' then
m.safe_call(m.on_addon_load[arg1])
m.call(m.on_addon_load[arg1])
elseif event == 'AUCTION_HOUSE_SHOW' then
m.on_auction_house_show()
elseif event == 'AUCTION_HOUSE_CLOSED' then
@@ -274,7 +334,7 @@ do
m.control.event_listener('CHAT_MSG_SYSTEM', function(kill)
if arg1 == ERR_AUCTION_BID_PLACED then
aux.safe_call(on_success)
aux.call(on_success)
locked = false
kill()
end
@@ -301,7 +361,7 @@ do
CancelAuction(index)
m.control.event_listener('CHAT_MSG_SYSTEM', function(kill)
if arg1 == ERR_AUCTION_REMOVED then
aux.safe_call(on_success)
aux.call(on_success)
locked = false
kill()
end
@@ -428,7 +488,7 @@ end
function public.is_player(name, current)
local realm = GetCVar('realmName')
return not current and aux.safe_index(aux_characters, realm, name) or UnitName('player') == name
return not current and aux.index(aux_characters, realm, name) or UnitName('player') == name
end
function public.unmodified()
+123 -94
View File
@@ -1,44 +1,105 @@
local m, public, private = aux.module'gui'
public.config = {
link_color = { 153, 255, 255, 1 }, -- TODO inline color needs 255, others need /255
color = {
text = {enabled = {255, 254, 250, 1}, disabled = {147, 151, 139, 1}},
label = {enabled = {216, 225, 211, 1}, disabled = {150, 148, 140, 1}},
link = {153, 255, 255, 1},
window = {backdrop = {24, 24, 24, .93}, border = {30, 30, 30, 1}},
panel = {backdrop = {24, 24, 24, 1}, border = {255, 255, 255, .03}},
content = {backdrop = {42, 42, 42, 1}, border = {0, 0, 0, 0}},
state = {enabled = {60, 180, 60}, disabled = {180, 60, 60}},
},
edge_size = 1.5,
window_color = { backdrop = {24/255, 24/255, 24/255, .93}, border = {30/255, 30/255, 30/255, 1} },
panel_color = { backdrop = {24/255, 24/255, 24/255, 1}, border = {1, 1, 1, .03} },
content_color = { backdrop = {42/255, 42/255, 42/255, 1}, border = {0, 0, 0, 0} },
font = [[Fonts\ARIALN.TTF]],
tiny_font_size = 12,
small_font_size = 13,
medium_font_size = 15,
large_font_size = 18,
huge_font_size = 23,
text_color = { enabled = { 255/255, 254/255, 250/255, 1 }, disabled = { 147/255, 151/255, 139/255, 1 } },
label_color = { enabled = { 216/255, 225/255, 211/255, 1 }, disabled = { 150/255, 148/255, 140/255, 1 } },
on_color = {0.3, 0.7, 0.3},
off_color = {0.7, 0.3, 0.3},
}
function public.inline_color(color)
local r, g, b, a = unpack(color)
return format('|c%02X%02X%02X%02X', a, r, g, b)
public.color = aux.index_function(function(self, key)
self._t = (rawget(self, '_t') or m.config.color)[key]
if getn(self._t) == 0 then
return self
end
local color = aux.util.copy(self._t)
self._t = nil
for i=1,3 do
color[i] = color[i]/255
end
return color
end)
public.inline_color = aux.index_function(function(self, key)
self._t = (rawget(self, '_t') or m.config.color)[key]
if getn(self._t) == 0 then
return self
end
local color = aux.util.copy(self._t)
self._t = nil
tinsert(color, 1, tremove(color))
return format('|c%02X%02X%02X%02X', unpack(color))
end)
function m.LOAD()
aux.hook('ToggleDropDownMenu', function(...)
local ret = {aux.orig.ToggleDropDownMenu(unpack(arg))}
local dropdown = getglobal(arg[4] or '') or this:GetParent()
if strfind(dropdown:GetName() or '', 'aux_frame') then
m.set_content_style(DropDownList1Backdrop)
DropDownList1:SetWidth(dropdown:GetWidth() * 0.9)
DropDownList1:SetHeight(DropDownList1:GetHeight() - 8)
DropDownList1:SetPoint('TOPLEFT', dropdown, 'BOTTOMLEFT', -2, 0)
for i=1,UIDROPDOWNMENU_MAXBUTTONS do
local button = getglobal('DropDownList1Button'..i)
button:SetPoint('TOPLEFT', 0, -((button:GetID() - 1) * UIDROPDOWNMENU_BUTTON_HEIGHT) - 8)
button:SetWidth(dropdown:GetWidth() - 30)
local text = button:GetFontString()
text:SetFont(m.config.font, m.config.medium_font_size)
text:SetPoint('TOPLEFT', 18, 0)
text:SetPoint('BOTTOMRIGHT', -8, 0)
local highlight = getglobal('DropDownList1Button'..i..'Highlight')
highlight:ClearAllPoints()
highlight:SetDrawLayer('OVERLAY')
highlight:SetHeight(14)
highlight:SetPoint('LEFT', 5, 0)
highlight:SetPoint('RIGHT', -3, 0)
local check = getglobal('DropDownList1Button'..i..'Check')
check:SetWidth(16)
check:SetHeight(16)
check:SetPoint('LEFT', 3, -1)
end
while getn(arg) < 4 do
tinsert(arg, nil)
end
tinsert(arg, 0)
tinsert(arg, 10)
end
return unpack(ret)
end)
end
function public.set_frame_style(frame, backdrop_color, border_color)
frame:SetBackdrop{bgFile=[[Interface\Buttons\WHITE8X8]], edgeFile=[[Interface\Buttons\WHITE8X8]], edgeSize=m.config.edge_size, tile=true}
frame:SetBackdropColor(unpack(backdrop_color))
frame:SetBackdropBorderColor(unpack(border_color))
frame:SetBackdrop{bgFile=[[Interface\Buttons\WHITE8X8]], edgeFile=[[Interface\Buttons\WHITE8X8]], edgeSize=m.config.edge_size, tile=true}
frame:SetBackdropColor(unpack(backdrop_color))
frame:SetBackdropBorderColor(unpack(border_color))
end
function public.set_window_style(frame)
m.set_frame_style(frame, m.config.window_color.backdrop, m.config.window_color.border)
m.set_frame_style(frame, m.color.window.backdrop, m.color.window.border)
end
function public.set_panel_style(frame)
m.set_frame_style(frame, m.config.panel_color.backdrop, m.config.panel_color.border)
m.set_frame_style(frame, m.color.panel.backdrop, m.color.panel.border)
end
function public.set_content_style(frame)
m.set_frame_style(frame, m.config.content_color.backdrop, m.config.content_color.border)
m.set_frame_style(frame, m.color.content.backdrop, m.color.content.border)
end
function public.panel(parent)
@@ -50,13 +111,13 @@ end
function public.checkbutton(parent, text_height)
local button = m.button(parent, text_height)
button.state = false
button:SetBackdropColor(unpack(m.config.off_color))
button:SetBackdropColor(unpack(m.color.state.disabled))
function button:SetChecked(state)
if state then
self:SetBackdropColor(unpack(m.config.on_color))
self:SetBackdropColor(unpack(m.color.state.enabled))
self.state = true
else
self:SetBackdropColor(unpack(m.config.off_color))
self:SetBackdropColor(unpack(m.color.state.disabled))
self.state = false
end
end
@@ -82,17 +143,17 @@ function public.button(parent, text_height)
label:SetJustifyH('CENTER')
label:SetJustifyV('CENTER')
label:SetHeight(text_height)
label:SetTextColor(unpack(m.config.text_color.enabled))
label:SetTextColor(unpack(m.color.text.enabled))
button:SetFontString(label)
end
button.default_Enable = button.Enable
function button:Enable()
self:GetFontString():SetTextColor(unpack(m.config.text_color.enabled))
self:GetFontString():SetTextColor(unpack(m.color.text.enabled))
return self:default_Enable()
end
button.default_Disable = button.Disable
function button:Disable()
self:GetFontString():SetTextColor(unpack(m.config.text_color.disabled))
self:GetFontString():SetTextColor(unpack(m.color.text.disabled))
return self:default_Disable()
end
@@ -121,7 +182,6 @@ do
id = id,
frame = parent,
tabs = {},
on_select = aux.util.pass,
}
function self:create_tab(text)
@@ -132,7 +192,7 @@ do
tab.group = self
tab:SetHeight(24)
tab:SetBackdrop{bgFile=[[Interface\Buttons\WHITE8X8]], edgeFile=[[Interface\Buttons\WHITE8X8]], edgeSize=m.config.edge_size}
tab:SetBackdropBorderColor(unpack(m.config.panel_color.border))
tab:SetBackdropBorderColor(unpack(m.color.panel.border))
local dock = tab:CreateTexture(nil, 'OVERLAY')
dock:SetHeight(3)
if orientation == 'UP' then
@@ -142,7 +202,7 @@ do
dock:SetPoint('TOPLEFT', 1, 1)
dock:SetPoint('TOPRIGHT', -1, 1)
end
dock:SetTexture(unpack(m.config.panel_color.backdrop))
dock:SetTexture(unpack(m.color.panel.backdrop))
tab.dock = dock
local highlight = tab:CreateTexture(nil, 'HIGHLIGHT')
highlight:SetAllPoints()
@@ -183,28 +243,27 @@ do
m.resize_tab(tab, tab:GetFontString():GetStringWidth(), 4)
-- tab:Show()
tinsert(self.tabs, tab)
end
function self:set_tab(id)
self.selected = id
self.update_tabs()
self.on_select(id)
aux.call(self.on_select, id)
end
function self.update_tabs()
for _, tab in self.tabs do
if tab.group.selected == tab.id then
tab.text:SetTextColor(unpack(m.config.label_color.enabled))
tab.text:SetTextColor(unpack(m.color.label.enabled))
tab:Disable()
tab:SetBackdropColor(unpack(m.config.panel_color.backdrop))
tab:SetBackdropColor(unpack(m.color.panel.backdrop))
tab.dock:Show()
tab:SetHeight(29)
else
tab.text:SetTextColor(unpack(m.config.text_color.enabled))
tab.text:SetTextColor(unpack(m.color.text.enabled))
tab:Enable()
tab:SetBackdropColor(unpack(m.config.content_color.backdrop))
tab:SetBackdropColor(unpack(m.color.content.backdrop))
tab.dock:Hide()
tab:SetHeight(24)
end
@@ -225,24 +284,19 @@ function public.editbox(parent)
editbox:SetFont(m.config.font, m.config.medium_font_size)
editbox:SetShadowColor(0, 0, 0, 0)
m.set_content_style(editbox)
editbox:SetScript('OnEditFocusLost', aux.f(editbox.HighlightText, editbox, 0, 0))
editbox:SetScript('OnEscapePressed', aux.f(editbox.ClearFocus, editbox))
editbox:SetScript('OnEditFocusGained', aux._(editbox.HighlightText, editbox))
editbox:SetScript('OnEditFocusLost', aux._(editbox.HighlightText, editbox, 0, 0))
editbox:SetScript('OnEscapePressed', aux._(editbox.ClearFocus, editbox))
do
local last_time, last_x, last_y
editbox:SetScript('OnEditFocusGained', aux.f(editbox.HighlightText, editbox))
editbox:SetScript('OnMouseUp', function()
local x, y = GetCursorPosition()
if last_time and last_time > GetTime() - .5 and abs(x - last_x) < 10 and abs(y - last_y) < 10 then
if last_time and GetTime() - last_time < .5 and x == last_x and y == last_y then
last_time = nil
this:HighlightText()
last_time = nil
else
last_time = GetTime()
last_x, last_y = GetCursorPosition()
last_x, last_y = x, y
end
end)
end
@@ -300,7 +354,7 @@ function public.status_bar(parent)
text_frame:SetFrameLevel(level + 4)
text_frame:SetAllPoints(self)
local text = m.label(text_frame)
text:SetTextColor(unpack(m.config.text_color.enabled))
text:SetTextColor(unpack(m.color.text.enabled))
text:SetPoint('CENTER', 0, 0)
self.text = text
end
@@ -325,7 +379,7 @@ function public.item(parent)
local item = CreateFrame('Button', nil, parent)
item:SetWidth(193)
item:SetHeight(40)
local icon = CreateFrame('CheckButton', 'aux_frame'..aux.unique(), item, 'ActionButtonTemplate')
local icon = CreateFrame('CheckButton', 'aux_frame'..aux.id(), item, 'ActionButtonTemplate')
icon:SetPoint('LEFT', 2, 0.5)
icon:SetHighlightTexture(nil)
icon:RegisterForClicks()
@@ -345,7 +399,7 @@ end
function public.label(parent, size)
local label = parent:CreateFontString()
label:SetFont(m.config.font, size or m.config.medium_font_size)
label:SetTextColor(unpack(m.config.label_color.enabled))
label:SetTextColor(unpack(m.color.label.enabled))
return label
end
@@ -355,9 +409,9 @@ function public.horizontal_line(parent, y_offset, inverted_color)
texture:SetPoint('TOPRIGHT', parent, 'TOPRIGHT', -2, y_offset)
texture:SetHeight(2)
if inverted_color then
texture:SetTexture(unpack(m.config.panel_color.backdrop))
texture:SetTexture(unpack(m.color.panel.backdrop))
else
texture:SetTexture(unpack(m.config.content_color.backdrop))
texture:SetTexture(unpack(m.color.content.backdrop))
end
return texture
end
@@ -368,20 +422,20 @@ function public.vertical_line(parent, x_offset, top_offset, bottom_offset, inver
texture:SetPoint('BOTTOMLEFT', parent, 'BOTTOMLEFT', x_offset, bottom_offset or 2)
texture:SetWidth(2)
if inverted_color then
texture:SetTexture(unpack(m.config.panel_color.backdrop))
texture:SetTexture(unpack(m.color.panel.backdrop))
else
texture:SetTexture(unpack(m.config.content_color.backdrop))
texture:SetTexture(unpack(m.color.content.backdrop))
end
return texture
end
function public.dropdown(parent)
local dropdown = CreateFrame('Frame', 'aux_frame'..aux.unique(), parent, 'UIDropDownMenuTemplate')
local dropdown = CreateFrame('Frame', 'aux_frame'..aux.id(), parent, 'UIDropDownMenuTemplate')
dropdown:SetBackdrop{bgFile=[[Interface\Buttons\WHITE8X8]], edgeFile=[[Interface\Buttons\WHITE8X8]], edgeSize=m.config.edge_size, insets={top=5,bottom=5}}
dropdown:SetBackdropColor(unpack(m.config.content_color.backdrop))
dropdown:SetBackdropBorderColor(unpack(m.config.content_color.border))
dropdown:SetBackdropColor(unpack(m.color.content.backdrop))
dropdown:SetBackdropBorderColor(unpack(m.color.content.border))
local left = getglobal(dropdown:GetName()..'Left'):Hide()
local middle = getglobal(dropdown:GetName()..'Middle'):Hide()
local right = getglobal(dropdown:GetName()..'Right'):Hide()
@@ -394,7 +448,7 @@ function public.dropdown(parent)
text:ClearAllPoints()
text:SetPoint('RIGHT', button, 'LEFT', -2, 0)
text:SetPoint('LEFT', dropdown, 'LEFT', 8, 0)
text:SetFont(m.config.font, m.config.small_font_size)
text:SetFont(m.config.font, m.config.medium_font_size)
text:SetShadowColor(0, 0, 0, 0)
--
@@ -434,7 +488,7 @@ function public.slider(parent)
m.set_panel_style(slider)
local thumb_texture = slider:CreateTexture(nil, 'ARTWORK')
thumb_texture:SetPoint('CENTER', 0, 0)
thumb_texture:SetTexture(unpack(m.config.content_color.backdrop))
thumb_texture:SetTexture(unpack(m.color.content.backdrop))
thumb_texture:SetHeight(15)
thumb_texture:SetWidth(8)
slider:SetThumbTexture(thumb_texture)
@@ -445,7 +499,7 @@ function public.slider(parent)
label:SetJustifyH('LEFT')
label:SetHeight(13)
label:SetFont(m.config.font, m.config.small_font_size)
label:SetTextColor(unpack(m.config.label_color.enabled))
label:SetTextColor(unpack(m.color.label.enabled))
local editbox = m.editbox(slider)
editbox:SetPoint('LEFT', slider, 'RIGHT', 5, 0)
@@ -457,41 +511,16 @@ function public.slider(parent)
return slider
end
--function m.checkbox()
-- local frame = CreateFrame('Button', nil, UIParent)
-- frame:Hide()
-- frame:EnableMouse(true)
-- frame:SetScript("OnEnter", Control_OnEnter)
-- frame:SetScript("OnLeave", Control_OnLeave)
-- frame:SetScript("OnMouseDown", CheckBox_OnMouseDown)
-- frame:SetScript("OnMouseUp", CheckBox_OnMouseUp)
--
-- local checkbox = CreateFrame('Button', nil, frame)
-- checkbox:EnableMouse(false)
-- checkbox:SetWidth(16)
-- checkbox:SetHeight(16)
-- checkbox:SetPoint('TOPLEFT', 4, -4)
-- checkbox:SetBackdrop({ bgFile=[[Interface\Buttons\WHITE8X8]], edgeFile=[[Interface\Buttons\WHITE8X8]], edgeSize=m.config.edge_size })
-- checkbox:SetBackdropColor(unpack(m.config.content_color.backdrop))
-- checkbox:SetBackdropBorderColor(unpack(m.config.content_color.border))
-- local highlight = checkbox:CreateTexture(nil, 'HIGHLIGHT')
-- highlight:SetAllPoints()
-- highlight:SetTexture(1, 1, 1, .2)
-- highlight:SetBlendMode('BLEND')
--
-- local check = checkbox:CreateTexture(nil, 'OVERLAY')
-- check:SetTexture([[Interface\Buttons\UI-CheckBox-Check]])
-- check:SetTexCoord(.12, .88, .12, .88)
-- check:SetBlendMode('BLEND')
-- check:SetPoint('BOTTOMRIGHT')
--
-- local text = frame:CreateFontString(nil, 'OVERLAY')
-- text:SetJustifyH('LEFT')
-- text:SetHeight(18)
-- text:SetPoint('LEFT', checkbox, 'RIGHT')
-- text:SetPoint('RIGHT')
-- text:SetFont(m.config.font, m.config.medium_font_size)
--
-- checkbox.text = text
-- return checkbox
--end
function public.checkbox(parent)
local checkbox = CreateFrame('CheckButton', nil, parent, 'UICheckButtonTemplate')
checkbox:SetWidth(16)
checkbox:SetHeight(16)
m.set_content_style(checkbox)
checkbox:SetNormalTexture(nil)
checkbox:SetPushedTexture(nil)
checkbox:GetHighlightTexture():SetAllPoints()
checkbox:GetHighlightTexture():SetTexture(1, 1, 1, .2)
checkbox:GetCheckedTexture():SetTexCoord(.12, .88, .12, .88)
checkbox:GetHighlightTexture('BLEND')
return checkbox
end
+60 -60
View File
@@ -1,62 +1,62 @@
local __ = {}
local public_interface_mt = {
__newindex = function()
error('Unsupported operation.', 2)
end,
__index = function(self, key)
if __[self].public[key] then
return __[self].data[key]
else
error('Read of undeclared "'..key..'".', 2)
end
end,
}
local private_interface_mt = {
__newindex = function(self, key, value)
if not __[self].declared[key] then
error('Write of undeclared "'..key..'".', 2)
end
__[self].data[key] = value
end,
__index = function(self, key)
if not __[self].declared[key] then
error('Read of undeclared "'..key..'".', 2)
end
return __[self].data[key]
end,
}
local public_declarator_mt = {
__newindex = function(self, key, value)
if __[self].declared[key] then
error('Multiple declarations of "'..key..'".', 2)
end
__[self].data[key] = value
__[self].public[key] = true
__[self].declared[key] = true
end,
__index = function()
error('Unsupported operation.', 2)
end,
}
local private_declarator_mt = {
__newindex = function(self, key, value)
if __[self].declared[key] then
error('Multiple declarations of "'..key..'".', 2)
end
__[self].data[key] = value
__[self].declared[key] = true
end,
__index = function()
error('Unsupported operation.', 2)
end,
}
function aux_module()
local data, is_public, is_declared, public_interface, private_interface, public, private = {}, {}, {}, {}, {}, {}, {}
setmetatable(public_interface, {
__newindex = function()
error('Unsupported operation.', 2)
end,
__index = function(_, key)
if not is_public[key] then
error('Read of undeclared "'..key..'".', 2)
end
if is_public[key] then
return data[key]
end
end,
__call = function(_, key)
return is_public[key]
end
})
setmetatable(private_interface, {
__newindex = function(_, key, value)
if not is_declared[key] then
error('Write of undeclared "'..key..'".', 2)
end
data[key] = value
end,
__index = function(_, key)
if not is_declared[key] then
error('Read of undeclared "'..key..'".', 2)
end
return data[key]
end,
__call = function(_, key)
return is_declared[key]
end
})
setmetatable(public, {
__newindex = function(_, key, value)
if is_declared[key] then
error('Multiple declarations of "'..key..'".', 2)
end
data[key] = value
is_public[key] = true
is_declared[key] = true
end,
__index = function()
error('Unsupported operation.', 2)
end,
})
setmetatable(private, {
__newindex = function(_, key, value)
if is_declared[key] then
error('Multiple declarations of "'..key..'".', 2)
end
data[key] = value
is_declared[key] = true
end,
__index = function()
error('Unsupported operation.', 2)
end,
})
return { public_interface, private_interface, public, private }
local dataset = {data={}, public={}, declared={}}
local module = {setmetatable({}, public_interface_mt), setmetatable({}, private_interface_mt), setmetatable({}, public_declarator_mt), setmetatable({}, private_declarator_mt)}
for _, component in module do
__[component] = dataset
end
return module
end
+8 -8
View File
@@ -86,7 +86,7 @@ public.search_config = {
width = 0.06,
align = 'CENTER',
set = function(cell, record, count, own, expandable)
local numAuctionsText = expandable and (aux.gui.inline_color(aux.gui.config.link_color)..count..'|r') or count
local numAuctionsText = expandable and aux.gui.inline_color.link..count..FONT_COLOR_CODE_CLOSE or count
if own > 0 then
numAuctionsText = numAuctionsText..(' |cffffff00('..own..')|r')
end
@@ -132,7 +132,7 @@ public.search_config = {
width = 0.13,
align = 'CENTER',
set = function(cell, record)
cell:SetText(aux.is_player(record.owner) and ('|cffffff00'..record.owner..'|r') or (record.owner or '---'))
cell:SetText(aux.is_player(record.owner) and ('|cffffff00'..record.owner..FONT_COLOR_CODE_CLOSE) or (record.owner or '---'))
end,
cmp = function(record_a, record_b, desc)
if not record_a.owner and not record_b.owner then
@@ -256,7 +256,7 @@ public.auctions_config = {
width = 0.06,
align = 'CENTER',
set = function(cell, record, count, own, expandable)
local numAuctionsText = expandable and (aux.gui.inline_color(aux.gui.config.link_color)..count..'|r') or count
local numAuctionsText = expandable and aux.gui.inline_color.link..count..FONT_COLOR_CODE_CLOSE or count
cell:SetText(numAuctionsText)
end,
cmp = function(record_a, record_b, desc)
@@ -390,7 +390,7 @@ public.bids_config = {
width = 0.06,
align = 'CENTER',
set = function(cell, record, count, own, expandable)
local numAuctionsText = expandable and (aux.gui.inline_color(aux.gui.config.link_color)..count..'|r') or count
local numAuctionsText = expandable and aux.gui.inline_color.link..count..FONT_COLOR_CODE_CLOSE or count
cell:SetText(numAuctionsText)
end,
cmp = function(record_a, record_b, desc)
@@ -433,7 +433,7 @@ public.bids_config = {
width = 0.13,
align = 'CENTER',
set = function(cell, record)
cell:SetText(aux.is_player(record.owner) and ('|cffffff00'..record.owner..'|r') or (record.owner or '---'))
cell:SetText(aux.is_player(record.owner) and ('|cffffff00'..record.owner..FONT_COLOR_CODE_CLOSE) or (record.owner or '---'))
end,
cmp = function(record_a, record_b, desc)
if not record_a.owner and not record_b.owner then
@@ -996,7 +996,7 @@ local methods = {
function public.CreateAuctionResultsTable(parent, config)
local rtName = 'aux_frame'..aux.unique()
local rtName = 'aux_frame'..aux.id()
RT_COUNT = RT_COUNT + 1
local rt = CreateFrame('Frame', rtName, parent)
rt.config = config
@@ -1047,7 +1047,7 @@ function public.CreateAuctionResultsTable(parent, config)
scrollBar:SetWidth(10)
local thumbTex = scrollBar:GetThumbTexture()
thumbTex:SetPoint('CENTER', 0, 0)
thumbTex:SetTexture(unpack(aux.gui.config.content_color.backdrop))
thumbTex:SetTexture(unpack(aux.gui.color.content.backdrop))
thumbTex:SetHeight(150)
thumbTex:SetWidth(scrollBar:GetWidth())
getglobal(scrollBar:GetName()..'ScrollUpButton'):Hide()
@@ -1074,7 +1074,7 @@ function public.CreateAuctionResultsTable(parent, config)
text:SetJustifyH('CENTER')
text:SetJustifyV('CENTER')
text:SetFont(aux.gui.config.font, aux.gui.config.tiny_font_size)
text:SetTextColor(unpack(aux.gui.config.label_color.enabled))
text:SetTextColor(unpack(aux.gui.color.label.enabled))
cell:SetFontString(text)
if not column_config.isPrice then cell:SetText(column_config.title or '') end -- TODO
text:SetAllPoints()
+1 -1
View File
@@ -60,7 +60,7 @@ function public.create(parent, on_click, on_enter, on_leave, selected)
scrollBar:SetWidth(12)
local thumbTex = scrollBar:GetThumbTexture()
thumbTex:SetPoint('CENTER', 0, 0)
thumbTex:SetTexture(unpack(aux.gui.config.content_color.backdrop))
thumbTex:SetTexture(unpack(aux.gui.color.content.backdrop))
thumbTex:SetHeight(50)
thumbTex:SetWidth(12)
getglobal(scrollBar:GetName()..'ScrollUpButton'):Hide()
+2 -2
View File
@@ -309,7 +309,7 @@ local methods = {
local text = col:CreateFontString()
text:SetJustifyV('CENTER')
text:SetFont(aux.gui.config.font, aux.gui.config.medium_font_size)
text:SetTextColor(unpack(aux.gui.config.text_color.enabled))
text:SetTextColor(unpack(aux.gui.color.text.enabled))
text:SetAllPoints()
col.text = text
col:SetFontString(text)
@@ -433,7 +433,7 @@ function public.CreateScrollingTable(parent)
st.scrollBar = scrollBar
local thumbTex = scrollBar:GetThumbTexture()
thumbTex:SetPoint('CENTER', 0, 0)
thumbTex:SetTexture(unpack(aux.gui.config.content_color.backdrop))
thumbTex:SetTexture(unpack(aux.gui.color.content.backdrop))
thumbTex:SetHeight(50)
thumbTex:SetWidth(12)
getglobal(scrollBar:GetName()..'ScrollUpButton'):Hide()
+2 -2
View File
@@ -6,7 +6,7 @@ function public.FRAMES(f)
private.create_frames = f
end
function public.LOAD()
function m.LOAD()
m.create_frames(m, public, private)
end
@@ -92,7 +92,7 @@ do
m.cancel_button:SetScript('OnClick', function()
if m.test(record)(index) and m.listing:ContainsRecord(record) then
aux.cancel_auction(index, aux.f(m.listing.RemoveAuctionRecord, m.listing, record))
aux.cancel_auction(index, aux._(m.listing.RemoveAuctionRecord, m.listing, record))
end
end)
m.cancel_button:Enable()
+3 -3
View File
@@ -6,7 +6,7 @@ function public.FRAMES(f)
private.create_frames = f
end
function public.LOAD()
function m.LOAD()
m.create_frames(m, public, private)
end
@@ -96,7 +96,7 @@ do
aux.place_bid('bidder', index, record.bid_price, record.bid_price < record.buyout_price and function()
aux.info.bid_update(record)
m.listing:SetDatabase()
end or aux.f(m.listing.RemoveAuctionRecord, m.listing, record))
end or aux._(m.listing.RemoveAuctionRecord, m.listing, record))
end
end)
m.bid_button:Enable()
@@ -105,7 +105,7 @@ do
if record.buyout_price > 0 then
m.buyout_button:SetScript('OnClick', function()
if m.test(record)(index) and m.listing:ContainsRecord(record) then
aux.place_bid('bidder', index, record.buyout_price, aux.f(m.listing.RemoveAuctionRecord, m.listing, record))
aux.place_bid('bidder', index, record.buyout_price, aux._(m.listing.RemoveAuctionRecord, m.listing, record))
end
end)
m.buyout_button:Enable()
+4 -4
View File
@@ -13,14 +13,14 @@ function public.FRAMES(f)
private.create_frames = f
end
function public.LOAD()
function m.LOAD()
m.create_frames(m, public, private)
end
function public.OPEN()
m.frame:Show()
m.deposit:SetText('Deposit: '..aux.money.to_string(0, nil, nil, nil, aux.gui.inline_color({255, 254, 250, 1})))
m.deposit:SetText('Deposit: '..aux.money.to_string(0, nil, nil, nil, aux.gui.inline_color.text.enabled))
m.set_unit_start_price(0)
m.set_unit_buyout_price(0)
@@ -278,7 +278,7 @@ function private.update_item_configuration()
m.item.texture:SetTexture(nil)
m.item.count:SetText()
m.item.name:SetTextColor(unpack(aux.gui.config.label_color.enabled))
m.item.name:SetTextColor(unpack(aux.gui.color.label.enabled))
m.item.name:SetText('No item selected')
m.unit_start_price:Hide()
@@ -319,7 +319,7 @@ function private.update_item_configuration()
stack_count = m.stack_count_slider:GetValue()
local deposit = floor(m.selected_item.unit_vendor_price * deposit_factor * (m.selected_item.max_charges and 1 or stack_size)) * stack_count * UIDropDownMenu_GetSelectedValue(m.duration_dropdown) / 120
m.deposit:SetText('Deposit: '..aux.money.to_string(deposit, nil, nil, nil, aux.gui.inline_color({255, 254, 250, 1})))
m.deposit:SetText('Deposit: '..aux.money.to_string(deposit, nil, nil, nil, aux.gui.inline_color.text.enabled))
end
m.refresh_button:Enable()
+6 -10
View File
@@ -25,15 +25,13 @@ aux.post_tab.FRAMES(function(m, public, private)
m.frame.auctions:SetPoint('BOTTOMRIGHT', 0, 0)
do
local checkbox = CreateFrame('CheckButton', nil, m.frame.inventory, 'UICheckButtonTemplate')
checkbox:SetWidth(22)
checkbox:SetHeight(22)
checkbox:SetPoint('TOPLEFT', 45, -15)
local checkbox = aux.gui.checkbox(m.frame.inventory)
checkbox:SetPoint('TOPLEFT', 49, -16)
checkbox:SetScript('OnClick', function()
m.refresh = true
end)
local label = aux.gui.label(checkbox, aux.gui.config.small_font_size)
label:SetPoint('LEFT', checkbox, 'RIGHT', 2, 1)
label:SetPoint('LEFT', checkbox, 'RIGHT', 4, 1)
label:SetText('Show hidden items')
private.show_hidden_checkbox = checkbox
end
@@ -224,10 +222,8 @@ aux.post_tab.FRAMES(function(m, public, private)
private.duration_dropdown = dropdown
end
do
local checkbox = CreateFrame('CheckButton', nil, m.frame.parameters, 'UICheckButtonTemplate')
checkbox:SetWidth(22)
checkbox:SetHeight(22)
checkbox:SetPoint('TOPRIGHT', -85, -6)
local checkbox = aux.gui.checkbox(m.frame.parameters)
checkbox:SetPoint('TOPRIGHT', -83, -6)
checkbox:SetScript('OnClick', function()
local settings = m.read_settings()
settings.hidden = this:GetChecked()
@@ -235,7 +231,7 @@ aux.post_tab.FRAMES(function(m, public, private)
m.refresh = true
end)
local label = aux.gui.label(checkbox, aux.gui.config.small_font_size)
label:SetPoint('LEFT', checkbox, 'RIGHT', 2, 1)
label:SetPoint('LEFT', checkbox, 'RIGHT', 4, 1)
label:SetText('Hide this item')
private.hide_checkbox = checkbox
end
+7 -7
View File
@@ -66,7 +66,7 @@ function public.FRAMES(f)
private.create_frames = f
end
function public.LOAD()
function m.LOAD()
m.create_frames(m, public, private)
m.new_search('')
m.update_tab(m.SAVED)
@@ -233,8 +233,8 @@ function private.start_real_time_scan(query, search, continuation)
if not ignore_page then
if search.auto_buy then
ctrl.suspend()
aux.place_bid('list', auction_record.index, auction_record.buyout_price, aux.f(ctrl.resume, true))
aux.control.thread(aux.control.when, aux.util.later(GetTime(), 10), aux.f(ctrl.resume, false))
aux.place_bid('list', auction_record.index, auction_record.buyout_price, aux._(ctrl.resume, true))
aux.control.thread(aux.control.when, aux.util.later(GetTime(), 10), aux._(ctrl.resume, false))
else
tinsert(new_records, auction_record)
end
@@ -329,8 +329,8 @@ function private.start_search(queries, continuation)
on_auction = function(auction_record, ctrl)
if search.auto_buy then
ctrl.suspend()
aux.place_bid('list', auction_record.index, auction_record.buyout_price, aux.f(ctrl.resume, true))
aux.control.thread(aux.control.when, aux.util.later(GetTime(), 10), aux.f(ctrl.resume, false))
aux.place_bid('list', auction_record.index, auction_record.buyout_price, aux._(ctrl.resume, true))
aux.control.thread(aux.control.when, aux.util.later(GetTime(), 10), aux._(ctrl.resume, false))
elseif getn(search.records) < 1000 then
tinsert(search.records, auction_record)
if getn(search.records) == 1000 then
@@ -488,7 +488,7 @@ do
aux.place_bid('list', index, record.bid_price, record.bid_price < record.buyout_price and function()
aux.info.bid_update(record)
search.table:SetDatabase()
end or aux.f(search.table.RemoveAuctionRecord, search.table, record))
end or aux._(search.table.RemoveAuctionRecord, search.table, record))
end
end)
m.bid_button:Enable()
@@ -497,7 +497,7 @@ do
if record.buyout_price > 0 then
m.buyout_button:SetScript('OnClick', function()
if m.test(record)(index) and search.table:ContainsRecord(record) then
aux.place_bid('list', index, record.buyout_price, aux.f(search.table.RemoveAuctionRecord, search.table, record))
aux.place_bid('list', index, record.buyout_price, aux._(search.table.RemoveAuctionRecord, search.table, record))
end
end)
m.buyout_button:Enable()
+16 -20
View File
@@ -50,7 +50,7 @@ aux.search_tab.FRAMES(function(m, public, private)
do
local panel = CreateFrame('Frame', nil, m.frame)
panel:SetBackdrop{bgFile=[[Interface\Buttons\WHITE8X8]]}
panel:SetBackdropColor(unpack(aux.gui.config.content_color.backdrop))
panel:SetBackdropColor(unpack(aux.gui.color.content.backdrop))
panel:SetPoint('LEFT', m.settings_button, 'RIGHT', 0, 0)
panel:SetPoint('RIGHT', 0, 0)
panel:SetHeight(42)
@@ -79,15 +79,15 @@ aux.search_tab.FRAMES(function(m, public, private)
end)
editbox:SetScript('OnTextChanged', function()
if m.blizzard_page_index(this:GetText()) and not m.real_time_button:GetChecked() then
this:SetBackdropColor(unpack(aux.gui.config.on_color))
this:SetBackdropColor(unpack(aux.gui.color.state.enabled))
else
this:SetBackdropColor(unpack(aux.gui.config.off_color))
this:SetBackdropColor(unpack(aux.gui.color.state.disabled))
end
end)
local label = aux.gui.label(editbox, aux.gui.config.medium_font_size)
label:SetPoint('RIGHT', editbox, 'LEFT', -6, 0)
label:SetText('Pages')
label:SetTextColor(unpack(aux.gui.config.text_color.enabled))
label:SetTextColor(unpack(aux.gui.color.text.enabled))
private.first_page_input = editbox
end
do
@@ -105,15 +105,15 @@ aux.search_tab.FRAMES(function(m, public, private)
end)
editbox:SetScript('OnTextChanged', function()
if m.blizzard_page_index(this:GetText()) and not m.real_time_button:GetChecked() then
this:SetBackdropColor(unpack(aux.gui.config.on_color))
this:SetBackdropColor(unpack(aux.gui.color.state.enabled))
else
this:SetBackdropColor(unpack(aux.gui.config.off_color))
this:SetBackdropColor(unpack(aux.gui.color.state.disabled))
end
end)
local label = aux.gui.label(editbox, aux.gui.config.medium_font_size)
label:SetPoint('RIGHT', editbox, 'LEFT', -3.5, 0)
label:SetText('-')
label:SetTextColor(unpack(aux.gui.config.text_color.enabled))
label:SetTextColor(unpack(aux.gui.color.text.enabled))
private.last_page_input = editbox
end
do
@@ -379,19 +379,17 @@ aux.search_tab.FRAMES(function(m, public, private)
m.min_level_input:SetFocus()
end
end)
editbox:SetScript('OnEnterPressed', aux.f(editbox.ClearFocus, editbox))
editbox:SetScript('OnEnterPressed', aux._(editbox.ClearFocus, editbox))
local label = aux.gui.label(editbox, aux.gui.config.small_font_size)
label:SetPoint('BOTTOMLEFT', editbox, 'TOPLEFT', -2, 1)
label:SetText('Name')
private.name_input = editbox
end
do
local checkbox = CreateFrame('CheckButton', nil, m.frame.filter, 'UICheckButtonTemplate')
checkbox:SetWidth(22)
checkbox:SetHeight(22)
checkbox:SetPoint('TOPLEFT', m.name_input, 'TOPRIGHT', 10, 0)
local checkbox = aux.gui.checkbox(m.frame.filter)
checkbox:SetPoint('TOPLEFT', m.name_input, 'TOPRIGHT', 16, 0)
local label = aux.gui.label(checkbox, aux.gui.config.small_font_size)
label:SetPoint('BOTTOMLEFT', checkbox, 'TOPLEFT', 1, -3)
label:SetPoint('BOTTOMLEFT', checkbox, 'TOPLEFT', -2, 1)
label:SetText('Exact')
private.exact_checkbox = checkbox
end
@@ -408,7 +406,7 @@ aux.search_tab.FRAMES(function(m, public, private)
m.max_level_input:SetFocus()
end
end)
editbox:SetScript('OnEnterPressed', aux.f(editbox.ClearFocus, editbox))
editbox:SetScript('OnEnterPressed', aux._(editbox.ClearFocus, editbox))
local label = aux.gui.label(editbox, aux.gui.config.small_font_size)
label:SetPoint('BOTTOMLEFT', editbox, 'TOPLEFT', -2, 1)
label:SetText('Level Range')
@@ -427,19 +425,17 @@ aux.search_tab.FRAMES(function(m, public, private)
m.name_input:SetFocus()
end
end)
editbox:SetScript('OnEnterPressed', aux.f(editbox.ClearFocus, editbox))
editbox:SetScript('OnEnterPressed', aux._(editbox.ClearFocus, editbox))
local label = aux.gui.label(editbox, aux.gui.config.medium_font_size)
label:SetPoint('RIGHT', editbox, 'LEFT', -3, 0)
label:SetText('-')
private.max_level_input = editbox
end
do
local checkbox = CreateFrame('CheckButton', nil, m.frame.filter, 'UICheckButtonTemplate')
checkbox:SetWidth(22)
checkbox:SetHeight(22)
checkbox:SetPoint('TOPLEFT', m.max_level_input, 'TOPRIGHT', 10, 0)
local checkbox = aux.gui.checkbox(m.frame.filter)
checkbox:SetPoint('TOPLEFT', m.max_level_input, 'TOPRIGHT', 16, 0)
local label = aux.gui.label(checkbox, aux.gui.config.small_font_size)
label:SetPoint('BOTTOMLEFT', checkbox, 'TOPLEFT', 1, -3)
label:SetPoint('BOTTOMLEFT', checkbox, 'TOPLEFT', -2, 1)
label:SetText('Usable')
private.usable_checkbox = checkbox
end
+12 -32
View File
@@ -1,18 +1,5 @@
local m, public, private = aux.module'util'
function public.pass()
end
function public.id(x)
return x
end
function public.const(x)
return function()
return x
end
end
function public.size(t)
local x = 0
for _ in t do
@@ -72,7 +59,11 @@ end
function public.any(xs, p)
local holds = false
for _, x in xs do
holds = holds or p(x)
if p then
holds = holds or p(x)
else
holds = holds or x
end
end
return holds
end
@@ -80,7 +71,11 @@ end
function public.all(xs, p)
local holds = true
for _, x in xs do
holds = holds and p(x)
if p then
holds = holds and p(x)
else
holds = holds and x
end
end
return holds
end
@@ -227,7 +222,6 @@ function public.bag_type(bag)
if bag == 0 then
return 1
end
if GetInventoryItemLink('player', ContainerIDToInventoryID(bag)) then
local item_id = aux.info.parse_hyperlink(GetInventoryItemLink('player', ContainerIDToInventoryID(bag)))
local item_info = aux.info.item(item_id)
@@ -251,22 +245,8 @@ function public.signal()
end
end
function public.without_errors(f)
local orig = UIErrorsFrame.AddMessage
UIErrorsFrame.AddMessage = m.pass
f()
UIErrorsFrame.AddMessage = orig
end
function public.without_sound(f)
local orig = GetCVar('MasterSoundEffects')
SetCVar('MasterSoundEffects', 0)
f()
SetCVar('MasterSoundEffects', orig)
end
function public.format_money(money, exact, color)
color = color or '|r'
color = color or FONT_COLOR_CODE_CLOSE
local TEXT_NONE = '0'
@@ -275,7 +255,7 @@ function public.format_money(money, exact, color)
local GSC_COPPER = 'c8602c'
local GSC_START = '|cff%s%d|r'
local GSC_PART = color..'.|cff%s%02d|r'
local GSC_NONE = '|cffa0a0a0'..TEXT_NONE..'|r'
local GSC_NONE = '|cffa0a0a0'..TEXT_NONE..FONT_COLOR_CODE_CLOSE
if not exact and money >= 10000 then
-- Round to nearest silver
+13 -13
View File
@@ -543,12 +543,12 @@ function public.indented_post_query_string(components)
if component[1] == 'operator' and component[2] then
no_line_break = component[2] == 'not'
str = str..'|cffffff00'..component[2]..(tonumber(component[3]) or '')..'|r'
str = str..'|cffffff00'..component[2]..(tonumber(component[3]) or '')..FONT_COLOR_CODE_CLOSE
tinsert(stack, component[3] or '*')
elseif component[1] == 'filter' then
str = str..'|cffffff00'..component[2]..'|r'
str = str..'|cffffff00'..component[2]..FONT_COLOR_CODE_CLOSE
if component[3] then
str = str..': '..'|cffff9218'..component[3]..'|r'
str = str..': '..'|cffff9218'..component[3]..FONT_COLOR_CODE_CLOSE
end
while getn(stack) > 0 and stack[getn(stack)] ~= '*' do
local top = tremove(stack)
@@ -570,29 +570,29 @@ function private.prettified_query_string(components)
for _, filter in components.blizzard do
blizzard_filters[filter[1]] = filter[2] or true
if filter[1] == 'exact' then
prettified.prepend(aux.info.display_name(aux.cache.item_id(m.unquote(blizzard_filters.name))) or aux.gui.inline_color({216, 225, 211, 1})..'['..m.unquote(blizzard_filters.name)..']|r')
prettified.prepend(aux.info.display_name(aux.cache.item_id(m.unquote(blizzard_filters.name))) or aux.gui.inline_color.label.enabled..'['..m.unquote(blizzard_filters.name)..']|r')
elseif filter[1] ~= 'name' then
prettified.append(aux.gui.inline_color({216, 225, 211, 1})..(filter[2] or filter[1])..'|r')
prettified.append(aux.gui.inline_color.label.enabled..(filter[2] or filter[1])..FONT_COLOR_CODE_CLOSE)
end
end
if blizzard_filters.name and not blizzard_filters.exact then
if m.unquote(blizzard_filters.name) == '' then
prettified.prepend('|cffff0000'..'No Filter'..'|r')
prettified.prepend(RED_FONT_COLOR_CODE..'No Filter'..FONT_COLOR_CODE_CLOSE)
else
prettified.prepend(aux.gui.inline_color({216, 225, 211, 1})..m.unquote(blizzard_filters.name)..'|r')
prettified.prepend(aux.gui.inline_color.label.enabled..m.unquote(blizzard_filters.name)..FONT_COLOR_CODE_CLOSE)
end
end
for _, component in components.post do
if component[1] == 'operator' then
prettified.append('|cffffff00'..component[2]..(tonumber(component[3]) or '')..'|r')
prettified.append('|cffffff00'..component[2]..(tonumber(component[3]) or '')..FONT_COLOR_CODE_CLOSE)
elseif component[1] == 'filter' then
if component[2] ~= 'tooltip' then
prettified.append('|cffffff00'..component[2]..'|r')
prettified.append('|cffffff00'..component[2]..FONT_COLOR_CODE_CLOSE)
end
if component[3] then
prettified.append('|cffff9218'..component[3]..'|r')
prettified.append('|cffff9218'..component[3]..FONT_COLOR_CODE_CLOSE)
end
end
end
@@ -676,15 +676,15 @@ function private.validator(components)
if name == 'not' then
tinsert(stack, not args[1])
elseif name == 'and' then
tinsert(stack, aux.util.all(args, aux.util.id))
tinsert(stack, aux.util.all(args))
elseif name == 'or' then
tinsert(stack, aux.util.any(args, aux.util.id))
tinsert(stack, aux.util.any(args))
end
elseif type == 'filter' then
tinsert(stack, validators[i](record) and true or false)
end
end
return aux.util.all(stack, aux.util.id)
return aux.util.all(stack)
end
end
+2 -2
View File
@@ -63,7 +63,7 @@ function public.to_string(money, pad, trim, decimal_points, color, no_color)
if is_negative then
if color then
text = color..'-|r'..text
text = color..'-'..FONT_COLOR_CODE_CLOSE..text
else
text = '-'..text
end
@@ -99,7 +99,7 @@ function public.format_number(num, pad, decimal_padding, color)
num = format('%0'..padding..'.0'..(decimal_padding or 0)..'f', num)
if color then
return color..num..'|r'
return color..num..FONT_COLOR_CODE_CLOSE
else
return num
end
+2 -2
View File
@@ -5,8 +5,8 @@ aux_datasets = {}
do
local realm, faction
function public.LOAD()
aux.control.thread(aux.control.when, function() faction = UnitFactionGroup('player') return faction end, aux.util.pass)
function m.LOAD()
aux.control.thread(aux.control.when, function() faction = UnitFactionGroup('player') return faction end, function() end)
realm = GetCVar('realmName')
end