mirror of
https://github.com/Bluewhale1337/ElvUIModernized.git
synced 2026-07-27 08:24:44 +00:00
replace Ace3v with Ace3 ElvUI-TBC version
or easy tracking of code difference
This commit is contained in:
@@ -5,11 +5,6 @@ local Type, Version = "EditBox", 26
|
||||
local AceGUI = LibStub and LibStub("AceGUI-3.0", true)
|
||||
if not AceGUI or (AceGUI:GetWidgetVersion(Type) or 0) >= Version then return end
|
||||
|
||||
local AceCore = LibStub("AceCore-3.0")
|
||||
local hooksecurefunc = AceCore.hooksecurefunc
|
||||
local _G = AceCore._G
|
||||
local GetCursorInfo = _G.GetCursorInfo
|
||||
|
||||
-- Lua APIs
|
||||
local tostring, pairs = tostring, pairs
|
||||
|
||||
@@ -17,7 +12,7 @@ local tostring, pairs = tostring, pairs
|
||||
local PlaySound = PlaySound
|
||||
local GetCursorInfo, ClearCursor, GetSpellInfo = GetCursorInfo, ClearCursor, GetSpellInfo
|
||||
local CreateFrame, UIParent = CreateFrame, UIParent
|
||||
local strlen = string.len
|
||||
local _G = _G
|
||||
|
||||
-- Global vars/functions that we don't upvalue since they might get hooked, or upgraded
|
||||
-- List them here for Mikk's FindGlobals script
|
||||
@@ -28,100 +23,13 @@ Support functions
|
||||
-------------------------------------------------------------------------------]]
|
||||
if not AceGUIEditBoxInsertLink then
|
||||
-- upgradeable hook
|
||||
hooksecurefunc("BankFrameItemButtonGeneric_OnClick",
|
||||
function(button)
|
||||
if button == "LeftButton" and IsShiftKeyDown() and not this.isBag then
|
||||
return _G.AceGUIEditBoxInsertLink(GetContainerItemLink(BANK_CONTAINER, this:GetID()))
|
||||
end
|
||||
end)
|
||||
hooksecurefunc("ContainerFrameItemButton_OnClick",
|
||||
function(button, ignoreModifiers)
|
||||
if button == "LeftButton" and IsShiftKeyDown() and not ignoreModifiers then
|
||||
return _G.AceGUIEditBoxInsertLink(GetContainerItemLink(this:GetParent():GetID(), this:GetID()))
|
||||
end
|
||||
end)
|
||||
|
||||
hooksecurefunc("KeyRingItemButton_OnClick",
|
||||
function(button)
|
||||
if button == "LeftButton" and IsShiftKeyDown() and not this.isBag then
|
||||
return _G.AceGUIEditBoxInsertLink(GetContainerItemLink(KEYRING_CONTAINER, this:GetID()))
|
||||
end
|
||||
end)
|
||||
hooksecurefunc("LootFrameItem_OnClick",
|
||||
function(button)
|
||||
if button == "LeftButton" and IsShiftKeyDown() then
|
||||
return _G.AceGUIEditBoxInsertLink(GetLootSlotLink(this.slot))
|
||||
end
|
||||
end)
|
||||
hooksecurefunc("SetItemRef",
|
||||
function(link, text, button)
|
||||
if IsShiftKeyDown() then
|
||||
if strsub(link,1,6) == "player" then
|
||||
local name = strsub(link,8)
|
||||
if name and (strlen(name) > 0) then
|
||||
return _G.AceGUIEditBoxInsertLink(name)
|
||||
end
|
||||
else
|
||||
return _G.AceGUIEditBoxInsertLink(text)
|
||||
end
|
||||
end
|
||||
end)
|
||||
hooksecurefunc("MerchantItemButton_OnClick",
|
||||
function(button, ignoreModifiers)
|
||||
if MerchantFrame.selectedTab == 1 and button == "LeftButton" and IsShiftKeyDown() and not ignoreModifiers then
|
||||
return _G.AceGUIEditBoxInsertLink(GetMerchantItemLink(this:GetID()))
|
||||
end
|
||||
end)
|
||||
hooksecurefunc("PaperDollItemSlotButton_OnClick",
|
||||
function(button, ignoreModifiers)
|
||||
if button == "LeftButton" and IsShiftKeyDown() and not ignoreModifiers then
|
||||
return _G.AceGUIEditBoxInsertLink(GetInventoryItemLink("player", this:GetID()))
|
||||
end
|
||||
end)
|
||||
hooksecurefunc("QuestItem_OnClick",
|
||||
function()
|
||||
if IsShiftKeyDown() and this.rewardType ~= "spell" then
|
||||
return _G.AceGUIEditBoxInsertLink(GetQuestItemLink(this.type, this:GetID()))
|
||||
end
|
||||
end)
|
||||
hooksecurefunc("QuestRewardItem_OnClick",
|
||||
function()
|
||||
if IsShiftKeyDown() and this.rewardType ~= "spell" then
|
||||
return _G.AceGUIEditBoxInsertLink(GetQuestItemLink(this.type, this:GetID()))
|
||||
end
|
||||
end)
|
||||
hooksecurefunc("QuestLogTitleButton_OnClick",
|
||||
function(button)
|
||||
if IsShiftKeyDown() and (not this.isHeader) then
|
||||
return _G.AceGUIEditBoxInsertLink(gsub(this:GetText(), " *(.*)", "%1"))
|
||||
end
|
||||
end)
|
||||
hooksecurefunc("QuestLogRewardItem_OnClick",
|
||||
function()
|
||||
if IsShiftKeyDown() and this.rewardType ~= "spell" then
|
||||
return _G.AceGUIEditBoxInsertLink(GetQuestLogItemLink(this.type, this:GetID()))
|
||||
end
|
||||
end)
|
||||
hooksecurefunc("SpellButton_OnClick",
|
||||
function(drag)
|
||||
local id = SpellBook_GetSpellID(this:GetID())
|
||||
if id <= MAX_SPELLS and (not drag) and IsShiftKeyDown() then
|
||||
local spellName, subSpellName = GetSpellName(id, SpellBookFrame.bookType)
|
||||
if spellName and not IsSpellPassive(id, SpellBookFrame.bookType) then
|
||||
if subSpellName and (strlen(subSpellName) > 0) then
|
||||
_G.AceGUIEditBoxInsertLink(spellName.."("..subSpellName..")");
|
||||
else
|
||||
_G.AceGUIEditBoxInsertLink(spellName);
|
||||
end
|
||||
end
|
||||
end
|
||||
end)
|
||||
hooksecurefunc("ChatEdit_InsertLink", function(...) return _G.AceGUIEditBoxInsertLink(...) end)
|
||||
end
|
||||
|
||||
function _G.AceGUIEditBoxInsertLink(text)
|
||||
for i = 1, AceGUI:GetWidgetCount(Type) do
|
||||
local editbox = _G["AceGUI-3.0EditBox"..i]
|
||||
if editbox and editbox:IsVisible() and editbox.hasfocus then
|
||||
if editbox and editbox:IsVisible() and editbox:HasFocus() then
|
||||
editbox:Insert(text)
|
||||
return true
|
||||
end
|
||||
@@ -143,82 +51,73 @@ end
|
||||
--[[-----------------------------------------------------------------------------
|
||||
Scripts
|
||||
-------------------------------------------------------------------------------]]
|
||||
local function Control_OnEnter()
|
||||
this.obj:Fire("OnEnter")
|
||||
local function Control_OnEnter(frame)
|
||||
frame.obj:Fire("OnEnter")
|
||||
end
|
||||
|
||||
local function Control_OnLeave()
|
||||
this.obj:Fire("OnLeave")
|
||||
local function Control_OnLeave(frame)
|
||||
frame.obj:Fire("OnLeave")
|
||||
end
|
||||
|
||||
local function Frame_OnShowFocus()
|
||||
this.obj.editbox:SetFocus()
|
||||
this:SetScript("OnShow", nil)
|
||||
local function Frame_OnShowFocus(frame)
|
||||
frame.obj.editbox:SetFocus()
|
||||
frame:SetScript("OnShow", nil)
|
||||
end
|
||||
|
||||
local function EditBox_OnEscapePressed()
|
||||
local function EditBox_OnEscapePressed(frame)
|
||||
AceGUI:ClearFocus()
|
||||
end
|
||||
|
||||
local function EditBox_OnEnterPressed()
|
||||
local self = this.obj
|
||||
local value = this:GetText()
|
||||
local cancel = self:Fire("OnEnterPressed", 1, value)
|
||||
local function EditBox_OnEnterPressed(frame)
|
||||
local self = frame.obj
|
||||
local value = frame:GetText()
|
||||
local cancel = self:Fire("OnEnterPressed", value)
|
||||
if not cancel then
|
||||
PlaySound("igMainMenuOptionCheckBoxOn")
|
||||
HideButton(self)
|
||||
end
|
||||
end
|
||||
|
||||
local function EditBox_OnReceiveDrag()
|
||||
if not GetCursorInfo then return end
|
||||
local self = this.obj
|
||||
local function EditBox_OnReceiveDrag(frame)
|
||||
local self = frame.obj
|
||||
local type, id, info = GetCursorInfo()
|
||||
if type == "item" then
|
||||
self:SetText(info)
|
||||
self:Fire("OnEnterPressed", 1, info)
|
||||
self:Fire("OnEnterPressed", info)
|
||||
ClearCursor()
|
||||
elseif type == "spell" then
|
||||
local spell, rank = GetSpellName(id, info)
|
||||
if rank ~= "" then spell = spell.."("..rank..")" end
|
||||
self:SetText(spell)
|
||||
self:Fire("OnEnterPressed", 1, spell)
|
||||
local name = GetSpellInfo(id, info)
|
||||
self:SetText(name)
|
||||
self:Fire("OnEnterPressed", name)
|
||||
ClearCursor()
|
||||
elseif type == "macro" then
|
||||
local name = GetMacroInfo(id)
|
||||
self:SetText(name)
|
||||
self:Fire("OnEnterPressed", 1, name)
|
||||
self:Fire("OnEnterPressed", name)
|
||||
ClearCursor()
|
||||
end
|
||||
HideButton(self)
|
||||
AceGUI:ClearFocus()
|
||||
end
|
||||
|
||||
|
||||
local function EditBox_OnTextChanged()
|
||||
local self = this.obj
|
||||
local value = this:GetText()
|
||||
local function EditBox_OnTextChanged(frame)
|
||||
local self = frame.obj
|
||||
local value = frame:GetText()
|
||||
if tostring(value) ~= tostring(self.lasttext) then
|
||||
self:Fire("OnTextChanged", 1, value)
|
||||
self:Fire("OnTextChanged", value)
|
||||
self.lasttext = value
|
||||
ShowButton(self)
|
||||
end
|
||||
end
|
||||
|
||||
local function EditBox_OnFocusGained()
|
||||
this.hasfocus = true
|
||||
AceGUI:SetFocus(this.obj)
|
||||
local function EditBox_OnFocusGained(frame)
|
||||
AceGUI:SetFocus(frame.obj)
|
||||
end
|
||||
|
||||
local function EditBox_OnFocusLost()
|
||||
this.hasfocus = nil
|
||||
end
|
||||
|
||||
local function Button_OnClick()
|
||||
local editbox = this.obj.editbox
|
||||
local function Button_OnClick(frame)
|
||||
local editbox = frame.obj.editbox
|
||||
editbox:ClearFocus()
|
||||
this = editbox -- Ace3v: this is kinda hack here
|
||||
EditBox_OnEnterPressed()
|
||||
EditBox_OnEnterPressed(editbox)
|
||||
end
|
||||
|
||||
--[[-----------------------------------------------------------------------------
|
||||
@@ -256,7 +155,7 @@ local methods = {
|
||||
["SetText"] = function(self, text)
|
||||
self.lasttext = text or ""
|
||||
self.editbox:SetText(text or "")
|
||||
self.editbox:HighlightText(0)
|
||||
self.editbox:SetCursorPosition(0)
|
||||
HideButton(self)
|
||||
end,
|
||||
|
||||
@@ -327,11 +226,10 @@ local function Constructor()
|
||||
editbox:SetScript("OnReceiveDrag", EditBox_OnReceiveDrag)
|
||||
editbox:SetScript("OnMouseDown", EditBox_OnReceiveDrag)
|
||||
editbox:SetScript("OnEditFocusGained", EditBox_OnFocusGained)
|
||||
editbox:SetScript("OnEditFocusLost", EditBox_OnFocusLost)
|
||||
editbox:SetTextInsets(0, 0, 3, 3)
|
||||
editbox:SetMaxLetters(256)
|
||||
editbox:SetPoint("BOTTOMLEFT", 6, 0)
|
||||
editbox:SetPoint("BOTTOMRIGHT", 0, 0)
|
||||
editbox:SetPoint("BOTTOMRIGHT")
|
||||
editbox:SetHeight(19)
|
||||
|
||||
local label = frame:CreateFontString(nil, "OVERLAY", "GameFontNormalSmall")
|
||||
|
||||
Reference in New Issue
Block a user