18 Commits

Author SHA1 Message Date
152d61d84f Core lib version update to trigger packager 2015-08-28 12:36:48 +02:00
d21ff3c73a Core lib version update 2015-08-28 12:23:56 +02:00
59d3e610c3 TOC update 2015-08-28 12:23:37 +02:00
b5dc2961b0 Remove unused localization files 2015-01-06 22:25:23 +01:00
238145bef1 Use the localization from the core library 2015-01-06 22:24:49 +01:00
6e5fa165f2 Use the localization from the core library 2015-01-06 22:24:30 +01:00
c0db29ffe8 Use the localization from the core library 2015-01-06 22:24:08 +01:00
5fc53d2191 Use localized title string 2015-01-06 22:23:08 +01:00
b03e7b4df2 Add some new locale string 2015-01-06 22:22:33 +01:00
31f513db74 Move bindings to Addons category 2015-01-06 22:20:51 +01:00
25765b5f3c - Change event registration methods
- Add MyBank sorting
- Fix some tainting issue
2015-01-06 19:41:22 +01:00
3e06a3a7ad Change toc number 2015-01-05 15:55:37 +01:00
1dffea8341 Added bag sort capability to the inventory frame 2015-01-05 15:39:07 +01:00
237217ede4 Add some debug variable 2014-10-22 17:19:01 +02:00
9c84784542 line endings again 2014-10-21 18:12:30 +02:00
5775870bcd line endings 2014-10-21 18:11:43 +02:00
00683de69b TOC update 2014-10-21 18:10:14 +02:00
2b8a6af9e2 Core fixes for 6.0.2 2014-10-21 18:07:13 +02:00
16 changed files with 284 additions and 264 deletions

View File

@ -1,11 +1,11 @@
<Bindings>
<Binding name="MYINVENTORY" header="MYBAGSHEADER">
<Binding name="MYINVENTORY" header="MYBAGSHEADER" category="ADDONS">
if MyInventory then MyInventory:Toggle() end
</Binding>
<Binding name="MYBANK">
<Binding name="MYBANK" header="MYBAGSHEADER" category="ADDONS">
if MyBank then MyBank:Toggle() end
</Binding>
<Binding name="MYEQUIPMENT">
<Binding name="MYEQUIPMENT" header="MYBAGSHEADER" category="ADDONS">
if MyEquipment then MyEquipment:Toggle() end
</Binding>
</Bindings>

View File

@ -1,18 +1,21 @@
local L = LibStub("AceLocale-3.0"):NewLocale("MyBags", "enUS", true)
if not L then return end
if not L then
return
end
-- Global locales
L["ACE_TEXT_OF"] = "of";
L["CHARACTER_DELIMITOR"] = " of ";
L["SplitString must be passed a string as the first argument"] = "SplitString must be passed a string as the first argument";
--KEYBINDINGS
-- KEYBINDINGS
L["BINDING_HEADER_MYBAGSHEADER"] = "My Bags"
L["BINDING_NAME_MYINVENTORY"] = "Toggle MyInventory"
L["BINDING_NAME_MYBANK"] = "Toggle MyBank"
L["BINDING_NAME_MYEQUIPMENT"] = "Toggle MyEquipment"
-- Bag types
L["ACEG_TEXT_AMMO"] = "Ammo";
L["ACEG_TEXT_QUIVER"] = "Quiver";
L["ACEG_TEXT_SOUL"] = "Soul Bag";
@ -21,6 +24,7 @@ L["ACEG_TEXT_ENGINEER"] = "Engineering Bag";
L["ACEG_TEXT_GEM"] = "Gem Bag";
L["ACEG_TEXT_HERB"] = "Herb Bag";
L["ACEG_TEXT_MINING"] = "Mining Bag";
L["ACEG_TEXT_NOW_SET_TO"] = "is now set to";
L["ACEG_TEXT_DEFAULT"] = "default";
L["ACEG_DISPLAY_OPTION"] = "[|cfff5f530%s|r]";
@ -32,6 +36,12 @@ L["MYBAGS_TITLE0"] = ""
L["MYBAGS_TITLE1"] = "%s's "
L["MYBAGS_TITLE2"] = "%s of %s's "
-- MYBANK_NAME = "MyBank"
-- MYBANK_DESCRIPTION = "All in one bank mod"
L["MYBANKFRAME_TITLE"] = "Bank"
L["MYINVENTORYFRAME_TITLE"] = "Inventory"
L["MYEQUIPMENTFRAME_TITLE"] = "Equipment"
L["MYBAGS_SLOTS_FREE"] = "%d/%d Slots Free";
L["MYBAGS_SLOTS_USED"] = "%d/%d Slots Used";

View File

@ -1,4 +1,4 @@
## Interface: 50400
## Interface: 60200
## Author: Ramble (modified by Isharra) (updated by thegabbert) (converted to Ace3 by Takika)
## Title: MyBags |cff007FFF -Ace3-|r
## Notes: Complete Replacement for Inventory and Bank Bags.

View File

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Ui xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.blizzard.com/wow/ui/" xsi:schemaLocation="http://www.blizzard.com/wow/ui/FrameXML\UI.xsd">
<Include file="enUS.lua"/>
</Ui>

View File

@ -1,36 +0,0 @@
local L = LibStub("AceLocale-3.0"):NewLocale("MyBagsCore", "enUS", true)
if not L then
return
end
L["ACE_TEXT_OF"] = "of";
L["CHARACTER_DELIMITOR"] = " of ";
L["ACEG_TEXT_AMMO"] = "Ammo";
L["ACEG_TEXT_QUIVER"] = "Quiver";
L["ACEG_TEXT_SOUL"] = "Soul Bag";
L["ACEG_TEXT_ENCHANT"] = "Enchanting Bag";
L["ACEG_TEXT_ENGINEER"] = "Engineering Bag";
L["ACEG_TEXT_GEM"] = "Gem Bag";
L["ACEG_TEXT_HERB"] = "Herb Bag";
L["ACEG_TEXT_MINING"] = "Mining Bag";
L["ACEG_TEXT_NOW_SET_TO"] = "is now set to";
L["ACEG_TEXT_DEFAULT"] = "default";
L["ACEG_DISPLAY_OPTION"] = "[|cfff5f530%s|r]";
L["ACE_CMD_REPORT_NO_VAL"] = "|cffc7c7c7no value|r"
L["ACE_CMD_RESULT"] = "|cffffff78%s:|r %s"
--MyInventory Title
L["MYBAGS_TITLE0"] = ""
L["MYBAGS_TITLE1"] = "%s's "
L["MYBAGS_TITLE2"] = "%s of %s's "
L["MYBAGS_SLOTS_FREE"] = "%d/%d Slots Free";
L["MYBAGS_SLOTS_USED"] = "%d/%d Slots Used";
-- SLASHCOMMANDS
--KEYBINDINGS
L["BINDING_HEADER_MYBAGSHEADER"] = "My Bags"
L["BINDING_NAME_MYINVENTORY"] = "My Inventory Toggle"
L["BINDING_NAME_MYBANK"] = "My Bank Toggle"
L["BINDING_NAME_MYEQUIPMENT"] = "My Equipment Toggle"

View File

@ -1,20 +1,23 @@
local MBC = "MyBagsCore-1.0"
local MBC_MINOR = "2014.02.11.3"
if not LibStub then error(MBC .. " requires LibStub.") end
local MBC_MINOR = "2015.08.28.2"
if not LibStub then
error(MBC .. " requires LibStub.")
end
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.
local AC = LibStub("AceConsole-3.0");
assert(AC, MBC .. " requires AceConsole-3.0");
local AC = LibStub("AceConsole-3.0")
assert(AC, MBC .. " requires AceConsole-3.0")
local MYBAGS_BOTTOMOFFSET = 20
local MYBAGS_COLWIDTH = 40
local MYBAGS_ROWHEIGHT = 40
local MYBAGS_MAXBAGSLOTS = 28
local MIN_SCALE_VAL = "0.2"
local MAX_SCALE_VAL = "2.0"
@ -27,7 +30,7 @@ local MYBAGS_HERBCOLOR = { 0.0, 0.6, 0.0 }
local MYBAGS_GEMCOLOR = { 0.0, 0.6, 0.6 }
local MYBAGS_MININGCOLOR = { 0.0, 0.0, 0.6 }
local ACEG_MAP_ONOFF = {[0]="|cffff5050Off|r",[1]="|cff00ff00On|r"}
local ACEG_MAP_ONOFF = {[0]="|cffff5050Off|r",[1]="|cff00ff00On|r"}
local L = LibStub("AceLocale-3.0"):GetLocale("MyBags")
@ -36,37 +39,38 @@ local strfind, strlen, strsub, strlower, strgmatch, strupper = string.find, stri
local strtrim = strtrim
local tinsert, tremove = table.insert, table.remove
local tostring, tonumber, select = tostring, tonumber, select
local CreateFrame = _G.CreateFrame
local mb_options = {
type = "group",
args = {
},
type = "group",
args = {
},
}
local function tostr(str)
return tostring(str or "")
return tostring(str or "")
end
local function tonum(val)
return tonumber(val or 0)
return tonumber(val or 0)
end
local function ColorConvertHexToDigit(h)
if (strlen(h) ~= 6) then
return 0, 0, 0
end
if (strlen(h) ~= 6) then
return 0, 0, 0
end
local r = {
a = 10,
b = 11,
c = 12,
d = 13,
e = 14,
f = 15
}
return ((tonumber(strsub(h,1,1)) or r[strsub(h,1,1)] or 0) * 16 + (tonumber(strsub(h,2,2)) or r[strsub(h,2,2)] or 0))/255,
((tonumber(strsub(h,3,3)) or r[strsub(h,3,3)] or 0) * 16 + (tonumber(strsub(h,4,4)) or r[strsub(h,4,4)] or 0))/255,
((tonumber(strsub(h,5,5)) or r[strsub(h,5,5)] or 0) * 16 + (tonumber(strsub(h,6,6)) or r[strsub(h,6,6)] or 0))/255
local r = {
a = 10,
b = 11,
c = 12,
d = 13,
e = 14,
f = 15
}
return ((tonumber(strsub(h,1,1)) or r[strsub(h,1,1)] or 0) * 16 + (tonumber(strsub(h,2,2)) or r[strsub(h,2,2)] or 0))/255,
((tonumber(strsub(h,3,3)) or r[strsub(h,3,3)] or 0) * 16 + (tonumber(strsub(h,4,4)) or r[strsub(h,4,4)] or 0))/255,
((tonumber(strsub(h,5,5)) or r[strsub(h,5,5)] or 0) * 16 + (tonumber(strsub(h,6,6)) or r[strsub(h,6,6)] or 0))/255
end
local function GetItemInfoFromLink(l)
@ -186,7 +190,7 @@ function MyBagsCore:OnEmbedInitialize(addon)
addon.SetOpt = function(var,val)
local prof = addon.db:GetCurrentProfile()
addon.db.profiles[prof][var] = val;
addon.db.profiles[prof][var] = val
end
addon.TogOpt = function(var)
@ -247,16 +251,14 @@ function MyBagsCore:OnEmbedInitialize(addon)
LibStub("AceConfig-3.0"):RegisterOptionsTable(addon.name, addon.options)
LibStub("AceConfigDialog-3.0"):AddToBlizOptions(addon.name, addon.name, "MyBags")
local charName = strtrim(UnitName("player"));
local realmName = strtrim(GetRealmName());
-- self.atBank = false
local charName = strtrim(UnitName("player"))
local realmName = strtrim(GetRealmName())
addon.Player = charName .. L["CHARACTER_DELIMITOR"] .. realmName
end
-- OnEnable
function MyBagsCore:OnEmbedEnable(addon)
addon:RegisterEvents();
addon:HookFunctions();
addon:HookFunctions()
if addon.GetOpt("Scale") then
addon.frame:SetScale(addon.GetOpt("Scale"))
end
@ -288,10 +290,18 @@ function MyBagsCore:RegisterEvents(obj)
self = obj
end
self:RegisterEvent("BAG_UPDATE");
self:RegisterEvent("BAG_UPDATE")
self:RegisterEvent("BAG_UPDATE_COOLDOWN", "LayoutFrameOnEvent")
-- self:RegisterEvent("UNIT_INVENTORY_CHANGED", "UNIT_INVENTORY_CHANGED");
self:RegisterEvent("ITEM_LOCK_CHANGED", "LayoutFrameOnEvent");
-- self:RegisterEvent("UNIT_INVENTORY_CHANGED", "UNIT_INVENTORY_CHANGED")
self:RegisterEvent("ITEM_LOCK_CHANGED", "LayoutFrameOnEvent")
end
function MyBagsCore:UnregisterEvents(obj)
if (obj) then
self = obj
end
self:UnregisterAllEvents()
end
function MyBagsCore:HookFunctions(obj)
@ -398,8 +408,8 @@ function MyBagsCore:GetCurrentPlayer()
return self.Player
end
local charName = strtrim(UnitName("player"));
local realmName = strtrim(GetRealmName());
local charName = strtrim(UnitName("player"))
local realmName = strtrim(GetRealmName())
return charName .. L["CHARACTER_DELIMITOR"] .. realmName
end
@ -424,12 +434,13 @@ function MyBagsCore:TooltipSetOwner(owner, anchor)
end
function MyBagsCore:Open()
self:RegisterEvents()
if not self.frame:IsVisible() then
self.frame:Show()
end
local charName = strtrim(UnitName("player"));
local realmName = strtrim(GetRealmName());
local charName = strtrim(UnitName("player"))
local realmName = strtrim(GetRealmName())
self.Player = charName .. L["CHARACTER_DELIMITOR"] .. realmName
if self.Player then
@ -446,6 +457,8 @@ function MyBagsCore:Close()
if self.frame:IsVisible() then
self.frame:Hide()
end
self:UnregisterEvents()
end
function MyBagsCore:Toggle()
@ -484,7 +497,7 @@ function MyBagsCore:BagIDToInvSlotID(bag, isBank)
end
if isBank then
return BankButtonIDToInvSlotID(bag, 1)
return BankButtonIDToInvSlotID(bag - 4, 1)
end
return ContainerIDToInventoryID(bag)
@ -596,8 +609,8 @@ function MyBagsCore:GetInfo(bag, slot)
end
function MyBagsCore:GetInfoLive(bag, slot)
local charName = strtrim(UnitName("player"));
local realmName = strtrim(GetRealmName());
local charName = strtrim(UnitName("player"))
local realmName = strtrim(GetRealmName())
self.Player = charName .. L["CHARACTER_DELIMITOR"] .. realmName
if slot ~= nil then
-- it's an item
@ -626,7 +639,7 @@ function MyBagsCore:GetInfoLive(bag, slot)
readable = IsSpecialtyBagFromLink(itemLink)
elseif (bag == -1) then
texture = "Interface\\Buttons\\Button-Backpack-Up"
count = 28;
count = 28
elseif (bag == 0) then
texture = "Interface\\Buttons\\Button-Backpack-Up"
count = 16
@ -747,9 +760,9 @@ end
--ITEMBUTTONS--
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)
widget.UpdateTooltip = widget.ItemButton_OnEnter;
widget.UpdateTooltip = widget.ItemButton_OnEnter
end
function MyBagsCore:ItemButton_OnLeave(widget)
@ -779,10 +792,10 @@ function MyBagsCore:ItemButton_OnModifiedClick(widget, button)
if self.isLive then
-- if self.isBank and widget:GetParent():GetID() == BANK_CONTAINER then
-- BankFrameItemButtonGeneric_OnModifiedClick(widget, button)
-- StackSplitFrame:SetFrameStrata("TOOLTIP");
-- StackSplitFrame:SetFrameStrata("TOOLTIP")
-- else
-- ContainerFrameItemButton_OnModifiedClick(widget, button)
-- StackSplitFrame:SetFrameStrata("TOOLTIP");
-- StackSplitFrame:SetFrameStrata("TOOLTIP")
-- end
else
if (button == "LeftButton") then
@ -802,7 +815,7 @@ function MyBagsCore:ItemButton_OnModifiedClick(widget, button)
ChatEdit_InsertLink(hyperLink)
end
StackSplitFrame:Hide();
StackSplitFrame:Hide()
end
end
end
@ -862,16 +875,27 @@ end
--BAGBUTTONS--
function MyBagsCore:BagButton_OnEnter(widget)
local bagFrame = widget:GetParent()
local bagID = bagFrame:GetID()
local setTooltip = true
self:TooltipSetOwner(widget)
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
setTooltip = false
end
if (bagID == 0 or not IsInventoryItemProfessionBag("player", ContainerIDToInventoryID(bagID))) then
GameTooltip:AddLine(CLICK_BAG_SETTINGS)
end
else
local ID = select(3, self:GetInfo(widget:GetParent():GetID()))
if bagFrame:GetID() == 0 then
local ID = select(3, self:GetInfo(bagID))
if bagID == 0 then
GameTooltip:SetText(BACKPACK_TOOLTIP, 1.0,1.0,1.0)
elseif ID then
local hyperlink = self:GetHyperlink(ID)
@ -884,9 +908,8 @@ function MyBagsCore:BagButton_OnEnter(widget)
end
if not setTooltip then
local keyBinding
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)
if MyBank.atBank then
local cost = GetBankSlotCost()
@ -899,18 +922,15 @@ function MyBagsCore:BagButton_OnEnter(widget)
end
GameTooltip:Show()
end
keyBinding = GetBindingKey("TOGGLEBAG" .. (4 - widget:GetID()))
else
GameTooltip:SetText(BANK_BAG)
end
else
if bagFrame:GetID() == 0 then
-- SetScript("OnEnter", MainMenuBarBackpackButton:GetScript("OnEnter"))
GameTooltip:SetText(BACKPACK_TOOLTIP, 1.0,1.0,1.0)
keyBinding = GetBindingKey("TOGGLEBACKPACK")
else
if bagID ~= 0 then
GameTooltip:SetText(EQUIP_CONTAINER)
else
-- SetScript("OnEnter", MainMenuBarBackpackButton:GetScript("OnEnter"))
-- GameTooltip:SetText(BACKPACK_TOOLTIP, 1.0,1.0,1.0)
end
end
end
@ -925,10 +945,12 @@ function MyBagsCore:BagButton_OnEnter(widget)
end
end
end
GameTooltip:Show()
end
function MyBagsCore:BagButton_OnLeave(widget)
SetMoneyFrameColor("GameTooltipMoneyFrame", 1.0, 1.0, 1.0);
SetMoneyFrameColor("GameTooltipMoneyFrame", 1.0, 1.0, 1.0)
GameTooltip:Hide()
local i
for i = 1, self.GetOpt("MAXBAGSLOTS") do
@ -1020,6 +1042,7 @@ function MyBagsCore:LayoutOptions()
local cash = _G[self.frameName .. "MoneyFrame"]
local slots = _G[self.frameName .. "Slots"]
local buttons = _G[self.frameName .. "Buttons"]
local sortButton = _G[self.frameName .. "SortButton"]
local search = _G[self.frameName .. "SearchBox"]
if search then
@ -1051,31 +1074,31 @@ function MyBagsCore:LayoutOptions()
cash:Hide()
end
local token = _G[self.frameName .. "TokenFrame"]
if self.GetOpt("Token") and ManageBackpackTokenFrame then
local token = _G[self.frameName .. "TokenFrame"]
if (BackpackTokenFrame_IsShown()) then
token:SetParent(self.frameName)
token:SetPoint("RIGHT", cash, "LEFT", -10, 0)
local i
for i=1, MAX_WATCHED_TOKENS do
local name, count, icon, currencyID = GetBackpackCurrencyInfo(i);
local name, count, icon, currencyID = GetBackpackCurrencyInfo(i)
-- Update watched tokens
local watchButton = _G[self.frameName .. "TokenFrameToken"..i];
local watchButton = _G[self.frameName .. "TokenFrameToken"..i]
if ( name ) then
watchButton.icon:SetTexture(icon);
watchButton.icon:SetTexture(icon)
if ( count <= 99999 ) then
watchButton.count:SetText(count);
watchButton.count:SetText(count)
else
watchButton.count:SetText("*");
watchButton.count:SetText("*")
end
watchButton.currencyID = currencyID;
watchButton:Show();
BackpackTokenFrame.shouldShow = 1;
BackpackTokenFrame.numWatchedTokens = i;
watchButton.currencyID = currencyID
watchButton:Show()
BackpackTokenFrame.shouldShow = 1
BackpackTokenFrame.numWatchedTokens = i
else
watchButton:Hide();
watchButton:Hide()
if ( i == 1 ) then
BackpackTokenFrame.shouldShow = nil;
BackpackTokenFrame.shouldShow = nil
end
end
end
@ -1084,6 +1107,7 @@ function MyBagsCore:LayoutOptions()
token:Hide()
end
else
token:Hide()
end
if self.GetOpt("Buttons") then
@ -1167,6 +1191,28 @@ function MyBagsCore:LayoutOptions()
else
self.aioiOrder = false
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
function MyBagsCore:UpdateTitle()
@ -1187,7 +1233,7 @@ function MyBagsCore:UpdateTitle()
titleString = L["MYBAGS_TITLE0"]
end
titleString = titleString .. _G[strupper(self.frameName) .. "_TITLE"]
titleString = titleString .. L[strupper(self.frameName) .. "_TITLE"]
local title = _G[self.frameName .. "Name"]
local player, realm = self:SplitString(self:GetCurrentPlayer(), L["CHARACTER_DELIMITOR"])
title:SetText(format(titleString, player, realm))
@ -1265,7 +1311,7 @@ function MyBagsCore:GetXY(row, col)
end
function MyBagsCore:LayoutBagFrame(bagFrame)
local bagFrameName = bagFrame:GetName()
local bagFrameName = bagFrame:GetName()
local bagParent = bagFrame:GetParent():GetName()
local searchBox = _G[bagParent .. "SearchBox"]
local searchText = searchBox:GetText()
@ -1343,11 +1389,17 @@ function MyBagsCore:LayoutBagFrame(bagFrame)
bagFrame.size = 0
else
for slot = 1, bagFrame.size do
local itemButton = _G[itemBase .. slot] or CreateFrame("Button", itemBase .. slot, bagFrame, "MyBagsItemButtonTemplate")
local itemButton
if (_G[itemBase .. slot]) then
itemButton = _G[itemBase .. slot]
else
itemButton = CreateFrame("Button", itemBase .. slot, bagFrame, "MyBagsItemButtonTemplate")
end
if (self:IsLive()) then
itemButton:SetID(slot);
itemButton:SetID(slot)
else
itemButton:SetID(slot + 1000);
itemButton:SetID(slot + 1000)
end
if self.curCol >= self.GetOpt("Columns") then
@ -1355,8 +1407,41 @@ function MyBagsCore:LayoutBagFrame(bagFrame)
self.curRow = self.curRow + 1
end
local newItemTexture = _G[itemBase .. slot .. "NewItemTexture"]
newItemTexture:Hide()
local newItemTexture = _G[itemBase .. slot].NewItemTexture
local flash = _G[itemBase .. slot].flashAnim
local newItemAnim = _G[itemBase .. slot].newitemglowAnim
local isNewItem = C_NewItems.IsNewItem(bagFrame:GetID(), itemButton:GetID())
local isBattlePayItem = IsBattlePayItem(bagFrame:GetID(), itemButton:GetID())
local battlepayItemTexture = _G[itemBase .. slot].BattlepayItemTexture
battlepayItemTexture:Hide()
if (isNewItem) then
if (isBattlePayItem) then
newItemTexture:Hide()
battlepayItemTexture:Show()
else
if (quality and NEW_ITEM_ATLAS_BY_QUALITY[quality]) then
newItemTexture:SetAtlas(NEW_ITEM_ATLAS_BY_QUALITY[quality])
else
newItemTexture:SetAtlas("bags-glow-white")
end
battlepayItemTexture:Hide()
newItemTexture:Show()
end
if (not flash:IsPlaying() and not newItemAnim:IsPlaying()) then
flash:Play()
newItemAnim:Play()
end
else
battlepayItemTexture:Hide()
newItemTexture:Hide()
if (flash:IsPlaying() or newItemAnim:IsPlaying()) then
flash:Stop()
newItemAnim:Stop()
end
end
itemButton:Show()
itemButton:ClearAllPoints()
itemButton:SetPoint("TOPLEFT", self.frame:GetName(), "TOPLEFT", self:GetXY(self.curRow, self.curCol))
@ -1479,17 +1564,24 @@ function MyBagsCore:LayoutFrame()
end
function MyBagsCore:LayoutFrameOnEvent(event, unit)
if event == "UNIT_INVENTORY_CHANGED" and unit ~= "player" then
return
end
if event == "UNIT_INVENTORY_CHANGED" and unit ~= "player" then
return
end
if event == "ITEM_LOCK_CHANGED" and not self.watchLock then
return
end
if event == "ITEM_LOCK_CHANGED" and not self.watchLock then
return
end
if self.isLive then
self:LayoutFrame()
end
if event == "BAG_UPDATE_COOLDOWN" then
if self.isLive then
self:LayoutFrame()
end
end
end
function MyBagsCore:SortBags()
PlaySound("UI_BagSorting_01")
SortBags()
end
function MyBagsCore:LockButton_OnClick()
@ -1652,6 +1744,11 @@ function MyBagsCore:SetStrata(strata)
end
end
function MyBagsCore:SetBagSort()
self.TogMsg("BagSort", "Bag sorting")
self:LayoutFrame()
end
function MyBagsCore:ResetSettings()
self.db:ResetProfile()
local prof = self.db:GetCurrentProfile()
@ -1678,14 +1775,10 @@ function MyBagsCore:ResetAnchor()
end
function MyBagsCore:SetAnchor(point)
if point == "topleft" then
elseif point == "topright" then
elseif point == "bottomleft" then
elseif point == "bottomright" then
else
if not (point == "topleft" or point == "topright" or point == "bottomleft" or point == "bottomright") then
self.Error("Invalid Entry for Anchor")
return
end
end
local anchorframe = self.frame:GetParent()
local top = self.frame:GetTop()
@ -1693,7 +1786,8 @@ function MyBagsCore:SetAnchor(point)
local top1 = anchorframe:GetTop()
local left1 = anchorframe:GetLeft()
if not top or not left or not left1 or not top1 then
self.Error("Frame must be open to set anchor") return
self.Error("Frame must be open to set anchor")
return
end
self.frame:ClearAllPoints()
@ -1756,13 +1850,13 @@ function MyBagsCore:BagSearch_OnTextChanged()
local search = _G[self.frameName .. "SearchBox"]
local text = search:GetText()
if (text == SEARCH) then
text = "";
text = ""
end
if (text ~= "") then
search.clearButton:Show();
search.clearButton:Show()
else
search.clearButton:Hide();
search.clearButton:Hide()
end
self:LayoutFrame()
@ -1775,14 +1869,18 @@ function MyBagsCore:BagSearch_OnEditFocusGained()
search.searchIcon:SetVertexColor(1.0, 1.0, 1.0)
local text = search:GetText()
if (text == SEARCH) then
text = "";
text = ""
end
search.clearButton:Show();
search.clearButton:Show()
search:SetText(text)
self:LayoutFrame()
end
function MyBagsCore:GetCoreVersion()
return MBC .. " version " .. MBC_MINOR
end
local mixins = {
"ToggleBag",
"OpenBag",
@ -1830,6 +1928,7 @@ local mixins = {
"LayoutBagFrame",
"LayoutFrame",
"LayoutFrameOnEvent",
"SortBags",
"LockButton_OnClick",
"SetColumns",
"SetReplace",
@ -1851,6 +1950,7 @@ local mixins = {
"SetCount",
"SetScale",
"SetStrata",
"SetBagSort",
"ResetSettings",
"ResetAnchor",
"SetAnchor",
@ -1861,6 +1961,7 @@ local mixins = {
"BagSearch_OnEditFocusGained",
"RegisterEvents",
"UnregisterEvents",
"GetCoreVersion",
}
function MyBagsCore:Embed( target )

View File

@ -2,7 +2,7 @@
xsi:schemaLocation="http://www.blizzard.com/wow/ui/FrameXML/UI.xsd">
<Script file="MyBags.lua"/>
<!-- Templates -->
<Button name="MyBagsItemButtonTemplate" inherits="ContainerFrameItemButtonTemplate" virtual="true">
<Button name="MyBagsItemButtonTemplate" inherits="ContainerFrameItemButtonTemplate" virtual="true" hidden="true">
<Frames>
<Cooldown name="$parentCooldown" inherits="CooldownFrameTemplate"/>
</Frames>
@ -366,6 +366,22 @@
<Frame name="$parentBag4" inherits="MyBagsContainerTemplate" id="4"/>
<Frame name="$parentButtons" inherits="MyBagsButtonBarTemplate"/>
<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">
<Size>
<AbsDimension x="183" y="32"/>

View File

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Ui xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.blizzard.com/wow/ui/" xsi:schemaLocation="http://www.blizzard.com/wow/ui/FrameXML\UI.xsd">
<Include file="enUS.lua"/>
</Ui>

View File

@ -1,34 +0,0 @@
-- Version : English - Ramble
MYBANK_NAME = "MyBank"
MYBANK_DESCRIPTION = "All in one bank mod"
MYBANKFRAME_TITLE = "Bank"
-- SLASHCOMMANDS
-- MYBANK_COMMANDS = {"/mybank", "/mb"}
--[[ MYBANK_CMD_OPTIONS = {
MYBAGS_CMD_OPT_REPLACE, -- done
MYBAGS_CMD_OPT_FREEZE, -- done
MYBAGS_CMD_OPT_LOCK, -- done
MYBAGS_CMD_OPT_COLUMNS, -- done
MYBAGS_CMD_OPT_BAG, -- done
MYBAGS_CMD_OPT_HIGHLIGHT, -- done
MYBAGS_CMD_OPT_NOESC, -- done
MYBAGS_CMD_OPT_TITLE, -- done
MYBAGS_CMD_OPT_CASH, -- done
MYBAGS_CMD_OPT_BUTTONS, -- done
MYBAGS_CMD_OPT_AIOI, -- done
MYBAGS_CMD_OPT_REVERSE, -- done
MYBAGS_CMD_OPT_BORDER, -- done
MYBAGS_CMD_OPT_PLAYERSEL, -- done
MYBAGS_CMD_OPT_COUNT, -- done
MYBAGS_CMD_OPT_SCALE, -- done
MYBAGS_CMD_OPT_STRATA, -- done
MYBAGS_CMD_OPT_ANCHOR, -- done
MYBAGS_CMD_OPT_TOGGLE, -- done
MYBAGS_CMD_RESET, -- done
MYBAGS_CMD_OPT_GRAPHICS, -- skip
MYBAGS_CMD_OPT_SLOTCOLOR, -- skip
}
]]

View File

@ -2,10 +2,11 @@ local MYBANK_DEFAULT_OPTIONS = {
["Columns"] = 14,
["Replace"] = true,
["Bag"] = "bar",
["BagSort"] = true,
["Graphics"] = "art",
["Count"] = "free",
["HlItems"] = true,
["Sort"] = "realm",
["Sort"] = "realm",
["Search"] = true,
["HlBags"] = true,
["Freeze"] = "sticky",
@ -136,6 +137,17 @@ function MyBank:OnInitialize()
MyBank:SetBagDisplay(val)
end,
},
bagsort = {
type = "toggle",
name = "BagSort",
desc = "Toggle bag sort button",
get = function(info)
return MyBank.IsSet("BagSort")
end,
set = function(info, val)
MyBank:SetBagSort()
end,
},
back = {
type = "select",
name = "Background",
@ -389,7 +401,7 @@ function MyBank:OnInitialize()
end
function MyBank:OnEnable()
-- MyBagsCore:Enable(self);
-- MyBagsCore:Enable(self);
MyBankFrameBank.maxIndex = 28
MyBankFrameBank:SetID(BANK_CONTAINER)
MyBankFrameBag0:SetID(5)
@ -399,11 +411,14 @@ function MyBank:OnEnable()
MyBankFrameBag4:SetID(9)
MyBankFrameBag5:SetID(10)
MyBankFrameBag6:SetID(11)
if self.GetOpt("Replace") then
BankFrame:UnregisterEvent("BANKFRAME_OPENED")
BankFrame:UnregisterEvent("BANKFRAME_CLOSED")
_G["BankFrame"] = self.frame
end
self:RegisterEvent("BANKFRAME_OPENED")
MyBankFramePortrait:SetTexture("Interface\\Addons\\MyBags\\Skin\\MyBankPortrait")
StaticPopupDialogs["PURCHASE_BANKBAG"] = {
preferredIndex = STATICPOPUPS_NUMDIALOGS,
@ -489,10 +504,14 @@ end
function MyBank:RegisterEvents()
MB_Core:RegisterEvents(self)
self:RegisterEvent("BANKFRAME_OPENED")
self:RegisterEvent("BANKFRAME_CLOSED")
self:RegisterEvent("PLAYERBANKSLOTS_CHANGED", "LayoutFrameOnEvent")
self:RegisterEvent("PLAYERBANKBAGSLOTS_CHANGED","LayoutFrameOnEvent")
self:RegisterEvent("BANKFRAME_CLOSED")
end
function MyBank:UnregisterEvents()
MB_Core:UnregisterEvents(self)
self:RegisterEvent("BANKFRAME_OPENED")
end
function MyBank:HookFunctions()
@ -548,6 +567,7 @@ function MyBank:BAG_UPDATE(event, bag)
end
function MyBank:BANKFRAME_OPENED()
self:RegisterEvents()
MyBank.atBank = true
SetPortraitTexture(MyBankFramePortrait, "npc")
if self.Freeze == "always" or (self.Freeze == "sticky" and self.frame:IsVisible()) then
@ -573,6 +593,7 @@ function MyBank:BANKFRAME_CLOSED()
self.holdOpen = false
if self.isLive then self:LayoutFrame() end
end
self:UnregisterEvents()
end
function MyBank:GetInfoFunc()
@ -702,3 +723,8 @@ function MyBank:SetReplace()
BankFrame:RegisterEvent("BANKFRAME_CLOSED")
end
end
function MyBank:SortBags()
PlaySound("UI_BagSorting_01")
SortBankBags()
end

View File

@ -1,7 +1,6 @@
<Ui xmlns="http://www.blizzard.com/wow/ui/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.blizzard.com/wow/ui/FrameXML/UI.xsd">
<Include file="Locals\Locals.xml"/>
<Script file="MyBank.lua"/>
<Frame name="MyBagsBankContainerTemplate" inherits="MyBagsContainerTemplate" ID="BANK_CONTAINER" virtual="true">
</Frame>

View File

@ -1,7 +1,6 @@
<Ui xmlns="http://www.blizzard.com/wow/ui/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.blizzard.com/wow/ui/FrameXML/UI.xsd">
<Script file="locals.lua" />
<Script file="MyEquipment.lua" />
<!-- Templates -->

View File

@ -1,29 +0,0 @@
-- Version : English - Isharra
MYEQUIPMENT_NAME = "MyEquipment"
MYEQUIPMENT_DESCRIPTION = "Equipped items display"
MYEQUIPMENTFRAME_TITLE = "Equipment"
-- SLASHCOMMANDS
-- /me already taken by emote commands
-- MYEQUIPMENT_COMMANDS = {"/myequipment", "/myequip", "/mq"}
--[[ MYEQUIPMENT_CMD_OPTIONS = {
MYBAGS_CMD_OPT_LOCK, -- done
MYBAGS_CMD_OPT_COLUMNS, -- done
MYBAGS_CMD_OPT_NOESC, -- done
MYBAGS_CMD_OPT_TITLE, -- done
MYBAGS_CMD_OPT_CASH, -- done
MYBAGS_CMD_OPT_BUTTONS, -- done
MYBAGS_CMD_OPT_AIOI, -- done
MYBAGS_CMD_OPT_BORDER, -- done
MYBAGS_CMD_OPT_PLAYERSEL, -- done
MYBAGS_CMD_OPT_SCALE, -- done
MYBAGS_CMD_OPT_STRATA, -- done
MYBAGS_CMD_OPT_ANCHOR, -- done
MYBAGS_CMD_OPT_TOGGLE, -- done
MYBAGS_CMD_RESET, -- done
MYBAGS_CMD_OPT_GRAPHICS, -- skip
MYBAGS_CMD_OPT_SLOTCOLOR, -- skip
}
]]

View File

@ -2,12 +2,13 @@ local MYINVENTORY_DEFAULT_OPTIONS = {
["Columns"] = 12,
["Replace"] = true,
["Bag"] = "bar",
["BagSort"] = true,
["Graphics"] = "art",
["Count"] = "free",
["HlItems"] = true,
["Sort"] = "realm",
["Search"] = true,
["Token"] = true,
["Sort"] = "realm",
["Search"] = true,
["Token"] = true,
["HlBags"] = true,
["Freeze"] = "sticky",
["NoEsc"] = false,
@ -55,6 +56,7 @@ function MyInventory:OnInitialize()
self.anchorOffsetX = -5
self.anchorOffsetY = 100
self.isBank = false
self.version = MB_Core:GetCoreVersion()
self.db = LibStub("AceDB-3.0"):New("MyInventoryDB")
local prof = self.db:GetCurrentProfile()
if self.db.profiles[prof] and self.db.profiles[prof]["Columns"] and self.db.profiles[prof]["Columns"] > 0 then
@ -136,6 +138,17 @@ function MyInventory:OnInitialize()
MyInventory:SetBagDisplay(val)
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 = {
type = "select",
name = "Background",
@ -433,7 +446,7 @@ function MyInventory:LoadDropDown()
_G["this"] = dropDownButton
UIDropDownMenu_Initialize(dropDown, self.UserDropDown_Initialize)
UIDropDownMenu_SetSelectedValue(dropDown, self:GetCurrentPlayer())
-- UIDropDownMenu_SetSelectedValue(dropDown, self.Player)
-- UIDropDownMenu_SetSelectedValue(dropDown, self.Player)
UIDropDownMenu_SetWidth(dropDown, 140)
_G["this"] = last_this
end

View File

@ -1,7 +1,6 @@
<Ui xmlns="http://www.blizzard.com/wow/ui/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.blizzard.com/wow/ui/FrameXML/UI.xsd">
<Script file="locals.lua"/>
<Script file="MyInventory.lua"/>
<Frame name="MyInventoryAnchorFrame" hidden="false" movable="true" parent="UIParent">
<Size>

View File

@ -1,36 +0,0 @@
-- Version : English - Ramble
MYINVENTORY_NAME = "MyInventory"
MYINVENTORY_DESCRIPTION = "All in one inventory mod"
MYINVENTORYFRAME_TITLE = "Inventory"
-- SLASHCOMMANDS
--[[
MYINVENTORY_COMMANDS = {"/myinventory", "/mi"}
MYINVENTORY_CMD_OPTIONS = {
MYBAGS_CMD_OPT_TOGGLE, -- done
MYBAGS_CMD_OPT_FREEZE, -- done
MYBAGS_CMD_OPT_NOESC, -- done
MYBAGS_CMD_OPT_COLUMNS, -- done
MYBAGS_CMD_OPT_REPLACE, -- done
MYBAGS_CMD_OPT_BAG, -- done
MYBAGS_CMD_OPT_GRAPHICS, -- ????
MYBAGS_CMD_OPT_HIGHLIGHT, -- done
MYBAGS_CMD_OPT_LOCK, -- done
MYBAGS_CMD_OPT_TITLE, -- done
MYBAGS_CMD_OPT_CASH, -- done
MYBAGS_CMD_OPT_BUTTONS, -- done
MYBAGS_CMD_OPT_AIOI, -- done
MYBAGS_CMD_OPT_REVERSE, -- done
MYBAGS_CMD_OPT_BORDER, -- done
MYBAGS_CMD_OPT_PLAYERSEL, -- done
MYBAGS_CMD_OPT_COUNT,
MYBAGS_CMD_OPT_SCALE,
MYBAGS_CMD_OPT_STRATA,
MYBAGS_CMD_OPT_ANCHOR,
MYBAGS_CMD_RESET,
MYBAGS_CMD_OPT_SLOTCOLOR,
MYBAGS_CMD_OPT_COMPANION,
}
]]