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.

33 lines
953 B

if not WeakAuras.IsLibsOK() then return end
local Type, Version = "WeakAurasInput", 2
local AceGUI = LibStub and LibStub("AceGUI-3.0", true)
if not AceGUI or (AceGUI:GetWidgetVersion(Type) or 0) >= Version then return end
local eventCallbacks = {
OnEditFocusGained = "OnEditFocusGained",
OnEditFocusLost = "OnEditFocusLost",
OnEnterPressed = "OnEnterPressed",
OnShow = "OnShow"
}
local function EventHandler(frame, event)
local self = frame.obj
local option = self.userdata.option
if option and option.callbacks and option.callbacks[event] then
option.callbacks[event](self)
end
end
local function Constructor()
local widget = AceGUI:Create("EditBox")
widget.type = Type
for event, callback in pairs(eventCallbacks) do
widget.editbox:HookScript(event, function(frame) EventHandler(frame, callback) end)
end
return widget
end
AceGUI:RegisterWidgetType(Type, Constructor, Version)