Added bag sort capability to the inventory frame

This commit is contained in:
Sandor Takacs
2015-01-05 15:39:07 +01:00
parent 237217ede4
commit 1dffea8341
3 changed files with 179 additions and 101 deletions

View File

@ -1,13 +1,18 @@
local MBC = "MyBagsCore-1.0" local MBC = "MyBagsCore-1.0"
local MBC_MINOR = "2014.10.22.5" local MBC_MINOR = "2015.01.05.3"
if not LibStub then error(MBC .. " requires LibStub.") end if not LibStub then
error(MBC .. " requires LibStub.")
end
local MyBagsCore = LibStub:NewLibrary(MBC, MBC_MINOR) local MyBagsCore = LibStub:NewLibrary(MBC, MBC_MINOR)
if not MyBagsCore then return end if not MyBagsCore then
return
end
MyBagsCore.embeds = MyBagsCore.embeds or {} -- table containing objects MyBagsCore is embedded in. MyBagsCore.embeds = MyBagsCore.embeds or {} -- table containing objects MyBagsCore is embedded in.
local AC = LibStub("AceConsole-3.0"); local AC = LibStub("AceConsole-3.0")
assert(AC, MBC .. " requires AceConsole-3.0"); assert(AC, MBC .. " requires AceConsole-3.0")
local MYBAGS_BOTTOMOFFSET = 20 local MYBAGS_BOTTOMOFFSET = 20
local MYBAGS_COLWIDTH = 40 local MYBAGS_COLWIDTH = 40
@ -187,7 +192,7 @@ function MyBagsCore:OnEmbedInitialize(addon)
addon.SetOpt = function(var,val) addon.SetOpt = function(var,val)
local prof = addon.db:GetCurrentProfile() local prof = addon.db:GetCurrentProfile()
addon.db.profiles[prof][var] = val; addon.db.profiles[prof][var] = val
end end
addon.TogOpt = function(var) addon.TogOpt = function(var)
@ -248,16 +253,16 @@ function MyBagsCore:OnEmbedInitialize(addon)
LibStub("AceConfig-3.0"):RegisterOptionsTable(addon.name, addon.options) LibStub("AceConfig-3.0"):RegisterOptionsTable(addon.name, addon.options)
LibStub("AceConfigDialog-3.0"):AddToBlizOptions(addon.name, addon.name, "MyBags") LibStub("AceConfigDialog-3.0"):AddToBlizOptions(addon.name, addon.name, "MyBags")
local charName = strtrim(UnitName("player")); local charName = strtrim(UnitName("player"))
local realmName = strtrim(GetRealmName()); local realmName = strtrim(GetRealmName())
-- self.atBank = false -- self.atBank = false
addon.Player = charName .. L["CHARACTER_DELIMITOR"] .. realmName addon.Player = charName .. L["CHARACTER_DELIMITOR"] .. realmName
end end
-- OnEnable -- OnEnable
function MyBagsCore:OnEmbedEnable(addon) function MyBagsCore:OnEmbedEnable(addon)
addon:RegisterEvents(); addon:RegisterEvents()
addon:HookFunctions(); addon:HookFunctions()
if addon.GetOpt("Scale") then if addon.GetOpt("Scale") then
addon.frame:SetScale(addon.GetOpt("Scale")) addon.frame:SetScale(addon.GetOpt("Scale"))
end end
@ -289,10 +294,10 @@ function MyBagsCore:RegisterEvents(obj)
self = obj self = obj
end end
self:RegisterEvent("BAG_UPDATE"); self:RegisterEvent("BAG_UPDATE")
self:RegisterEvent("BAG_UPDATE_COOLDOWN", "LayoutFrameOnEvent") self:RegisterEvent("BAG_UPDATE_COOLDOWN", "LayoutFrameOnEvent")
-- self:RegisterEvent("UNIT_INVENTORY_CHANGED", "UNIT_INVENTORY_CHANGED"); -- self:RegisterEvent("UNIT_INVENTORY_CHANGED", "UNIT_INVENTORY_CHANGED")
self:RegisterEvent("ITEM_LOCK_CHANGED", "LayoutFrameOnEvent"); self:RegisterEvent("ITEM_LOCK_CHANGED", "LayoutFrameOnEvent")
end end
function MyBagsCore:HookFunctions(obj) function MyBagsCore:HookFunctions(obj)
@ -399,8 +404,8 @@ function MyBagsCore:GetCurrentPlayer()
return self.Player return self.Player
end end
local charName = strtrim(UnitName("player")); local charName = strtrim(UnitName("player"))
local realmName = strtrim(GetRealmName()); local realmName = strtrim(GetRealmName())
return charName .. L["CHARACTER_DELIMITOR"] .. realmName return charName .. L["CHARACTER_DELIMITOR"] .. realmName
end end
@ -429,8 +434,8 @@ function MyBagsCore:Open()
self.frame:Show() self.frame:Show()
end end
local charName = strtrim(UnitName("player")); local charName = strtrim(UnitName("player"))
local realmName = strtrim(GetRealmName()); local realmName = strtrim(GetRealmName())
self.Player = charName .. L["CHARACTER_DELIMITOR"] .. realmName self.Player = charName .. L["CHARACTER_DELIMITOR"] .. realmName
if self.Player then if self.Player then
@ -597,8 +602,8 @@ function MyBagsCore:GetInfo(bag, slot)
end end
function MyBagsCore:GetInfoLive(bag, slot) function MyBagsCore:GetInfoLive(bag, slot)
local charName = strtrim(UnitName("player")); local charName = strtrim(UnitName("player"))
local realmName = strtrim(GetRealmName()); local realmName = strtrim(GetRealmName())
self.Player = charName .. L["CHARACTER_DELIMITOR"] .. realmName self.Player = charName .. L["CHARACTER_DELIMITOR"] .. realmName
if slot ~= nil then if slot ~= nil then
-- it's an item -- it's an item
@ -627,7 +632,7 @@ function MyBagsCore:GetInfoLive(bag, slot)
readable = IsSpecialtyBagFromLink(itemLink) readable = IsSpecialtyBagFromLink(itemLink)
elseif (bag == -1) then elseif (bag == -1) then
texture = "Interface\\Buttons\\Button-Backpack-Up" texture = "Interface\\Buttons\\Button-Backpack-Up"
count = 28; count = 28
elseif (bag == 0) then elseif (bag == 0) then
texture = "Interface\\Buttons\\Button-Backpack-Up" texture = "Interface\\Buttons\\Button-Backpack-Up"
count = 16 count = 16
@ -748,9 +753,9 @@ end
--ITEMBUTTONS-- --ITEMBUTTONS--
function MyBagsCore:ItemButton_OnLoad(widget) function MyBagsCore:ItemButton_OnLoad(widget)
_G[widget:GetName().."NormalTexture"]:SetTexture("Interface\\AddOns\\MyBags\\Skin\\Button"); _G[widget:GetName().."NormalTexture"]:SetTexture("Interface\\AddOns\\MyBags\\Skin\\Button")
ContainerFrameItemButton_OnLoad(widget) ContainerFrameItemButton_OnLoad(widget)
widget.UpdateTooltip = widget.ItemButton_OnEnter; widget.UpdateTooltip = widget.ItemButton_OnEnter
end end
function MyBagsCore:ItemButton_OnLeave(widget) function MyBagsCore:ItemButton_OnLeave(widget)
@ -762,8 +767,8 @@ function MyBagsCore:ItemButton_OnLeave(widget)
CursorUpdate(widget) CursorUpdate(widget)
end end
--[[
function MyBagsCore:ItemButton_OnClick(widget, button) function MyBagsCore:ItemButton_OnClick(widget, button)
--[[
if self.isLive then if self.isLive then
if widget.hasItem then if widget.hasItem then
self.watchLock = 1 self.watchLock = 1
@ -775,17 +780,17 @@ function MyBagsCore:ItemButton_OnClick(widget, button)
ContainerFrameItemButton_OnClick(widget, button) ContainerFrameItemButton_OnClick(widget, button)
end end
end end
end
]] ]]
end
function MyBagsCore:ItemButton_OnModifiedClick(widget, button) function MyBagsCore:ItemButton_OnModifiedClick(widget, button)
if self.isLive then if self.isLive then
-- if self.isBank and widget:GetParent():GetID() == BANK_CONTAINER then -- if self.isBank and widget:GetParent():GetID() == BANK_CONTAINER then
-- BankFrameItemButtonGeneric_OnModifiedClick(widget, button) -- BankFrameItemButtonGeneric_OnModifiedClick(widget, button)
-- StackSplitFrame:SetFrameStrata("TOOLTIP"); -- StackSplitFrame:SetFrameStrata("TOOLTIP")
-- else -- else
-- ContainerFrameItemButton_OnModifiedClick(widget, button) -- ContainerFrameItemButton_OnModifiedClick(widget, button)
-- StackSplitFrame:SetFrameStrata("TOOLTIP"); -- StackSplitFrame:SetFrameStrata("TOOLTIP")
-- end -- end
else else
if (button == "LeftButton") then if (button == "LeftButton") then
@ -805,7 +810,7 @@ function MyBagsCore:ItemButton_OnModifiedClick(widget, button)
ChatEdit_InsertLink(hyperLink) ChatEdit_InsertLink(hyperLink)
end end
StackSplitFrame:Hide(); StackSplitFrame:Hide()
end end
end end
end end
@ -865,16 +870,27 @@ end
--BAGBUTTONS-- --BAGBUTTONS--
function MyBagsCore:BagButton_OnEnter(widget) function MyBagsCore:BagButton_OnEnter(widget)
local bagFrame = widget:GetParent() local bagFrame = widget:GetParent()
local bagID = bagFrame:GetID()
local setTooltip = true local setTooltip = true
self:TooltipSetOwner(widget) self:TooltipSetOwner(widget)
if self.isLive then if self.isLive then
local invSlot = self:BagIDToInvSlotID(bagFrame:GetID()) if (bagID == 0) then
GameTooltip:SetText(BACKPACK_TOOLTIP, 1.0, 1.0, 1.0)
else
--
end
local invSlot = self:BagIDToInvSlotID(bagID)
if not invSlot or (not GameTooltip:SetInventoryItem("player", invSlot)) then if not invSlot or (not GameTooltip:SetInventoryItem("player", invSlot)) then
setTooltip = false setTooltip = false
end end
if (bagID == 0 or not IsInventoryItemProfessionBag("player", ContainerIDToInventoryID(bagID))) then
GameTooltip:AddLine(CLICK_BAG_SETTINGS)
end
else else
local ID = select(3, self:GetInfo(widget:GetParent():GetID())) local ID = select(3, self:GetInfo(bagID))
if bagFrame:GetID() == 0 then if bagID == 0 then
GameTooltip:SetText(BACKPACK_TOOLTIP, 1.0,1.0,1.0) GameTooltip:SetText(BACKPACK_TOOLTIP, 1.0,1.0,1.0)
elseif ID then elseif ID then
local hyperlink = self:GetHyperlink(ID) local hyperlink = self:GetHyperlink(ID)
@ -887,9 +903,8 @@ function MyBagsCore:BagButton_OnEnter(widget)
end end
if not setTooltip then if not setTooltip then
local keyBinding
if self.isBank then if self.isBank then
if self.isLive and not self:IsBagSlotUsable(bagFrame:GetID()) then if self.isLive and not self:IsBagSlotUsable(bagID) then
GameTooltip:SetText(BANK_BAG_PURCHASE) GameTooltip:SetText(BANK_BAG_PURCHASE)
if MyBank.atBank then if MyBank.atBank then
local cost = GetBankSlotCost() local cost = GetBankSlotCost()
@ -902,18 +917,15 @@ function MyBagsCore:BagButton_OnEnter(widget)
end end
GameTooltip:Show() GameTooltip:Show()
end end
keyBinding = GetBindingKey("TOGGLEBAG" .. (4 - widget:GetID()))
else else
GameTooltip:SetText(BANK_BAG) GameTooltip:SetText(BANK_BAG)
end end
else else
if bagFrame:GetID() == 0 then if bagID ~= 0 then
-- SetScript("OnEnter", MainMenuBarBackpackButton:GetScript("OnEnter"))
GameTooltip:SetText(BACKPACK_TOOLTIP, 1.0,1.0,1.0)
keyBinding = GetBindingKey("TOGGLEBACKPACK")
else
GameTooltip:SetText(EQUIP_CONTAINER) GameTooltip:SetText(EQUIP_CONTAINER)
else
-- SetScript("OnEnter", MainMenuBarBackpackButton:GetScript("OnEnter"))
-- GameTooltip:SetText(BACKPACK_TOOLTIP, 1.0,1.0,1.0)
end end
end end
end end
@ -928,10 +940,12 @@ function MyBagsCore:BagButton_OnEnter(widget)
end end
end end
end end
GameTooltip:Show()
end end
function MyBagsCore:BagButton_OnLeave(widget) function MyBagsCore:BagButton_OnLeave(widget)
SetMoneyFrameColor("GameTooltipMoneyFrame", 1.0, 1.0, 1.0); SetMoneyFrameColor("GameTooltipMoneyFrame", 1.0, 1.0, 1.0)
GameTooltip:Hide() GameTooltip:Hide()
local i local i
for i = 1, self.GetOpt("MAXBAGSLOTS") do for i = 1, self.GetOpt("MAXBAGSLOTS") do
@ -1023,6 +1037,7 @@ function MyBagsCore:LayoutOptions()
local cash = _G[self.frameName .. "MoneyFrame"] local cash = _G[self.frameName .. "MoneyFrame"]
local slots = _G[self.frameName .. "Slots"] local slots = _G[self.frameName .. "Slots"]
local buttons = _G[self.frameName .. "Buttons"] local buttons = _G[self.frameName .. "Buttons"]
local sortButton = _G[self.frameName .. "SortButton"]
local search = _G[self.frameName .. "SearchBox"] local search = _G[self.frameName .. "SearchBox"]
if search then if search then
@ -1054,31 +1069,31 @@ function MyBagsCore:LayoutOptions()
cash:Hide() cash:Hide()
end end
if self.GetOpt("Token") and ManageBackpackTokenFrame then
local token = _G[self.frameName .. "TokenFrame"] local token = _G[self.frameName .. "TokenFrame"]
if self.GetOpt("Token") and ManageBackpackTokenFrame then
if (BackpackTokenFrame_IsShown()) then if (BackpackTokenFrame_IsShown()) then
token:SetParent(self.frameName) token:SetParent(self.frameName)
token:SetPoint("RIGHT", cash, "LEFT", -10, 0) token:SetPoint("RIGHT", cash, "LEFT", -10, 0)
local i local i
for i=1, MAX_WATCHED_TOKENS do for i=1, MAX_WATCHED_TOKENS do
local name, count, icon, currencyID = GetBackpackCurrencyInfo(i); local name, count, icon, currencyID = GetBackpackCurrencyInfo(i)
-- Update watched tokens -- Update watched tokens
local watchButton = _G[self.frameName .. "TokenFrameToken"..i]; local watchButton = _G[self.frameName .. "TokenFrameToken"..i]
if ( name ) then if ( name ) then
watchButton.icon:SetTexture(icon); watchButton.icon:SetTexture(icon)
if ( count <= 99999 ) then if ( count <= 99999 ) then
watchButton.count:SetText(count); watchButton.count:SetText(count)
else else
watchButton.count:SetText("*"); watchButton.count:SetText("*")
end end
watchButton.currencyID = currencyID; watchButton.currencyID = currencyID
watchButton:Show(); watchButton:Show()
BackpackTokenFrame.shouldShow = 1; BackpackTokenFrame.shouldShow = 1
BackpackTokenFrame.numWatchedTokens = i; BackpackTokenFrame.numWatchedTokens = i
else else
watchButton:Hide(); watchButton:Hide()
if ( i == 1 ) then if ( i == 1 ) then
BackpackTokenFrame.shouldShow = nil; BackpackTokenFrame.shouldShow = nil
end end
end end
end end
@ -1087,6 +1102,7 @@ function MyBagsCore:LayoutOptions()
token:Hide() token:Hide()
end end
else else
token:Hide()
end end
if self.GetOpt("Buttons") then if self.GetOpt("Buttons") then
@ -1170,6 +1186,28 @@ function MyBagsCore:LayoutOptions()
else else
self.aioiOrder = false self.aioiOrder = false
end end
if self.isLive and self.GetOpt("BagSort") then
-- sortButton:ClearAllPoints()
sortButton:SetPoint("TOPRIGHT", search, "TOPLEFT", -20, 1)
sortButton:SetScript("OnEnter", nil)
sortButton:SetScript("OnLeave", nil)
sortButton:SetScript("OnClick", function()
self:SortBags();
end)
--[[
if search:IsShown() then
sortButton:SetPoint("TOPRIGHT", search, "TOPLEFT", -8, 0)
elseif playerSelectFrame:IsShown() then
sortButton:SetPoint("TOPRIGHT", playerSelectFrame, "TOPLEFT", -8, 0)
else
sortButton:SetPoint("TOPRIGHT", self.frameName, "TOPRIGHT", -8, -32)
end
]]
sortButton:Show()
else
sortButton:Hide()
end
end end
function MyBagsCore:UpdateTitle() function MyBagsCore:UpdateTitle()
@ -1351,13 +1389,12 @@ function MyBagsCore:LayoutBagFrame(bagFrame)
itemButton = _G[itemBase .. slot] itemButton = _G[itemBase .. slot]
else else
itemButton = CreateFrame("Button", itemBase .. slot, bagFrame, "MyBagsItemButtonTemplate") itemButton = CreateFrame("Button", itemBase .. slot, bagFrame, "MyBagsItemButtonTemplate")
-- print("Button " .. itemBase .. slot .. " created");
end end
-- local itemButton = () or CreateFrame("Button", itemBase .. slot, bagFrame, "MyBagsItemButtonTemplate")
if (self:IsLive()) then if (self:IsLive()) then
itemButton:SetID(slot); itemButton:SetID(slot)
else else
itemButton:SetID(slot + 1000); itemButton:SetID(slot + 1000)
end end
if self.curCol >= self.GetOpt("Columns") then if self.curCol >= self.GetOpt("Columns") then
@ -1366,37 +1403,37 @@ function MyBagsCore:LayoutBagFrame(bagFrame)
end end
local newItemTexture = _G[itemBase .. slot].NewItemTexture local newItemTexture = _G[itemBase .. slot].NewItemTexture
local flash = _G[itemBase .. slot].flashAnim; local flash = _G[itemBase .. slot].flashAnim
local newItemAnim = _G[itemBase .. slot].newitemglowAnim; local newItemAnim = _G[itemBase .. slot].newitemglowAnim
local isNewItem = C_NewItems.IsNewItem(bagFrame:GetID(), itemButton:GetID()) local isNewItem = C_NewItems.IsNewItem(bagFrame:GetID(), itemButton:GetID())
local isBattlePayItem = IsBattlePayItem(bagFrame:GetID(), itemButton:GetID()) local isBattlePayItem = IsBattlePayItem(bagFrame:GetID(), itemButton:GetID())
local battlepayItemTexture = _G[itemBase .. slot].BattlepayItemTexture; local battlepayItemTexture = _G[itemBase .. slot].BattlepayItemTexture
battlepayItemTexture:Hide(); battlepayItemTexture:Hide()
if (isNewItem) then if (isNewItem) then
if (isBattlePayItem) then if (isBattlePayItem) then
newItemTexture:Hide(); newItemTexture:Hide()
battlepayItemTexture:Show(); battlepayItemTexture:Show()
else else
if (quality and NEW_ITEM_ATLAS_BY_QUALITY[quality]) then if (quality and NEW_ITEM_ATLAS_BY_QUALITY[quality]) then
newItemTexture:SetAtlas(NEW_ITEM_ATLAS_BY_QUALITY[quality]); newItemTexture:SetAtlas(NEW_ITEM_ATLAS_BY_QUALITY[quality])
else else
newItemTexture:SetAtlas("bags-glow-white"); newItemTexture:SetAtlas("bags-glow-white")
end end
battlepayItemTexture:Hide(); battlepayItemTexture:Hide()
newItemTexture:Show(); newItemTexture:Show()
end end
if (not flash:IsPlaying() and not newItemAnim:IsPlaying()) then if (not flash:IsPlaying() and not newItemAnim:IsPlaying()) then
flash:Play(); flash:Play()
newItemAnim:Play(); newItemAnim:Play()
end end
else else
battlepayItemTexture:Hide(); battlepayItemTexture:Hide()
newItemTexture:Hide(); newItemTexture:Hide()
if (flash:IsPlaying() or newItemAnim:IsPlaying()) then if (flash:IsPlaying() or newItemAnim:IsPlaying()) then
flash:Stop(); flash:Stop()
newItemAnim:Stop(); newItemAnim:Stop()
end end
end end
@ -1537,6 +1574,12 @@ function MyBagsCore:LayoutFrameOnEvent(event, unit)
end end
end end
function MyBagsCore:SortBags()
PlaySound("UI_BagSorting_01")
SortBags()
self:LayoutFrame()
end
function MyBagsCore:LockButton_OnClick() function MyBagsCore:LockButton_OnClick()
self.TogOpt("Lock") self.TogOpt("Lock")
self:SetLockTexture() self:SetLockTexture()
@ -1697,6 +1740,11 @@ function MyBagsCore:SetStrata(strata)
end end
end end
function MyBagsCore:SetBagSort()
self.TogMsg("BagSort", "Bag sorting")
self:LayoutFrame()
end
function MyBagsCore:ResetSettings() function MyBagsCore:ResetSettings()
self.db:ResetProfile() self.db:ResetProfile()
local prof = self.db:GetCurrentProfile() local prof = self.db:GetCurrentProfile()
@ -1801,13 +1849,13 @@ function MyBagsCore:BagSearch_OnTextChanged()
local search = _G[self.frameName .. "SearchBox"] local search = _G[self.frameName .. "SearchBox"]
local text = search:GetText() local text = search:GetText()
if (text == SEARCH) then if (text == SEARCH) then
text = ""; text = ""
end end
if (text ~= "") then if (text ~= "") then
search.clearButton:Show(); search.clearButton:Show()
else else
search.clearButton:Hide(); search.clearButton:Hide()
end end
self:LayoutFrame() self:LayoutFrame()
@ -1820,16 +1868,16 @@ function MyBagsCore:BagSearch_OnEditFocusGained()
search.searchIcon:SetVertexColor(1.0, 1.0, 1.0) search.searchIcon:SetVertexColor(1.0, 1.0, 1.0)
local text = search:GetText() local text = search:GetText()
if (text == SEARCH) then if (text == SEARCH) then
text = ""; text = ""
end end
search.clearButton:Show(); search.clearButton:Show()
search:SetText(text) search:SetText(text)
self:LayoutFrame() self:LayoutFrame()
end end
function MyBagsCore:GetCoreVersion() function MyBagsCore:GetCoreVersion()
return MBC .. " version " .. MBC_MINOR; return MBC .. " version " .. MBC_MINOR
end end
local mixins = { local mixins = {
@ -1879,6 +1927,7 @@ local mixins = {
"LayoutBagFrame", "LayoutBagFrame",
"LayoutFrame", "LayoutFrame",
"LayoutFrameOnEvent", "LayoutFrameOnEvent",
"SortBags",
"LockButton_OnClick", "LockButton_OnClick",
"SetColumns", "SetColumns",
"SetReplace", "SetReplace",
@ -1900,6 +1949,7 @@ local mixins = {
"SetCount", "SetCount",
"SetScale", "SetScale",
"SetStrata", "SetStrata",
"SetBagSort",
"ResetSettings", "ResetSettings",
"ResetAnchor", "ResetAnchor",
"SetAnchor", "SetAnchor",

View File

@ -366,6 +366,22 @@
<Frame name="$parentBag4" inherits="MyBagsContainerTemplate" id="4"/> <Frame name="$parentBag4" inherits="MyBagsContainerTemplate" id="4"/>
<Frame name="$parentButtons" inherits="MyBagsButtonBarTemplate"/> <Frame name="$parentButtons" inherits="MyBagsButtonBarTemplate"/>
<Frame name="$parentCharSelect" inherits="MyBagsCharSelectTemplate"/> <Frame name="$parentCharSelect" inherits="MyBagsCharSelectTemplate"/>
<Button name="$parentSortButton">
<Size x="28" y="26"/>
<NormalTexture atlas="bags-button-autosort-up"/>
<PushedTexture atlas="bags-button-autosort-down"/>
<HighlightTexture file="Interface\Buttons\ButtonHilight-Square" alphaMode="ADD">
<Size x="24" y="23"/>
<Anchors>
<Anchor point="CENTER" x="0" y="0"/>
</Anchors>
</HighlightTexture>
<Scripts>
<OnEnter/>
<OnLeave/>
<OnClick/>
</Scripts>
</Button>
<Frame name="$parentTokenFrame"> <Frame name="$parentTokenFrame">
<Size> <Size>
<AbsDimension x="183" y="32"/> <AbsDimension x="183" y="32"/>

View File

@ -2,6 +2,7 @@ local MYINVENTORY_DEFAULT_OPTIONS = {
["Columns"] = 12, ["Columns"] = 12,
["Replace"] = true, ["Replace"] = true,
["Bag"] = "bar", ["Bag"] = "bar",
["BagSort"] = true,
["Graphics"] = "art", ["Graphics"] = "art",
["Count"] = "free", ["Count"] = "free",
["HlItems"] = true, ["HlItems"] = true,
@ -137,6 +138,17 @@ function MyInventory:OnInitialize()
MyInventory:SetBagDisplay(val) MyInventory:SetBagDisplay(val)
end end
}, },
bagsort = {
type = "toggle",
name = "BagSort",
desc = "Toggle bag sort button",
get = function(info)
return MyInventory.IsSet("BagSort")
end,
set = function(info, val)
MyInventory:SetBagSort()
end,
},
back = { back = {
type = "select", type = "select",
name = "Background", name = "Background",