Compare commits

...

11 Commits
0.1 ... master

13 changed files with 71 additions and 175 deletions

View File

@ -1,3 +0,0 @@
manual-changelog:
filename: changelog.txt
markup-type: markdown

View File

@ -1,8 +1,8 @@
## Interface: 70000
## Interface: 11302
## Title: GnomishVendorShrinker
## Title: GnomishVendorShrinker Classic
## Notes: Compact scrolling vendor frame
## Author: Tekkub Stoutwrithe
## Author: Gio-Flamelash
## X-Category: Misc
## X-Icon: Interface\Icons\INV_Misc_Toy_07

View File

@ -15,6 +15,17 @@ local function Hide(frame)
end
local function ToggleButtons()
for i=1,MERCHANT_ITEMS_PER_PAGE do
if (MerchantFrame.selectedTab == 1) then
_G["MerchantItem"..i]:Hide()
elseif (MerchantFrame.selectedTab == 2) then
_G["MerchantItem"..i]:Show()
end
end
end
function ns.OnLoad()
local GVS = ns.NewMainFrame()
GVS:SetWidth(315)
@ -26,15 +37,21 @@ function ns.OnLoad()
MerchantBuyBackItem:SetPoint("BOTTOMRIGHT", -7, 33)
-- The little class select dropdown show trigget a refresh
hooksecurefunc("SetMerchantFilter", function() GVS:GetScript("OnShow")(GVS) end)
--[[hooksecurefunc("SetMerchantFilter", function()
if GVS.Merchant ~= UnitGUID("npc") then
GVS:GetScript("OnShow")(GVS)
else
GVS:GetScript("OnEvent")(GVS)
end
end)]]
-- Force show when we're loaded on demand and the tab is already selected
if MerchantFrame:IsVisible() and MerchantFrame.selectedTab == 1 then
GVS:Show()
end
-- Reparent the first 10 MerchantItem frames, so they only appear for buyback
for i=1,10 do _G["MerchantItem"..i]:SetParent(MerchantItem11) end
for i=1,10 do _G["MerchantItem"..i]:Hide() end
-- Hide frames we don't need now
Hide(MerchantNextPageButton)
@ -43,4 +60,8 @@ function ns.OnLoad()
-- Clean up our frame factories
for i,v in pairs(ns) do if i:match("^New") then ns[i] = nil end end
MerchantFrameTab1:HookScript("OnClick", ToggleButtons)
MerchantFrameTab2:HookScript("OnClick", ToggleButtons)
GVS:HookScript("OnShow", ToggleButtons)
end

View File

@ -2,11 +2,6 @@
local myname, ns = ...
local function HasHeirloom(id)
return C_Heirloom.IsItemHeirloom(id) and C_Heirloom.PlayerHasHeirloom(id)
end
local function IsKnown(link)
ns.scantip:SetHyperlink(link)
for i=1,ns.scantip:NumLines() do
@ -20,7 +15,7 @@ ns.knowns = setmetatable({}, {
local id = ns.ids[i]
if not id then return end
if HasHeirloom(id) or IsKnown(i) then
if IsKnown(i) then
t[i] = true
return true
end

View File

@ -1,19 +1,19 @@
GnomishVendorShrinker creates a simple, compact vendor frame, made to compliment
GnomishAuctionShrinker. GVS brings an interface similar to Auctioneer's
"CompactUI" to the vendor frame.
GnomishVendorShrinker (for Classic) creates a simple, compact vendor frame.
Credits to [tekkub](https://github.com/TekNoLogic/GnomishVendorShrinker) and [Tonyleila + Vlad](https://www.wowinterface.com/downloads/info21484-GnomishVendorShrinkerFanUpdateforBFAGVS.html).
## Features
* Simple one-line-per-item interface
* Scrolling list, none of that "paging" crap that makes navigation slow
* Clicking an item simply buys it, instead of picking up the item
* Alt-click buys a full stack (or as close to a full stack as is possible for
limited-stock items)
* Ctrl- and shift-click behave as default (dress-up and paste link, respectively)
* Recipes you do not yet know are highlighted in blue
* Items you cannot use are highlighted in red
* Search box to help you find that item you're after on a vendor with hundreds of items
* Simple one-line-per-item interface.
* Scrolling list, none of that "paging" crap that makes navigation slow.
* Clicking an item simply buys it, instead of picking up the item.
* Alt-click buys a full stack (or as close to a full stack as is possible for limited-stock items).
* Ctrl- and shift-click behave as default (dress-up and paste link, respectively).
* Recipes you do not yet know are highlighted in blue.
* Items you cannot use are highlighted in red.
* Search box to help you find that item you're after on a vendor with hundreds of items.
## Un-features
![Screenshot](https://i.imgur.com/c6Md0ks.png "Screenshot")
* No support for split-stack purchases, I'm not convinced it's needed.
* [WoWInterface: GnomishVendorShrinker (Classic)](https://www.wowinterface.com/downloads/info25279-GnomishVendorShrinkerClassic.html)
* [Code development](https://sergio.am/code/GnomishVendorShrinker)

View File

@ -1,113 +0,0 @@
### 7.0.0.23-Beta
* Fix issues with sightless eye vendor
Why the fuck anyone would want to come down here is beyond me.
### 7.0.0.22-Beta
* Fix buying items from vendors using [Tricky Treat]
... and also using any other common non-currency item (i.e. holiday
"currency" that stay in your bag and usually expire)
### 7.0.0.21-Beta
* Fix blank list when not loaded on demand
### 7.0.0.20-Beta
* Red-out lines for recipes that require a rank we don't have yet
* Add toys to known scanner
* Heavy refactoring under the hood
### 7.0.0.19-Beta
* Bump to fix botched releases on WoWI and Wowace
### 7.0.0.18-Beta
* Fix for Legion API changes (thanks Talyrius)
* Refresh the list more often to catch spent currency
* Check bank items now
* Grey out known heirlooms on 6.1
### 6.0.0.17-Beta
* Make grey out work for garrison blueprints
### 6.0.0.16-Beta
* Make known recipes grey
### 5.0.1.15-Release
* Tagging stable version
### 5.0.1.14-Beta
* Fix frame positions for PANDAS!
### 4.3.0.13-Beta
* New search (Thanks Urth)
* Move the search box, it overlaps the default UI in some cases
* Add a tooltip so people know how to use the search
* redo it the right way
### 4.2.0.12-Beta
* Fix *~crazy~* hex color stings
### 4.1.0.11-Release
* Tagging stable version
### 4.0.0.10-Beta
* Some people don't even know what honor points are
### 4.0.0.9-Beta
* Make price text red if we can't afford an item
### 4.0.0.8-Beta
* Fix known recipe highlight
### 4.0.0.7-Beta
* Helps to register for drag.
* Stack-sold items changed with 4.0
### 3.3.0.6-Beta
* Better recipe highlighting
### 3.3.0.5-Beta
* Fix refresh "issue"?
* Oops, I always forget to register all clicks... stupid bad blizzy defaults
### 3.2.0.4-Beta
* Increase number of lines in tip scanner
### 3.2.0.3-Beta
* Switch to actual honor/arena point itemIDs so we get better tooltips
* Stupid nils
* Hide splitstack onhide
* Fix gold and token items anchoring
### 3.2.0.2-Beta
* Add splitstack frame, without the retarded max purchase limits the default vendor frame uses
* Ensure we always have a default item quality color
* Fix copper color
### 3.2.0.1-Beta
* And so it begins...

View File

@ -1,7 +0,0 @@
events.lua
gsc.lua
itemid.lua
size_to_fit.lua
tooltip_scanner.lua
ui-scrollbar.lua
ui-textinput.lua

View File

@ -29,5 +29,7 @@ function ns.SizeToFit(self)
-- Now resize ourself
local _, _, width, height = self:GetBoundsRect()
self:SetSize(width, height)
if(width ~= nil and height ~= nil) then
self:SetSize(width, height)
end
end

View File

@ -32,7 +32,7 @@ end
local function Sound()
PlaySound("UChatScrollButton")
PlaySound(1115)
end

View File

@ -53,6 +53,18 @@ function ns.NewMainFrame()
search:SetScript("OnTextChanged", Refresh)
local function Open(self)
self.Merchant = UnitGUID("npc")
local max = math.max(0, GetMerchantNumItems() - NUMROWS)
scrollbar:SetMinMaxValues(0, max)
scrollbar:SetValue(0)
Refresh()
GVS:RegisterEvent("BAG_UPDATE")
GVS:RegisterEvent("MERCHANT_UPDATE")
GVS:RegisterEvent("MERCHANT_SHOW")
end
GVS:EnableMouseWheel(true)
GVS:SetScript("OnMouseWheel", function(self, value)
if value > 0 then
@ -62,16 +74,7 @@ function ns.NewMainFrame()
end
end)
GVS:SetScript("OnEvent", Refresh)
GVS:SetScript("OnShow", function(self)
local max = math.max(0, GetMerchantNumItems() - NUMROWS)
scrollbar:SetMinMaxValues(0, max)
scrollbar:SetValue(0)
Refresh()
GVS:RegisterEvent("BAG_UPDATE")
GVS:RegisterEvent("MERCHANT_UPDATE")
GVS:RegisterEvent("CURRENCY_DISPLAY_UPDATE")
end)
GVS:SetScript("OnShow", Open)
GVS:SetScript("OnHide", GVS.UnregisterAllEvents)
return GVS

View File

@ -27,21 +27,15 @@ local function HasAllCommonBarterItems(index)
end
local function IsHeirloom(index)
local id = GetMerchantItemID(index)
return id and C_Heirloom.IsItemHeirloom(id)
end
local function RequiresConfirmation(index)
if IsHeirloom(index) then return true end
if not HasAllCommonBarterItems(index) then return true end
end
local function OnClick(self, button)
local id = self:GetID()
local hasaltcurrency = (GetMerchantItemCostInfo(id) > 0)
local currencyname = select(4,GetMerchantItemCostItem(id, 1))
local hasaltcurrency = ((GetMerchantItemCostInfo(id) > 0) and (select(4,GetMerchantItemCostItem(id, 1)) ~= "Garrison Resources"))
if IsAltKeyDown() and not hasaltcurrency then
self:BuyItem(true)
@ -136,7 +130,12 @@ local function SetValue(self, i)
self.ItemName:SetText(text)
self.AltCurrency:SetValue(i)
if self.AltCurrency:IsShown() then
self.ItemName:SetPoint("RIGHT", self.AltCurrency, "LEFT", -GAP, 0)
else
self.ItemName:SetPoint("RIGHT", self.ItemPrice, "LEFT", -GAP, 0)
end
if extendedCost then
self.link, self.texture, self.extendedCost = link, itemTexture, true
end

View File

@ -11,10 +11,8 @@ local GARRISON_ICONS = {[1001489] = true, [1001490] = true, [1001491] = true}
local function Knowable(link)
local id = ns.ids[link]
if not id then return false end
if C_Heirloom.IsItemHeirloom(id) then return true end
local _, _, _, _, _, class, _, _, _, texture = GetItemInfo(link)
if class == MISC and select(2, C_ToyBox.GetToyInfo(id)) then return true end
if class == RECIPE or GARRISON_ICONS[texture] then return true end
end
@ -33,7 +31,6 @@ local GRADS = {
[2] = DEFAULT_GRAD, -- green
[3] = {0.5,0.5,1,1, 0,0,1,0}, -- blue
[4] = {1,0,1,0.75, 1,0,1,0}, -- purple
[7] = {1,.75,.5,0.75, 1,.75,.5,0}, -- heirloom
}
GRADS = setmetatable(GRADS, {
__index = function(t,i)

View File

@ -4,8 +4,10 @@ local myname, ns = ...
function ns.NewSearchField(parent)
local editbox = ns.NewTextInput(parent)
editbox:SetPoint("BOTTOMLEFT", parent, "TOPLEFT", 55, 9)
editbox:SetPoint("TOPLEFT", parent, "TOPLEFT", 98, 42) -- fixed for LeilaUI
editbox:SetPoint("TOPLEFT", parent, "TOPLEFT", 98, 42) -- fixed for LeilaUI
editbox:SetWidth(56) -- added for LeilaUI
editbox:SetHeight(32) -- added for LeilaUI
editbox.placeholder:SetText("Search...")
editbox:SetScript("OnEnter", function(self)