Example In Lua:
Lua Code:
local savedVariables --local reference for saved variables, actual object will be assigned later in EVENT_ADD_ON_LOADED event handler
local defaults = { --default values for saved variables
offsetX = 200,
offsetY = 200,
}
--event handler for OnMoveStop
local function OnMoveStop(self)
savedVariables.offsetX = self:GetLeft()
savedVariables.offsetY = self:GetTop()
end
--event handler for EVENT_ADD_ON_LOADED
local function OnAddonLoaded(event, addonName)
if addonName == "YourAddon" then --addonName is in general name of your addon manifext without .txt extension
EVENT_MANAGER:UnregisterForEvent("myUniqueEventHandlerName", EVENT_ADD_ON_LOADED)
--saved variables (in this case account wide)
savedVariables = ZO_SavedVars:NewAccountWide("savedVariablesNameDefinedInAddonManifest", 1, "namespace", defaults)
--create top level window, so we have something to work with
local tlw = WINDOW_MANAGER:CreateTopLevelWindow()
tlw:SetDimensions(128,128)
tlw:SetMouseEnabled(true) --enable mouse events for this window, so it will handle mouse clicks, drags etc.
tlw:SetClampedToScreen(true) --make sure that you can't drag window off the screen
tlw:SetAnchor(TOPLEFT, GuiRoot, TOPLEFT, savedVariables.offsetX, savedVariables.offsetY) --restore window position from saved variables
tlw:SetHandler("OnMoveStop", OnMoveStop) --set handler to event "OnMoveStop", it means when you stop moving the window
tlw:SetHidden(false) --set window visible
local texture = WINDOW_MANAGER:CreateControl(nil, tlw, CT_TEXTURE) --texture, so there will be something visible
texture:SetTexture("/esoui/art/icons/poi/poi_groupboss_complete.dds")
texture:SetAnchorFill(tlw)
end
end
EVENT_MANAGER:RegisterForEvent("myUniqueEventHandlerName", EVENT_ADD_ON_LOADED, OnAddonLoaded)