Add Auctionator core and Buy UI
This commit is contained in:
+4357
File diff suppressed because it is too large
Load Diff
+1269
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,80 @@
|
||||
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
local origGetSellValue = GetSellValue;
|
||||
local origGetAuctionBuyout = GetAuctionBuyout;
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
function GetSellValue (item) -- Tekkub's API
|
||||
|
||||
return Atr_GetSellValue(item);
|
||||
end
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
function GetAuctionBuyout (item) -- Tekkub's API
|
||||
|
||||
return Atr_GetAuctionBuyout(item);
|
||||
end
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
function Atr_GetSellValue (item) -- Just like Tekkub's API but for when you want to be sure you're calling Auctionator's version of it
|
||||
|
||||
local _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, sellval = Atr_GetItemInfo (item);
|
||||
|
||||
if (sellval ~= nil) then
|
||||
return sellval;
|
||||
end
|
||||
|
||||
if (origGetSellValue) then
|
||||
return origGetSellValue(item);
|
||||
end
|
||||
|
||||
return 0;
|
||||
end
|
||||
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
function Atr_GetAuctionBuyout (item) -- Just like Tekkub's API but for when you want to be sure you're calling Auctionator's version of it
|
||||
|
||||
local sellval;
|
||||
|
||||
if (type(item) == "string") then
|
||||
sellval = Atr_GetAuctionPrice(item);
|
||||
end
|
||||
|
||||
if (sellval == nil) then
|
||||
local name = Atr_GetItemInfo (item);
|
||||
if (name) then
|
||||
sellval = Atr_GetAuctionPrice(name);
|
||||
end
|
||||
end
|
||||
|
||||
if (sellval) then
|
||||
return sellval;
|
||||
end
|
||||
|
||||
if (origGetAuctionBuyout) then
|
||||
return origGetAuctionBuyout(item);
|
||||
end
|
||||
|
||||
return nil;
|
||||
end
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
function Atr_GetDisenchantValue (item)
|
||||
|
||||
local itemName, itemLink, itemRarity, itemLevel, _, itemType = Atr_GetItemInfo (item);
|
||||
|
||||
if (itemLink) then
|
||||
return Atr_CalcDisenchantPrice (itemType, itemRarity, itemLevel);
|
||||
end
|
||||
|
||||
return nil;
|
||||
end
|
||||
|
||||
@@ -0,0 +1,389 @@
|
||||
|
||||
local addonName, addonTable = "Auctionator", AtrNS;
|
||||
local zc = addonTable.zc;
|
||||
|
||||
|
||||
local ATR_BUY_NULL = 0;
|
||||
local ATR_BUY_QUERY_SENT = 1;
|
||||
local ATR_BUY_JUST_BOUGHT = 2;
|
||||
local ATR_BUY_PROCESSING_QUERY_RESULTS = 3;
|
||||
local ATR_BUY_WAITING_FOR_AH_CAN_SEND = 4;
|
||||
|
||||
local gBuyState = ATR_BUY_NULL;
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
local gAtr_Buy_BuyoutPrice;
|
||||
local gAtr_Buy_ItemName;
|
||||
local gAtr_Buy_StackSize;
|
||||
local gAtr_Buy_NumBought;
|
||||
local gAtr_Buy_NumUserWants;
|
||||
local gAtr_Buy_MaxCanBuy;
|
||||
local gAtr_Buy_CurPage;
|
||||
local gAtr_Buy_Waiting_Start;
|
||||
local gAtr_Buy_Query;
|
||||
local gAtr_Buy_Pass;
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
function Atr_Buy_Debug1 (yellow)
|
||||
|
||||
if (gBuyState == ATR_BUY_NULL) then asstr = "ATR_BUY_NULL"; end;
|
||||
if (gBuyState == ATR_BUY_QUERY_SENT) then asstr = "ATR_BUY_QUERY_SENT"; end;
|
||||
if (gBuyState == ATR_BUY_PROCESSING_QUERY_RESULTS) then asstr = "ATR_BUY_PROCESSING_QUERY_RESULTS"; end;
|
||||
if (gBuyState == ATR_BUY_JUST_BOUGHT) then asstr = "ATR_BUY_JUST_BOUGHT"; end;
|
||||
if (gBuyState == ATR_BUY_WAITING_FOR_AH_CAN_SEND) then asstr = "ATR_BUY_WAITING_FOR_AH_CAN_SEND"; end;
|
||||
|
||||
if (gBuyState ~= ATR_BUY_NULL) then
|
||||
if (yellow) then
|
||||
zc.msg (asstr, "curpage: ", gAtr_Buy_CurPage, " gAtr_Buy_NumBought: ", gAtr_Buy_NumBought);
|
||||
else
|
||||
zc.msg_pink (asstr, "curpage: ", gAtr_Buy_CurPage, " gAtr_Buy_NumBought: ", gAtr_Buy_NumBought);
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
function Atr_Buy_IsBusy ()
|
||||
|
||||
if (gBuyState == ATR_BUY_NULL) then
|
||||
return false;
|
||||
end
|
||||
|
||||
if (gBuyState == ATR_BUY_PROCESSING_QUERY_RESULTS and not Atr_Buy_Confirm_Frame:IsShown()) then
|
||||
return false;
|
||||
end
|
||||
|
||||
return true;
|
||||
end
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
function Atr_ClearBuyState()
|
||||
|
||||
gBuyState = ATR_BUY_NULL;
|
||||
|
||||
end
|
||||
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
function Atr_Buy1_Onclick ()
|
||||
|
||||
if (not Atr_ShowingCurrentAuctions()) then
|
||||
return;
|
||||
end
|
||||
|
||||
local searchPane = Atr_GetCurrentPane();
|
||||
if (searchPane.activeSearch and searchPane.activeSearch:IsActive()) then
|
||||
searchPane.activeSearch:Pause(); -- resumes when the purchase is over
|
||||
end
|
||||
|
||||
|
||||
gAtr_Buy_Query = Atr_NewQuery();
|
||||
gAtr_Buy_NumUserWants = -1;
|
||||
gAtr_Buy_NumBought = 0;
|
||||
|
||||
local currentPane = Atr_GetCurrentPane();
|
||||
|
||||
local scan = currentPane.activeScan;
|
||||
|
||||
local data = scan.sortedData[currentPane.currIndex];
|
||||
|
||||
gAtr_Buy_BuyoutPrice = data.buyoutPrice;
|
||||
gAtr_Buy_ItemName = scan.itemName;
|
||||
gAtr_Buy_StackSize = data.stackSize;
|
||||
gAtr_Buy_MaxCanBuy = data.count;
|
||||
gAtr_Buy_Pass = 1; -- - first pass
|
||||
|
||||
Atr_Buy_Confirm_ItemName:SetText (gAtr_Buy_ItemName.." x"..gAtr_Buy_StackSize);
|
||||
Atr_Buy_Confirm_Numstacks:SetNumber (1);
|
||||
Atr_Buy_Confirm_Max_Text:SetText (ZT("max")..": "..gAtr_Buy_MaxCanBuy);
|
||||
|
||||
Atr_Buy_Part1:Show();
|
||||
Atr_Buy_Part2:Hide();
|
||||
|
||||
Atr_Buy_Confirm_OKBut:SetText (ZT("Buy"))
|
||||
Atr_Buy_Confirm_OKBut:Disable();
|
||||
Atr_Buy_Confirm_Frame:Show();
|
||||
|
||||
if (scan.searchWasExact and data.minpage ~= nil) then
|
||||
Atr_Buy_QueueQuery(data.minpage);
|
||||
else
|
||||
Atr_Buy_QueueQuery(0);
|
||||
end
|
||||
|
||||
|
||||
end
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
function Atr_Buy_QueueQuery (page)
|
||||
|
||||
gAtr_Buy_CurPage = page;
|
||||
|
||||
--zc.msg_pink ("Queuing query for page ", page);
|
||||
|
||||
gBuyState = ATR_BUY_WAITING_FOR_AH_CAN_SEND;
|
||||
gAtr_Buy_Waiting_Start = time();
|
||||
|
||||
Atr_Buy_SendQuery(); -- give it a shot
|
||||
end
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
function Atr_Buy_SendQuery ()
|
||||
|
||||
if (Atr_CanSendAuctionQuery ()) then
|
||||
|
||||
gBuyState = ATR_BUY_QUERY_SENT;
|
||||
|
||||
local queryString = zc.UTF8_Truncate (gAtr_Buy_ItemName,63); -- attempting to reduce number of disconnects
|
||||
|
||||
Atr_QueryAuctionItems (queryString, "", "", nil, 0, 0, gAtr_Buy_CurPage, nil, nil);
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
-----------------------------------------
|
||||
local prevBuyState;
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
function Atr_Buy_Idle ()
|
||||
|
||||
if (gBuyState ~= prevBuyState) then
|
||||
prevBuyState = gBuyState;
|
||||
-- Atr_Buy_Debug1 (true);
|
||||
end
|
||||
|
||||
if (gBuyState == ATR_BUY_WAITING_FOR_AH_CAN_SEND) then
|
||||
|
||||
-- zc.md ("WAITING_FOR_AH_CAN_SEND: ", time() - gAtr_Buy_Waiting_Start);
|
||||
|
||||
if (GetMoney() < gAtr_Buy_BuyoutPrice) then
|
||||
Atr_Buy_Cancel (ZT("You do not have enough gold\n\nto make any more purchases."));
|
||||
elseif (time() - gAtr_Buy_Waiting_Start > 10) then
|
||||
Atr_Buy_Cancel (ZT("Auction House timed out"));
|
||||
else
|
||||
Atr_Buy_SendQuery ();
|
||||
end
|
||||
|
||||
elseif (gBuyState == ATR_BUY_JUST_BOUGHT) then
|
||||
|
||||
-- zc.msg_pink ("ATR_BUY_JUST_BOUGHT: ", time() - gAtr_Buy_Waiting_Start);
|
||||
|
||||
local queueIf = (time() - gAtr_Buy_Waiting_Start > 2); -- wait a few seconds for Auction List to Update after buys
|
||||
|
||||
Atr_Buy_NextPage_Or_Cancel (queueIf);
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
function Atr_Buy_OnAuctionUpdate()
|
||||
|
||||
-- Atr_Buy_Debug1();
|
||||
|
||||
if (gBuyState == ATR_BUY_QUERY_SENT) then
|
||||
Atr_Buy_CheckForMatches ();
|
||||
end
|
||||
|
||||
return (gBuyState ~= ATR_BUY_NULL);
|
||||
end
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
function Atr_Buy_CheckForMatches ()
|
||||
|
||||
gBuyState = ATR_BUY_PROCESSING_QUERY_RESULTS;
|
||||
|
||||
if (gAtr_Buy_Query:CheckForDuplicatePage(gAtr_Buy_CurPage)) then
|
||||
Atr_Buy_QueueQuery (gAtr_Buy_CurPage);
|
||||
return;
|
||||
end
|
||||
|
||||
local isLastPage = gAtr_Buy_Query:IsLastPage(gAtr_Buy_CurPage);
|
||||
|
||||
local numMatches = Atr_Buy_CountMatches();
|
||||
|
||||
if (numMatches > 0) then -- update the confirmation screen
|
||||
|
||||
Atr_Buy_Confirm_OKBut:Enable();
|
||||
|
||||
if (gAtr_Buy_NumUserWants ~= -1) then
|
||||
Atr_Buy_Continue_Text:SetText (string.format (ZT("%d of %d bought so far"), gAtr_Buy_NumBought, gAtr_Buy_NumUserWants));
|
||||
Atr_Buy_Part1:Hide();
|
||||
Atr_Buy_Part2:Show();
|
||||
Atr_Buy_Confirm_OKBut:SetText (ZT("Continue"))
|
||||
end
|
||||
|
||||
else
|
||||
Atr_Buy_NextPage_Or_Cancel();
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
function Atr_Buy_BuyMatches ()
|
||||
return Atr_Buy_CountMatches (true);
|
||||
end
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
function Atr_Buy_CountMatches (andBuy)
|
||||
|
||||
local numMatches = 0;
|
||||
local numBoughtThisPage = 0;
|
||||
local i = 1;
|
||||
|
||||
while (true) do
|
||||
|
||||
local name, _, count, _, _, _, _, _, buyoutPrice, _ = GetAuctionItemInfo ("list", i);
|
||||
|
||||
if (name == nil) then
|
||||
break;
|
||||
end
|
||||
|
||||
if (zc.StringSame (name, gAtr_Buy_ItemName) and buyoutPrice == gAtr_Buy_BuyoutPrice and count == gAtr_Buy_StackSize) then
|
||||
|
||||
numMatches = numMatches + 1;
|
||||
|
||||
if (andBuy and gAtr_Buy_NumUserWants > gAtr_Buy_NumBought) then
|
||||
PlaceAuctionBid("list", i, gAtr_Buy_BuyoutPrice);
|
||||
|
||||
numBoughtThisPage = numBoughtThisPage + 1;
|
||||
gAtr_Buy_NumBought = gAtr_Buy_NumBought + 1;
|
||||
end
|
||||
end
|
||||
|
||||
i = i + 1;
|
||||
end
|
||||
|
||||
return numMatches, numBoughtThisPage;
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
function Atr_Buy_Confirm_Update ()
|
||||
|
||||
local num = Atr_Buy_Confirm_Numstacks:GetNumber();
|
||||
|
||||
if (num == 1) then
|
||||
Atr_Buy_Confirm_Text2:SetText (ZT("stack for"));
|
||||
else
|
||||
Atr_Buy_Confirm_Text2:SetText (ZT("stacks for"));
|
||||
end
|
||||
|
||||
MoneyFrame_Update ("Atr_Buy_Confirm_TotalPrice", gAtr_Buy_BuyoutPrice * num);
|
||||
|
||||
end
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
function Atr_Buy_NextPage_Or_Cancel ( queueIf )
|
||||
|
||||
if (Atr_Buy_IsComplete()) then
|
||||
|
||||
Atr_Buy_Cancel();
|
||||
|
||||
elseif (queueIf == nil or queueIf == true) then
|
||||
|
||||
if (Atr_Buy_IsFirstPassComplete()) then
|
||||
gAtr_Buy_Pass = 2;
|
||||
Atr_Buy_QueueQuery(0);
|
||||
else
|
||||
Atr_Buy_QueueQuery(gAtr_Buy_CurPage + 1);
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
function Atr_Buy_IsComplete ()
|
||||
|
||||
if (gAtr_Buy_NumUserWants ~= -1 and gAtr_Buy_NumUserWants <= gAtr_Buy_NumBought) then
|
||||
return true;
|
||||
end
|
||||
|
||||
if (gAtr_Buy_Query:IsLastPage(gAtr_Buy_CurPage) and gAtr_Buy_Pass == 2) then
|
||||
return true;
|
||||
end
|
||||
|
||||
return false;
|
||||
|
||||
end
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
function Atr_Buy_IsFirstPassComplete ()
|
||||
|
||||
if (gAtr_Buy_Query:IsLastPage(gAtr_Buy_CurPage) and gAtr_Buy_Pass == 1) then
|
||||
return true;
|
||||
end
|
||||
|
||||
return false;
|
||||
|
||||
end
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
function Atr_Buy_Confirm_OK ()
|
||||
|
||||
if (gAtr_Buy_NumUserWants == -1) then
|
||||
local numToBuy = Atr_Buy_Confirm_Numstacks:GetNumber();
|
||||
|
||||
if (numToBuy > gAtr_Buy_MaxCanBuy) then
|
||||
Atr_Error_Text:SetText (string.format (ZT("You can buy at most %d auctions"), gAtr_Buy_MaxCanBuy));
|
||||
Atr_Error_Frame:Show ();
|
||||
return;
|
||||
end
|
||||
|
||||
gAtr_Buy_NumUserWants = numToBuy;
|
||||
end
|
||||
|
||||
local _, numJustBought = Atr_Buy_BuyMatches ();
|
||||
|
||||
if (numJustBought > 0) then
|
||||
|
||||
--zc.msg (numJustBought, " from page ", gAtr_Buy_CurPage);
|
||||
|
||||
AuctionatorSubtractFromScan (gAtr_Buy_ItemName, gAtr_Buy_StackSize, gAtr_Buy_BuyoutPrice, gAtr_Buy_NumBought);
|
||||
gBuyState = ATR_BUY_JUST_BOUGHT;
|
||||
gAtr_Buy_Waiting_Start = time();
|
||||
Atr_Buy_Confirm_OKBut:Disable();
|
||||
else
|
||||
Atr_Buy_NextPage_Or_Cancel();
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
function Atr_Buy_Wait_For_Bought_To_Clear ()
|
||||
|
||||
zc.md ("Atr_Buy_Wait_For_Bought_To_Clear: ", time() - gAtr_Buy_Waiting_Start);
|
||||
|
||||
end
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
function Atr_Buy_Cancel (msg)
|
||||
|
||||
gBuyState = ATR_BUY_NULL;
|
||||
|
||||
Atr_Buy_Confirm_Frame:Hide();
|
||||
|
||||
Atr_Error_Display(msg);
|
||||
end
|
||||
|
||||
|
||||
@@ -0,0 +1,743 @@
|
||||
|
||||
local addonName, addonTable = "Auctionator", AtrNS;
|
||||
local zc = addonTable.zc;
|
||||
|
||||
AtrNS.optionPanels = AtrNS.optionPanels or {};
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
function Atr_LoadOptionsSubPanel (f, name, title, subtitle)
|
||||
|
||||
f.name = name
|
||||
|
||||
local frameName = f:GetName();
|
||||
|
||||
f.okay = getglobal (frameName.."_Save")
|
||||
|
||||
if (title == nil) then title = name; end
|
||||
if (subtitle == nil) then subtitle = ""; end
|
||||
|
||||
getglobal (frameName.."_ATitle"):SetText (title);
|
||||
getglobal (frameName.."_BTitle"):SetText (subtitle);
|
||||
|
||||
-- 3.x registered these with the Interface Options window; here they live in Atr_OptionsWindow
|
||||
tinsert (AtrNS.optionPanels, f);
|
||||
|
||||
end
|
||||
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
function Atr_Options_Cancel ()
|
||||
|
||||
Atr_InitOptionsPanels();
|
||||
|
||||
end
|
||||
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
function Atr_InitOptionsPanels()
|
||||
|
||||
if (AUCTIONATOR_SAVEDVARS == nil) then
|
||||
Atr_ResetSavedVars();
|
||||
end
|
||||
|
||||
Atr_SetupBasicOptionsFrame();
|
||||
Atr_SetupTooltipsOptionsFrame();
|
||||
Atr_SetupUCConfigFrame();
|
||||
Atr_SetupStackingFrame();
|
||||
Atr_SetupOptionsFrame();
|
||||
Atr_SetupScanningConfigFrame();
|
||||
|
||||
end
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
function Atr_SetupOptionsFrame()
|
||||
|
||||
local expText = "<html><body>"
|
||||
.."<p>"..ZT("The latest information on Auctionator can be found at").." auctionator-addon.com.".."</p>"
|
||||
.."<p><br/>"
|
||||
.."|cffaaaaaa"..string.format (ZT("German translation courtesy of %s"), "|rCkaotik").."<br/>"
|
||||
.."|cffaaaaaa"..string.format (ZT("Russian translation courtesy of %s"), "|rStingerSoft").."<br/>"
|
||||
.."|cffaaaaaa"..string.format (ZT("Swedish translation courtesy of %s"), "|rHellManiac").."<br/>"
|
||||
.."|cffaaaaaa"..string.format (ZT("French translation courtesy of %s"), "|rKiskewl").."<br/>"
|
||||
.."|cffaaaaaa"..string.format (ZT("Spanish translation courtesy of %s"), "|rElfindor").."<br/>"
|
||||
.."</p>"
|
||||
.."</body></html>"
|
||||
;
|
||||
|
||||
AuctionatorDescriptionHTML:SetText (expText);
|
||||
AuctionatorDescriptionHTML:SetSpacing (3);
|
||||
|
||||
AuctionatorVersionText:SetText (ZT("Version")..": "..AuctionatorVersion);
|
||||
|
||||
end
|
||||
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
function Atr_SetDurationOptionRB(name)
|
||||
|
||||
Atr_RB_S:SetChecked (zc.StringEndsWith (name, "S"));
|
||||
Atr_RB_M:SetChecked (zc.StringEndsWith (name, "M"));
|
||||
Atr_RB_L:SetChecked (zc.StringEndsWith (name, "L"));
|
||||
|
||||
end
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
function Atr_BasicOptionsFrame_Save()
|
||||
|
||||
local origValues = zc.msg_str (AUCTIONATOR_ENABLE_ALT, AUCTIONATOR_OPEN_ALL_BAGS, AUCTIONATOR_SHOW_ST_PRICE, AUCTIONATOR_DEFTAB, AUCTIONATOR_DEF_DURATION);
|
||||
|
||||
AUCTIONATOR_ENABLE_ALT = zc.BoolToNum(AuctionatorOption_Enable_Alt_CB:GetChecked ());
|
||||
AUCTIONATOR_OPEN_ALL_BAGS = zc.BoolToNum(AuctionatorOption_Open_All_Bags_CB:GetChecked ());
|
||||
AUCTIONATOR_SHOW_ST_PRICE = zc.BoolToNum(AuctionatorOption_Show_StartingPrice_CB:GetChecked ());
|
||||
|
||||
AUCTIONATOR_DEFTAB = UIDropDownMenu_GetSelectedValue(AuctionatorOption_Deftab);
|
||||
|
||||
AUCTIONATOR_DEF_DURATION = "N";
|
||||
|
||||
if (AuctionatorOption_Def_Duration_CB:GetChecked()) then
|
||||
if (Atr_RB_S:GetChecked()) then AUCTIONATOR_DEF_DURATION = "S"; end;
|
||||
if (Atr_RB_M:GetChecked()) then AUCTIONATOR_DEF_DURATION = "M"; end;
|
||||
if (Atr_RB_L:GetChecked()) then AUCTIONATOR_DEF_DURATION = "L"; end;
|
||||
end
|
||||
|
||||
local newValues = zc.msg_str (AUCTIONATOR_ENABLE_ALT, AUCTIONATOR_OPEN_ALL_BAGS, AUCTIONATOR_SHOW_ST_PRICE, AUCTIONATOR_DEFTAB, AUCTIONATOR_DEF_DURATION);
|
||||
|
||||
if (origValues ~= newValues) then
|
||||
zc.msg_atr (ZT ("basic options saved"));
|
||||
end
|
||||
|
||||
Atr_ShowHide_StartingPrice();
|
||||
end
|
||||
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
function Atr_SetupBasicOptionsFrame()
|
||||
|
||||
Atr_BasicOptionsFrame_BTitle:SetText (string.format (ZT("Basic Options for %s"), "|cffffff55"..UnitName("player")));
|
||||
|
||||
AuctionatorOption_Enable_Alt_CB:SetChecked (zc.NumToBool(AUCTIONATOR_ENABLE_ALT));
|
||||
AuctionatorOption_Open_All_Bags_CB:SetChecked (zc.NumToBool(AUCTIONATOR_OPEN_ALL_BAGS));
|
||||
AuctionatorOption_Show_StartingPrice_CB:SetChecked (zc.NumToBool(AUCTIONATOR_SHOW_ST_PRICE));
|
||||
|
||||
UIDropDownMenu_Initialize (AuctionatorOption_Deftab, AuctionatorOption_Deftab_Initialize);
|
||||
UIDropDownMenu_SetSelectedValue (AuctionatorOption_Deftab, AUCTIONATOR_DEFTAB);
|
||||
|
||||
AuctionatorOption_Def_Duration_CB:SetChecked (AUCTIONATOR_DEF_DURATION == "S" or AUCTIONATOR_DEF_DURATION == "M" or AUCTIONATOR_DEF_DURATION == "L");
|
||||
|
||||
Atr_SetDurationOptionRB (AUCTIONATOR_DEF_DURATION);
|
||||
|
||||
end
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
function Atr_SetupTooltipsOptionsFrame ()
|
||||
|
||||
ATR_tipsVendorOpt_CB:SetChecked (zc.NumToBool(AUCTIONATOR_V_TIPS));
|
||||
ATR_tipsAuctionOpt_CB:SetChecked (zc.NumToBool(AUCTIONATOR_A_TIPS));
|
||||
ATR_tipsDisenchantOpt_CB:SetChecked (zc.NumToBool(AUCTIONATOR_D_TIPS));
|
||||
|
||||
UIDropDownMenu_Initialize(Atr_tipsShiftDD, Atr_tipsShiftDD_Initialize);
|
||||
UIDropDownMenu_SetSelectedValue(Atr_tipsShiftDD, AUCTIONATOR_SHIFT_TIPS);
|
||||
|
||||
UIDropDownMenu_Initialize(Atr_deDetailsDD, Atr_deDetailsDD_Initialize);
|
||||
UIDropDownMenu_SetSelectedValue(Atr_deDetailsDD, AUCTIONATOR_DE_DETAILS_TIPS);
|
||||
end
|
||||
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
function Atr_TooltipsOptionsFrame_Save()
|
||||
|
||||
local origValues = zc.msg_str (AUCTIONATOR_V_TIPS, AUCTIONATOR_A_TIPS, AUCTIONATOR_D_TIPS, AUCTIONATOR_SHIFT_TIPS, AUCTIONATOR_DE_DETAILS_TIPS);
|
||||
|
||||
AUCTIONATOR_V_TIPS = zc.BoolToNum(ATR_tipsVendorOpt_CB:GetChecked ());
|
||||
AUCTIONATOR_A_TIPS = zc.BoolToNum(ATR_tipsAuctionOpt_CB:GetChecked ());
|
||||
AUCTIONATOR_D_TIPS = zc.BoolToNum(ATR_tipsDisenchantOpt_CB:GetChecked ());
|
||||
|
||||
AUCTIONATOR_SHIFT_TIPS = UIDropDownMenu_GetSelectedValue(Atr_tipsShiftDD);
|
||||
AUCTIONATOR_DE_DETAILS_TIPS = UIDropDownMenu_GetSelectedValue(Atr_deDetailsDD);
|
||||
|
||||
local newValues = zc.msg_str (AUCTIONATOR_V_TIPS, AUCTIONATOR_A_TIPS, AUCTIONATOR_D_TIPS, AUCTIONATOR_SHIFT_TIPS, AUCTIONATOR_DE_DETAILS_TIPS);
|
||||
|
||||
if (origValues ~= newValues) then
|
||||
zc.msg_atr (ZT("tooltip configuration saved"));
|
||||
end
|
||||
|
||||
|
||||
end
|
||||
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
function AuctionatorOption_Deftab_Initialize()
|
||||
|
||||
local info = UIDropDownMenu_CreateInfo();
|
||||
|
||||
Atr_AddMenuPick (info, ZT("None"), 0, AuctionatorOption_Deftab_OnClick);
|
||||
Atr_AddMenuPick (info, ZT("Sell"), 1, AuctionatorOption_Deftab_OnClick);
|
||||
Atr_AddMenuPick (info, ZT("Buy"), 2, AuctionatorOption_Deftab_OnClick);
|
||||
Atr_AddMenuPick (info, ZT("More"), 3, AuctionatorOption_Deftab_OnClick);
|
||||
|
||||
end
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
function AuctionatorOption_Deftab_OnClick()
|
||||
UIDropDownMenu_SetSelectedValue(this.owner, this.value);
|
||||
end
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
function Atr_tipsShiftDD_Initialize()
|
||||
|
||||
local info = UIDropDownMenu_CreateInfo();
|
||||
|
||||
Atr_AddMenuPick (info, ZT("stack price"), 1, Atr_tipsShiftDD_OnClick);
|
||||
Atr_AddMenuPick (info, ZT("per item price"), 2, Atr_tipsShiftDD_OnClick);
|
||||
|
||||
end
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
function Atr_tipsShiftDD_OnClick()
|
||||
UIDropDownMenu_SetSelectedValue(this.owner, this.value);
|
||||
end
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
function Atr_deDetailsDD_Initialize()
|
||||
|
||||
local info = UIDropDownMenu_CreateInfo();
|
||||
|
||||
Atr_AddMenuPick (info, ZT("when SHIFT is held down"), 1, Atr_deDetailsDD_OnClick);
|
||||
Atr_AddMenuPick (info, ZT("when CONTROL is held down"), 2, Atr_deDetailsDD_OnClick);
|
||||
Atr_AddMenuPick (info, ZT("when ALT is held down"), 3, Atr_deDetailsDD_OnClick);
|
||||
Atr_AddMenuPick (info, ZT("never"), 4, Atr_deDetailsDD_OnClick);
|
||||
Atr_AddMenuPick (info, ZT("always"), 5, Atr_deDetailsDD_OnClick);
|
||||
|
||||
end
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
function Atr_deDetailsDD_OnClick()
|
||||
UIDropDownMenu_SetSelectedValue(this.owner, this.value);
|
||||
end
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
function Atr_Option_OnClick (self)
|
||||
|
||||
if (zc.StringContains (self:GetName(), "Open_BUY") and self:GetChecked()) then
|
||||
AuctionatorOption_Open_SELL_CB:SetChecked (false);
|
||||
end
|
||||
|
||||
if (zc.StringContains (self:GetName(), "Open_SELL") and self:GetChecked()) then
|
||||
AuctionatorOption_Open_BUY_CB:SetChecked (false);
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
local kThresh = {}
|
||||
|
||||
kThresh[1] = { amt=5000000, text=ZT("over %d gold"), v=500 };
|
||||
kThresh[2] = { amt=1000000, text=ZT("over %d gold"), v=100 };
|
||||
kThresh[3] = { amt=200000, text=ZT("over %d gold"), v=20 };
|
||||
kThresh[4] = { amt=50000, text=ZT("over %d gold"), v=5 };
|
||||
kThresh[5] = { amt=10000, text=ZT("over 1 gold"), v=1 };
|
||||
kThresh[6] = { amt=2000, text=ZT("over %d silver"), v=20 };
|
||||
kThresh[7] = { amt=500, text=ZT("over %d silver"), v=5 };
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
function Atr_SetupUCConfigFrame()
|
||||
|
||||
for i = 1, getn(kThresh) do
|
||||
|
||||
local amt = kThresh[i].amt;
|
||||
local linetext = string.format (kThresh[i].text, kThresh[i].v);
|
||||
|
||||
getglobal("UC_"..amt.."_RangeText"):SetText (linetext);
|
||||
|
||||
MoneyInputFrame_SetCopper (getglobal("UC_"..amt.."_MoneyInput"), AUCTIONATOR_SAVEDVARS["_"..amt]);
|
||||
end
|
||||
|
||||
Atr_Starting_Discount:SetText (AUCTIONATOR_SAVEDVARS.STARTING_DISCOUNT);
|
||||
|
||||
end
|
||||
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
function Atr_UCConfigFrame_Save()
|
||||
|
||||
local origValues = AUCTIONATOR_SAVEDVARS.STARTING_DISCOUNT;
|
||||
|
||||
AUCTIONATOR_SAVEDVARS.STARTING_DISCOUNT = Atr_Starting_Discount:GetNumber ();
|
||||
|
||||
local newValues = AUCTIONATOR_SAVEDVARS.STARTING_DISCOUNT;
|
||||
|
||||
for i = 1, getn(kThresh) do
|
||||
local amt = kThresh[i].amt;
|
||||
|
||||
origValues = origValues + AUCTIONATOR_SAVEDVARS["_"..amt];
|
||||
|
||||
AUCTIONATOR_SAVEDVARS["_"..amt] = MoneyInputFrame_GetCopper(getglobal("UC_"..amt.."_MoneyInput"));
|
||||
|
||||
newValues = newValues + AUCTIONATOR_SAVEDVARS["_"..amt];
|
||||
end
|
||||
|
||||
if (origValues ~= newValues) then
|
||||
zc.msg_atr (ZT("undercutting configuration saved"));
|
||||
end
|
||||
|
||||
|
||||
end
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
local function plistEntry (key, txt, num, size)
|
||||
|
||||
return { sortkey=key, text=txt, numstacks=num, stacksize=size }
|
||||
|
||||
end
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
local function plistSort (x, y)
|
||||
|
||||
return x.sortkey < y.sortkey;
|
||||
|
||||
end
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
local kStackList_LinesToDisplay = 12;
|
||||
local gStackList_SelectedIndex = 0;
|
||||
local gStackList_plist;
|
||||
|
||||
|
||||
kStackList_categories = {};
|
||||
|
||||
kStackList_categories[ATR_SK_GLYPHS] = { txt=ZT("Glyphs") }
|
||||
kStackList_categories[ATR_SK_GEMS_CUT] = { txt=ZT("Gems - Cut") }
|
||||
kStackList_categories[ATR_SK_GEMS_UNCUT] = { txt=ZT("Gems - Uncut") }
|
||||
kStackList_categories[ATR_SK_ITEM_ENH] = { txt=ZT("Item Enhancements") }
|
||||
kStackList_categories[ATR_SK_POT_ELIX] = { txt=ZT("Potions and Elixirs") }
|
||||
kStackList_categories[ATR_SK_FLASKS] = { txt=ZT("Flasks") }
|
||||
kStackList_categories[ATR_SK_HERBS] = { txt=ZT("Herbs") }
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
function Atr_SetupStackingFrame ()
|
||||
|
||||
if (getglobal ("Atr_StackList1") == nil) then
|
||||
local line, n;
|
||||
|
||||
for n = 1, kStackList_LinesToDisplay do
|
||||
local y = -5 - ((n-1)*16);
|
||||
line = CreateFrame("BUTTON", "Atr_StackList"..n, Atr_Stacking_List, "Atr_StackingEntryTemplate");
|
||||
line:SetPoint("TOP", 0, y);
|
||||
end
|
||||
end
|
||||
|
||||
Atr_StackingList_Display();
|
||||
|
||||
end
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
function Atr_StackingList_Display()
|
||||
|
||||
gStackList_plist = {};
|
||||
|
||||
local plist = gStackList_plist;
|
||||
local text, spinfo;
|
||||
local sortkey, info;
|
||||
local n = 1;
|
||||
|
||||
for sortkey, info in pairs (kStackList_categories) do
|
||||
info.overrideFound = false;
|
||||
end
|
||||
|
||||
for text, spinfo in pairs (AUCTIONATOR_STACKING_PREFS) do
|
||||
|
||||
-- skip over any that were set automatically rather than explicitly by the user
|
||||
-- and mark the built-in categories
|
||||
|
||||
if (spinfo.numstacks ~= 0) then
|
||||
local sortkey = text;
|
||||
|
||||
if (kStackList_categories[text]) then
|
||||
kStackList_categories[text].overrideFound = true;
|
||||
text = kStackList_categories[text].txt;
|
||||
end
|
||||
|
||||
plist[n] = plistEntry (sortkey, text, spinfo.numstacks, spinfo.stacksize);
|
||||
n = n + 1;
|
||||
end
|
||||
end
|
||||
|
||||
for sortkey, info in pairs (kStackList_categories) do
|
||||
if (not info.overrideFound) then
|
||||
plist[n] = plistEntry (sortkey, info.txt, -2, 0);
|
||||
n = n + 1;
|
||||
end
|
||||
end
|
||||
|
||||
table.sort (plist, plistSort)
|
||||
|
||||
local totalRows = getn(plist);
|
||||
|
||||
local line; -- 1 through NN of our window to scroll
|
||||
local dataOffset; -- an index into our data calculated from the scroll offset
|
||||
|
||||
FauxScrollFrame_Update (Atr_Stacking_ScrollFrame, totalRows, kStackList_LinesToDisplay, 16);
|
||||
|
||||
for line = 1,kStackList_LinesToDisplay do
|
||||
|
||||
dataOffset = line + FauxScrollFrame_GetOffset (Atr_Stacking_ScrollFrame);
|
||||
|
||||
local lineEntry = getglobal ("Atr_StackList"..line);
|
||||
|
||||
lineEntry:SetID (dataOffset);
|
||||
|
||||
if (dataOffset <= totalRows and plist[dataOffset]) then
|
||||
|
||||
local lineEntry_text = getglobal("Atr_StackList"..line.."_text");
|
||||
local lineEntry_info = getglobal("Atr_StackList"..line.."_info");
|
||||
|
||||
local pdata = plist[dataOffset];
|
||||
|
||||
local colorText = ((pdata.text == pdata.sortkey) and "" or "|cffffff88");
|
||||
|
||||
lineEntry_text:SetText (colorText..pdata.text);
|
||||
|
||||
local numstacks = plist[dataOffset].numstacks;
|
||||
local stacksize = plist[dataOffset].stacksize;
|
||||
local info = "???";
|
||||
|
||||
if (numstacks == -2) then info = "|cff777777"..ZT("default behavior");
|
||||
elseif (numstacks == -1) then info = string.format (ZT("max. stacks of %d"), stacksize);
|
||||
elseif (stacksize == 0) then info = "1 "..ZT("stack");
|
||||
elseif (numstacks == 0) then info = ZT("stacks of").." "..stacksize;
|
||||
elseif (numstacks > 0) then info = numstacks.." "..ZT("stacks of").." "..stacksize;
|
||||
end
|
||||
|
||||
lineEntry_info:SetText (info);
|
||||
|
||||
if (gStackList_SelectedIndex == dataOffset) then
|
||||
Atr_SetRowSelected (lineEntry, true);
|
||||
else
|
||||
Atr_SetRowSelected (lineEntry, false);
|
||||
end
|
||||
|
||||
lineEntry:Show();
|
||||
else
|
||||
lineEntry:Hide();
|
||||
end
|
||||
end
|
||||
|
||||
zc.EnableDisable (Atr_StackingOptionsFrame_Edit, gStackList_SelectedIndex > 0);
|
||||
|
||||
end
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
function Atr_StackingEntry_OnClick(self)
|
||||
|
||||
gStackList_SelectedIndex = self:GetID();
|
||||
|
||||
Atr_StackingList_Display();
|
||||
end
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
function Atr_StackingEntry_OnDoubleClick(self)
|
||||
|
||||
Atr_StackingEntry_OnClick(self);
|
||||
Atr_StackingList_Edit_OnClick();
|
||||
end
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
function Atr_Memorize_Show (isNew)
|
||||
|
||||
local numStacks = -1;
|
||||
local stackSize = 1;
|
||||
|
||||
zc.ShowHide (Atr_Mem_itemName_static, not isNew);
|
||||
zc.ShowHide (Atr_Mem_EB_itemName, isNew);
|
||||
zc.ShowHide (Atr_Mem_Forget, not isNew);
|
||||
|
||||
Atr_MemorizeFrame["isCategory"] = false;
|
||||
|
||||
if (not isNew) then
|
||||
local x = gStackList_SelectedIndex;
|
||||
local plist = gStackList_plist;
|
||||
|
||||
Atr_Mem_itemName_static:SetText (plist[x].text);
|
||||
|
||||
stackSize = plist[x].stacksize
|
||||
numStacks = plist[x].numstacks
|
||||
|
||||
local isCategory = (plist[x].sortkey ~= plist[x].text);
|
||||
|
||||
Atr_MemorizeFrame["isCategory"] = isCategory;
|
||||
|
||||
if (isCategory and numStacks == -2) then
|
||||
numStacks = -1;
|
||||
stackSize = 1;
|
||||
end
|
||||
|
||||
zc.SetTextIf (Atr_Mem_itemName_text, isCategory, ZT("Category"), ZT("Item Name"));
|
||||
zc.SetTextIf (Atr_Mem_Forget, isCategory, ZT("Reset to Default"), ZT("Forget this Item"));
|
||||
end
|
||||
|
||||
Atr_Mem_EB_stackSize:SetText (stackSize);
|
||||
|
||||
UIDropDownMenu_Initialize (Atr_Mem_DD_numStacks, Atr_SONumStacks_Initialize);
|
||||
UIDropDownMenu_SetSelectedValue (Atr_Mem_DD_numStacks, numStacks);
|
||||
|
||||
Atr_Mem_EB_itemName:SetText ("");
|
||||
|
||||
ShowInterfaceOptionsMask();
|
||||
|
||||
Atr_MemorizeFrame:Show();
|
||||
|
||||
end
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
function Atr_StackingList_Edit_OnClick()
|
||||
|
||||
Atr_Memorize_Show(false);
|
||||
|
||||
end
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
function Atr_StackingList_New_OnClick()
|
||||
|
||||
Atr_Memorize_Show(true);
|
||||
|
||||
end
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
function Atr_Memorize_Save()
|
||||
|
||||
local x = gStackList_SelectedIndex;
|
||||
local plist = gStackList_plist;
|
||||
|
||||
local key = Atr_Mem_EB_itemName:GetText();
|
||||
if (key == nil or key == "") then
|
||||
key = plist[x].sortkey;
|
||||
end
|
||||
|
||||
if (key and key ~= "") then
|
||||
Atr_Set_StackingPrefs_numstacks (key, UIDropDownMenu_GetSelectedValue (Atr_Mem_DD_numStacks));
|
||||
Atr_Set_StackingPrefs_stacksize (key, Atr_Mem_EB_stackSize:GetNumber ());
|
||||
end
|
||||
|
||||
Atr_StackingList_Display();
|
||||
|
||||
end
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
function Atr_Memorize_Forget()
|
||||
|
||||
local x = gStackList_SelectedIndex;
|
||||
local plist = gStackList_plist;
|
||||
local key = plist[x].sortkey;
|
||||
|
||||
if (key) then
|
||||
Atr_Clear_StackingPrefs (key);
|
||||
end
|
||||
|
||||
if (not Atr_MemorizeFrame["isCategory"]) then
|
||||
gStackList_SelectedIndex = 0;
|
||||
end
|
||||
|
||||
Atr_StackingList_Display();
|
||||
|
||||
end
|
||||
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
function Atr_SONumStacks_OnLoad(self)
|
||||
|
||||
UIDropDownMenu_Initialize (self, Atr_SONumStacks_Initialize);
|
||||
UIDropDownMenu_SetSelectedValue (self, -1);
|
||||
UIDropDownMenu_JustifyText ("CENTER", self);
|
||||
UIDropDownMenu_SetWidth (150, self);
|
||||
|
||||
end
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
function Atr_SONumStacks_Initialize()
|
||||
|
||||
local info = UIDropDownMenu_CreateInfo();
|
||||
|
||||
Atr_AddMenuPick (info, ZT("As many as possible"), -1, Atr_SONumStacks_OnClick)
|
||||
Atr_AddMenuPick (info, "1", 1, Atr_SONumStacks_OnClick)
|
||||
Atr_AddMenuPick (info, "2", 2, Atr_SONumStacks_OnClick)
|
||||
Atr_AddMenuPick (info, "3", 3, Atr_SONumStacks_OnClick)
|
||||
Atr_AddMenuPick (info, "4", 4, Atr_SONumStacks_OnClick)
|
||||
Atr_AddMenuPick (info, "5", 5, Atr_SONumStacks_OnClick)
|
||||
Atr_AddMenuPick (info, "10", 10, Atr_SONumStacks_OnClick)
|
||||
|
||||
end
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
function Atr_SONumStacks_OnClick()
|
||||
|
||||
UIDropDownMenu_SetSelectedValue(this.owner, this.value);
|
||||
Atr_Mem_stacksOf_text:SetText (ZT ((this.value == 1) and "stack of" or "stacks of"));
|
||||
end
|
||||
|
||||
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
function Atr_ShowOptionTooltip (elem)
|
||||
|
||||
local name = elem:GetName();
|
||||
local text;
|
||||
|
||||
if (zc.StringContains (name, "Enable_Alt")) then
|
||||
text = ZT("If this option is checked, holding the Alt key down while clicking an item in your bags will switch to the Auctionator panel, place the item in the Auction Item area, and start the scan.");
|
||||
end
|
||||
|
||||
if (zc.StringContains (name, "Deftab")) then
|
||||
text = ZT("Select the Auctionator panel to be displayed first whenever you open the Auction House window.");
|
||||
end
|
||||
|
||||
if (zc.StringContains (name, "Open_BUY")) then
|
||||
text = ZT("If this option is checked, the Auctionator BUY panel will display first whenever you open the Auction House window.");
|
||||
end
|
||||
|
||||
if (zc.StringContains (name, "Open_All_Bags")) then
|
||||
text = ZT("If this option is checked, ALL your bags will be opened when you first open the Auctionator panel.");
|
||||
end
|
||||
|
||||
if (zc.StringContains (name, "Def_Duration")) then
|
||||
text = ZT("If this option is checked, every time you initiate a new auction the auction duration will be reset to the default duration you've selected.");
|
||||
end
|
||||
|
||||
if (text) then
|
||||
local titleFrame = getglobal (name.."_CB_Text") or getglobal (name.."_Text");
|
||||
|
||||
local titleText = titleFrame and titleFrame:GetText() or "???";
|
||||
|
||||
GameTooltip:SetOwner(this, "ANCHOR_LEFT");
|
||||
GameTooltip:SetText(titleText, 0.9, 1.0, 1.0);
|
||||
GameTooltip:AddLine(text, 0.5, 0.5, 1.0, 1);
|
||||
GameTooltip:Show();
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
function Atr_SetupScanningConfigFrame ()
|
||||
|
||||
UIDropDownMenu_Initialize(Atr_scanLevelDD, Atr_scanLevelDD_Initialize);
|
||||
UIDropDownMenu_SetSelectedValue(Atr_scanLevelDD, AUCTIONATOR_SCAN_MINLEVEL);
|
||||
end
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
function Atr_ScanningOptionsFrame_Save()
|
||||
|
||||
local origValues = zc.msg_str (AUCTIONATOR_SCAN_MINLEVEL);
|
||||
|
||||
AUCTIONATOR_SCAN_MINLEVEL = UIDropDownMenu_GetSelectedValue(Atr_scanLevelDD);
|
||||
|
||||
local newValues = zc.msg_str (AUCTIONATOR_SCAN_MINLEVEL);
|
||||
|
||||
if (origValues ~= newValues) then
|
||||
zc.msg_atr (ZT("scanning options saved"));
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
function Atr_scanLevelDD_Initialize()
|
||||
|
||||
local info = UIDropDownMenu_CreateInfo();
|
||||
|
||||
Atr_AddMenuPick (info, "|cffa335ee"..ZT("Epic").."|r", 5, Atr_scanLevelDD_OnClick);
|
||||
Atr_AddMenuPick (info, "|cff0070dd"..ZT("Rare").."|r", 4, Atr_scanLevelDD_OnClick);
|
||||
Atr_AddMenuPick (info, "|cff1eff00"..ZT("Uncommon").."|r", 3, Atr_scanLevelDD_OnClick);
|
||||
Atr_AddMenuPick (info, "|cffffffff"..ZT("Common").."|r", 2, Atr_scanLevelDD_OnClick);
|
||||
Atr_AddMenuPick (info, "|cff9d9d9d"..ZT("Poor (all)").."|r", 1, Atr_scanLevelDD_OnClick);
|
||||
|
||||
end
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
function Atr_scanLevelDD_OnClick()
|
||||
UIDropDownMenu_SetSelectedValue(this.owner, this.value);
|
||||
end
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
function Atr_scanLevelDD_showTip(self)
|
||||
|
||||
GameTooltip:SetOwner(this, "ANCHOR_LEFT");
|
||||
GameTooltip:SetText(ZT("Minimum Quality Level"), 0.9, 1.0, 1.0);
|
||||
GameTooltip:AddLine(ZT("Only include items in the scanning database that are this level or higher"), 0.5, 0.5, 1.0, 1);
|
||||
GameTooltip:Show();
|
||||
end
|
||||
|
||||
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
function Atr_MakeOptionsFrameOpaque ()
|
||||
|
||||
end
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
local gInterfaceOptionsMask;
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
function ShowInterfaceOptionsMask()
|
||||
|
||||
if (gInterfaceOptionsMask == nil) then
|
||||
gInterfaceOptionsMask = CreateFrame ("Frame", "Atr_Mask_StdOptions", Atr_OptionsWindow, "Atr_Mask_StdOptionsTempl");
|
||||
gInterfaceOptionsMask:SetFrameLevel (Atr_OptionsWindow:GetFrameLevel() + 10);
|
||||
end
|
||||
|
||||
gInterfaceOptionsMask:Show();
|
||||
|
||||
end
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
function HideInterfaceOptionsMask()
|
||||
if (gInterfaceOptionsMask) then
|
||||
gInterfaceOptionsMask:Hide();
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user