You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2554 lines
82 KiB
2554 lines
82 KiB
|
|
local DF = _G ["DetailsFramework"]
|
|
if (not DF or not DetailsFrameworkCanLoad) then
|
|
return
|
|
end
|
|
|
|
local _
|
|
local _rawset = rawset --> lua local
|
|
local _rawget = rawget --> lua local
|
|
local _setmetatable = setmetatable --> lua local
|
|
local _unpack = unpack --> lua local
|
|
local _type = type --> lua local
|
|
local _math_floor = math.floor --> lua local
|
|
local loadstring = loadstring --> lua local
|
|
local _string_len = string.len --> lua local
|
|
|
|
|
|
local cleanfunction = function() end
|
|
local APITextEntryFunctions = false
|
|
|
|
do
|
|
local metaPrototype = {
|
|
WidgetType = "textentry",
|
|
SetHook = DF.SetHook,
|
|
HasHook = DF.HasHook,
|
|
ClearHooks = DF.ClearHooks,
|
|
RunHooksForWidget = DF.RunHooksForWidget,
|
|
|
|
dversion = DF.dversion,
|
|
}
|
|
|
|
--check if there's a metaPrototype already existing
|
|
if (_G[DF.GlobalWidgetControlNames["textentry"]]) then
|
|
--get the already existing metaPrototype
|
|
local oldMetaPrototype = _G[DF.GlobalWidgetControlNames ["textentry"]]
|
|
--check if is older
|
|
if ( (not oldMetaPrototype.dversion) or (oldMetaPrototype.dversion < DF.dversion) ) then
|
|
--the version is older them the currently loading one
|
|
--copy the new values into the old metatable
|
|
for funcName, _ in pairs(metaPrototype) do
|
|
oldMetaPrototype[funcName] = metaPrototype[funcName]
|
|
end
|
|
end
|
|
else
|
|
--first time loading the framework
|
|
_G[DF.GlobalWidgetControlNames ["textentry"]] = metaPrototype
|
|
end
|
|
end
|
|
|
|
local TextEntryMetaFunctions = _G[DF.GlobalWidgetControlNames ["textentry"]]
|
|
DF.TextEntryCounter = DF.TextEntryCounter or 1
|
|
|
|
------------------------------------------------------------------------------------------------------------
|
|
--> metatables
|
|
|
|
TextEntryMetaFunctions.__call = function (_table, value)
|
|
--> unknow
|
|
end
|
|
|
|
------------------------------------------------------------------------------------------------------------
|
|
--> members
|
|
|
|
--> tooltip
|
|
local gmember_tooltip = function (_object)
|
|
return _object:GetTooltip()
|
|
end
|
|
--> shown
|
|
local gmember_shown = function (_object)
|
|
return _object:IsShown()
|
|
end
|
|
--> frame width
|
|
local gmember_width = function (_object)
|
|
return _object.editbox:GetWidth()
|
|
end
|
|
--> frame height
|
|
local gmember_height = function (_object)
|
|
return _object.editbox:GetHeight()
|
|
end
|
|
--> get text
|
|
local gmember_text = function (_object)
|
|
return _object.editbox:GetText()
|
|
end
|
|
|
|
TextEntryMetaFunctions.GetMembers = TextEntryMetaFunctions.GetMembers or {}
|
|
TextEntryMetaFunctions.GetMembers ["tooltip"] = gmember_tooltip
|
|
TextEntryMetaFunctions.GetMembers ["shown"] = gmember_shown
|
|
TextEntryMetaFunctions.GetMembers ["width"] = gmember_width
|
|
TextEntryMetaFunctions.GetMembers ["height"] = gmember_height
|
|
TextEntryMetaFunctions.GetMembers ["text"] = gmember_text
|
|
|
|
TextEntryMetaFunctions.__index = function (_table, _member_requested)
|
|
local func = TextEntryMetaFunctions.GetMembers [_member_requested]
|
|
if (func) then
|
|
return func (_table, _member_requested)
|
|
end
|
|
|
|
local fromMe = _rawget (_table, _member_requested)
|
|
if (fromMe) then
|
|
return fromMe
|
|
end
|
|
|
|
return TextEntryMetaFunctions [_member_requested]
|
|
end
|
|
|
|
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
--> tooltip
|
|
local smember_tooltip = function (_object, _value)
|
|
return _object:SetTooltip (_value)
|
|
end
|
|
--> show
|
|
local smember_show = function (_object, _value)
|
|
if (_value) then
|
|
return _object:Show()
|
|
else
|
|
return _object:Hide()
|
|
end
|
|
end
|
|
--> hide
|
|
local smember_hide = function (_object, _value)
|
|
if (not _value) then
|
|
return _object:Show()
|
|
else
|
|
return _object:Hide()
|
|
end
|
|
end
|
|
--> frame width
|
|
local smember_width = function (_object, _value)
|
|
return _object.editbox:SetWidth (_value)
|
|
end
|
|
--> frame height
|
|
local smember_height = function (_object, _value)
|
|
return _object.editbox:SetHeight (_value)
|
|
end
|
|
--> set text
|
|
local smember_text = function (_object, _value)
|
|
return _object.editbox:SetText (_value)
|
|
end
|
|
--> set multiline
|
|
local smember_multiline = function (_object, _value)
|
|
if (_value) then
|
|
return _object.editbox:SetMultiLine (true)
|
|
else
|
|
return _object.editbox:SetMultiLine (false)
|
|
end
|
|
end
|
|
--> text horizontal pos
|
|
local smember_horizontalpos = function (_object, _value)
|
|
return _object.editbox:SetJustifyH (string.lower (_value))
|
|
end
|
|
|
|
TextEntryMetaFunctions.SetMembers = TextEntryMetaFunctions.SetMembers or {}
|
|
TextEntryMetaFunctions.SetMembers ["tooltip"] = smember_tooltip
|
|
TextEntryMetaFunctions.SetMembers ["show"] = smember_show
|
|
TextEntryMetaFunctions.SetMembers ["hide"] = smember_hide
|
|
TextEntryMetaFunctions.SetMembers ["width"] = smember_width
|
|
TextEntryMetaFunctions.SetMembers ["height"] = smember_height
|
|
TextEntryMetaFunctions.SetMembers ["text"] = smember_text
|
|
TextEntryMetaFunctions.SetMembers ["multiline"] = smember_multiline
|
|
TextEntryMetaFunctions.SetMembers ["align"] = smember_horizontalpos
|
|
|
|
TextEntryMetaFunctions.__newindex = function (_table, _key, _value)
|
|
local func = TextEntryMetaFunctions.SetMembers [_key]
|
|
if (func) then
|
|
return func (_table, _value)
|
|
else
|
|
return _rawset (_table, _key, _value)
|
|
end
|
|
end
|
|
|
|
------------------------------------------------------------------------------------------------------------
|
|
--> methods
|
|
local cleanfunction = function()end
|
|
function TextEntryMetaFunctions:SetEnterFunction (func, param1, param2)
|
|
if (func) then
|
|
_rawset (self, "func", func)
|
|
else
|
|
_rawset (self, "func", cleanfunction)
|
|
end
|
|
|
|
if (param1 ~= nil) then
|
|
_rawset (self, "param1", param1)
|
|
end
|
|
if (param2 ~= nil) then
|
|
_rawset (self, "param2", param2)
|
|
end
|
|
end
|
|
|
|
--> set point
|
|
function TextEntryMetaFunctions:SetPoint (MyAnchor, SnapTo, HisAnchor, x, y, Width)
|
|
|
|
if (type (MyAnchor) == "boolean" and MyAnchor and self.space) then
|
|
local textWidth = self.label:GetStringWidth()+2
|
|
self.editbox:SetWidth (self.space - textWidth - 15)
|
|
return
|
|
|
|
elseif (type (MyAnchor) == "boolean" and MyAnchor and not self.space) then
|
|
self.space = self.label:GetStringWidth()+2 + self.editbox:GetWidth()
|
|
end
|
|
|
|
if (Width) then
|
|
self.space = Width
|
|
end
|
|
|
|
MyAnchor, SnapTo, HisAnchor, x, y = DF:CheckPoints (MyAnchor, SnapTo, HisAnchor, x, y, self)
|
|
if (not MyAnchor) then
|
|
print ("Invalid parameter for SetPoint")
|
|
return
|
|
end
|
|
|
|
if (self.space) then
|
|
self.label:ClearAllPoints()
|
|
self.editbox:ClearAllPoints()
|
|
|
|
self.label:SetPoint (MyAnchor, SnapTo, HisAnchor, x, y)
|
|
self.editbox:SetPoint ("left", self.label, "right", 2, 0)
|
|
|
|
local textWidth = self.label:GetStringWidth()+2
|
|
self.editbox:SetWidth (self.space - textWidth - 15)
|
|
else
|
|
self.label:ClearAllPoints()
|
|
self.editbox:ClearAllPoints()
|
|
self.editbox:SetPoint (MyAnchor, SnapTo, HisAnchor, x, y)
|
|
end
|
|
|
|
end
|
|
|
|
function TextEntryMetaFunctions:SetText (text)
|
|
self.editbox:SetText (text)
|
|
end
|
|
function TextEntryMetaFunctions:GetText()
|
|
return self.editbox:GetText()
|
|
end
|
|
|
|
--> frame levels
|
|
function TextEntryMetaFunctions:GetFrameLevel()
|
|
return self.editbox:GetFrameLevel()
|
|
end
|
|
function TextEntryMetaFunctions:SetFrameLevel (level, frame)
|
|
if (not frame) then
|
|
return self.editbox:SetFrameLevel (level)
|
|
else
|
|
local framelevel = frame:GetFrameLevel (frame) + level
|
|
return self.editbox:SetFrameLevel (framelevel)
|
|
end
|
|
end
|
|
|
|
function TextEntryMetaFunctions:SetBackdrop(...)
|
|
return self.editbox:SetBackdrop(...)
|
|
end
|
|
|
|
function TextEntryMetaFunctions:SetBackdropColor(...)
|
|
return self.editbox:SetBackdropColor(...)
|
|
end
|
|
|
|
function TextEntryMetaFunctions:SetBackdropBorderColor(...)
|
|
return self.editbox:SetBackdropBorderColor(...)
|
|
end
|
|
|
|
--> select all text
|
|
function TextEntryMetaFunctions:SelectAll()
|
|
self.editbox:HighlightText()
|
|
end
|
|
|
|
--> set labal description
|
|
function TextEntryMetaFunctions:SetLabelText (text)
|
|
if (text) then
|
|
self.label:SetText (text)
|
|
else
|
|
self.label:SetText ("")
|
|
end
|
|
self:SetPoint (true) --> refresh
|
|
end
|
|
|
|
--> set tab order
|
|
function TextEntryMetaFunctions:SetNext (nextbox)
|
|
self.next = nextbox
|
|
end
|
|
|
|
--> blink
|
|
function TextEntryMetaFunctions:Blink()
|
|
self.label:SetTextColor (1, .2, .2, 1)
|
|
end
|
|
|
|
--> show & hide
|
|
function TextEntryMetaFunctions:IsShown()
|
|
return self.editbox:IsShown()
|
|
end
|
|
function TextEntryMetaFunctions:Show()
|
|
return self.editbox:Show()
|
|
end
|
|
function TextEntryMetaFunctions:Hide()
|
|
return self.editbox:Hide()
|
|
end
|
|
|
|
-- tooltip
|
|
function TextEntryMetaFunctions:SetTooltip (tooltip)
|
|
if (tooltip) then
|
|
return _rawset (self, "have_tooltip", tooltip)
|
|
else
|
|
return _rawset (self, "have_tooltip", nil)
|
|
end
|
|
end
|
|
function TextEntryMetaFunctions:GetTooltip()
|
|
return _rawget (self, "have_tooltip")
|
|
end
|
|
|
|
--> hooks
|
|
function TextEntryMetaFunctions:Enable()
|
|
if (not self.editbox:IsEnabled()) then
|
|
self.editbox:Enable()
|
|
self.editbox:SetBackdropBorderColor (unpack (self.enabled_border_color))
|
|
self.editbox:SetBackdropColor (unpack (self.enabled_backdrop_color))
|
|
self.editbox:SetTextColor (unpack (self.enabled_text_color))
|
|
if (self.editbox.borderframe) then
|
|
self.editbox.borderframe:SetBackdropColor (unpack (self.editbox.borderframe.onleave_backdrop))
|
|
end
|
|
end
|
|
end
|
|
|
|
function TextEntryMetaFunctions:Disable()
|
|
if (self.editbox:IsEnabled()) then
|
|
self.enabled_border_color = {self.editbox:GetBackdropBorderColor()}
|
|
self.enabled_backdrop_color = {self.editbox:GetBackdropColor()}
|
|
self.enabled_text_color = {self.editbox:GetTextColor()}
|
|
|
|
self.editbox:Disable()
|
|
|
|
self.editbox:SetBackdropBorderColor (.5, .5, .5, .5)
|
|
self.editbox:SetBackdropColor (.5, .5, .5, .5)
|
|
self.editbox:SetTextColor (.5, .5, .5, .5)
|
|
|
|
if (self.editbox.borderframe) then
|
|
self.editbox.borderframe:SetBackdropColor (.5, .5, .5, .5)
|
|
end
|
|
end
|
|
end
|
|
|
|
function TextEntryMetaFunctions:SetCommitFunction(func)
|
|
if (type(func) == "function") then
|
|
self.func = func
|
|
end
|
|
end
|
|
|
|
------------------------------------------------------------------------------------------------------------
|
|
--> scripts and hooks
|
|
|
|
local OnEnter = function (textentry)
|
|
local capsule = textentry.MyObject
|
|
|
|
local kill = capsule:RunHooksForWidget ("OnEnter", textentry, capsule)
|
|
if (kill) then
|
|
return
|
|
end
|
|
|
|
if (capsule.have_tooltip) then
|
|
GameCooltip2:Preset (2)
|
|
GameCooltip2:AddLine (capsule.have_tooltip)
|
|
GameCooltip2:ShowCooltip (textentry, "tooltip")
|
|
end
|
|
|
|
textentry.mouse_over = true
|
|
|
|
if (textentry:IsEnabled()) then
|
|
textentry.current_bordercolor = textentry.current_bordercolor or {textentry:GetBackdropBorderColor()}
|
|
textentry:SetBackdropBorderColor (1, 1, 1, 1)
|
|
end
|
|
end
|
|
|
|
local OnLeave = function (textentry)
|
|
local capsule = textentry.MyObject
|
|
|
|
local kill = capsule:RunHooksForWidget ("OnLeave", textentry, capsule)
|
|
if (kill) then
|
|
return
|
|
end
|
|
|
|
if (textentry.MyObject.have_tooltip) then
|
|
GameCooltip2:ShowMe (false)
|
|
end
|
|
|
|
textentry.mouse_over = false
|
|
|
|
if (textentry:IsEnabled()) then
|
|
textentry:SetBackdropBorderColor (unpack (textentry.current_bordercolor))
|
|
end
|
|
end
|
|
|
|
local OnHide = function (textentry)
|
|
local capsule = textentry.MyObject
|
|
|
|
local kill = capsule:RunHooksForWidget ("OnHide", textentry, capsule)
|
|
if (kill) then
|
|
return
|
|
end
|
|
end
|
|
|
|
local OnShow = function (textentry)
|
|
local capsule = textentry.MyObject
|
|
|
|
local kill = capsule:RunHooksForWidget ("OnShow", textentry, capsule)
|
|
if (kill) then
|
|
return
|
|
end
|
|
end
|
|
|
|
local OnEnterPressed = function (textentry, byScript)
|
|
local capsule = textentry.MyObject
|
|
|
|
local kill = capsule:RunHooksForWidget ("OnEnterPressed", textentry, capsule, capsule.text)
|
|
if (kill) then
|
|
return
|
|
end
|
|
|
|
local texto = DF:trim (textentry:GetText())
|
|
if (_string_len (texto) > 0) then
|
|
textentry.text = texto
|
|
if (textentry.MyObject.func) then
|
|
textentry.MyObject.func (textentry.MyObject.param1, textentry.MyObject.param2, texto, textentry, byScript or textentry)
|
|
end
|
|
else
|
|
textentry:SetText ("")
|
|
textentry.MyObject.currenttext = ""
|
|
end
|
|
|
|
if (not capsule.NoClearFocusOnEnterPressed) then
|
|
textentry.focuslost = true --> quando estiver editando e clicar em outra caixa
|
|
textentry:ClearFocus()
|
|
|
|
if (textentry.MyObject.tab_on_enter and textentry.MyObject.next) then
|
|
textentry.MyObject.next:SetFocus()
|
|
end
|
|
end
|
|
end
|
|
|
|
local OnEscapePressed = function (textentry)
|
|
local capsule = textentry.MyObject
|
|
|
|
local kill = capsule:RunHooksForWidget ("OnEscapePressed", textentry, capsule, capsule.text)
|
|
if (kill) then
|
|
return
|
|
end
|
|
|
|
textentry.focuslost = true
|
|
textentry:ClearFocus()
|
|
end
|
|
|
|
local OnSpacePressed = function (textentry)
|
|
local capsule = textentry.MyObject
|
|
|
|
local kill = capsule:RunHooksForWidget ("OnSpacePressed", textentry, capsule)
|
|
if (kill) then
|
|
return
|
|
end
|
|
end
|
|
|
|
local OnEditFocusLost = function (textentry)
|
|
|
|
local capsule = textentry.MyObject
|
|
|
|
if (textentry:IsShown()) then
|
|
|
|
local kill = capsule:RunHooksForWidget ("OnEditFocusLost", textentry, capsule, capsule.text)
|
|
if (kill) then
|
|
return
|
|
end
|
|
|
|
if (not textentry.focuslost) then
|
|
local texto = DF:trim (textentry:GetText())
|
|
if (_string_len (texto) > 0) then
|
|
textentry.MyObject.currenttext = texto
|
|
if (textentry.MyObject.func) then
|
|
textentry.MyObject.func (textentry.MyObject.param1, textentry.MyObject.param2, texto, textentry, nil)
|
|
end
|
|
else
|
|
textentry:SetText ("")
|
|
textentry.MyObject.currenttext = ""
|
|
end
|
|
else
|
|
textentry.focuslost = false
|
|
end
|
|
|
|
textentry.MyObject.label:SetTextColor (.8, .8, .8, 1)
|
|
|
|
end
|
|
end
|
|
|
|
local OnEditFocusGained = function (textentry)
|
|
|
|
local capsule = textentry.MyObject
|
|
|
|
local kill = capsule:RunHooksForWidget ("OnEditFocusGained", textentry, capsule)
|
|
if (kill) then
|
|
return
|
|
end
|
|
|
|
textentry.MyObject.label:SetTextColor (1, 1, 1, 1)
|
|
end
|
|
|
|
local OnChar = function (textentry, char)
|
|
local capsule = textentry.MyObject
|
|
|
|
local kill = capsule:RunHooksForWidget ("OnChar", textentry, char, capsule)
|
|
if (kill) then
|
|
return
|
|
end
|
|
end
|
|
|
|
local OnTextChanged = function (textentry, byUser)
|
|
local capsule = textentry.MyObject
|
|
|
|
local kill = capsule:RunHooksForWidget ("OnTextChanged", textentry, byUser, capsule)
|
|
if (kill) then
|
|
return
|
|
end
|
|
end
|
|
|
|
local OnTabPressed = function (textentry)
|
|
|
|
local capsule = textentry.MyObject
|
|
|
|
local kill = capsule:RunHooksForWidget ("OnTabPressed", textentry, byUser, capsule)
|
|
if (kill) then
|
|
return
|
|
end
|
|
|
|
if (textentry.MyObject.next) then
|
|
OnEnterPressed (textentry, false)
|
|
textentry.MyObject.next:SetFocus()
|
|
end
|
|
end
|
|
|
|
function TextEntryMetaFunctions:PressEnter (byScript)
|
|
OnEnterPressed (self.editbox, byScript)
|
|
end
|
|
|
|
------------------------------------------------------------------------------------------------------------
|
|
|
|
function TextEntryMetaFunctions:SetTemplate (template)
|
|
if (template.width) then
|
|
self.editbox:SetWidth (template.width)
|
|
end
|
|
if (template.height) then
|
|
self.editbox:SetHeight (template.height)
|
|
end
|
|
|
|
if (template.backdrop) then
|
|
self.editbox:SetBackdrop (template.backdrop)
|
|
end
|
|
if (template.backdropcolor) then
|
|
local r, g, b, a = DF:ParseColors (template.backdropcolor)
|
|
self.editbox:SetBackdropColor (r, g, b, a)
|
|
self.onleave_backdrop = {r, g, b, a}
|
|
end
|
|
if (template.backdropbordercolor) then
|
|
local r, g, b, a = DF:ParseColors (template.backdropbordercolor)
|
|
self.editbox:SetBackdropBorderColor (r, g, b, a)
|
|
self.editbox.current_bordercolor[1] = r
|
|
self.editbox.current_bordercolor[2] = g
|
|
self.editbox.current_bordercolor[3] = b
|
|
self.editbox.current_bordercolor[4] = a
|
|
self.onleave_backdrop_border_color = {r, g, b, a}
|
|
end
|
|
end
|
|
|
|
------------------------------------------------------------------------------------------------------------
|
|
--> object constructor
|
|
|
|
function DF:CreateTextEntry (parent, func, w, h, member, name, with_label, entry_template, label_template)
|
|
return DF:NewTextEntry (parent, parent, name, member, w, h, func, nil, nil, nil, with_label, entry_template, label_template)
|
|
end
|
|
|
|
function DF:NewTextEntry (parent, container, name, member, w, h, func, param1, param2, space, with_label, entry_template, label_template)
|
|
|
|
if (not name) then
|
|
name = "DetailsFrameworkTextEntryNumber" .. DF.TextEntryCounter
|
|
DF.TextEntryCounter = DF.TextEntryCounter + 1
|
|
|
|
elseif (not parent) then
|
|
return error ("Details! FrameWork: parent not found.", 2)
|
|
end
|
|
|
|
if (not container) then
|
|
container = parent
|
|
end
|
|
|
|
if (name:find ("$parent")) then
|
|
local parentName = DF.GetParentName (parent)
|
|
name = name:gsub ("$parent", parentName)
|
|
end
|
|
|
|
local TextEntryObject = {type = "textentry", dframework = true}
|
|
|
|
if (member) then
|
|
parent [member] = TextEntryObject
|
|
end
|
|
|
|
if (parent.dframework) then
|
|
parent = parent.widget
|
|
end
|
|
if (container.dframework) then
|
|
container = container.widget
|
|
end
|
|
|
|
--> default members:
|
|
--> hooks
|
|
TextEntryObject.OnEnterHook = nil
|
|
TextEntryObject.OnLeaveHook = nil
|
|
TextEntryObject.OnHideHook = nil
|
|
TextEntryObject.OnShowHook = nil
|
|
TextEntryObject.OnEnterPressedHook = nil
|
|
TextEntryObject.OnEscapePressedHook = nil
|
|
TextEntryObject.OnEditFocusGainedHook = nil
|
|
TextEntryObject.OnEditFocusLostHook = nil
|
|
TextEntryObject.OnCharHook = nil
|
|
TextEntryObject.OnTextChangedHook = nil
|
|
TextEntryObject.OnTabPressedHook = nil
|
|
|
|
--> misc
|
|
TextEntryObject.container = container
|
|
TextEntryObject.have_tooltip = nil
|
|
|
|
TextEntryObject.editbox = CreateFrame ("EditBox", name, parent,"BackdropTemplate")
|
|
TextEntryObject.editbox:SetSize (232, 20)
|
|
TextEntryObject.editbox:SetBackdrop ({bgFile = [["Interface\DialogFrame\UI-DialogBox-Background"]], tileSize = 64, tile = true, edgeFile = [[Interface\DialogFrame\UI-DialogBox-Border]], edgeSize = 10, insets = {left = 1, right = 1, top = 0, bottom = 0}})
|
|
|
|
TextEntryObject.editbox.label = TextEntryObject.editbox:CreateFontString ("$parent_Desc", "OVERLAY", "GameFontHighlightSmall")
|
|
TextEntryObject.editbox.label:SetJustifyH ("left")
|
|
TextEntryObject.editbox.label:SetPoint ("RIGHT", TextEntryObject.editbox, "LEFT", -2, 0)
|
|
|
|
TextEntryObject.widget = TextEntryObject.editbox
|
|
|
|
TextEntryObject.editbox:SetTextInsets (3, 0, 0, -3)
|
|
|
|
if (not APITextEntryFunctions) then
|
|
APITextEntryFunctions = true
|
|
local idx = getmetatable (TextEntryObject.editbox).__index
|
|
for funcName, funcAddress in pairs (idx) do
|
|
if (not TextEntryMetaFunctions [funcName]) then
|
|
TextEntryMetaFunctions [funcName] = function (object, ...)
|
|
local x = loadstring ( "return _G['"..object.editbox:GetName().."']:"..funcName.."(...)")
|
|
return x (...)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
TextEntryObject.editbox.MyObject = TextEntryObject
|
|
|
|
if (not w and space) then
|
|
w = space
|
|
elseif (w and space) then
|
|
if (DF.debug) then
|
|
--print ("warning: you are using width and space, try use only space for better results.")
|
|
end
|
|
end
|
|
|
|
TextEntryObject.editbox:SetWidth (w)
|
|
TextEntryObject.editbox:SetHeight (h)
|
|
|
|
TextEntryObject.editbox:SetJustifyH ("center")
|
|
TextEntryObject.editbox:EnableMouse (true)
|
|
TextEntryObject.editbox:SetText ("")
|
|
|
|
TextEntryObject.editbox:SetAutoFocus (false)
|
|
TextEntryObject.editbox:SetFontObject ("GameFontHighlightSmall")
|
|
|
|
TextEntryObject.editbox.current_bordercolor = {1, 1, 1, 0.7}
|
|
TextEntryObject.editbox:SetBackdropBorderColor (1, 1, 1, 0.7)
|
|
TextEntryObject.enabled_border_color = {TextEntryObject.editbox:GetBackdropBorderColor()}
|
|
TextEntryObject.enabled_backdrop_color = {TextEntryObject.editbox:GetBackdropColor()}
|
|
TextEntryObject.enabled_text_color = {TextEntryObject.editbox:GetTextColor()}
|
|
TextEntryObject.onleave_backdrop = {TextEntryObject.editbox:GetBackdropColor()}
|
|
TextEntryObject.onleave_backdrop_border_color = {TextEntryObject.editbox:GetBackdropBorderColor()}
|
|
|
|
TextEntryObject.func = func
|
|
TextEntryObject.param1 = param1
|
|
TextEntryObject.param2 = param2
|
|
TextEntryObject.next = nil
|
|
TextEntryObject.space = space
|
|
TextEntryObject.tab_on_enter = false
|
|
|
|
TextEntryObject.label = _G [name .. "_Desc"]
|
|
TextEntryObject.editbox:SetBackdrop ({bgFile = [[Interface\Tooltips\UI-Tooltip-Background]], tileSize = 64, edgeFile = [[Interface\Buttons\WHITE8X8]], edgeSize = 1, insets = {left = 1, right = 1, top = 1, bottom = 1}})
|
|
TextEntryObject.editbox:SetBackdropColor (.2, .2, .2, 1)
|
|
|
|
--> hooks
|
|
TextEntryObject.HookList = {
|
|
OnEnter = {},
|
|
OnLeave = {},
|
|
OnHide = {},
|
|
OnShow = {},
|
|
OnEnterPressed = {},
|
|
OnEscapePressed = {},
|
|
OnSpacePressed = {},
|
|
OnEditFocusLost = {},
|
|
OnEditFocusGained = {},
|
|
OnChar = {},
|
|
OnTextChanged = {},
|
|
OnTabPressed = {},
|
|
}
|
|
|
|
TextEntryObject.editbox:SetScript ("OnEnter", OnEnter)
|
|
TextEntryObject.editbox:SetScript ("OnLeave", OnLeave)
|
|
TextEntryObject.editbox:SetScript ("OnHide", OnHide)
|
|
TextEntryObject.editbox:SetScript ("OnShow", OnShow)
|
|
|
|
TextEntryObject.editbox:SetScript ("OnEnterPressed", OnEnterPressed)
|
|
TextEntryObject.editbox:SetScript ("OnEscapePressed", OnEscapePressed)
|
|
TextEntryObject.editbox:SetScript ("OnSpacePressed", OnSpacePressed)
|
|
TextEntryObject.editbox:SetScript ("OnEditFocusLost", OnEditFocusLost)
|
|
TextEntryObject.editbox:SetScript ("OnEditFocusGained", OnEditFocusGained)
|
|
TextEntryObject.editbox:SetScript ("OnChar", OnChar)
|
|
TextEntryObject.editbox:SetScript ("OnTextChanged", OnTextChanged)
|
|
TextEntryObject.editbox:SetScript ("OnTabPressed", OnTabPressed)
|
|
|
|
_setmetatable (TextEntryObject, TextEntryMetaFunctions)
|
|
|
|
if (with_label) then
|
|
local label = DF:CreateLabel (TextEntryObject.editbox, with_label, nil, nil, nil, "label", nil, "overlay")
|
|
label.text = with_label
|
|
TextEntryObject.editbox:SetPoint ("left", label.widget, "right", 2, 0)
|
|
if (label_template) then
|
|
label:SetTemplate (label_template)
|
|
end
|
|
with_label = label
|
|
end
|
|
|
|
if (entry_template) then
|
|
TextEntryObject:SetTemplate (entry_template)
|
|
end
|
|
|
|
return TextEntryObject, with_label
|
|
|
|
end
|
|
|
|
function DF:NewSpellEntry (parent, func, w, h, param1, param2, member, name)
|
|
local editbox = DF:NewTextEntry (parent, parent, name, member, w, h, func, param1, param2)
|
|
|
|
-- editbox:SetHook ("OnEditFocusGained", SpellEntryOnEditFocusGained)
|
|
-- editbox:SetHook ("OnTextChanged", SpellEntryOnTextChanged)
|
|
|
|
return editbox
|
|
end
|
|
|
|
local function_gettext = function (self)
|
|
return self.editbox:GetText()
|
|
end
|
|
local function_settext = function (self, text)
|
|
return self.editbox:SetText (text)
|
|
end
|
|
local function_clearfocus = function (self)
|
|
return self.editbox:ClearFocus()
|
|
end
|
|
local function_setfocus = function (self)
|
|
return self.editbox:SetFocus (true)
|
|
end
|
|
|
|
|
|
|
|
|
|
------------------------------------------------------------------------------------
|
|
--auto complete
|
|
|
|
-- block -------------------
|
|
--code author Saiket from http://www.wowinterface.com/forums/showpost.php?p=245759&postcount=6
|
|
--- @return StartPos, EndPos of highlight in this editbox.
|
|
local function GetTextHighlight ( self )
|
|
local Text, Cursor = self:GetText(), self:GetCursorPosition();
|
|
self:Insert( "" ); -- Delete selected text
|
|
local TextNew, CursorNew = self:GetText(), self:GetCursorPosition();
|
|
-- Restore previous text
|
|
self:SetText( Text );
|
|
self:SetCursorPosition( Cursor );
|
|
local Start, End = CursorNew, #Text - ( #TextNew - CursorNew );
|
|
self:HighlightText( Start, End );
|
|
return Start, End;
|
|
end
|
|
local StripColors;
|
|
do
|
|
local CursorPosition, CursorDelta;
|
|
--- Callback for gsub to remove unescaped codes.
|
|
local function StripCodeGsub ( Escapes, Code, End )
|
|
if ( #Escapes % 2 == 0 ) then -- Doesn't escape Code
|
|
if ( CursorPosition and CursorPosition >= End - 1 ) then
|
|
CursorDelta = CursorDelta - #Code;
|
|
end
|
|
return Escapes;
|
|
end
|
|
end
|
|
--- Removes a single escape sequence.
|
|
local function StripCode ( Pattern, Text, OldCursor )
|
|
CursorPosition, CursorDelta = OldCursor, 0;
|
|
return Text:gsub( Pattern, StripCodeGsub ), OldCursor and CursorPosition + CursorDelta;
|
|
end
|
|
--- Strips Text of all color escape sequences.
|
|
-- @param Cursor Optional cursor position to keep track of.
|
|
-- @return Stripped text, and the updated cursor position if Cursor was given.
|
|
function StripColors ( Text, Cursor )
|
|
Text, Cursor = StripCode( "(|*)(|c%x%x%x%x%x%x%x%x)()", Text, Cursor );
|
|
return StripCode( "(|*)(|r)()", Text, Cursor );
|
|
end
|
|
end
|
|
|
|
local COLOR_END = "|r";
|
|
--- Wraps this editbox's selected text with the given color.
|
|
local function ColorSelection ( self, ColorCode )
|
|
local Start, End = GetTextHighlight( self );
|
|
local Text, Cursor = self:GetText(), self:GetCursorPosition();
|
|
if ( Start == End ) then -- Nothing selected
|
|
--Start, End = Cursor, Cursor; -- Wrap around cursor
|
|
return; -- Wrapping the cursor in a color code and hitting backspace crashes the client!
|
|
end
|
|
-- Find active color code at the end of the selection
|
|
local ActiveColor;
|
|
if ( End < #Text ) then -- There is text to color after the selection
|
|
local ActiveEnd;
|
|
local CodeEnd, _, Escapes, Color = 0;
|
|
while ( true ) do
|
|
_, CodeEnd, Escapes, Color = Text:find( "(|*)(|c%x%x%x%x%x%x%x%x)", CodeEnd + 1 );
|
|
if ( not CodeEnd or CodeEnd > End ) then
|
|
break;
|
|
end
|
|
if ( #Escapes % 2 == 0 ) then -- Doesn't escape Code
|
|
ActiveColor, ActiveEnd = Color, CodeEnd;
|
|
end
|
|
end
|
|
|
|
if ( ActiveColor ) then
|
|
-- Check if color gets terminated before selection ends
|
|
CodeEnd = 0;
|
|
while ( true ) do
|
|
_, CodeEnd, Escapes = Text:find( "(|*)|r", CodeEnd + 1 );
|
|
if ( not CodeEnd or CodeEnd > End ) then
|
|
break;
|
|
end
|
|
if ( CodeEnd > ActiveEnd and #Escapes % 2 == 0 ) then -- Terminates ActiveColor
|
|
ActiveColor = nil;
|
|
break;
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
local Selection = Text:sub( Start + 1, End );
|
|
-- Remove color codes from the selection
|
|
local Replacement, CursorReplacement = StripColors( Selection, Cursor - Start );
|
|
|
|
self:SetText( ( "" ):join(
|
|
Text:sub( 1, Start ),
|
|
ColorCode, Replacement, COLOR_END,
|
|
ActiveColor or "", Text:sub( End + 1 )
|
|
) );
|
|
|
|
-- Restore cursor and highlight, adjusting for wrapper text
|
|
Cursor = Start + CursorReplacement;
|
|
if ( CursorReplacement > 0 ) then -- Cursor beyond start of color code
|
|
Cursor = Cursor + #ColorCode;
|
|
end
|
|
if ( CursorReplacement >= #Replacement ) then -- Cursor beyond end of color
|
|
Cursor = Cursor + #COLOR_END;
|
|
end
|
|
|
|
self:SetCursorPosition( Cursor );
|
|
-- Highlight selection and wrapper
|
|
self:HighlightText( Start, #ColorCode + ( #Replacement - #Selection ) + #COLOR_END + End );
|
|
end
|
|
-- end of the block ---------------------
|
|
|
|
local get_last_word = function (self)
|
|
self.lastword = ""
|
|
local cursor_pos = self.editbox:GetCursorPosition()
|
|
local text = self.editbox:GetText()
|
|
for i = cursor_pos, 1, -1 do
|
|
local character = text:sub (i, i)
|
|
if (character:match ("%a")) then
|
|
self.lastword = character .. self.lastword
|
|
--print (self.lastword)
|
|
else
|
|
break
|
|
end
|
|
end
|
|
end
|
|
|
|
--On Text Changed
|
|
local AutoComplete_OnTextChanged = function (editboxWidget, byUser, capsule)
|
|
capsule = capsule or editboxWidget.MyObject or editboxWidget
|
|
|
|
local chars_now = editboxWidget:GetText():len()
|
|
if (not editboxWidget.ignore_textchange) then
|
|
--> backspace
|
|
if (chars_now == capsule.characters_count -1) then
|
|
capsule.lastword = capsule.lastword:sub (1, capsule.lastword:len()-1)
|
|
--> delete lots of text
|
|
elseif (chars_now < capsule.characters_count) then
|
|
--o auto complete selecionou outra palavra bem menor e caiu nesse filtro
|
|
editboxWidget.end_selection = nil
|
|
capsule:GetLastWord()
|
|
end
|
|
else
|
|
editboxWidget.ignore_textchange = nil
|
|
end
|
|
capsule.characters_count = chars_now
|
|
end
|
|
|
|
local AutoComplete_OnSpacePressed = function (editboxWidget, capsule)
|
|
capsule = capsule or editboxWidget.MyObject or editboxWidget
|
|
|
|
-- if (not gotMatch) then
|
|
--editboxWidget.end_selection = nil
|
|
-- end
|
|
end
|
|
|
|
local AutoComplete_OnEscapePressed = function (editboxWidget)
|
|
editboxWidget.end_selection = nil
|
|
end
|
|
|
|
local AutoComplete_OnEnterPressed = function (editboxWidget)
|
|
|
|
local capsule = editboxWidget.MyObject or editboxWidget
|
|
if (editboxWidget.end_selection) then
|
|
editboxWidget:SetCursorPosition (editboxWidget.end_selection)
|
|
editboxWidget:HighlightText (0, 0)
|
|
editboxWidget.end_selection = nil
|
|
--editboxWidget:Insert (" ") --estava causando a adi��o de uma palavra a mais quando o pr�ximo catactere for um espa�o
|
|
else
|
|
if (editboxWidget:IsMultiLine()) then
|
|
editboxWidget:Insert ("\n")
|
|
--reseta a palavra se acabou de ganhar focus e apertou enter
|
|
if (editboxWidget.focusGained) then
|
|
capsule.lastword = ""
|
|
editboxWidget.focusGained = nil
|
|
end
|
|
else
|
|
editboxWidget:Insert ("")
|
|
editboxWidget.focuslost = true
|
|
editboxWidget:ClearFocus()
|
|
end
|
|
end
|
|
capsule.lastword = ""
|
|
|
|
end
|
|
|
|
local AutoComplete_OnEditFocusGained = function (editboxWidget)
|
|
local capsule = editboxWidget.MyObject or editboxWidget
|
|
capsule:GetLastWord()
|
|
--print ("last word:", editboxWidget.lastword)
|
|
editboxWidget.end_selection = nil
|
|
editboxWidget.focusGained = true
|
|
capsule.characters_count = editboxWidget:GetText():len()
|
|
end
|
|
|
|
local OptimizeAutoCompleteTable = function (self, wordList)
|
|
local optimizedTable = {}
|
|
|
|
local lower = string.lower
|
|
local sub = string.sub
|
|
local len = string.len
|
|
|
|
local subTables = 0
|
|
|
|
for i = 1, #wordList do
|
|
local thisWord = wordList [i]
|
|
if (len (thisWord) > 0) then
|
|
thisWord = lower (thisWord)
|
|
|
|
local firstCharacter = sub (thisWord, 1, 1)
|
|
|
|
local charTable = optimizedTable [firstCharacter]
|
|
if (not charTable) then
|
|
charTable = {}
|
|
optimizedTable [firstCharacter] = charTable
|
|
|
|
subTables = subTables + 1
|
|
end
|
|
|
|
charTable [#charTable+1] = thisWord
|
|
end
|
|
end
|
|
|
|
wordList.Optimized = optimizedTable
|
|
end
|
|
|
|
local AutoComplete_OnChar = function (editboxWidget, char, capsule)
|
|
if (char == "") then
|
|
return
|
|
end
|
|
|
|
capsule = capsule or editboxWidget.MyObject or editboxWidget
|
|
editboxWidget.end_selection = nil
|
|
|
|
if (editboxWidget.ignore_input) then
|
|
return
|
|
end
|
|
|
|
--reseta a palavra se acabou de ganhar focus e apertou espa�o
|
|
if (editboxWidget.focusGained and char == " ") then
|
|
capsule.lastword = ""
|
|
editboxWidget.focusGained = nil
|
|
else
|
|
editboxWidget.focusGained = nil
|
|
end
|
|
|
|
if (char:match ("%a") or (char == " " and capsule.lastword ~= "")) then
|
|
capsule.lastword = capsule.lastword .. char
|
|
else
|
|
capsule.lastword = ""
|
|
end
|
|
|
|
editboxWidget.ignore_input = true
|
|
|
|
if (capsule.lastword:len() >= 2) then
|
|
|
|
local wordList = capsule [capsule.poolName]
|
|
if (not wordList) then
|
|
error ("Details! Framework: TextEntry has AutoComplete but no word list table.")
|
|
return
|
|
end
|
|
|
|
if (capsule.ShouldOptimizeAutoComplete) then
|
|
if (not wordList.Optimized) then
|
|
OptimizeAutoCompleteTable (capsule, wordList)
|
|
end
|
|
|
|
local firstCharacter = string.lower (string.sub (capsule.lastword, 1, 1))
|
|
wordList = wordList.Optimized [firstCharacter]
|
|
|
|
if (wordList) then
|
|
for i = 1, #wordList do
|
|
local thisWord = wordList [i]
|
|
if (thisWord and (thisWord:find ("^" .. capsule.lastword) or thisWord:lower():find ("^" .. capsule.lastword))) then
|
|
local rest = thisWord:gsub (capsule.lastword, "")
|
|
rest = rest:lower():gsub (capsule.lastword, "")
|
|
local cursor_pos = editboxWidget:GetCursorPosition()
|
|
editboxWidget:Insert (rest)
|
|
editboxWidget:HighlightText (cursor_pos, cursor_pos + rest:len())
|
|
editboxWidget:SetCursorPosition (cursor_pos)
|
|
editboxWidget.end_selection = cursor_pos + rest:len()
|
|
editboxWidget.ignore_textchange = true
|
|
break
|
|
end
|
|
end
|
|
end
|
|
|
|
editboxWidget.ignore_input = false
|
|
return
|
|
end
|
|
|
|
for i = 1, #wordList do
|
|
local thisWord = wordList [i]
|
|
if (thisWord and (thisWord:find ("^" .. capsule.lastword) or thisWord:lower():find ("^" .. capsule.lastword))) then
|
|
local rest = thisWord:gsub (capsule.lastword, "")
|
|
rest = rest:lower():gsub (capsule.lastword, "")
|
|
local cursor_pos = editboxWidget:GetCursorPosition()
|
|
editboxWidget:Insert (rest)
|
|
editboxWidget:HighlightText (cursor_pos, cursor_pos + rest:len())
|
|
editboxWidget:SetCursorPosition (cursor_pos)
|
|
editboxWidget.end_selection = cursor_pos + rest:len()
|
|
editboxWidget.ignore_textchange = true
|
|
break
|
|
end
|
|
end
|
|
end
|
|
|
|
editboxWidget.ignore_input = false
|
|
end
|
|
|
|
function TextEntryMetaFunctions:SetAsAutoComplete (poolName, poolTable, shouldOptimize)
|
|
|
|
if (not self.SetHook) then
|
|
--self is borderframe
|
|
self = self.editbox
|
|
self.editbox = self --compatible with fw functions
|
|
|
|
self.lastword = ""
|
|
self.characters_count = 0
|
|
self.poolName = poolName
|
|
self.GetLastWord = get_last_word --editbox:GetLastWord()
|
|
self.NoClearFocusOnEnterPressed = true --avoid auto clear focus
|
|
self.ShouldOptimizeAutoComplete = shouldOptimize
|
|
|
|
if (poolTable) then
|
|
self [poolName] = poolTable
|
|
end
|
|
|
|
self:HookScript ("OnEditFocusGained", AutoComplete_OnEditFocusGained)
|
|
self:HookScript ("OnEnterPressed", AutoComplete_OnEnterPressed)
|
|
self:HookScript ("OnEscapePressed", AutoComplete_OnEscapePressed)
|
|
self:HookScript ("OnTextChanged", AutoComplete_OnTextChanged)
|
|
self:HookScript ("OnChar", AutoComplete_OnChar)
|
|
self:HookScript ("OnSpacePressed", AutoComplete_OnSpacePressed)
|
|
else
|
|
--fw textfield
|
|
self.lastword = ""
|
|
self.characters_count = 0
|
|
self.poolName = poolName
|
|
self.GetLastWord = get_last_word --editbox:GetLastWord()
|
|
self.NoClearFocusOnEnterPressed = true --avoid auto clear focus
|
|
self.ShouldOptimizeAutoComplete = shouldOptimize
|
|
|
|
self:SetHook ("OnEditFocusGained", AutoComplete_OnEditFocusGained)
|
|
self:SetHook ("OnEnterPressed", AutoComplete_OnEnterPressed)
|
|
self.editbox:HookScript ("OnEscapePressed", AutoComplete_OnEscapePressed)
|
|
self.editbox:SetScript ("OnTextChanged", AutoComplete_OnTextChanged)
|
|
self.editbox:SetScript ("OnChar", AutoComplete_OnChar)
|
|
self.editbox:SetScript ("OnSpacePressed", AutoComplete_OnSpacePressed)
|
|
end
|
|
|
|
end
|
|
|
|
local set_speciallua_editor_font_size = function(borderFrame, newSize)
|
|
local file, size, flags = borderFrame.editbox:GetFont()
|
|
borderFrame.editbox:SetFont (file, newSize, flags)
|
|
|
|
borderFrame.editboxlines:SetFont (file, newSize, flags)
|
|
end
|
|
|
|
function DF:NewSpecialLuaEditorEntry (parent, w, h, member, name, nointent, showLineNumbers)
|
|
|
|
if (name:find ("$parent")) then
|
|
local parentName = DF.GetParentName (parent)
|
|
name = name:gsub ("$parent", parentName)
|
|
end
|
|
|
|
local borderframe = CreateFrame ("Frame", name, parent,"BackdropTemplate")
|
|
borderframe:SetSize (w, h)
|
|
|
|
if (member) then
|
|
parent [member] = borderframe
|
|
end
|
|
|
|
local scrollframe = CreateFrame ("ScrollFrame", name, borderframe, "UIPanelScrollFrameTemplate, BackdropTemplate")
|
|
local scrollframeNumberLines = CreateFrame ("ScrollFrame", name .. "NumberLines", borderframe, "UIPanelScrollFrameTemplate, BackdropTemplate")
|
|
|
|
scrollframe.editbox = CreateFrame ("editbox", "$parentEditBox", scrollframe,"BackdropTemplate")
|
|
scrollframe.editbox:SetMultiLine (true)
|
|
scrollframe.editbox:SetAutoFocus (false)
|
|
scrollframe.editbox:SetScript ("OnCursorChanged", _G.ScrollingEdit_OnCursorChanged)
|
|
scrollframe.editbox:SetScript ("OnEscapePressed", _G.EditBox_ClearFocus)
|
|
scrollframe.editbox:SetFontObject ("GameFontHighlightSmall")
|
|
scrollframe:SetScrollChild (scrollframe.editbox)
|
|
|
|
--line number
|
|
if (showLineNumbers) then
|
|
scrollframeNumberLines.editbox = CreateFrame ("editbox", "$parentLineNumbers", scrollframeNumberLines, "BackdropTemplate")
|
|
scrollframeNumberLines.editbox:SetMultiLine (true)
|
|
scrollframeNumberLines.editbox:SetAutoFocus (false)
|
|
scrollframeNumberLines.editbox:SetEnabled (false)
|
|
scrollframeNumberLines.editbox:SetFontObject ("GameFontHighlightSmall")
|
|
scrollframeNumberLines.editbox:SetJustifyH ("left")
|
|
scrollframeNumberLines.editbox:SetJustifyV ("top")
|
|
scrollframeNumberLines.editbox:SetTextColor(.3, .3, .3, .5)
|
|
scrollframeNumberLines.editbox:SetPoint ("topleft", borderframe, "topleft", 10, -10)
|
|
scrollframeNumberLines.editbox:SetPoint ("bottomright", borderframe, "bottomright", -30, 10)
|
|
|
|
scrollframeNumberLines:SetScrollChild (scrollframeNumberLines.editbox)
|
|
scrollframeNumberLines:EnableMouseWheel (false)
|
|
|
|
for i = 1, 1000 do
|
|
scrollframeNumberLines.editbox:Insert (i .. "\n")
|
|
end
|
|
|
|
--place the lua code field 20 pixels to the right to make run to the lines scroll
|
|
scrollframe:SetPoint ("topleft", borderframe, "topleft", 30, -10)
|
|
scrollframe:SetPoint ("bottomright", borderframe, "bottomright", -10, 10)
|
|
|
|
--when the lua code field scrolls, make the lua field scroll too
|
|
scrollframe:SetScript ("OnVerticalScroll", function (self, offset)
|
|
scrollframeNumberLines:SetVerticalScroll(scrollframe:GetVerticalScroll())
|
|
scrollframeNumberLines.ScrollBar:Hide()
|
|
end)
|
|
|
|
--place the number lines scroll in the begining of the editing code space
|
|
scrollframeNumberLines:SetPoint ("topleft", borderframe, "topleft", 10, -10)
|
|
scrollframeNumberLines:SetPoint ("bottomright", borderframe, "bottomright", -10, 10)
|
|
|
|
scrollframeNumberLines.editbox:SetJustifyH ("left")
|
|
scrollframeNumberLines.editbox:SetJustifyV ("top")
|
|
|
|
scrollframeNumberLines:SetScript ("OnSizeChanged", function (self)
|
|
scrollframeNumberLines.editbox:SetSize (self:GetSize())
|
|
scrollframeNumberLines.ScrollBar:Hide()
|
|
end)
|
|
|
|
scrollframeNumberLines.ScrollBar:HookScript("OnShow", function(self)
|
|
self:Hide()
|
|
end)
|
|
|
|
borderframe.scrollnumberlines = scrollframeNumberLines
|
|
borderframe.editboxlines = scrollframeNumberLines.editbox
|
|
borderframe.editboxlines.borderframe = borderframe
|
|
|
|
scrollframeNumberLines.ScrollBar:Hide()
|
|
scrollframeNumberLines:SetBackdrop(nil)
|
|
scrollframeNumberLines.editbox:SetBackdrop(nil)
|
|
|
|
else
|
|
scrollframe:SetPoint ("topleft", borderframe, "topleft", 10, -10)
|
|
scrollframe:SetPoint ("bottomright", borderframe, "bottomright", -10, 10)
|
|
scrollframeNumberLines:SetPoint ("topleft", borderframe, "topleft", 10, -10)
|
|
scrollframeNumberLines:SetPoint ("bottomright", borderframe, "bottomright", -10, 10)
|
|
scrollframeNumberLines:Hide()
|
|
end
|
|
|
|
borderframe.SetAsAutoComplete = TextEntryMetaFunctions.SetAsAutoComplete
|
|
|
|
scrollframe:SetScript ("OnSizeChanged", function (self)
|
|
scrollframe.editbox:SetSize (self:GetSize())
|
|
end)
|
|
|
|
scrollframe.editbox:SetJustifyH ("left")
|
|
scrollframe.editbox:SetJustifyV ("top")
|
|
scrollframe.editbox:SetMaxBytes (1024000)
|
|
scrollframe.editbox:SetMaxLetters (128000)
|
|
|
|
borderframe.GetText = function_gettext
|
|
borderframe.SetText = function_settext
|
|
borderframe.ClearFocus = function_clearfocus
|
|
borderframe.SetFocus = function_setfocus
|
|
borderframe.SetTextSize = set_speciallua_editor_font_size
|
|
|
|
borderframe.Enable = TextEntryMetaFunctions.Enable
|
|
borderframe.Disable = TextEntryMetaFunctions.Disable
|
|
|
|
borderframe.SetTemplate = TextEntryMetaFunctions.SetTemplate
|
|
|
|
if (not nointent) then
|
|
IndentationLib.enable (scrollframe.editbox, nil, 4)
|
|
end
|
|
|
|
borderframe:SetBackdrop ({bgFile = [[Interface\Tooltips\UI-Tooltip-Background]], edgeFile = [[Interface\Tooltips\UI-Tooltip-Border]],
|
|
tile = 1, tileSize = 16, edgeSize = 16, insets = {left = 5, right = 5, top = 5, bottom = 5}})
|
|
|
|
scrollframe.editbox.current_bordercolor = {1, 1, 1, 0.7}
|
|
borderframe:SetBackdropBorderColor (1, 1, 1, 0.7)
|
|
borderframe:SetBackdropColor (0.090195, 0.090195, 0.188234, 1)
|
|
|
|
borderframe.enabled_border_color = {borderframe:GetBackdropBorderColor()}
|
|
borderframe.enabled_backdrop_color = {borderframe:GetBackdropColor()}
|
|
borderframe.enabled_text_color = {scrollframe.editbox:GetTextColor()}
|
|
|
|
borderframe.onleave_backdrop = {scrollframe.editbox:GetBackdropColor()}
|
|
borderframe.onleave_backdrop_border_color = {scrollframe.editbox:GetBackdropBorderColor()}
|
|
|
|
borderframe.scroll = scrollframe
|
|
borderframe.editbox = scrollframe.editbox
|
|
borderframe.editbox.borderframe = borderframe
|
|
|
|
return borderframe
|
|
end
|
|
|
|
-- encryption table
|
|
local base64chars = {[0]='A',[1]='B',[2]='C',[3]='D',[4]='E',[5]='F',[6]='G',[7]='H',[8]='I',[9]='J',[10]='K',[11]='L',[12]='M',[13]='N',[14]='O',[15]='P',[16]='Q',[17]='R',[18]='S',[19]='T',[20]='U',[21]='V',[22]='W',[23]='X',[24]='Y',[25]='Z',[26]='a',[27]='b',[28]='c',[29]='d',[30]='e',[31]='f',[32]='g',[33]='h',[34]='i',[35]='j',[36]='k',[37]='l',[38]='m',[39]='n',[40]='o',[41]='p',[42]='q',[43]='r',[44]='s',[45]='t',[46]='u',[47]='v',[48]='w',[49]='x',[50]='y',[51]='z',[52]='0',[53]='1',[54]='2',[55]='3',[56]='4',[57]='5',[58]='6',[59]='7',[60]='8',[61]='9',[62]='-',[63]='_'}
|
|
|
|
-- decryption table
|
|
local base64bytes = {['A']=0,['B']=1,['C']=2,['D']=3,['E']=4,['F']=5,['G']=6,['H']=7,['I']=8,['J']=9,['K']=10,['L']=11,['M']=12,['N']=13,['O']=14,['P']=15,['Q']=16,['R']=17,['S']=18,['T']=19,['U']=20,['V']=21,['W']=22,['X']=23,['Y']=24,['Z']=25,['a']=26,['b']=27,['c']=28,['d']=29,['e']=30,['f']=31,['g']=32,['h']=33,['i']=34,['j']=35,['k']=36,['l']=37,['m']=38,['n']=39,['o']=40,['p']=41,['q']=42,['r']=43,['s']=44,['t']=45,['u']=46,['v']=47,['w']=48,['x']=49,['y']=50,['z']=51,['0']=52,['1']=53,['2']=54,['3']=55,['4']=56,['5']=57,['6']=58,['7']=59,['8']=60,['9']=61,['-']=62,['_']=63,['=']=nil}
|
|
|
|
-- shift left
|
|
local function lsh (value,shift)
|
|
return (value*(2^shift)) % 256
|
|
end
|
|
|
|
-- shift right
|
|
local function rsh (value,shift)
|
|
return math.floor(value/2^shift) % 256
|
|
end
|
|
|
|
-- return single bit (for OR)
|
|
local function bit (x,b)
|
|
return (x % 2^b - x % 2^(b-1) > 0)
|
|
end
|
|
|
|
local function lor (x,y)
|
|
local result = 0
|
|
for p=1,8 do result = result + (((bit(x,p) or bit(y,p)) == true) and 2^(p-1) or 0) end
|
|
return result
|
|
end
|
|
|
|
function DF.EncodeString (data)
|
|
local bytes = {}
|
|
local result = ""
|
|
for spos=0,string.len(data)-1,3 do
|
|
for byte=1,3 do bytes[byte] = string.byte(string.sub(data,(spos+byte))) or 0 end
|
|
result = string.format('%s%s%s%s%s',result,base64chars[rsh(bytes[1],2)],base64chars[lor(lsh((bytes[1] % 4),4), rsh(bytes[2],4))] or "=",((#data-spos) > 1) and base64chars[lor(lsh(bytes[2] % 16,2), rsh(bytes[3],6))] or "=",((#data-spos) > 2) and base64chars[(bytes[3] % 64)] or "=")
|
|
end
|
|
return result
|
|
end
|
|
|
|
function DF.DecodeString (data)
|
|
local chars = {}
|
|
local result=""
|
|
for dpos=0,string.len(data)-1,4 do
|
|
for char=1,4 do chars[char] = base64bytes[(string.sub(data,(dpos+char),(dpos+char)) or "=")] end
|
|
result = string.format('%s%s%s%s',result,string.char(lor(lsh(chars[1],2), rsh(chars[2],4))),(chars[3] ~= nil) and string.char(lor(lsh(chars[2],4), rsh(chars[3],2))) or "",(chars[4] ~= nil) and string.char(lor(lsh(chars[3],6) % 192, (chars[4]))) or "")
|
|
end
|
|
return result
|
|
end
|
|
|
|
|
|
DF.AutoCompleteAPI = {
|
|
"local",
|
|
"AddTrackedAchievement", -- [1]
|
|
"CanShowAchievementUI", -- [2]
|
|
"ClearAchievementComparisonUnit", -- [3]
|
|
"GetAchievementCategory", -- [4]
|
|
"GetAchievementComparisonInfo", -- [5]
|
|
"GetAchievementCriteriaInfo", -- [6]
|
|
"GetAchievementInfo", -- [7]
|
|
"GetAchievementInfoFromCriteria", -- [8]
|
|
"GetAchievementLink", -- [9]
|
|
"GetAchievementNumCriteria", -- [10]
|
|
"GetAchievementNumRewards", -- [11]
|
|
"GetCategoryInfo", -- [12]
|
|
"GetCategoryList", -- [13]
|
|
"GetCategoryNumAchievements", -- [14]
|
|
"GetComparisonAchievementPoints", -- [15]
|
|
"GetComparisonCategoryNumAchievements", -- [16]
|
|
"GetComparisonStatistic", -- [17]
|
|
"GetLatestCompletedAchievements", -- [18]
|
|
"GetLatestCompletedComparisonAchievements", -- [19]
|
|
"GetLatestUpdatedComparisonStatsGetLatestUpdatedStats", -- [20]
|
|
"GetNextAchievement", -- [21]
|
|
"GetNumComparisonCompletedAchievements", -- [22]
|
|
"GetNumCompletedAchievements", -- [23]
|
|
"GetPreviousAchievement", -- [24]
|
|
"GetStatistic", -- [25]
|
|
"GetStatisticsCategoryList", -- [26]
|
|
"GetTotalAchievementPoints", -- [27]
|
|
"GetTrackedAchievements", -- [28]
|
|
"GetNumTrackedAchievements", -- [29]
|
|
"RemoveTrackedAchievement", -- [30]
|
|
"SetAchievementComparisonUnit", -- [31]
|
|
"ActionButtonDown", -- [32]
|
|
"ActionButtonUp", -- [33]
|
|
"ActionHasRange", -- [34]
|
|
"CameraOrSelectOrMoveStart", -- [35]
|
|
"CameraOrSelectOrMoveStop", -- [36]
|
|
"ChangeActionBarPage", -- [37]
|
|
"GetActionBarPage", -- [38]
|
|
"GetActionBarToggles", -- [39]
|
|
"GetActionCooldown", -- [40]
|
|
"GetActionCount", -- [41]
|
|
"GetActionInfo", -- [42]
|
|
"GetActionText", -- [43]
|
|
"GetActionTexture", -- [44]
|
|
"GetBonusBarOffset", -- [45]
|
|
"GetMouseButtonClicked", -- [46]
|
|
"GetMultiCastBarOffset", -- [47]
|
|
"GetPossessInfo", -- [48]
|
|
"HasAction", -- [49]
|
|
"IsActionInRange", -- [50]
|
|
"IsAttackAction", -- [51]
|
|
"IsAutoRepeatAction", -- [52]
|
|
"IsCurrentAction", -- [53]
|
|
"IsConsumableAction", -- [54]
|
|
"IsEquippedAction", -- [55]
|
|
"IsUsableAction", -- [56]
|
|
"PetHasActionBar", -- [57]
|
|
"PickupAction", -- [58]
|
|
"PickupPetAction", -- [59]
|
|
"PlaceAction", -- [60]
|
|
"SetActionBarToggles", -- [61]
|
|
"StopAttack", -- [62]
|
|
"TurnOrActionStart", -- [63]
|
|
"TurnOrActionStop", -- [64]
|
|
"UseAction", -- [65]
|
|
"AcceptDuel", -- [66]
|
|
"AttackTarget", -- [67]
|
|
"CancelDuel", -- [68]
|
|
"CancelLogout", -- [69]
|
|
"ClearTutorials", -- [70]
|
|
"CancelSummon", -- [71]
|
|
"ConfirmSummon", -- [72]
|
|
"DescendStop", -- [73]
|
|
"Dismount", -- [74]
|
|
"FlagTutorial", -- [75]
|
|
"ForceQuit", -- [76]
|
|
"GetPVPTimer", -- [77]
|
|
"GetSummonConfirmAreaName", -- [78]
|
|
"GetSummonConfirmSummoner", -- [79]
|
|
"GetSummonConfirmTimeLeft", -- [80]
|
|
"RandomRoll", -- [81]
|
|
"SetPVP", -- [82]
|
|
"StartDuel", -- [84]
|
|
"TogglePVP", -- [85]
|
|
"ToggleSheath", -- [86]
|
|
"UseSoulstone", -- [87]
|
|
"CanSolveArtifact", -- [89]
|
|
"UIParent", -- [90]
|
|
"GetArtifactInfoByRace", -- [91]
|
|
"GetArtifactProgress", -- [92]
|
|
"GetNumArtifactsByRace", -- [93]
|
|
"GetSelectedArtifactInfo", -- [94]
|
|
"IsArtifactCompletionHistoryAvailable", -- [95]
|
|
"ItemAddedToArtifact", -- [96]
|
|
"RemoveItemFromArtifact", -- [97]
|
|
"RequestArtifactCompletionHistory", -- [98]
|
|
"SocketItemToArtifact", -- [99]
|
|
"AcceptArenaTeam", -- [101]
|
|
"ArenaTeamInviteByName", -- [102]
|
|
"ArenaTeamSetLeaderByName", -- [103]
|
|
"ArenaTeamLeave", -- [104]
|
|
"ArenaTeamRoster", -- [105]
|
|
"ArenaTeamUninviteByName", -- [106]
|
|
"ArenaTeamDisband", -- [107]
|
|
"DeclineArenaTeam", -- [108]
|
|
"GetArenaTeam", -- [109]
|
|
"GetArenaTeamGdfInf", -- [110]
|
|
"oGetArenaTeamRosterInfo", -- [111]
|
|
"GetBattlefieldTeamInfo", -- [112]
|
|
"GetCurrentArenaSeason", -- [113]
|
|
"GetInspectArenaTeamData", -- [114]
|
|
"GetNumArenaTeamMembers", -- [115]
|
|
"GetPreviousArenaSeason", -- [116]
|
|
"IsActiveBattlefieldArena", -- [117]
|
|
"IsArenaTeamCaptain", -- [118]
|
|
"IsInArenaTeam", -- [119]
|
|
"CalculateAuctionDeposit", -- [121]
|
|
"CanCancelAuction", -- [122]
|
|
"CancelSell", -- [123]
|
|
"CanSendAuctionQuery", -- [124]
|
|
"CancelAuction", -- [125]
|
|
"ClickAuctionSellItemButton", -- [126]
|
|
"CloseAuctionHouse", -- [127]
|
|
"GetAuctionHouseDepositRate", -- [128]
|
|
"GetAuctionInvTypes", -- [129]
|
|
"GetAuctionItemClasses", -- [130]
|
|
"GetAuctionItemInfo", -- [131]
|
|
"GetAuctionItemLink", -- [132]
|
|
"GetAuctionItemSubClasses", -- [133]
|
|
"GetAuctionItemTimeLeft", -- [134]
|
|
"GetAuctionSellItemInfo", -- [135]
|
|
"GetBidderAuctionItems", -- [136]
|
|
"GetNumAuctionItems", -- [137]
|
|
"GetOwnerAuctionItems", -- [138]
|
|
"GetSelectedAuctionItem", -- [139]
|
|
"IsAuctionSortReversed", -- [140]
|
|
"PlaceAuctionBid", -- [141]
|
|
"QueryAuctionItems", -- [142]
|
|
"SetAuctionsTabShowing", -- [143]
|
|
"SetSelectedAuctionItem", -- [144]
|
|
"SortAuctionItems", -- [145]
|
|
"StartAuction", -- [146]
|
|
"BankButtonIDToInvSlotID", -- [148]
|
|
"CloseBankFrame", -- [149]
|
|
"GetBankSlotCost", -- [150]
|
|
"GetNumBankSlots", -- [151]
|
|
"PurchaseSlot", -- [152]
|
|
"AcceptAreaSpiritHeal", -- [154]
|
|
"AcceptBattlefieldPort", -- [155]
|
|
"CancelAreaSpiritHeal", -- [156]
|
|
"CanJoinBattlefieldAsGroup", -- [157]
|
|
"CheckSpiritHealerDist", -- [158]
|
|
"GetAreaSpiritHealerTime", -- [159]
|
|
"GetBattlefieldEstimatedWaitTime", -- [160]
|
|
"GetBattlefieldFlagPosition", -- [161]
|
|
"GetBattlefieldInstanceExpiration", -- [162]
|
|
"GetBattlefieldInstanceRunTime", -- [163]
|
|
"GetBattlefieldMapIconScale", -- [164]
|
|
"GetBattlefieldPortExpiration", -- [165]
|
|
"GetBattlefieldPosition", -- [166]
|
|
"GetBattlefieldScore", -- [167]
|
|
"GetBattlefieldStatData", -- [168]
|
|
"GetBattlefieldStatInfo", -- [169]
|
|
"GetBattlefieldStatus", -- [170]
|
|
"GetBattlefieldTimeWaited", -- [171]
|
|
"GetBattlefieldWinner", -- [172]
|
|
"GetBattlegroundInfo", -- [173]
|
|
"GetNumBattlefieldFlagPositions", -- [174]
|
|
"GetNumBattlefieldPositions", -- [175]
|
|
"GetNumBattlefieldScores", -- [176]
|
|
"GetNumBattlefieldStats", -- [177]
|
|
"GetNumWorldStateUI", -- [178]
|
|
"GetWintergraspWaitTime", -- [179]
|
|
"GetWorldStateUIInfo", -- [180]
|
|
"IsPVPTimerRunning", -- [181]
|
|
"JoinBattlefield", -- [182]
|
|
"LeaveBattlefield", -- [183]
|
|
"ReportPlayerIsPVPAFK", -- [184]
|
|
"RequestBattlefieldPositions", -- [185]
|
|
"RequestBattlefieldScoreData", -- [186]
|
|
"RequestBattlegroundInstanceInfo", -- [187]
|
|
"SetBattlefieldScoreFaction", -- [188]
|
|
"GetBinding", -- [190]
|
|
"GetBindingAction", -- [191]
|
|
"GetBindingKey", -- [192]
|
|
"GetBindingText", -- [193]
|
|
"GetCurrentBindingSet", -- [194]
|
|
"GetNumBindings", -- [195]
|
|
"LoadBindings", -- [196]
|
|
"RunBinding", -- [197]
|
|
"SaveBindings", -- [198]
|
|
"SetBinding", -- [199]
|
|
"SetBindingSpell", -- [200]
|
|
"SetBindingClick", -- [201]
|
|
"SetBindingItem", -- [202]
|
|
"SetBindingMacro", -- [203]
|
|
"SetConsoleKey", -- [204]
|
|
"SetOverrideBinding", -- [205]
|
|
"SetOverrideBindingSpell", -- [206]
|
|
"SetOverrideBindingClick", -- [207]
|
|
"SetOverrideBindingItem", -- [208]
|
|
"SetOverrideBindingMacro", -- [209]
|
|
"ClearOverrideBindings", -- [210]
|
|
"SetMouselookOverrideBinding", -- [211]
|
|
"IsModifierKeyDown", -- [212]
|
|
"IsModifiedClick", -- [213]
|
|
"IsMouseButtonDown", -- [214]
|
|
"CancelUnitBuff", -- [216]
|
|
"CancelShapeshiftForm", -- [217]
|
|
"CancelItemTempEnchantment", -- [218]
|
|
"GetWeaponEnchantInfo", -- [219]
|
|
"UnitAura", -- [220]
|
|
"UnitBuff", -- [221]
|
|
"UnitDebuff", -- [222]
|
|
"AddChatWindowChannel", -- [224]
|
|
"ChannelBan", -- [225]
|
|
"ChannelInvite", -- [226]
|
|
"ChannelKick", -- [227]
|
|
"ChannelModerator", -- [228]
|
|
"ChannelMute", -- [229]
|
|
"ChannelToggleAnnouncements", -- [230]
|
|
"ChannelUnban", -- [231]
|
|
"ChannelUnmoderator", -- [232]
|
|
"ChannelUnmute", -- [233]
|
|
"DisplayChannelOwner", -- [234]
|
|
"DeclineInvite", -- [235]
|
|
"EnumerateServerChannels", -- [236]
|
|
"GetChannelList", -- [237]
|
|
"GetChannelName", -- [238]
|
|
"GetChatWindowChannels", -- [239]
|
|
"JoinChannelByName", -- [240]
|
|
"LeaveChannelByName", -- [241]
|
|
"ListChannelByName", -- [242]
|
|
"ListChannels", -- [243]
|
|
"RemoveChatWindowChannel", -- [244]
|
|
"SendChatMessage", -- [245]
|
|
"SetChannelOwner", -- [246]
|
|
"SetChannelPassword", -- [247]
|
|
"AcceptResurrect", -- [249]
|
|
"AcceptXPLoss", -- [250]
|
|
"CheckBinderDist", -- [251]
|
|
"ConfirmBinder", -- [252]
|
|
"DeclineResurrect", -- [253]
|
|
"DestroyTotem", -- [254]
|
|
"GetBindLocation", -- [255]
|
|
"GetComboPoints", -- [256]
|
|
"GetCorpseRecoveryDelay", -- [257]
|
|
"GetCurrentTitle", -- [258]
|
|
"GetMirrorTimerInfo", -- [259]
|
|
"GetMirrorTimerProgress", -- [260]
|
|
"GetMoney", -- [261]
|
|
"GetNumTitles", -- [262]
|
|
"GetPlayerFacing", -- [263]
|
|
"GetPVPDesired", -- [264]
|
|
"GetReleaseTimeRemaining", -- [265]
|
|
"GetResSicknessDuration", -- [266]
|
|
"GetRestState", -- [267]
|
|
"GetRuneCooldown", -- [268]
|
|
"GetRuneCount", -- [269]
|
|
"GetRuneType", -- [270]
|
|
"GetTimeToWellRested", -- [271]
|
|
"GetTitleName", -- [272]
|
|
"GetUnitPitch", -- [273]
|
|
"GetXPExhaustion", -- [274]
|
|
"HasFullControl", -- [275]
|
|
"HasSoulstone", -- [276]
|
|
"IsFalling", -- [277]
|
|
"IsFlying", -- [278]
|
|
"IsFlyableArea", -- [279]
|
|
"IsIndoors", -- [280]
|
|
"IsMounted", -- [281]
|
|
"IsOutdoors", -- [282]
|
|
"IsOutOfBounds", -- [283]
|
|
"IsResting", -- [284]
|
|
"IsStealthed", -- [285]
|
|
"IsSwimming", -- [286]
|
|
"IsTitleKnown", -- [287]
|
|
"IsXPUserDisabled", -- [288]
|
|
"NotWhileDeadError", -- [289]
|
|
"ResurrectHasSickness", -- [290]
|
|
"ResurrectHasTimer", -- [291]
|
|
"ResurrectGetOfferer", -- [292]
|
|
"RetrieveCorpse", -- [293]
|
|
"SetCurrentTitle", -- [294]
|
|
"TargetTotem", -- [295]
|
|
"GetArmorPenetration", -- [296]
|
|
"GetAttackPowerForStat", -- [297]
|
|
"GetAverageItemLevel", -- [298]
|
|
"GetBlockChance", -- [299]
|
|
"GetCombatRating", -- [300]
|
|
"GetCombatRatingBonus", -- [301]
|
|
"GetCritChance", -- [302]
|
|
"GetCritChanceFromAgility", -- [303]
|
|
"GetDodgeChance", -- [304]
|
|
"GetExpertise", -- [305]
|
|
"GetExpertisePercent", -- [306]
|
|
"GetManaRegen", -- [307]
|
|
"GetMaxCombatRatingBonus", -- [308]
|
|
"GetParryChance", -- [309]
|
|
"GetPetSpellBonusDamage", -- [310]
|
|
"GetPowerRegen", -- [311]
|
|
"GetSpellBonusDamage", -- [312]
|
|
"GetRangedCritChance", -- [313]
|
|
"GetSpellBonusHealing", -- [314]
|
|
"GetSpellCritChance", -- [315]
|
|
"GetShieldBlock", -- [316]
|
|
"GetSpellCritChanceFromIntellect", -- [317]
|
|
"GetSpellPenetration", -- [318]
|
|
"AddChatWindowChannel", -- [319]
|
|
"ChangeChatColor", -- [320]
|
|
"ChatFrame_AddChannel", -- [321]
|
|
"ChatFrame_AddMessageEventFilter", -- [322]
|
|
"ChatFrame_GetMessageEventFilters", -- [323]
|
|
"ChatFrame_OnHyperlinkShow", -- [324]
|
|
"ChatFrame_RemoveMessageEventFilter", -- [325]
|
|
"GetAutoCompleteResults", -- [326]
|
|
"GetChatTypeIndex", -- [327]
|
|
"GetChatWindowChannels", -- [328]
|
|
"GetChatWindowInfo", -- [329]
|
|
"GetChatWindowMessages", -- [330]
|
|
"JoinChannelByName", -- [331]
|
|
"LoggingChat", -- [332]
|
|
"LoggingCombat", -- [333]
|
|
"RemoveChatWindowChannel", -- [334]
|
|
"RemoveChatWindowMessages", -- [335]
|
|
"SetChatWindowAlpha", -- [336]
|
|
"SetChatWindowColor", -- [337]
|
|
"SetChatWindowDocked", -- [338]
|
|
"SetChatWindowLocked", -- [339]
|
|
"SetChatWindowName", -- [340]
|
|
"SetChatWindowShown", -- [341]
|
|
"SetChatWindowSize", -- [342]
|
|
"SetChatWindowUninteractable", -- [343]
|
|
"DoEmote", -- [345]
|
|
"GetDefaultLanguage", -- [346]
|
|
"GetLanguageByIndex", -- [347]
|
|
"GetNumLanguages", -- [348]
|
|
"GetRegisteredAddonMessagePrefixes", -- [349]
|
|
"IsAddonMessagePrefixRegistered", -- [350]
|
|
"RegisterAddonMessagePrefix", -- [352]
|
|
"SendAddonMessage", -- [353]
|
|
"SendChatMessage", -- [354]
|
|
"CallCompanion", -- [356]
|
|
"DismissCompanion", -- [357]
|
|
"GetCompanionInfo", -- [358]
|
|
"GetNumCompanions", -- [359]
|
|
"GetCompanionCooldown", -- [360]
|
|
"PickupCompanion", -- [361]
|
|
"SummonRandomCritter", -- [362]
|
|
"ContainerIDToInventoryID", -- [364]
|
|
"GetBagName", -- [365]
|
|
"GetContainerItemCooldown", -- [366]
|
|
"GetContainerItemDurability", -- [367]
|
|
"GetContainerItemGems", -- [368]
|
|
"GetContainerItemID", -- [369]
|
|
"GetContainerItemInfo", -- [370]
|
|
"GetContainerItemLink", -- [371]
|
|
"GetContainerNumSlots", -- [372]
|
|
"GetContainerItemQuestInfo", -- [373]
|
|
"GetContainerNumFreeSlots", -- [374]
|
|
"OpenAllBags", -- [376]
|
|
"CloseAllBags", -- [377]
|
|
"PickupBagFromSlot", -- [378]
|
|
"PickupContainerItem", -- [379]
|
|
"PutItemInBackpack", -- [380]
|
|
"PutItemInBag", -- [381]
|
|
"PutKeyInKeyRing", -- [382]
|
|
"SplitContainerItem", -- [383]
|
|
"ToggleBackpack", -- [384]
|
|
"ToggleBag", -- [385]
|
|
"GetCoinText", -- [388]
|
|
"GetCoinTextureString", -- [389]
|
|
"GetCurrencyInfo", -- [390]
|
|
"GetCurrencyListSize", -- [391]
|
|
"GetCurrencyListInfo", -- [392]
|
|
"ExpandCurrencyList", -- [393]
|
|
"SetCurrencyUnused", -- [394]
|
|
"GetNumWatchedTokens", -- [395]
|
|
"GetBackpackCurrencyInfo", -- [396]
|
|
"SetCurrencyBackpack", -- [397]
|
|
"AutoEquipCursorItem", -- [399]
|
|
"ClearCursor", -- [400]
|
|
"CursorCanGoInSlot", -- [401]
|
|
"CursorHasItem", -- [402]
|
|
"CursorHasMoney", -- [403]
|
|
"CursorHasSpell", -- [404]
|
|
"DeleteCursorItem", -- [405]
|
|
"DropCursorMoney", -- [406]
|
|
"DropItemOnUnit", -- [407]
|
|
"EquipCursorItem", -- [408]
|
|
"GetCursorInfo", -- [409]
|
|
"GetCursorPosition", -- [410]
|
|
"HideRepairCursor", -- [411]
|
|
"InRepairMode", -- [412]
|
|
"PickupAction", -- [413]
|
|
"PickupBagFromSlot", -- [414]
|
|
"PickupContainerItem", -- [415]
|
|
"PickupInventoryItem", -- [416]
|
|
"PickupItem", -- [417]
|
|
"PickupMacro", -- [418]
|
|
"PickupMerchantItem", -- [419]
|
|
"PickupPetAction", -- [420]
|
|
"PickupSpell", -- [421]
|
|
"PickupStablePet", -- [422]
|
|
"PickupTradeMoney", -- [423]
|
|
"PlaceAction", -- [424]
|
|
"PutItemInBackpack", -- [425]
|
|
"PutItemInBag", -- [426]
|
|
"ResetCursor", -- [427]
|
|
"SetCursor", -- [428]
|
|
"ShowContainerSellCursor", -- [429]
|
|
"ShowInspectCursor", -- [430]
|
|
"ShowInventorySellCursor", -- [431]
|
|
"ShowMerchantSellCursor", -- [432]
|
|
"ShowRepairCursor", -- [433]
|
|
"SplitContainerItem", -- [434]
|
|
"GetWeaponEnchantInfo", -- [435]
|
|
"ReplaceEnchant", -- [436]
|
|
"ReplaceTradeEnchant", -- [437]
|
|
"BindEnchant", -- [438]
|
|
"CollapseFactionHeader", -- [439]
|
|
"CollapseAllFactionHeaders", -- [440]
|
|
"ExpandFactionHeader", -- [441]
|
|
"ExpandAllFactionHeaders", -- [442]
|
|
"FactionToggleAtWar", -- [443]
|
|
"GetFactionInfo", -- [444]
|
|
"GetNumFactions", -- [445]
|
|
"GetSelectedFaction", -- [446]
|
|
"GetWatchedFactionInfo", -- [447]
|
|
"IsFactionInactive", -- [448]
|
|
"SetFactionActive", -- [449]
|
|
"SetFactionInactive", -- [450]
|
|
"SetSelectedFaction", -- [451]
|
|
"SetWatchedFactionIndex", -- [452]
|
|
"UnitFactionGroup", -- [453]
|
|
"CreateFrame", -- [454]
|
|
"CreateFont", -- [455]
|
|
"GetFramesRegisteredForEvent", -- [456]
|
|
"GetNumFrames", -- [457]
|
|
"EnumerateFrames", -- [458]
|
|
"GetMouseFocus", -- [459]
|
|
"ToggleDropDownMenu", -- [460]
|
|
"UIFrameFadeIn", -- [461]
|
|
"UIFrameFadeOut", -- [462]
|
|
"UIFrameFlash", -- [463]
|
|
"EasyMenu", -- [464]
|
|
"AddFriend", -- [466]
|
|
"AddOrRemoveFriend", -- [467]
|
|
"GetFriendInfo", -- [468]
|
|
"SetFriendNotes", -- [469]
|
|
"GetNumFriends", -- [470]
|
|
"GetSelectedFriend", -- [471]
|
|
"RemoveFriend", -- [472]
|
|
"SetSelectedFriend", -- [473]
|
|
"ShowFriends", -- [474]
|
|
"ToggleFriendsFrame", -- [475]
|
|
"GetNumGlyphSockets", -- [477]
|
|
"GetGlyphSocketInfo", -- [478]
|
|
"GetGlyphLink", -- [479]
|
|
"GlyphMatchesSocket", -- [480]
|
|
"PlaceGlyphInSocket", -- [481]
|
|
"RemoveGlyphFromSocket", -- [482]
|
|
"SpellCanTargetGlyph", -- [483]
|
|
"CanComplainChat", -- [485]
|
|
"CanComplainInboxItem", -- [486]
|
|
"ComplainChat", -- [487]
|
|
"ComplainInboxItem", -- [488]
|
|
"CloseGossip", -- [501]
|
|
"ForceGossip", -- [502]
|
|
"GetGossipActiveQuests", -- [503]
|
|
"GetGossipAvailableQuests", -- [504]
|
|
"GetGossipOptions", -- [505]
|
|
"GetGossipText", -- [506]
|
|
"GetNumGossipActiveQuests", -- [507]
|
|
"GetNumGossipAvailableQuests", -- [508]
|
|
"GetNumGossipOptions", -- [509]
|
|
"SelectGossipActiveQuest", -- [510]
|
|
"SelectGossipAvailableQuest", -- [511]
|
|
"SelectGossipOption", -- [512]
|
|
"AcceptGroup", -- [514]
|
|
"ConfirmReadyCheck", -- [515]
|
|
"ConvertToRaid", -- [516]
|
|
"DeclineGroup", -- [517]
|
|
"DoReadyCheck", -- [518]
|
|
"GetLootMethod", -- [519]
|
|
"GetLootThreshold", -- [520]
|
|
"GetMasterLootCandidate", -- [521]
|
|
"GetNumPartyMembers", -- [522]
|
|
"GetRealNumPartyMembers", -- [523]
|
|
"GetPartyLeaderIndex", -- [524]
|
|
"GetPartyMember", -- [525]
|
|
"InviteUnit", -- [526]
|
|
"IsPartyLeader", -- [527]
|
|
"LeaveParty", -- [528]
|
|
"PromoteToLeader", -- [529]
|
|
"SetLootMethod", -- [530]
|
|
"SetLootThreshold", -- [531]
|
|
"UninviteUnit", -- [532]
|
|
"UnitInParty", -- [533]
|
|
"UnitIsPartyLeader", -- [534]
|
|
"AcceptGuild", -- [536]
|
|
"BuyGuildCharter", -- [537]
|
|
"CanEditGuildEvent", -- [538]
|
|
"CanEditGuildInfo", -- [539]
|
|
"CanEditMOTD", -- [540]
|
|
"CanEditOfficerNote", -- [541]
|
|
"CanEditPublicNote", -- [542]
|
|
"CanGuildDemote", -- [543]
|
|
"CanGuildInvite", -- [544]
|
|
"CanGuildPromote", -- [545]
|
|
"CanGuildRemove", -- [546]
|
|
"CanViewOfficerNote", -- [547]
|
|
"CloseGuildRegistrar", -- [548]
|
|
"CloseGuildRoster", -- [549]
|
|
"CloseTabardCreation", -- [550]
|
|
"DeclineGuild", -- [551]
|
|
"GetGuildCharterCost", -- [552]
|
|
"GetGuildEventInfo", -- [553]
|
|
"GetGuildInfo", -- [554]
|
|
"GetGuildInfoText", -- [555]
|
|
"GetGuildRosterInfo", -- [556]
|
|
"GetGuildRosterLastOnline", -- [557]
|
|
"GetGuildRosterMOTD", -- [558]
|
|
"GetGuildRosterSelection", -- [559]
|
|
"GetGuildRosterShowOffline", -- [560]
|
|
"GetNumGuildEvents", -- [561]
|
|
"GetNumGuildMembers", -- [562]
|
|
"GetTabardCreationCost", -- [563]
|
|
"GetTabardInfo", -- [564]
|
|
"GuildControlAddRank", -- [565]
|
|
"GuildControlDelRank", -- [566]
|
|
"GuildControlGetNumRanks", -- [567]
|
|
"GuildControlGetRankFlags", -- [568]
|
|
"GuildControlGetRankName", -- [569]
|
|
"GuildControlSaveRank", -- [570]
|
|
"GuildControlSetRank", -- [571]
|
|
"GuildControlSetRankFlag", -- [572]
|
|
"GuildDemote", -- [573]
|
|
"GuildDisband", -- [574]
|
|
"GuildInfo", -- [575]
|
|
"GuildInvite", -- [576]
|
|
"GuildLeave", -- [577]
|
|
"GuildPromote", -- [578]
|
|
"GuildRoster", -- [579]
|
|
"GuildRosterSetOfficerNote", -- [580]
|
|
"GuildRosterSetPublicNote", -- [581]
|
|
"GuildSetMOTD", -- [582]
|
|
"GuildSetLeader", -- [583]
|
|
"GuildUninvite", -- [584]
|
|
"IsGuildLeader", -- [585]
|
|
"IsInGuild", -- [586]
|
|
"QueryGuildEventLog", -- [587]
|
|
"SetGuildInfoText", -- [588]
|
|
"SetGuildRosterSelection", -- [589]
|
|
"SetGuildRosterShowOffline", -- [590]
|
|
"SortGuildRoster", -- [591]
|
|
"UnitGetGuildXP", -- [592]
|
|
"AutoStoreGuildBankItem", -- [593]
|
|
"BuyGuildBankTab", -- [594]
|
|
"CanGuildBankRepair", -- [595]
|
|
"CanWithdrawGuildBankMoney", -- [596]
|
|
"CloseGuildBankFrame", -- [597]
|
|
"DepositGuildBankMoney", -- [598]
|
|
"GetCurrentGuildBankTab", -- [599]
|
|
"GetGuildBankItemInfo", -- [600]
|
|
"GetGuildBankItemLink", -- [601]
|
|
"GetGuildBankMoney", -- [602]
|
|
"GetGuildBankMoneyTransaction", -- [603]
|
|
"GetGuildBankTabCost", -- [604]
|
|
"GetGuildBankTabInfo", -- [605]
|
|
"GetGuildBankTabPermissions", -- [606]
|
|
"GetGuildBankText", -- [607]
|
|
"GetGuildBankTransaction", -- [608]
|
|
"GetGuildTabardFileNames", -- [611]
|
|
"GetNumGuildBankMoneyTransactions", -- [612]
|
|
"GetNumGuildBankTabs", -- [613]
|
|
"GetNumGuildBankTransactions", -- [614]
|
|
"PickupGuildBankItem", -- [615]
|
|
"PickupGuildBankMoney", -- [616]
|
|
"QueryGuildBankLog", -- [617]
|
|
"QueryGuildBankTab", -- [618]
|
|
"SetCurrentGuildBankTab", -- [619]
|
|
"SetGuildBankTabInfo", -- [620]
|
|
"SetGuildBankTabPermissions", -- [621]
|
|
"SplitGuildBankItem", -- [624]
|
|
"WithdrawGuildBankMoney", -- [625]
|
|
"GetHolidayBGHonorCurrencyBonuses", -- [627]
|
|
"GetInspectHonorData", -- [628]
|
|
"GetPVPLifetimeStats", -- [629]
|
|
"GetPVPRankInfo", -- [630]
|
|
"GetPVPRankProgress", -- [631]
|
|
"GetPVPSessionStats", -- [632]
|
|
"GetPVPYesterdayStats", -- [633]
|
|
"GetRandomBGHonorCurrencyBonuses", -- [634]
|
|
"HasInspectHonorData", -- [635]
|
|
"RequestInspectHonorData", -- [636]
|
|
"UnitPVPName", -- [637]
|
|
"UnitPVPRank", -- [638]
|
|
"AddIgnore", -- [640]
|
|
"AddOrDelIgnore", -- [641]
|
|
"DelIgnore", -- [642]
|
|
"GetIgnoreName", -- [643]
|
|
"GetNumIgnores", -- [644]
|
|
"GetSelectedIgnore", -- [645]
|
|
"SetSelectedIgnore", -- [646]
|
|
"CanInspect", -- [648]
|
|
"CheckInteractDistance", -- [649]
|
|
"ClearInspectPlayer", -- [650]
|
|
"GetInspectArenaTeamData", -- [651]
|
|
"HasInspectHonorData", -- [652]
|
|
"RequestInspectHonorData", -- [653]
|
|
"GetInspectHonorData", -- [654]
|
|
"NotifyInspect", -- [655]
|
|
"InspectUnit", -- [656]
|
|
"CanShowResetInstances", -- [658]
|
|
"GetBattlefieldInstanceExpiration", -- [659]
|
|
"GetBattlefieldInstanceInfo", -- [660]
|
|
"GetBattlefieldInstanceRunTime", -- [661]
|
|
"GetInstanceBootTimeRemaining", -- [662]
|
|
"GetInstanceInfo", -- [663]
|
|
"GetNumSavedInstances", -- [664]
|
|
"GetSavedInstanceInfo", -- [665]
|
|
"IsInInstance", -- [666]
|
|
"ResetInstances", -- [667]
|
|
"GetDungeonDifficulty", -- [668]
|
|
"SetDungeonDifficulty", -- [669]
|
|
"GetInstanceDifficulty", -- [670]
|
|
"GetInstanceLockTimeRemaining", -- [671]
|
|
"GetInstanceLockTimeRemainingEncounter", -- [672]
|
|
"AutoEquipCursorItem", -- [674]
|
|
"BankButtonIDToInvSlotID", -- [675]
|
|
"CancelPendingEquip", -- [676]
|
|
"ConfirmBindOnUse", -- [677]
|
|
"ContainerIDToInventoryID", -- [678]
|
|
"CursorCanGoInSlot", -- [679]
|
|
"EquipCursorItem", -- [680]
|
|
"EquipPendingItem", -- [681]
|
|
"GetInventoryAlertStatus", -- [682]
|
|
"GetInventoryItemBroken", -- [683]
|
|
"GetInventoryItemCooldown", -- [684]
|
|
"GetInventoryItemCount", -- [685]
|
|
"GetInventoryItemDurability", -- [686]
|
|
"GetInventoryItemGems", -- [687]
|
|
"GetInventoryItemID", -- [688]
|
|
"GetInventoryItemLink", -- [689]
|
|
"GetInventoryItemQuality", -- [690]
|
|
"GetInventoryItemTexture", -- [691]
|
|
"GetInventorySlotInfo", -- [692]
|
|
"GetWeaponEnchantInfo", -- [693]
|
|
"HasWandEquipped", -- [694]
|
|
"IsInventoryItemLocked", -- [695]
|
|
"KeyRingButtonIDToInvSlotID", -- [696]
|
|
"PickupBagFromSlot", -- [697]
|
|
"PickupInventoryItem", -- [698]
|
|
"UpdateInventoryAlertStatus", -- [699]
|
|
"UseInventoryItem", -- [700]
|
|
"EquipItemByName", -- [702]
|
|
"GetAuctionItemLink", -- [703]
|
|
"GetContainerItemLink", -- [704]
|
|
"GetItemCooldown", -- [705]
|
|
"GetItemCount", -- [706]
|
|
"GetItemFamily", -- [707]
|
|
"GetItemIcon", -- [708]
|
|
"GetItemInfo", -- [709]
|
|
"GetItemQualityColor", -- [710]
|
|
"GetItemSpell", -- [711]
|
|
"GetItemStats", -- [712]
|
|
"GetMerchantItemLink", -- [713]
|
|
"GetQuestItemLink", -- [714]
|
|
"GetQuestLogItemLink", -- [715]
|
|
"GetTradePlayerItemLink", -- [716]
|
|
"GetTradeSkillItemLink", -- [717]
|
|
"GetTradeSkillReagentItemLink", -- [718]
|
|
"GetTradeTargetItemLink", -- [719]
|
|
"IsUsableItem", -- [720]
|
|
"IsConsumableItem", -- [721]
|
|
"IsCurrentItem", -- [722]
|
|
"IsEquippedItem", -- [723]
|
|
"IsEquippableItem", -- [724]
|
|
"IsEquippedItemType", -- [725]
|
|
"IsItemInRange", -- [726]
|
|
"ItemHasRange", -- [727]
|
|
"OffhandHasWeapon", -- [728]
|
|
"SplitContainerItem", -- [729]
|
|
"SetItemRef", -- [730]
|
|
"AcceptSockets", -- [731]
|
|
"ClickSocketButton", -- [732]
|
|
"CloseSocketInfo", -- [733]
|
|
"GetSocketItemInfo", -- [734]
|
|
"GetSocketItemRefundable", -- [735]
|
|
"GetSocketItemBoundTradeable", -- [736]
|
|
"GetNumSockets", -- [737]
|
|
"GetSocketTypes", -- [738]
|
|
"GetExistingSocketInfo", -- [739]
|
|
"GetExistingSocketLink", -- [740]
|
|
"GetNewSocketInfo", -- [741]
|
|
"GetNewSocketLink", -- [742]
|
|
"SocketInventoryItem", -- [743]
|
|
"SocketContainerItem", -- [744]
|
|
"CloseItemText", -- [745]
|
|
"ItemTextGetCreator", -- [746]
|
|
"ItemTextGetItem", -- [747]
|
|
"ItemTextGetMaterial", -- [748]
|
|
"ItemTextGetPage", -- [749]
|
|
"ItemTextGetText", -- [750]
|
|
"ItemTextHasNextPage", -- [751]
|
|
"ItemTextNextPage", -- [752]
|
|
"ItemTextPrevPage", -- [753]
|
|
"GetMinimapZoneText", -- [755]
|
|
"GetRealZoneText", -- [756]
|
|
"GetSubZoneText", -- [757]
|
|
"GetZonePVPInfo", -- [758]
|
|
"GetZoneText", -- [759]
|
|
"CompleteLFGRoleCheck", -- [760]
|
|
"GetLFGDeserterExpiration", -- [761]
|
|
"GetLFGRandomCooldownExpiration", -- [762]
|
|
"GetLFGBootProposal", -- [763]
|
|
"GetLFGMode", -- [764]
|
|
"GetLFGQueueStats", -- [765]
|
|
"GetLFGRoles", -- [766]
|
|
"GetLFGRoleUpdate", -- [767]
|
|
"GetLFGRoleUpdateSlot", -- [768]
|
|
"SetLFGBootVote", -- [769]
|
|
"SetLFGComment", -- [770]
|
|
"SetLFGRoles", -- [771]
|
|
"UninviteUnit", -- [772]
|
|
"UnitGroupRolesAssigned", -- [773]
|
|
"UnitHasLFGDeserter", -- [774]
|
|
"UnitHasLFGRandomCooldown", -- [775]
|
|
"CloseLoot", -- [777]
|
|
"ConfirmBindOnUse", -- [778]
|
|
"ConfirmLootRoll", -- [779]
|
|
"ConfirmLootSlot", -- [780]
|
|
"GetLootMethod", -- [781]
|
|
"GetLootRollItemInfo", -- [782]
|
|
"GetLootRollItemLink", -- [783]
|
|
"GetLootRollTimeLeft", -- [784]
|
|
"GetLootSlotInfo", -- [785]
|
|
"GetLootSlotLink", -- [786]
|
|
"GetLootThreshold", -- [787]
|
|
"GetMasterLootCandidate", -- [788]
|
|
"GetNumLootItems", -- [789]
|
|
"GetOptOutOfLoot", -- [790]
|
|
"GiveMasterLoot", -- [791]
|
|
"IsFishingLoot", -- [792]
|
|
"LootSlot", -- [793]
|
|
"LootSlotIsCoin", -- [794]
|
|
"LootSlotIsCurrency", -- [795]
|
|
"LootSlotIsItem", -- [796]
|
|
"RollOnLoot", -- [797]
|
|
"SetLootMethod", -- [798]
|
|
"SetLootPortrait", -- [799]
|
|
"SetLootThreshold", -- [800]
|
|
"SetOptOutOfLoot", -- [801]
|
|
"CursorHasMacro", -- [804]
|
|
"DeleteMacro", -- [805]
|
|
"GetMacroBody", -- [807]
|
|
"GetMacroIconInfo", -- [808]
|
|
"GetMacroItemIconInfo", -- [809]
|
|
"GetMacroIndexByName", -- [810]
|
|
"GetMacroInfo", -- [811]
|
|
"GetNumMacroIcons", -- [812]
|
|
"GetNumMacroItemIcons", -- [813]
|
|
"GetNumMacros", -- [814]
|
|
"PickupMacro", -- [815]
|
|
"RunMacro", -- [816]
|
|
"RunMacroText", -- [817]
|
|
"SecureCmdOptionParse", -- [818]
|
|
"StopMacro", -- [819]
|
|
"AutoLootMailItem", -- [821]
|
|
"CheckInbox", -- [822]
|
|
"ClearSendMail", -- [823]
|
|
"ClickSendMailItemButton", -- [824]
|
|
"CloseMail", -- [825]
|
|
"DeleteInboxItem", -- [826]
|
|
"GetCoinIcon", -- [827]
|
|
"GetInboxHeaderInfo", -- [828]
|
|
"GetInboxItem", -- [829]
|
|
"GetInboxItemLink", -- [830]
|
|
"GetInboxNumItems", -- [831]
|
|
"GetInboxText", -- [832]
|
|
"GetInboxInvoiceInfo", -- [833]
|
|
"GetNumPackages", -- [834]
|
|
"GetNumStationeries", -- [835]
|
|
"GetPackageInfo", -- [836]
|
|
"GetSelectedStationeryTexture", -- [837]
|
|
"GetSendMailCOD", -- [838]
|
|
"GetSendMailItem", -- [839]
|
|
"GetSendMailItemLink", -- [840]
|
|
"GetSendMailMoney", -- [841]
|
|
"GetSendMailPrice", -- [842]
|
|
"GetStationeryInfo", -- [843]
|
|
"HasNewMail", -- [844]
|
|
"InboxItemCanDelete", -- [845]
|
|
"ReturnInboxItem", -- [846]
|
|
"SelectPackage", -- [847]
|
|
"SelectStationery", -- [848]
|
|
"SendMail", -- [849]
|
|
"SetSendMailCOD", -- [850]
|
|
"SetSendMailMoney", -- [851]
|
|
"TakeInboxItem", -- [852]
|
|
"TakeInboxMoney", -- [853]
|
|
"TakeInboxTextItem", -- [854]
|
|
"ClickLandmark", -- [856]
|
|
"GetCorpseMapPosition", -- [857]
|
|
"GetCurrentMapContinent", -- [858]
|
|
"GetCurrentMapDungeonLevel", -- [859]
|
|
"GetNumDungeonMapLevels", -- [860]
|
|
"GetCurrentMapAreaID", -- [861]
|
|
"GetCurrentMapZone", -- [862]
|
|
"GetMapContinents", -- [863]
|
|
"GetMapDebugObjectInfo", -- [864]
|
|
"GetMapInfo", -- [865]
|
|
"GetMapLandmarkInfo", -- [866]
|
|
"GetMapOverlayInfo", -- [867]
|
|
"GetMapZones", -- [868]
|
|
"GetNumMapDebugObjects", -- [869]
|
|
"GetNumMapLandmarks", -- [870]
|
|
"GetNumMapOverlays", -- [871]
|
|
"GetPlayerMapPosition", -- [872]
|
|
"ProcessMapClick", -- [873]
|
|
"RequestBattlefieldPositions", -- [874]
|
|
"SetDungeonMapLevel", -- [875]
|
|
"SetMapByID", -- [876]
|
|
"SetMapToCurrentZone", -- [877]
|
|
"SetMapZoom", -- [878]
|
|
"SetupFullscreenScale", -- [879]
|
|
"UpdateMapHighlight", -- [880]
|
|
"CreateWorldMapArrowFrame", -- [881]
|
|
"UpdateWorldMapArrowFrames", -- [882]
|
|
"ShowWorldMapArrowFrame", -- [883]
|
|
"PositionWorldMapArrowFrame", -- [884]
|
|
"ZoomOut", -- [885]
|
|
"BuyMerchantItem", -- [887]
|
|
"BuybackItem", -- [888]
|
|
"CanMerchantRepair", -- [889]
|
|
"CloseMerchant", -- [890]
|
|
"GetBuybackItemInfo", -- [891]
|
|
"GetBuybackItemLink", -- [892]
|
|
"GetMerchantItemCostInfo", -- [893]
|
|
"GetMerchantItemCostItem", -- [894]
|
|
"GetMerchantItemInfo", -- [895]
|
|
"GetMerchantItemLink", -- [896]
|
|
"GetMerchantItemMaxStack", -- [897]
|
|
"GetMerchantNumItems", -- [898]
|
|
"GetRepairAllCost", -- [899]
|
|
"HideRepairCursor", -- [900]
|
|
"InRepairMode", -- [901]
|
|
"PickupMerchantItem", -- [902]
|
|
"RepairAllItems", -- [903]
|
|
"ShowMerchantSellCursor", -- [904]
|
|
"ShowRepairCursor", -- [905]
|
|
"GetNumBuybackItems", -- [906]
|
|
"CastPetAction", -- [908]
|
|
"ClosePetStables", -- [909]
|
|
"DropItemOnUnit", -- [910]
|
|
"GetPetActionCooldown", -- [911]
|
|
"GetPetActionInfo", -- [912]
|
|
"GetPetActionSlotUsable", -- [913]
|
|
"GetPetActionsUsable", -- [914]
|
|
"GetPetExperience", -- [915]
|
|
"GetPetFoodTypes", -- [916]
|
|
"GetPetHappiness", -- [917]
|
|
"GetPetIcon", -- [918]
|
|
"GetPetTimeRemaining", -- [919]
|
|
"GetStablePetFoodTypes", -- [920]
|
|
"GetStablePetInfo", -- [921]
|
|
"HasPetSpells", -- [922]
|
|
"HasPetUI", -- [923]
|
|
"PetAbandon", -- [924]
|
|
"PetAggressiveMode", -- [925]
|
|
"PetAttack", -- [926]
|
|
"IsPetAttackActive", -- [927]
|
|
"PetStopAttack", -- [928]
|
|
"PetCanBeAbandoned", -- [929]
|
|
"PetCanBeDismissed", -- [930]
|
|
"PetCanBeRenamed", -- [931]
|
|
"PetDefensiveMode", -- [932]
|
|
"PetDismiss", -- [933]
|
|
"PetFollow", -- [934]
|
|
"PetHasActionBar", -- [935]
|
|
"PetPassiveMode", -- [936]
|
|
"PetRename", -- [937]
|
|
"PetWait", -- [938]
|
|
"PickupPetAction", -- [939]
|
|
"PickupStablePet", -- [940]
|
|
"SetPetStablePaperdoll", -- [941]
|
|
"TogglePetAutocast", -- [942]
|
|
"ToggleSpellAutocast", -- [943]
|
|
"GetSpellAutocast", -- [944]
|
|
"AddQuestWatch", -- [946]
|
|
"GetActiveLevel", -- [947]
|
|
"GetActiveTitle", -- [948]
|
|
"GetAvailableLevel", -- [949]
|
|
"GetAvailableTitle", -- [950]
|
|
"GetAvailableQuestInfo", -- [951]
|
|
"GetGreetingText", -- [952]
|
|
"GetNumQuestLeaderBoards", -- [953]
|
|
"GetNumQuestWatches", -- [954]
|
|
"GetObjectiveText", -- [955]
|
|
"GetProgressText", -- [956]
|
|
"GetQuestGreenRange", -- [957]
|
|
"GetQuestIndexForWatch", -- [958]
|
|
"GetQuestLink", -- [959]
|
|
"GetQuestLogGroupNum", -- [960]
|
|
"GetQuestLogLeaderBoard", -- [961]
|
|
"GetQuestLogTitle", -- [962]
|
|
"GetQuestReward", -- [963]
|
|
"GetRewardArenaPoints", -- [964]
|
|
"GetRewardHonor", -- [965]
|
|
"GetRewardMoney", -- [966]
|
|
"GetRewardSpell", -- [967]
|
|
"GetRewardTalents", -- [968]
|
|
"GetRewardText", -- [969]
|
|
"GetRewardTitle", -- [970]
|
|
"GetRewardXP", -- [971]
|
|
"IsQuestWatched", -- [972]
|
|
"IsUnitOnQuest", -- [973]
|
|
"QuestFlagsPVP", -- [974]
|
|
"QuestGetAutoAccept", -- [975]
|
|
"RemoveQuestWatch", -- [976]
|
|
"ShiftQuestWatches", -- [977]
|
|
"SortQuestWatches", -- [978]
|
|
"QueryQuestsCompleted", -- [979]
|
|
"GetQuestsCompleted", -- [980]
|
|
"QuestIsDaily", -- [981]
|
|
"QuestIsWeekly", -- [982]
|
|
"ClearRaidMarker", -- [984]
|
|
"ConvertToRaid", -- [985]
|
|
"ConvertToParty", -- [986]
|
|
"DemoteAssistant", -- [987]
|
|
"GetAllowLowLevelRaid", -- [988]
|
|
"GetNumRaidMembers", -- [989]
|
|
"GetRealNumRaidMembers", -- [990]
|
|
"GetPartyAssignment", -- [991]
|
|
"GetPartyAssignment", -- [992]
|
|
"GetRaidRosterInfo", -- [993]
|
|
"GetRaidTargetIndex", -- [994]
|
|
"GetReadyCheckStatus", -- [995]
|
|
"InitiateRolePoll", -- [996]
|
|
"IsRaidLeader", -- [997]
|
|
"IsRaidOfficer", -- [998]
|
|
"PlaceRaidMarker", -- [999]
|
|
"PromoteToAssistant", -- [1000]
|
|
"RequestRaidInfo", -- [1001]
|
|
"SetPartyAssignment", -- [1002]
|
|
"SetAllowLowLevelRaid", -- [1003]
|
|
"SetRaidRosterSelection", -- [1004]
|
|
"SetRaidSubgroup", -- [1005]
|
|
"SwapRaidSubgroup", -- [1006]
|
|
"SetRaidTarget", -- [1007]
|
|
"UnitInRaid", -- [1008]
|
|
"LFGGetDungeonInfoByID", -- [1009]
|
|
"GetInstanceLockTimeRemainingEncounter", -- [1010]
|
|
"RefreshLFGList", -- [1011]
|
|
"SearchLFGGetEncounterResults", -- [1012]
|
|
"SearchLFGGetJoinedID", -- [1013]
|
|
"SearchLFGGetNumResults", -- [1014]
|
|
"SearchLFGGetPartyResults", -- [1015]
|
|
"SearchLFGGetResults", -- [1016]
|
|
"SearchLFGJoin", -- [1017]
|
|
"SearchLFGLeave", -- [1018]
|
|
"SearchLFGSort", -- [1019]
|
|
"SetLFGComment", -- [1020]
|
|
"ClearAllLFGDungeons", -- [1021]
|
|
"JoinLFG", -- [1022]
|
|
"LeaveLFG", -- [1023]
|
|
"RequestLFDPartyLockInfo", -- [1024]
|
|
"RequestLFDPlayerLockInfo", -- [1025]
|
|
"SetLFGDungeon", -- [1026]
|
|
"SetLFGDungeonEnabled", -- [1027]
|
|
"SetLFGHeaderCollapsed", -- [1028]
|
|
"GetAddOnCPUUsage", -- [1029]
|
|
"GetAddOnMemoryUsage", -- [1030]
|
|
"GetEventCPUUsage", -- [1031]
|
|
"GetFrameCPUUsage", -- [1032]
|
|
"GetFunctionCPUUsage", -- [1033]
|
|
"GetScriptCPUUsage", -- [1034]
|
|
"ResetCPUUsage", -- [1035]
|
|
"UpdateAddOnCPUUsage", -- [1036]
|
|
"UpdateAddOnMemoryUsage", -- [1037]
|
|
"issecure", -- [1038]
|
|
"forceinsecure", -- [1039]
|
|
"issecurevariable", -- [1040]
|
|
"securecall", -- [1041]
|
|
"hooksecurefunc", -- [1042]
|
|
"InCombatLockdown", -- [1043]
|
|
"CombatTextSetActiveUnit", -- [1046]
|
|
"DownloadSettings", -- [1047]
|
|
"GetCVar", -- [1048]
|
|
"GetCVarDefault", -- [1049]
|
|
"GetCVarBool", -- [1050]
|
|
"GetCVarInfo", -- [1051]
|
|
"GetCurrentMultisampleFormat", -- [1052]
|
|
"GetCurrentResolution", -- [1053]
|
|
"GetGamma", -- [1054]
|
|
"GetMultisampleFormats", -- [1055]
|
|
"GetRefreshRates", -- [1056]
|
|
"GetScreenResolutions", -- [1057]
|
|
"GetVideoCaps", -- [1058]
|
|
"IsThreatWarningEnabled", -- [1059]
|
|
"RegisterCVar", -- [1060]
|
|
"ResetPerformanceValues", -- [1061]
|
|
"ResetTutorials", -- [1062]
|
|
"SetCVar", -- [1063]
|
|
"SetEuropeanNumbers", -- [1064]
|
|
"SetGamma", -- [1065]
|
|
"SetLayoutMode", -- [1066]
|
|
"SetMultisampleFormat", -- [1067]
|
|
"SetScreenResolution", -- [1068]
|
|
"ShowCloak", -- [1069]
|
|
"ShowHelm", -- [1070]
|
|
"ShowNumericThreat", -- [1071]
|
|
"ShowingCloak", -- [1072]
|
|
"ShowingHelm", -- [1073]
|
|
"UploadSettings", -- [1074]
|
|
"AbandonSkill", -- [1076]
|
|
"CastShapeshiftForm", -- [1078]
|
|
"CastSpell", -- [1079]
|
|
"CastSpellByName", -- [1080]
|
|
"GetMultiCastTotemSpells", -- [1081]
|
|
"GetNumShapeshiftForms", -- [1082]
|
|
"GetNumSpellTabs", -- [1083]
|
|
"GetShapeshiftForm", -- [1084]
|
|
"GetShapeshiftFormCooldown", -- [1085]
|
|
"GetShapeshiftFormInfo", -- [1086]
|
|
"GetSpellAutocast", -- [1087]
|
|
"GetSpellBookItemInfo", -- [1088]
|
|
"GetSpellBookItemName", -- [1089]
|
|
"GetSpellCooldown", -- [1090]
|
|
"GetSpellDescription", -- [1091]
|
|
"GetSpellInfo", -- [1092]
|
|
"GetSpellLink", -- [1093]
|
|
"GetSpellTabInfo", -- [1094]
|
|
"GetSpellTexture", -- [1095]
|
|
"GetTotemInfo", -- [1096]
|
|
"IsAttackSpell", -- [1097]
|
|
"IsAutoRepeatSpell", -- [1098]
|
|
"IsPassiveSpell", -- [1099]
|
|
"IsSpellInRange", -- [1100]
|
|
"IsUsableSpell", -- [1101]
|
|
"PickupSpell", -- [1102]
|
|
"QueryCastSequence", -- [1103]
|
|
"SetMultiCastSpell", -- [1104]
|
|
"SpellCanTargetUnit", -- [1105]
|
|
"SpellHasRange", -- [1106]
|
|
"SpellIsTargeting", -- [1107]
|
|
"SpellStopCasting", -- [1108]
|
|
"SpellStopTargeting", -- [1109]
|
|
"SpellTargetUnit", -- [1110]
|
|
"ToggleSpellAutocast", -- [1111]
|
|
"UnitCastingInfo", -- [1112]
|
|
"UnitChannelInfo", -- [1113]
|
|
"ConsoleExec", -- [1115]
|
|
"DetectWowMouse", -- [1116]
|
|
"GetBuildInfo", -- [1117]
|
|
"geterrorhandler", -- [1118]
|
|
"GetCurrentKeyBoardFocus", -- [1119]
|
|
"GetExistingLocales", -- [1120]
|
|
"GetFramerate", -- [1121]
|
|
"GetGameTime", -- [1122]
|
|
"GetLocale", -- [1123]
|
|
"GetCursorPosition", -- [1124]
|
|
"GetNetStats", -- [1125]
|
|
"GetRealmName", -- [1126]
|
|
"GetScreenHeight", -- [1127]
|
|
"GetScreenWidth", -- [1128]
|
|
"GetText", -- [1129]
|
|
"GetTime", -- [1130]
|
|
"IsAltKeyDown", -- [1131]
|
|
"InCinematic", -- [1132]
|
|
"IsControlKeyDown", -- [1133]
|
|
"IsDebugBuild", -- [1134]
|
|
"IsDesaturateSupported", -- [1135]
|
|
"IsLeftAltKeyDown", -- [1136]
|
|
"IsLeftControlKeyDown", -- [1137]
|
|
"IsLeftShiftKeyDown", -- [1138]
|
|
"IsLinuxClient", -- [1139]
|
|
"IsLoggedIn", -- [1140]
|
|
"IsMacClient", -- [1141]
|
|
"IsRightAltKeyDown", -- [1142]
|
|
"IsRightControlKeyDown", -- [1143]
|
|
"IsRightShiftKeyDown", -- [1144]
|
|
"IsShiftKeyDown", -- [1145]
|
|
"IsStereoVideoAvailable", -- [1146]
|
|
"IsWindowsClient", -- [1147]
|
|
"OpeningCinematic", -- [1148]
|
|
"PlayMusic", -- [1149]
|
|
"PlaySound", -- [1150]
|
|
"PlaySoundFile", -- [1151]
|
|
"ReloadUI", -- [1152]
|
|
"RepopMe", -- [1153]
|
|
"RequestTimePlayed", -- [1154]
|
|
"RestartGx", -- [1155]
|
|
"RunScript", -- [1156]
|
|
"Screenshot", -- [1157]
|
|
"SetAutoDeclineGuildInvites", -- [1158]
|
|
"seterrorhandler", -- [1159]
|
|
"StopCinematic", -- [1160]
|
|
"StopMusic", -- [1161]
|
|
"UIParentLoadAddOn", -- [1162]
|
|
"TakeScreenshot", -- [1163]
|
|
"BuyTrainerService", -- [1168]
|
|
"CheckTalentMasterDist", -- [1169]
|
|
"ConfirmTalentWipe", -- [1170]
|
|
"GetActiveTalentGroup", -- [1171]
|
|
"GetNumTalentTabs", -- [1172]
|
|
"GetNumTalents", -- [1173]
|
|
"GetTalentInfo", -- [1174]
|
|
"GetTalentLink", -- [1175]
|
|
"GetTalentPrereqs", -- [1176]
|
|
"GetTalentTabInfo", -- [1177]
|
|
"LearnTalent", -- [1178]
|
|
"SetActiveTalentGroup", -- [1179]
|
|
"GetNumTalentGroups", -- [1180]
|
|
"GetActiveTalentGroup", -- [1181]
|
|
"AddPreviewTalentPoints", -- [1182]
|
|
"GetGroupPreviewTalentPointsSpent", -- [1183]
|
|
"GetPreviewTalentPointsSpent", -- [1184]
|
|
"GetUnspentTalentPoints", -- [1185]
|
|
"LearnPreviewTalents", -- [1186]
|
|
"ResetGroupPreviewTalentPoints", -- [1187]
|
|
"ResetPreviewTalentPoints", -- [1188]
|
|
"AssistUnit", -- [1190]
|
|
"AttackTarget", -- [1191]
|
|
"ClearTarget", -- [1192]
|
|
"ClickTargetTradeButton", -- [1193]
|
|
"TargetLastEnemy", -- [1194]
|
|
"TargetLastTarget", -- [1195]
|
|
"TargetNearestEnemy", -- [1196]
|
|
"TargetNearestEnemyPlayer", -- [1197]
|
|
"TargetNearestFriend", -- [1198]
|
|
"TargetNearestFriendPlayer", -- [1199]
|
|
"TargetNearestPartyMember", -- [1200]
|
|
"TargetNearestRaidMember", -- [1201]
|
|
"TargetUnit", -- [1202]
|
|
"ToggleBackpack", -- [1204]
|
|
"ToggleBag", -- [1205]
|
|
"ToggleCharacter", -- [1206]
|
|
"ToggleFriendsFrame", -- [1207]
|
|
"ToggleSpellBook", -- [1208]
|
|
"TradeSkill", -- [1209]
|
|
"CloseTradeSkill", -- [1210]
|
|
"CollapseTradeSkillSubClass", -- [1211]
|
|
"PickupPlayerMoney", -- [1212]
|
|
"PickupTradeMoney", -- [1213]
|
|
"SetTradeMoney", -- [1214]
|
|
"ReplaceTradeEnchant", -- [1215]
|
|
"AssistUnit", -- [1217]
|
|
"CheckInteractDistance", -- [1218]
|
|
"DropItemOnUnit", -- [1219]
|
|
"FollowUnit", -- [1220]
|
|
"FocusUnit", -- [1221]
|
|
"ClearFocus", -- [1222]
|
|
"GetUnitName", -- [1223]
|
|
"GetUnitPitch", -- [1224]
|
|
"GetUnitSpeed", -- [1225]
|
|
"InviteUnit", -- [1226]
|
|
"IsUnitOnQuest", -- [1227]
|
|
"SpellCanTargetUnit", -- [1228]
|
|
"SpellTargetUnit", -- [1229]
|
|
"TargetUnit", -- [1230]
|
|
"UnitAffectingCombat", -- [1231]
|
|
"UnitArmor", -- [1232]
|
|
"UnitAttackBothHands", -- [1233]
|
|
"UnitAttackPower", -- [1234]
|
|
"UnitAttackSpeed", -- [1235]
|
|
"UnitAura", -- [1236]
|
|
"UnitBuff", -- [1237]
|
|
"UnitCanAssist", -- [1238]
|
|
"UnitCanAttack", -- [1239]
|
|
"UnitCanCooperate", -- [1240]
|
|
"UnitClass", -- [1241]
|
|
"UnitClassification", -- [1242]
|
|
"UnitCreatureFamily", -- [1243]
|
|
"UnitCreatureType", -- [1244]
|
|
"UnitDamage", -- [1245]
|
|
"UnitDebuff", -- [1246]
|
|
"UnitDefense", -- [1247]
|
|
"UnitDetailedThreatSituation", -- [1248]
|
|
"UnitExists", -- [1249]
|
|
"UnitFactionGroup", -- [1250]
|
|
"UnitGroupRolesAssigned", -- [1251]
|
|
"UnitGUID", -- [1252]
|
|
"GetPlayerInfoByGUID", -- [1253]
|
|
"UnitHasLFGDeserter", -- [1254]
|
|
"UnitHasLFGRandomCooldown", -- [1255]
|
|
"UnitHasRelicSlot", -- [1256]
|
|
"UnitHealth", -- [1257]
|
|
"UnitHealthMax", -- [1258]
|
|
"UnitInParty", -- [1259]
|
|
"UnitInRaid", -- [1260]
|
|
"UnitInBattleground", -- [1261]
|
|
"UnitIsInMyGuild", -- [1262]
|
|
"UnitInRange", -- [1263]
|
|
"UnitIsAFK", -- [1264]
|
|
"UnitIsCharmed", -- [1265]
|
|
"UnitIsConnected", -- [1266]
|
|
"UnitIsCorpse", -- [1267]
|
|
"UnitIsDead", -- [1268]
|
|
"UnitIsDeadOrGhost", -- [1269]
|
|
"UnitIsDND", -- [1270]
|
|
"UnitIsEnemy", -- [1271]
|
|
"UnitIsFeignDeath", -- [1272]
|
|
"UnitIsFriend", -- [1273]
|
|
"UnitIsGhost", -- [1274]
|
|
"UnitIsPVP", -- [1275]
|
|
"UnitIsPVPFreeForAll", -- [1276]
|
|
"UnitIsPVPSanctuary", -- [1277]
|
|
"UnitIsPartyLeader", -- [1278]
|
|
"UnitIsPlayer", -- [1279]
|
|
"UnitIsPossessed", -- [1280]
|
|
"UnitIsRaidOfficer", -- [1281]
|
|
"UnitIsSameServer", -- [1282]
|
|
"UnitIsTapped", -- [1283]
|
|
"UnitIsTappedByPlayer", -- [1284]
|
|
"UnitIsTappedByAllThreatList", -- [1285]
|
|
"UnitIsTrivial", -- [1286]
|
|
"UnitIsUnit", -- [1287]
|
|
"UnitIsVisible", -- [1288]
|
|
"UnitLevel", -- [1289]
|
|
"UnitMana", -- [1290]
|
|
"UnitManaMax", -- [1291]
|
|
"UnitName", -- [1292]
|
|
"UnitOnTaxi", -- [1293]
|
|
"UnitPlayerControlled", -- [1294]
|
|
"UnitPlayerOrPetInParty", -- [1295]
|
|
"UnitPlayerOrPetInRaid", -- [1296]
|
|
"UnitPVPName", -- [1297]
|
|
"UnitPVPRank", -- [1298]
|
|
"UnitPower", -- [1299]
|
|
"UnitPowerMax", -- [1300]
|
|
"UnitPowerType", -- [1301]
|
|
"UnitRace", -- [1302]
|
|
"UnitRangedAttack", -- [1303]
|
|
"UnitRangedAttackPower", -- [1304]
|
|
"UnitRangedDamage", -- [1305]
|
|
"UnitReaction", -- [1306]
|
|
"UnitResistance", -- [1307]
|
|
"UnitSelectionColor", -- [1308]
|
|
"UnitSex", -- [1309]
|
|
"UnitStat", -- [1310]
|
|
"UnitThreatSituation", -- [1311]
|
|
"UnitUsingVehicle", -- [1312]
|
|
"GetThreatStatusColor", -- [1313]
|
|
"UnitXP", -- [1314]
|
|
"UnitXPMax", -- [1315]
|
|
"SetPortraitTexture", -- [1316]
|
|
"SetPortraitToTexture", -- [1317]
|
|
"tinsert", -- [1318]
|
|
}
|
|
|
|
-- endp
|
|
|