Compare with Previous | Blame | View Log
--[[ Addon: Taos Group Tools Author: TProg Taonnor Created by @Taonnor ]]-- --[[ Local variables ]]-- local _logger = nil local _isActive = false local _settingsHandler = TGT_SettingsHandler local _inviteHandler = TGT_InviteHandler local _name = "TGT-GroupMenuIntegration" local _container = nil local _regroupButton = nil local _toggleButton = nil local _inputTextBox = nil --[[ Table TGT_GroupMenuIntegration ]]-- TGT_GroupMenuIntegration = {} TGT_GroupMenuIntegration.__index = TGT_GroupMenuIntegration --[[ =============== PRIVATE METHODS =============== ]]-- --[[ RegroupButton OnClicked handler ]]-- local function OnRegroupButtonOnClicked() _inviteHandler.Regroup() end --[[ SetRegroupButtonEnabled Sets regroup button enabled ]]-- local function SetRegroupButtonEnabled(isGrouped) local inviteString = _settingsHandler.SavedVariables.InviteString local isInviteStringValid = inviteString ~= nil and inviteString ~= "" _regroupButton:SetEnabled(isGrouped and isInviteStringValid) end --[[ InputTextBox OnEnter handler ]]-- local function SetToggleButtonState(isRunning) _inputTextBox:GetNamedChild("Box"):SetText(_settingsHandler.SavedVariables.InviteString) ZO_CheckButton_SetCheckState(_toggleButton, isRunning) end --[[ ToggleButton Clicked handler ]]-- local function OnToggleButtonClicked(control, checked) if (checked) then local inviteString = _settingsHandler.SavedVariables.InviteString local isInviteStringValid = inviteString ~= nil and inviteString ~= "" if (isInviteStringValid) then _inviteHandler.SetInviteString(_settingsHandler.SavedVariables.InviteString) else ZO_CheckButton_SetCheckState(_toggleButton, false) d(GetString(TGT_UI_AUTOINVITE_TEXT_ERROR)) end else _inviteHandler.StopInvite() end end --[[ InputTextBox OnEnter handler ]]-- local function OnInputTextBoxOnEnter() _settingsHandler.SetInviteString(_inputTextBox:GetNamedChild("Box"):GetText()) end --[[ CreateMenu creates additional invite menus ]]-- local function CreateMenu() -- keyboard only integration if(not ZO_GroupMenu_Keyboard) then return end -- create container _container = WINDOW_MANAGER:CreateControl("GroupInviteContainer", ZO_GroupMenu_Keyboard, CT_CONTROL) _container:ClearAnchors() _container:SetAnchor(BOTTOMLEFT, ZO_SearchingForGroup, TOPLEFT, 5, -15) _container:SetWidth(190) _container:SetHeight(95) -- create regroup button _regroupButton = CreateControlFromVirtual("$(parent)GroupInviteRegroup", _container, "ZO_DefaultButton") _regroupButton:SetText(GetString(TGT_UI_AUTOINVITE_REGROUP_BUTTON)) _regroupButton:ClearAnchors() _regroupButton:SetAnchor(TOPLEFT, _container, TOPLEFT, 0, 0) _regroupButton:SetAnchor(TOPRIGHT, _container, TOPRIGHT, 0, 0) _regroupButton:SetClickSound("Click") _regroupButton.data = { tooltipText = GetString(TGT_UI_AUTOINVITE_REGROUP_BUTTON) } _regroupButton:SetHandler("OnMouseEnter", ZO_Options_OnMouseEnter) _regroupButton:SetHandler("OnMouseExit", ZO_Options_OnMouseExit) _regroupButton:SetHandler("OnClicked", OnRegroupButtonOnClicked) -- create toggle button _toggleButton = CreateControlFromVirtual("$(parent)GroupInviteToggle", _container, "ZO_CheckButton_Text") ZO_CheckButton_SetLabelText(_toggleButton, GetString(TGT_UI_AUTOINVITE_LABEL)) ZO_CheckButton_SetToggleFunction(_toggleButton, OnToggleButtonClicked) _toggleButton:ClearAnchors() _toggleButton.label:SetAnchor(TOPLEFT, _regroupButton, BOTTOMLEFT, 0, 10) _toggleButton:SetAnchor(LEFT, _toggleButton.label, RIGHT, -40, 0) -- create input textbox _inputTextBox = CreateControlFromVirtual("$(parent)GroupInviteInput", _container, "GroupInviteEditBox") _inputTextBox:GetNamedChild("Box"):SetHandler("OnEnter", OnInputTextBoxOnEnter) _inputTextBox:GetNamedChild("Box"):SetMaxInputChars(250) _inputTextBox:ClearAnchors() _inputTextBox:SetAnchor(BOTTOMLEFT, _container, BOTTOMLEFT, 0, 0) _inputTextBox:SetAnchor(BOTTOMRIGHT, _container, BOTTOMRIGHT, 0, 0) SetRegroupButtonEnabled(GetIsUnitGrouped()) SetToggleButtonState(_inviteHandler.IsRunning) _container:SetHidden(true) end --[[ SetControlActive sets hidden on control ]]-- local function SetControlActive() -- Get isActive from settings local isActive = _settingsHandler.SavedVariables.IsGroupInviteEnabled if (_isActive ~= isActive) then _isActive = isActive if (isActive) then _container:SetHidden(false) CALLBACK_MANAGER:RegisterCallback(TGT_GROUP_INVITE_RUNNING_CHANGED, SetToggleButtonState) CALLBACK_MANAGER:RegisterCallback(TAO_UNIT_GROUPED_CHANGED, SetRegroupButtonEnabled) else _container:SetHidden(true) CALLBACK_MANAGER:UnregisterCallback(TGT_GROUP_INVITE_RUNNING_CHANGED, SetToggleButtonState) CALLBACK_MANAGER:UnregisterCallback(TAO_UNIT_GROUPED_CHANGED, SetRegroupButtonEnabled) end end end --[[ ============== PUBLIC METHODS ============== ]]-- --[[ Initialize initializes TGT_GroupMenuIntegration ]]-- function TGT_GroupMenuIntegration.Initialize() _logger = TGT_LOGGER CreateMenu() SetControlActive() _logger:logTrace("TGT_GroupMenuIntegration -> Initialized") end