From cc508d85940c7c9d2959fcb5c1c5cb1b6ccb83fd Mon Sep 17 00:00:00 2001 From: ckaotik Date: Sun, 24 Jan 2010 19:39:03 +0100 Subject: [PATCH] List management clarified --- core.lua | 75 ++++++---- deDE.lua | 54 ++++--- enUS.lua | 57 +++++--- options.lua | 456 +++++++++++++++++++++++++++++++++++++++++++---------------- readme.txt | 7 +- 5 files changed, 468 insertions(+), 181 deletions(-) diff --git a/core.lua b/core.lua index f3f8ef4..72874f6 100644 --- a/core.lua +++ b/core.lua @@ -21,15 +21,13 @@ BrokerGarbage.defaultGlobalSettings = { -- lists exclude = {}, include = {}, - dropList = {}, -- TODO options - autoSellList = {}, -- TODO options - forceVendorPrice = {}, -- TODO options, only global + autoSellList = {}, + forceVendorPrice = {}, -- only global -- behavior autoSellToVendor = true, autoRepairAtVendor = true, neverRepairGuildBank = false, - useTwoPartLists = true, -- TODO options -- default values moneyLostByDeleting = 0, -- total value @@ -43,7 +41,7 @@ BrokerGarbage.defaultGlobalSettings = { showAutoSellIcon = true, showLost = true, showEarned = true, - showWarnings = true, -- TODO options + -- showWarnings = true, -- TODO options showSource = false, } @@ -51,7 +49,6 @@ BrokerGarbage.defaultLocalSettings = { -- lists exclude = {}, include = {}, - dropList = {}, autoSellList = {}, -- behavior @@ -478,24 +475,31 @@ function BrokerGarbage:OnClick(itemTable, button) BG_GlobalDB.moneyLostByDeleting = BG_GlobalDB.moneyLostByDeleting + itemTable.value BG_LocalDB.moneyLostByDeleting = BG_GlobalDB.moneyLostByDeleting + itemTable.value - BrokerGarbage:ScanInventory() - elseif itemTable and IsControlKeyDown() then -- add to exclude list BrokerGarbage:Debug("CTRL-Click!") BG_LocalDB.exclude[itemTable.itemID] = true BrokerGarbage:Print(format(BrokerGarbage.locale.addedToSaveList, select(2,GetItemInfo(itemTable.itemID)))) - BrokerGarbage:ScanInventory() + + BrokerGarbage:ListOptionsUpdate("exclude") elseif button == "RightButton" then -- open config InterfaceOptionsFrame_OpenToCategory(BrokerGarbage.options) - BrokerGarbage:ScanInventory() + + elseif IsAltKeyDown() then + -- add to force vendor price list + BrokerGarbage:Debug("ALT-Click!") + BG_GlobalDB.forceVendorPrice[itemTable.itemID] = true + BrokerGarbage:Print(format(BrokerGarbage.locale.addedToPriceList, select(2,GetItemInfo(itemTable.itemID)))) + + BrokerGarbage:ListOptionsUpdate("forceprice") else -- do nothing - BrokerGarbage:ScanInventory() end + + BrokerGarbage:ScanInventory() end -- calculates the value of a stack/partial stack of an item @@ -515,11 +519,6 @@ function BrokerGarbage:GetItemValue(itemLink, count) return vendorPrice and vendorPrice*count or nil, "|cFFF5DEB3V" -- orange end - -- drop list items have a value of 0 copper - if BG_GlobalDB.dropList[itemID] or BG_LocalDB.dropList[itemID] then - return 0 - end - -- calculate auction value if IsAddOnLoaded("Auctionator") then auctionPrice = Atr_GetAuctionBuyout(itemLink) @@ -577,6 +576,8 @@ function BrokerGarbage:GetItemValue(itemLink, count) else return temp * count or 0, source end + else + return nil end end @@ -620,11 +621,13 @@ function BrokerGarbage:ScanInventory() or BG_GlobalDB.autoSellList[itemID] or BG_LocalDB.autoSellList[itemID]) and not BG_GlobalDB.exclude[itemID] and not BG_LocalDB.exclude[itemID] then -- save excluded items!!! + local force = false local value, source = BrokerGarbage:GetItemValue(itemLink,count) -- make included items appear in tooltip list as "forced" if BG_GlobalDB.include[itemID] or BG_LocalDB.include[itemID] then - value = 0 - source = "|cFF8C1717F" + if not value then value = 0 end + force = true + source = "|cFF8C1717I" -- I as in "include" end if value then local currentItem = { @@ -635,6 +638,7 @@ function BrokerGarbage:ScanInventory() count = count, value = value, source = source, + force = force, } if not cheapestItem or cheapestItem.value >= value then @@ -665,21 +669,44 @@ end function BrokerGarbage:GetCheapest(number) if not number then number = 1 end local cheapestItems = {} + for i = 1, number do - local minPrice, minTable for _, itemTable in pairs(BrokerGarbage.inventory) do local skip = false for _, usedTable in pairs(cheapestItems) do if usedTable == itemTable then skip = true end end - if not skip and (not minPrice or itemTable.value < minPrice) then - minPrice = itemTable.value - minTable = itemTable + + if not skip and itemTable.force then + tinsert(cheapestItems, itemTable) end end + end + + if #cheapestItems < number then + local minPrice, minTable - if minTable then tinsert(cheapestItems, minTable) end + for i = #cheapestItems +1, number do + for _, itemTable in pairs(BrokerGarbage.inventory) do + local skip = false + + for _, usedTable in pairs(cheapestItems) do + if usedTable.itemID == itemTable.itemID then + skip = true + end + end + + if not skip and (not minPrice or itemTable.value < minPrice) then + minPrice = itemTable.value + minTable = itemTable + end + end + + if minTable then tinsert(cheapestItems, minTable) end + minPrice = nil + minTable = nil + end end return cheapestItems @@ -733,7 +760,7 @@ end -- Wishlist -- --------------------------------------------------------- --- make "autosell" list - e.g. mages selling dropped water/food [quickfix: use include list] - sell list (like include, only always sells) +-- make "autosell" list - e.g. mages selling dropped water/food -- include types on character specific settings -- show lootable containers in your bag! make "open items" not as spammy -- increase/decrease loot treshold with mousewheel on LDB diff --git a/deDE.lua b/deDE.lua index 93bf6d6..e74cb9e 100644 --- a/deDE.lua +++ b/deDE.lua @@ -1,7 +1,7 @@ -- German localisation file _, BrokerGarbage = ... -if GetLocale() == "deDE" then +if GetLocale() == "sdeDE" then BrokerGarbage.locale = { label = "Kein Junk", @@ -12,7 +12,9 @@ BrokerGarbage.locale = { sell = "Müll verkauft für %s.", addedToSaveList = "%s zur Ausnahmeliste hinzugefügt.", - addedToDestroyList = "%s zur Einschlussliste hinzugefügt.", + addedToPriceList = "Für %s wird nun nur der Händlerpreis genutzt.", + addedToIncludeList = "%s zur Einschlussliste hinzugefügt.", + addedToSellList = "%s wird bei Händlern automatisch verkauft.", itemDeleted = "%s wurde gelöscht.", openPlease = "Bitte öffne %s - es nimmt unnötig Platz weg.", @@ -79,20 +81,40 @@ BrokerGarbage.locale = { emptyIncludeListText = "Klicke um deine globale (!) Einschlussliste zu leeren.", -- List Options Panel - LOTitle = "Listen-Optionen", - LOSubTitle = "Stelle hier deine Listen ein. Um Items hinzuzufügen, ziehe sie auf das jeweilige '+'. Um sie zu entfernen, wähle sie aus und klicke auf '-'.", - - LOExcludeHeader = "Ausschlussliste - Items hier werden nie verkauft/gelöscht.", - LOExcludePlusTT = "Items hinzufügen, indem du sie hierher ziehst/hier ablegst", - LOExcludeMinusTT = "Wähle Items, die du entfernen willst. Dann klicke hier.", - LOExcludePromoteTT = "Klicke um alle markierten Items in die globale Ausnahmeliste zu übernehmen.", - LOExcludeEmptyTT = "Klicke, um die lokale Ausschlussliste völlig zu leeren.\nAchtung!", - - LOIncludeHeader = "Einschlussliste - Items hier werden zum Löschen vorgeschlagen.", - LOIncludePlusTT = "Items hinzufügen, indem du sie hierher ziehst/hier ablegst", - LOIncludeMinusTT = "Wähle Items, die du entfernen willst. Dann klicke hier.", - LOIncludePromoteTT = "Klicke, um alle markierten Items in die globale Einschlussliste zu übernehmen.", - LOIncludeEmptyTT = "Klicke, um die lokale Einschlussliste völlig zu leeren.\nAchtung!", + LOPTitle = "Positiv-Listen", + LOPSubTitle = "Um Items hinzuzufügen, ziehe sie auf das jeweilige '+'. Um sie zu entfernen, wähle sie aus und klicke auf '-'.", + + -- Exclude List + LOPExcludeHeader = "Ausschlussliste - Items hier werden nie verkauft/gelöscht.", + LOPExcludePlusTT = "Items hinzufügen, indem du sie hierher ziehst/hier ablegst", + LOPExcludeMinusTT = "Wähle Items, die du entfernen willst. Dann klicke hier.", + LOPExcludePromoteTT = "Klicke um alle markierten Items in die globale Ausnahmeliste zu übernehmen.", + LOPExcludeEmptyTT = "Klicke, um die lokale Ausschlussliste völlig zu leeren.\n|cffff0000Achtung!", + + -- Force Vendor Price List + LOPForceHeader = "Händlerpreis-Liste - Für diese Items wird nur der Händlerpreis betrachtet.", + LOPForcePlusTT = "Items hinzufügen, indem du sie hierher ziehst/hier ablegst", + LOPForceMinusTT = "Wähle Items, die du entfernen willst. Dann klicke hier.", + LOPForcePromoteTT = "Die Händlerpreis-Liste ist bereits global.", + LOPForceEmptyTT = "Klicke, um die Händlerliste völlig zu leeren.\n|cffff0000Achtung!", + + -- AutoSell Options Panel + LONTitle = "Negativ-Listen", + LONSubTitle = "Um Items hinzuzufügen, ziehe sie auf das jeweilige '+'. Um sie zu entfernen, wähle sie aus und klicke auf '-'.", + + -- Include List + LONIncludeHeader = "Einschlussliste - Items hier werden mit als erstes im Tooltip gezeigt.", + LONIncludePlusTT = "Items hinzufügen, indem du sie hierher ziehst/hier ablegst", + LONIncludeMinusTT = "Wähle Items, die du entfernen willst. Dann klicke hier.", + LONIncludePromoteTT = "Klicke, um alle markierten Items in die globale Einschlussliste zu übernehmen.", + LONIncludeEmptyTT = "Klicke, um die lokale Einschlussliste völlig zu leeren.\n|cffff0000Achtung!", + + -- Auto Sell List + LONAutoSellHeader = "Verkaufsliste - Items hier werden bei Händlern automatisch verkauft.", + LONAutoSellPlusTT = "Items hinzufügen, indem du sie hierher ziehst/hier ablegst", + LONAutoSellMinusTT = "Wähle Items, die du entfernen willst. Dann klicke hier.", + LONAutoSellPromoteTT = "Klicke, um alle markierten Items in die globale Verkaufsliste zu übernehmen.", + LONAutoSellEmptyTT = "Klicke, um die lokale Verkaufsliste völlig zu leeren.\n|cffff0000Achtung!", } end \ No newline at end of file diff --git a/enUS.lua b/enUS.lua index dd51842..c9fa4b1 100644 --- a/enUS.lua +++ b/enUS.lua @@ -1,6 +1,8 @@ -- enUS / enGB / default localization file _, BrokerGarbage = ... + + BrokerGarbage.locale = { label = "Junk, be gone!", @@ -10,7 +12,9 @@ BrokerGarbage.locale = { sell = "Sold trash for %s.", addedToSaveList = "%s has been added to the save list.", - addedToDestroyList = "%s has been added to the destroy list.", + addedToPriceList = "%s will only have its vendor price considered.", + addedToIncludeList = "%s has been added to the Include List.", + addedToSellList = "%s will be automatically sold when at a merchant.", itemDeleted = "%s has been deleted.", openPlease = "Please open your %s. It's in your bags, stealing your space!", @@ -77,18 +81,39 @@ BrokerGarbage.locale = { emptyIncludeListText = "Click to clear your include list.", -- List Options Panel - LOTitle = "List Options", - LOSubTitle = "Set up your master lists here. To add Items, drag them over the corresponding '+' icon, to remove them select them and klick the '-'.", - - LOExcludeHeader = "Exclude List - these items will never be sold/deleted.", - LOExcludePlusTT = "Add items to the Exclude List by dragging/placing them on me!", - LOExcludeMinusTT = "Select items you want to remove, then click here.", - LOExcludePromoteTT = "Selected items will be written onto your global Exclude List, as seen by every character.", - LOExcludeEmptyTT = "Click to fully empty your local Exclude List. Caution!", - - LOIncludeHeader = "Include List - these items will be suggested to be deleted.", - LOIncludePlusTT = "Add items to your Include List by dragging/placing them on me!", - LOIncludeMinusTT = "Select items you want to remove, then click here.", - LOIncludePromoteTT = "Selected items will be written onto your global Include List, as seen by every character.", - LOIncludeEmptyTT = "Click to fully empty your local Include List. Caution!", -} \ No newline at end of file + LOPTitle = "Positive Lists", + LOPSubTitle = "To add Items to lists, drag them over the corresponding '+' icon, to remove them select them and click the '-'.", + + -- Exclude List + LOPExcludeHeader = "Exclude List - these items will never be sold/deleted.", + LOPExcludePlusTT = "Add items to the Exclude List by dragging/placing them on me!", + LOPExcludeMinusTT = "Select items you want to remove, then click here.", + LOPExcludePromoteTT = "Selected items will be written onto your global Exclude List, as seen by every character.", + LOPExcludeEmptyTT = "Click to fully empty your local Exclude List.\n|cffff0000Caution!", + + -- Force Vendor Price List + LOPForceHeader = "Vendor Price List - These items will only have their vendor price considered.", + LOPForcePlusTT = "Add items to the Vendor Price List by dragging/placing them on me!", + LOPForceMinusTT = "Select items you want to remove, then click here.", + LOPForcePromoteTT = "The Vendor Price List is already global and effects every character.", + LOPForceEmptyTT = "Click to fully empty your Vendor Price List.\n|cffff0000Caution!", + + -- AutoSell Options Panel + LONTitle = "Negative Lists", + LONSubTitle = "To add Items to lists, drag them over the corresponding '+' icon, to remove them select them and click the '-'.", + + -- Include List + LONIncludeHeader = "Include List - these items will shown first in the tooltip.", + LONIncludePlusTT = "Add items to your Include List by dragging/placing them on me!", + LONIncludeMinusTT = "Select items you want to remove, then click here.", + LONIncludePromoteTT = "Selected items will be written onto your global Include List, as seen by every character.", + LONIncludeEmptyTT = "Click to fully empty your local Include List.\n|cffff0000Caution!", + + -- Auto Sell List + LONAutoSellHeader = "Sell List - These items will me automatically sold when at a vendor.", + LONAutoSellPlusTT = "Add items to your Sell List by dragging/placing them on me!", + LONAutoSellMinusTT = "Select items you want to remove, then click here.", + LONAutoSellPromoteTT = "Selected items will be written onto your global Sell List, as seen by every character.", + LONAutoSellEmptyTT = "Click to fully empty your local Sell List.\n|cffff0000Caution!", +} + diff --git a/options.lua b/options.lua index dec09af..48b7ff0 100644 --- a/options.lua +++ b/options.lua @@ -15,18 +15,32 @@ BrokerGarbage.options = CreateFrame("Frame", "BrokerGarbageOptionsFrame", Interf BrokerGarbage.options.name = addonName BrokerGarbage.options:Hide() --- list options panel -BrokerGarbage.listOptions = CreateFrame("Frame", "BrokerGarbageOptionsFrame", InterfaceOptionsFramePanelContainer) -BrokerGarbage.listOptions.name = BrokerGarbage.locale.LOTitle -BrokerGarbage.listOptions.parent = addonName -BrokerGarbage.listOptions:Hide() -BrokerGarbage.optionRows = {} +-- list options BrokerGarbage.listButtons = { - include = {}, + -- positive exclude = {}, + forceprice = {}, + -- negative + autosell = {}, + include = {}, } +-- list options: positive panel +BrokerGarbage.listOptionsPositive = CreateFrame("Frame", "BrokerGarbageOptionsFrame", InterfaceOptionsFramePanelContainer) +BrokerGarbage.listOptionsPositive.name = BrokerGarbage.locale.LOPTitle +BrokerGarbage.listOptionsPositive.parent = addonName +BrokerGarbage.listOptionsPositive:Hide() + +-- list options: negative panel +BrokerGarbage.listOptionsNegative = CreateFrame("Frame", "BrokerGarbageOptionsFrame", InterfaceOptionsFramePanelContainer) +BrokerGarbage.listOptionsNegative.name = BrokerGarbage.locale.LONTitle +BrokerGarbage.listOptionsNegative.parent = addonName +BrokerGarbage.listOptionsNegative:Hide() + local function ShowOptions(frame) + -- ---------------------------------- + -- Basic Options + -- ---------------------------------- local title, subtitle = LibStub("tekKonfig-Heading").new(BrokerGarbage.options, addonName, BrokerGarbage.locale.subTitle) local autosell = LibStub("tekKonfig-Checkbox").new(BrokerGarbage.options, nil, BrokerGarbage.locale.autoSellTitle, "TOPLEFT", subtitle, "BOTTOMLEFT", -2, -4) @@ -185,127 +199,238 @@ local function ShowOptions(frame) local checksound = showsource:GetScript("OnClick") showsource:SetScript("OnClick", function(showsource) checksound(showsource) - BG_GlobalDB.showsource = not BG_GlobalDB.showsource + BG_GlobalDB.showSource = not BG_GlobalDB.showSource end) + -- List Options -- ---------------------------------- - -- List Options panel - - local title, subtitle = LibStub("tekKonfig-Heading").new(BrokerGarbage.listOptions, addonName .. " - " .. BrokerGarbage.locale.LOTitle , BrokerGarbage.locale.LOSubTitle) - - -- list frame: excludes local boxHeight = 150 local boxWidth = 330 - - local excludeListHeader = BrokerGarbage.listOptions:CreateFontString(nil, "ARTWORK", "GameFontHighlightSmall") + + --local backdrop = { + --bgFile = "Interface\\ChatFrame\\ChatFrameBackground", insets = {left = 4, right = 4, top = 4, bottom = 4}, + --edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", edgeSize = 16 + --} + local backdrop = {bgFile = "Interface\\Tooltips\\UI-Tooltip-Background", + tile = false, + tileSize = 32, + insets = { left = 0, right = -22, top = 0, bottom = 0 } + } + + local function ShowTooltip(self) + GameTooltip:SetOwner(self, "ANCHOR_RIGHT") + if self.tiptext then + GameTooltip:SetText(self.tiptext, nil, nil, nil, nil, true) + elseif self.itemLink then + GameTooltip:SetHyperlink(self.itemLink) + end + GameTooltip:Show() + end + local function HideTooltip() GameTooltip:Hide() end + + -- ---------------------------------- + -- Positive Lists + -- ---------------------------------- + local title2, subtitle2 = LibStub("tekKonfig-Heading").new(BrokerGarbage.listOptionsPositive, addonName .. " - " .. BrokerGarbage.locale.LOPTitle , BrokerGarbage.locale.LOPSubTitle) + + -- list frame: exclude + local excludeListHeader = BrokerGarbage.listOptionsPositive:CreateFontString(nil, "ARTWORK", "GameFontHighlightSmall") excludeListHeader:SetHeight(32) - excludeListHeader:SetPoint("TOPLEFT", subtitle, "BOTTOMLEFT", 0, 15) - excludeListHeader:SetText(BrokerGarbage.locale.LOExcludeHeader) + excludeListHeader:SetPoint("TOPLEFT", subtitle2, "BOTTOMLEFT", 0, 14) + excludeListHeader:SetText(BrokerGarbage.locale.LOPExcludeHeader) - local excludeBox = CreateFrame("ScrollFrame", "BG_ExcludeListBox", BrokerGarbage.listOptions, "UIPanelScrollFrameTemplate") - excludeBox:SetPoint("TOPLEFT", excludeListHeader, "BOTTOMLEFT", 0, 2) + local excludeBox = CreateFrame("ScrollFrame", "BG_ExcludeListBox", BrokerGarbage.listOptionsPositive, "UIPanelScrollFrameTemplate") + excludeBox:SetPoint("TOPLEFT", excludeListHeader, "BOTTOMLEFT", 0, 4) excludeBox:SetHeight(boxHeight) excludeBox:SetWidth(boxWidth) - local group = CreateFrame("Frame", nil, excludeBox) - excludeBox:SetScrollChild(group) - group:SetAllPoints() - group:SetHeight(boxHeight) - group:SetWidth(boxWidth) + local group_exclude = CreateFrame("Frame", nil, excludeBox) + excludeBox:SetScrollChild(group_exclude) + group_exclude:SetAllPoints() + group_exclude:SetHeight(boxHeight) + group_exclude:SetWidth(boxWidth) - local backdrop = {bgFile = "Interface\\Tooltips\\UI-Tooltip-Background", - tile = false, - tileSize = 32, - insets = { left = 0, right = -22, top = 0, bottom = 0 }} excludeBox:SetBackdrop(backdrop) excludeBox:SetBackdropBorderColor(0.4, 0.4, 0.4) excludeBox:SetBackdropColor(0.1, 0.1, 0.1) -- action buttons - local plus = CreateFrame("Button", nil, BrokerGarbage.listOptions) + local plus = CreateFrame("Button", nil, BrokerGarbage.listOptionsPositive) plus:SetPoint("TOPLEFT", "BG_ExcludeListBoxScrollBar", "TOPRIGHT", 8, -3) plus:SetWidth(25); plus:SetHeight(25) plus:SetHighlightTexture("Interface\\Buttons\\ButtonHilight-Square") plus:SetNormalTexture("Interface\\Icons\\Spell_chargepositive") - plus.tiptext = BrokerGarbage.locale.LOExcludePlusTT + plus.tiptext = BrokerGarbage.locale.LOPExcludePlusTT - local minus = CreateFrame("Button", nil, BrokerGarbage.listOptions) + local minus = CreateFrame("Button", nil, BrokerGarbage.listOptionsPositive) minus:SetPoint("TOP", plus, "BOTTOM", 0, -6) minus:SetWidth(25); minus:SetHeight(25) minus:SetHighlightTexture("Interface\\Buttons\\ButtonHilight-Square") minus:SetNormalTexture("Interface\\Icons\\Spell_chargenegative") - minus.tiptext = BrokerGarbage.locale.LOExcludeMinusTT + minus.tiptext = BrokerGarbage.locale.LOPExcludeMinusTT - local promote = CreateFrame("Button", nil, BrokerGarbage.listOptions) + local promote = CreateFrame("Button", nil, BrokerGarbage.listOptionsPositive) promote:SetPoint("TOP", minus, "BOTTOM", 0, -6) promote:SetWidth(25) promote:SetHeight(25) promote:SetHighlightTexture("Interface\\Buttons\\ButtonHilight-Square") promote:SetNormalTexture("Interface\\Icons\\achievement_bg_returnxflags_def_wsg") - promote.tiptext = BrokerGarbage.locale.LOExcludePromoteTT + promote.tiptext = BrokerGarbage.locale.LOPExcludePromoteTT - local emptyExcludeList = CreateFrame("Button", nil, BrokerGarbage.listOptions) + local emptyExcludeList = CreateFrame("Button", nil, BrokerGarbage.listOptionsPositive) emptyExcludeList:SetPoint("TOP", promote, "BOTTOM", 0, -6) emptyExcludeList:SetWidth(25); emptyExcludeList:SetHeight(25) emptyExcludeList:SetNormalTexture("Interface\\Buttons\\Ui-grouploot-pass-up") - emptyExcludeList.tiptext = BrokerGarbage.locale.LOExcludeEmptyTT - - -- list frame: includes - local includeListHeader = BrokerGarbage.listOptions:CreateFontString(nil, "ARTWORK", "GameFontHighlightSmall") - includeListHeader:SetHeight(32) - includeListHeader:SetPoint("TOPLEFT", excludeBox, "BOTTOMLEFT", 0, -8) - includeListHeader:SetText(BrokerGarbage.locale.LOIncludeHeader) - - local includeBox = CreateFrame("ScrollFrame", "BG_IncludeListBox", BrokerGarbage.listOptions, "UIPanelScrollFrameTemplate") - includeBox:SetPoint("TOPLEFT", includeListHeader, "BOTTOMLEFT", 0, 2) - includeBox:SetHeight(boxHeight) - includeBox:SetWidth(boxWidth) - local group2 = CreateFrame("Frame", nil, excludeBox) - group2:SetAllPoints() - group2:SetHeight(boxHeight) - group2:SetWidth(boxWidth) - includeBox:SetScrollChild(group2) - - includeBox:SetBackdrop(backdrop) - includeBox:SetBackdropBorderColor(0.4, 0.4, 0.4) - includeBox:SetBackdropColor(0.1, 0.1, 0.1) + emptyExcludeList.tiptext = BrokerGarbage.locale.LOPExcludeEmptyTT + + -- list frame: force price + local forcepriceListHeader = BrokerGarbage.listOptionsPositive:CreateFontString(nil, "ARTWORK", "GameFontHighlightSmall") + forcepriceListHeader:SetHeight(32) + forcepriceListHeader:SetPoint("TOPLEFT", excludeBox, "BOTTOMLEFT", 0, -8) + forcepriceListHeader:SetText(BrokerGarbage.locale.LOPForceHeader) + + local forcepriceBox = CreateFrame("ScrollFrame", "BG_ForcePriceListBox", BrokerGarbage.listOptionsPositive, "UIPanelScrollFrameTemplate") + forcepriceBox:SetPoint("TOPLEFT", forcepriceListHeader, "BOTTOMLEFT", 0, 4) + forcepriceBox:SetHeight(boxHeight) + forcepriceBox:SetWidth(boxWidth) + local group_forceprice = CreateFrame("Frame", nil, forcepriceBox) + group_forceprice:SetAllPoints() + group_forceprice:SetHeight(boxHeight) + group_forceprice:SetWidth(boxWidth) + forcepriceBox:SetScrollChild(group_forceprice) + + forcepriceBox:SetBackdrop(backdrop) + forcepriceBox:SetBackdropBorderColor(0.4, 0.4, 0.4) + forcepriceBox:SetBackdropColor(0.1, 0.1, 0.1) -- action buttons - local plus2 = CreateFrame("Button", nil, BrokerGarbage.listOptions) - plus2:SetPoint("TOPLEFT", "BG_IncludeListBoxScrollBar", "TOPRIGHT", 8, -3) + local plus2 = CreateFrame("Button", nil, BrokerGarbage.listOptionsPositive) + plus2:SetPoint("TOPLEFT", "BG_ForcePriceListBoxScrollBar", "TOPRIGHT", 8, -3) plus2:SetWidth(25); plus2:SetHeight(25) plus2:SetHighlightTexture("Interface\\Buttons\\ButtonHilight-Square") plus2:SetNormalTexture("Interface\\Icons\\Spell_chargepositive") - plus2.tiptext = BrokerGarbage.locale.LOIncludePlusTT + plus2.tiptext = BrokerGarbage.locale.LOPForcePlusTT - local minus2 = CreateFrame("Button", nil, BrokerGarbage.listOptions) + local minus2 = CreateFrame("Button", nil, BrokerGarbage.listOptionsPositive) minus2:SetPoint("TOP", plus2, "BOTTOM", 0, -6) minus2:SetWidth(25); minus2:SetHeight(25) minus2:SetHighlightTexture("Interface\\Buttons\\ButtonHilight-Square") minus2:SetNormalTexture("Interface\\Icons\\Spell_chargenegative") - minus2.tiptext = BrokerGarbage.locale.LOIncludeMinusTT + minus2.tiptext = BrokerGarbage.locale.LOPForceMinusTT - local promote2 = CreateFrame("Button", nil, BrokerGarbage.listOptions) + local promote2 = CreateFrame("Button", nil, BrokerGarbage.listOptionsPositive) promote2:SetPoint("TOP", minus2, "BOTTOM", 0, -6) promote2:SetWidth(25); promote2:SetHeight(25) promote2:SetHighlightTexture("Interface\\Buttons\\ButtonHilight-Square") promote2:SetNormalTexture("Interface\\Icons\\achievement_bg_returnxflags_def_wsg") - promote2.tiptext = BrokerGarbage.locale.LOIncludePromoteTT + promote2:Enable(false) -- we only have a global force vendor price list + promote2:GetNormalTexture():SetDesaturated(true) + promote2.tiptext = BrokerGarbage.locale.LOPForcePromoteTT + + local emptyForcePriceList = CreateFrame("Button", nil, BrokerGarbage.listOptionsPositive) + emptyForcePriceList:SetPoint("TOP", promote2, "BOTTOM", 0, -6) + emptyForcePriceList:SetWidth(25); emptyForcePriceList:SetHeight(25) + emptyForcePriceList:SetNormalTexture("Interface\\Buttons\\Ui-grouploot-pass-up") + emptyForcePriceList.tiptext = BrokerGarbage.locale.LOPForceEmptyTT + + -- ---------------------------------- + -- Negative Lists + -- ---------------------------------- + local title3, subtitle3 = LibStub("tekKonfig-Heading").new(BrokerGarbage.listOptionsNegative, addonName .. " - " .. BrokerGarbage.locale.LONTitle , BrokerGarbage.locale.LONSubTitle) + + -- list frame: include + local includeListHeader = BrokerGarbage.listOptionsNegative:CreateFontString(nil, "ARTWORK", "GameFontHighlightSmall") + includeListHeader:SetHeight(32) + includeListHeader:SetPoint("TOPLEFT", subtitle3, "BOTTOMLEFT", 0, 14) + includeListHeader:SetText(BrokerGarbage.locale.LONIncludeHeader) + + local includeBox = CreateFrame("ScrollFrame", "BG_IncludeListBox", BrokerGarbage.listOptionsNegative, "UIPanelScrollFrameTemplate") + includeBox:SetPoint("TOPLEFT", excludeListHeader, "BOTTOMLEFT", 0, 4) + includeBox:SetHeight(boxHeight) + includeBox:SetWidth(boxWidth) + local group_include = CreateFrame("Frame", nil, includeBox) + includeBox:SetScrollChild(group_include) + group_include:SetAllPoints() + group_include:SetHeight(boxHeight) + group_include:SetWidth(boxWidth) + + includeBox:SetBackdrop(backdrop) + includeBox:SetBackdropBorderColor(0.4, 0.4, 0.4) + includeBox:SetBackdropColor(0.1, 0.1, 0.1) + + -- action buttons + local plus3 = CreateFrame("Button", nil, BrokerGarbage.listOptionsNegative) + plus3:SetPoint("TOPLEFT", "BG_ExcludeListBoxScrollBar", "TOPRIGHT", 8, -3) + plus3:SetWidth(25); plus3:SetHeight(25) + plus3:SetHighlightTexture("Interface\\Buttons\\ButtonHilight-Square") + plus3:SetNormalTexture("Interface\\Icons\\Spell_chargepositive") + plus3.tiptext = BrokerGarbage.locale.LONIncludePlusTT - local emptyIncludeList = CreateFrame("Button", nil, BrokerGarbage.listOptions) - emptyIncludeList:SetPoint("TOP", promote2, "BOTTOM", 0, -6) + local minus3 = CreateFrame("Button", nil, BrokerGarbage.listOptionsNegative) + minus3:SetPoint("TOP", plus3, "BOTTOM", 0, -6) + minus3:SetWidth(25); minus3:SetHeight(25) + minus3:SetHighlightTexture("Interface\\Buttons\\ButtonHilight-Square") + minus3:SetNormalTexture("Interface\\Icons\\Spell_chargenegative") + minus3.tiptext = BrokerGarbage.locale.LONIncludeMinusTT + + local promote3 = CreateFrame("Button", nil, BrokerGarbage.listOptionsNegative) + promote3:SetPoint("TOP", minus3, "BOTTOM", 0, -6) + promote3:SetWidth(25) promote3:SetHeight(25) + promote3:SetHighlightTexture("Interface\\Buttons\\ButtonHilight-Square") + promote3:SetNormalTexture("Interface\\Icons\\achievement_bg_returnxflags_def_wsg") + promote3.tiptext = BrokerGarbage.locale.LONIncludePromoteTT + + local emptyIncludeList = CreateFrame("Button", nil, BrokerGarbage.listOptionsNegative) + emptyIncludeList:SetPoint("TOP", promote3, "BOTTOM", 0, -6) emptyIncludeList:SetWidth(25); emptyIncludeList:SetHeight(25) emptyIncludeList:SetNormalTexture("Interface\\Buttons\\Ui-grouploot-pass-up") - emptyIncludeList.tiptext = BrokerGarbage.locale.LOIncludeEmptyTT - - local function ShowTooltip(self) - GameTooltip:SetOwner(self, "ANCHOR_RIGHT") - if self.tiptext then - GameTooltip:SetText(self.tiptext, nil, nil, nil, nil, true) - elseif self.itemLink then - GameTooltip:SetHyperlink(self.itemLink) - end - GameTooltip:Show() - end - local function HideTooltip() GameTooltip:Hide() end + emptyIncludeList.tiptext = BrokerGarbage.locale.LONIncludeEmptyTT + + -- list frame: auto sell + local autosellListHeader = BrokerGarbage.listOptionsNegative:CreateFontString(nil, "ARTWORK", "GameFontHighlightSmall") + autosellListHeader:SetHeight(32) + autosellListHeader:SetPoint("TOPLEFT", excludeBox, "BOTTOMLEFT", 0, -8) + autosellListHeader:SetText(BrokerGarbage.locale.LONAutoSellHeader) + + local autosellBox = CreateFrame("ScrollFrame", "BG_AutosellListBox", BrokerGarbage.listOptionsNegative, "UIPanelScrollFrameTemplate") + autosellBox:SetPoint("TOPLEFT", autosellListHeader, "BOTTOMLEFT", 0, 4) + autosellBox:SetHeight(boxHeight) + autosellBox:SetWidth(boxWidth) + local group_autosell = CreateFrame("Frame", nil, autosellBox) + group_autosell:SetAllPoints() + group_autosell:SetHeight(boxHeight) + group_autosell:SetWidth(boxWidth) + autosellBox:SetScrollChild(group_autosell) + + autosellBox:SetBackdrop(backdrop) + autosellBox:SetBackdropBorderColor(0.4, 0.4, 0.4) + autosellBox:SetBackdropColor(0.1, 0.1, 0.1) + + -- action buttons + local plus4 = CreateFrame("Button", nil, BrokerGarbage.listOptionsNegative) + plus4:SetPoint("TOPLEFT", "BG_AutosellListBoxScrollBar", "TOPRIGHT", 8, -3) + plus4:SetWidth(25); plus4:SetHeight(25) + plus4:SetHighlightTexture("Interface\\Buttons\\ButtonHilight-Square") + plus4:SetNormalTexture("Interface\\Icons\\Spell_chargepositive") + plus4.tiptext = BrokerGarbage.locale.LONAutoSellPlusTT + + local minus4 = CreateFrame("Button", nil, BrokerGarbage.listOptionsNegative) + minus4:SetPoint("TOP", plus4, "BOTTOM", 0, -6) + minus4:SetWidth(25); minus4:SetHeight(25) + minus4:SetHighlightTexture("Interface\\Buttons\\ButtonHilight-Square") + minus4:SetNormalTexture("Interface\\Icons\\Spell_chargenegative") + minus4.tiptext = BrokerGarbage.locale.LONAutoSellMinusTT + + local promote4 = CreateFrame("Button", nil, BrokerGarbage.listOptionsNegative) + promote4:SetPoint("TOP", minus4, "BOTTOM", 0, -6) + promote4:SetWidth(25); promote4:SetHeight(25) + promote4:SetHighlightTexture("Interface\\Buttons\\ButtonHilight-Square") + promote4:SetNormalTexture("Interface\\Icons\\achievement_bg_returnxflags_def_wsg") + promote4.tiptext = BrokerGarbage.locale.LONAutoSellPromoteTT + + local emptyAutoSellList = CreateFrame("Button", nil, BrokerGarbage.listOptionsNegative) + emptyAutoSellList:SetPoint("TOP", promote4, "BOTTOM", 0, -6) + emptyAutoSellList:SetWidth(25); emptyAutoSellList:SetHeight(25) + emptyAutoSellList:SetNormalTexture("Interface\\Buttons\\Ui-grouploot-pass-up") + emptyAutoSellList.tiptext = BrokerGarbage.locale.LONAutoSellEmptyTT local function JoinTables(t1, t2) @@ -326,24 +451,42 @@ local function ShowOptions(frame) end local numCols = 8 - local function ListOptionsUpdate(listName) + function BrokerGarbage:ListOptionsUpdate(listName) local globalList, localList, dataList, box, parent, buttonList + BrokerGarbage:Debug("List Name:", listName) if listName == "include" then globalList = BG_GlobalDB.include localList = BG_LocalDB.include box = includeBox - parent = group2 + parent = group_include buttonList = BrokerGarbage.listButtons.include - else + + elseif listName == "exclude" then globalList = BG_GlobalDB.exclude localList = BG_LocalDB.exclude box = excludeBox - parent = group + parent = group_exclude buttonList = BrokerGarbage.listButtons.exclude + + elseif listName == "autosell" then + globalList = BG_GlobalDB.autoSellList + localList = BG_LocalDB.autoSellList + + box = autosellBox + parent = group_autosell + buttonList = BrokerGarbage.listButtons.autosell + + elseif listName == "forceprice" then + globalList = BG_GlobalDB.forceVendorPrice + + box = forcepriceBox + parent = group_forceprice + buttonList = BrokerGarbage.listButtons.forceprice end dataList = JoinTables(globalList, localList) + if not buttonList then buttonList = {} end local index = 1 for itemID,_ in pairs(dataList) do @@ -391,9 +534,8 @@ local function ShowOptions(frame) end buttonList[index] = iconbutton - ListOptionsUpdate(listName) + BrokerGarbage:ListOptionsUpdate(listName) end - index = index + 1 end -- hide unnessessary buttons @@ -401,37 +543,55 @@ local function ShowOptions(frame) buttonList[index]:Hide() index = index + 1 end - - box:UpdateScrollChildRect() end local function ItemDrop(self) local type, itemID, link = GetCursorInfo() if not type == "item" then return end - if self == group2 or self == includeBox or self == plus2 then + if self == group_exclude or self == excludeBox or self == plus then + BG_LocalDB.exclude[itemID] = true + BrokerGarbage:Print(format(BrokerGarbage.locale.addedToSaveList, link)) + BrokerGarbage:ListOptionsUpdate("exclude") + ClearCursor() + elseif self == group_forceprice or self == forcepriceBox or self == plus2 then + BG_LocalDB.exclude[itemID] = true + BrokerGarbage:Print(format(BrokerGarbage.locale.addedToPriceList, link)) + BrokerGarbage:ListOptionsUpdate("forceprice") + ClearCursor() + elseif self == group_include or self == includeBox or self == plus3 then BG_LocalDB.include[itemID] = true - BrokerGarbage:Print(format(BrokerGarbage.locale.addedToDestroyList, link)) - ListOptionsUpdate("include") + BrokerGarbage:Print(format(BrokerGarbage.locale.addedToIncludeList, link)) + BrokerGarbage:ListOptionsUpdate("include") ClearCursor() - elseif self == group or self == excludeBox or self == plus then + elseif self == group_autosell or self == autosellBox or self == plus4 then BG_LocalDB.exclude[itemID] = true - BrokerGarbage:Print(format(BrokerGarbage.locale.addedToSaveList, link)) - ListOptionsUpdate("exclude") + BrokerGarbage:Print(format(BrokerGarbage.locale.addedToSellList, link)) + BrokerGarbage:ListOptionsUpdate("autosell") ClearCursor() end end local function OnClick(self, button) + -- empty action if self == emptyExcludeList then BG_LocalDB.exclude = {} - ListOptionsUpdate("exclude") + BrokerGarbage:ListOptionsUpdate("exclude") + BrokerGarbage:ScanInventory() + elseif self == emptyForcePriceList then + BG_LocalDB.forceVendorPrice = {} + BrokerGarbage:ListOptionsUpdate("forceprice") BrokerGarbage:ScanInventory() elseif self == emptyIncludeList then BG_LocalDB.include = {} - ListOptionsUpdate("include") + BrokerGarbage:ListOptionsUpdate("include") + BrokerGarbage:ScanInventory() + elseif self == emptyAutoSellList then + BG_GlobalDB.autoSellList = {} + BrokerGarbage:ListOptionsUpdate("autosell") BrokerGarbage:ScanInventory() + -- remove action elseif self == minus then for i, button in pairs(BrokerGarbage.listButtons.exclude) do if button:GetChecked() then @@ -439,102 +599,156 @@ local function ShowOptions(frame) BG_GlobalDB.exclude[button.itemID] = nil end end - ListOptionsUpdate("exclude") + BrokerGarbage:ListOptionsUpdate("exclude") BrokerGarbage:ScanInventory() elseif self == minus2 then + for i, button in pairs(BrokerGarbage.listButtons.forceprice) do + if button:GetChecked() then + BG_GlobalDB.forceVendorPrice[button.itemID] = nil + end + end + BrokerGarbage:ListOptionsUpdate("forceprice") + BrokerGarbage:ScanInventory() + elseif self == minus3 then for i, button in pairs(BrokerGarbage.listButtons.include) do if button:GetChecked() then BG_LocalDB.include[button.itemID] = nil BG_GlobalDB.include[button.itemID] = nil end end - ListOptionsUpdate("include") + BrokerGarbage:ListOptionsUpdate("include") BrokerGarbage:ScanInventory() - + elseif self == minus4 then + for i, button in pairs(BrokerGarbage.listButtons.autosell) do + if button:GetChecked() then + BG_LocalDB.autoSellList[button.itemID] = nil + BG_GlobalDB.autoSellList[button.itemID] = nil + end + end + BrokerGarbage:ListOptionsUpdate("autosell") + BrokerGarbage:ScanInventory() + + -- add action elseif self == plus then - BrokerGarbage:Debug("Include1") ItemDrop(self) - ListOptionsUpdate("exclude") + BrokerGarbage:ListOptionsUpdate("exclude") elseif self == plus2 then - BrokerGarbage:Debug("Include2") ItemDrop(self) - ListOptionsUpdate("include") + BrokerGarbage:ListOptionsUpdate("forceprice") + elseif self == plus3 then + ItemDrop(self) + BrokerGarbage:ListOptionsUpdate("include") + elseif self == plus4 then + ItemDrop(self) + BrokerGarbage:ListOptionsUpdate("autosell") + -- promote action elseif self == promote then - BrokerGarbage:Debug("Promote") for i, button in pairs(BrokerGarbage.listButtons.exclude) do if button:GetChecked() then BG_GlobalDB.exclude[button.itemID] = true end end - - ListOptionsUpdate("exclude") - elseif self == promote2 then - BrokerGarbage:Debug("Promote2") + BrokerGarbage:ListOptionsUpdate("exclude") + elseif self == promote3 then for i, button in pairs(BrokerGarbage.listButtons.include) do if button:GetChecked() then BG_GlobalDB.include[button.itemID] = true end end - - ListOptionsUpdate("exclude") + BrokerGarbage:ListOptionsUpdate("include") + elseif self == promote3 then + for i, button in pairs(BrokerGarbage.listButtons.autosell) do + if button:GetChecked() then + BG_GlobalDB.autoSellList[button.itemID] = true + end + end + BrokerGarbage:ListOptionsUpdate("autosell") end - - --ListOptionsUpdate("include") - --ListOptionsUpdate("exclude") end emptyExcludeList:SetScript("OnClick", OnClick) emptyExcludeList:SetScript("OnEnter", ShowTooltip) emptyExcludeList:SetScript("OnLeave", HideTooltip) - + emptyForcePriceList:SetScript("OnClick", OnClick) + emptyForcePriceList:SetScript("OnEnter", ShowTooltip) + emptyForcePriceList:SetScript("OnLeave", HideTooltip) emptyIncludeList:SetScript("OnClick", OnClick) emptyIncludeList:SetScript("OnEnter", ShowTooltip) emptyIncludeList:SetScript("OnLeave", HideTooltip) + emptyAutoSellList:SetScript("OnClick", OnClick) + emptyAutoSellList:SetScript("OnEnter", ShowTooltip) + emptyAutoSellList:SetScript("OnLeave", HideTooltip) minus:SetScript("OnClick", OnClick) minus:SetScript("OnEnter", ShowTooltip) minus:SetScript("OnLeave", HideTooltip) - minus2:SetScript("OnClick", OnClick) minus2:SetScript("OnEnter", ShowTooltip) minus2:SetScript("OnLeave", HideTooltip) + minus3:SetScript("OnClick", OnClick) + minus3:SetScript("OnEnter", ShowTooltip) + minus3:SetScript("OnLeave", HideTooltip) + minus4:SetScript("OnClick", OnClick) + minus4:SetScript("OnEnter", ShowTooltip) + minus4:SetScript("OnLeave", HideTooltip) plus:SetScript("OnClick", OnClick) plus:SetScript("OnEnter", ShowTooltip) plus:SetScript("OnLeave", HideTooltip) - plus2:SetScript("OnClick", OnClick) plus2:SetScript("OnEnter", ShowTooltip) plus2:SetScript("OnLeave", HideTooltip) + plus3:SetScript("OnClick", OnClick) + plus3:SetScript("OnEnter", ShowTooltip) + plus3:SetScript("OnLeave", HideTooltip) + plus4:SetScript("OnClick", OnClick) + plus4:SetScript("OnEnter", ShowTooltip) + plus4:SetScript("OnLeave", HideTooltip) promote:SetScript("OnClick", OnClick) promote:SetScript("OnEnter", ShowTooltip) promote:SetScript("OnLeave", HideTooltip) - promote2:SetScript("OnClick", OnClick) promote2:SetScript("OnEnter", ShowTooltip) promote2:SetScript("OnLeave", HideTooltip) - - -- ---------------------------------- + promote3:SetScript("OnClick", OnClick) + promote3:SetScript("OnEnter", ShowTooltip) + promote3:SetScript("OnLeave", HideTooltip) + promote4:SetScript("OnClick", OnClick) + promote4:SetScript("OnEnter", ShowTooltip) + promote4:SetScript("OnLeave", HideTooltip) + + -- support for add-mechanism plus:RegisterForDrag("LeftButton") plus:SetScript("OnReceiveDrag", ItemDrop) plus:SetScript("OnMouseDown", ItemDrop) plus2:RegisterForDrag("LeftButton") plus2:SetScript("OnReceiveDrag", ItemDrop) plus2:SetScript("OnMouseDown", ItemDrop) + plus3:RegisterForDrag("LeftButton") + plus3:SetScript("OnReceiveDrag", ItemDrop) + plus3:SetScript("OnMouseDown", ItemDrop) + plus4:RegisterForDrag("LeftButton") + plus4:SetScript("OnReceiveDrag", ItemDrop) + plus4:SetScript("OnMouseDown", ItemDrop) buttons = {} - ListOptionsUpdate("include") - ListOptionsUpdate("exclude") + BrokerGarbage:ListOptionsUpdate("include") + BrokerGarbage:ListOptionsUpdate("forceprice") + BrokerGarbage:ListOptionsUpdate("exclude") + BrokerGarbage:ListOptionsUpdate("autosell") BrokerGarbage.options:SetScript("OnShow", nil) - BrokerGarbage.listOptions:SetScript("OnShow", ListOptionsUpdate) + BrokerGarbage.listOptionsPositive:SetScript("OnShow", BrokerGarbage.ListOptionsUpdate) + BrokerGarbage.listOptionsNegative:SetScript("OnShow", BrokerGarbage.ListOptionsUpdate) end -- show me! BrokerGarbage.options:SetScript("OnShow", ShowOptions) -BrokerGarbage.listOptions:SetScript("OnShow", ShowOptions) +BrokerGarbage.listOptionsPositive:SetScript("OnShow", ShowOptions) +BrokerGarbage.listOptionsNegative:SetScript("OnShow", ShowOptions) InterfaceOptions_AddCategory(BrokerGarbage.options) -InterfaceOptions_AddCategory(BrokerGarbage.listOptions) +InterfaceOptions_AddCategory(BrokerGarbage.listOptionsPositive) +InterfaceOptions_AddCategory(BrokerGarbage.listOptionsNegative) LibStub("tekKonfig-AboutPanel").new("Broker_Garbage", "Broker_Garbage") \ No newline at end of file diff --git a/readme.txt b/readme.txt index ce1d85a..f3c26a7 100644 --- a/readme.txt +++ b/readme.txt @@ -10,6 +10,8 @@ Curse: http://wow.curse.com/downloads/wow-addons/details/broker_garbage.a 1. What it does ----------------- +Broker_Garbage is a LDB plugin that will show your least valuable items, their value and their amount in a tooltip. Then it enables you to drop them with just one click, making life for those tight-bagged people among us easier. +As you probably don't want to drop everything just by it's vendor price, Broker_Garbage takes into account auction prices (you would need to have an auction price addon active) and different lists for managing exclusions and other "special" behaviour. 2. First Start ----------------- @@ -51,12 +53,9 @@ Grayed out items on there are items that are on your global list, active for all Items on this list will never have their auction value used. This is useful for food, drinks and other things people tend to put on the AH at unbelievable prices. * Include List -Items on this list will be dropped, no matter what Quality Treshold you might have set. Caution! +Items on this list will be always be shown in the drop Tooltip, no matter what Quality Treshold you might have set. Caution! Grayed out items on there are items that are on your global list, active for all characters. Colorful ones are just for your current character. -* Drop List -If your inventory gets too full and you want to drop something, these items will show up in the tooltip with a forced value of 0 copper. Items above your Quality Treshold will NOT be dropped. - * Auto-Sell List Items on this list will be sold whenever you talk to a vendor. Items of higher quality than your Quality Treshold WILL be sold. -- 1.7.9.5