diff --git a/AutoInvite.lua b/AutoInvite.lua
index 57ec669..89ba77b 100644
--- a/AutoInvite.lua
+++ b/AutoInvite.lua
@@ -86,7 +86,6 @@ AutoInvite.offlineEvent = function(_, unitTag, connectStatus)
dbg(unitTag .. "/" .. unitName .. " has disconnected")
AutoInvite.kickTable[unitName] = GetTimeStamp()
end
- MINI_GROUP_LIST:updateSingle(name)
end
-- tick function: called every 1s
diff --git a/AutoInvite.txt b/AutoInvite.txt
index 4b24dab..ac1f710 100644
--- a/AutoInvite.txt
+++ b/AutoInvite.txt
@@ -1,6 +1,6 @@
## APIVersion: 100013
## Title: AutoInvite
-## Version: 2.2.0
+## Version: 2.2.1
## Author: Sasky, Kyoma & |c4779cesilentgecko|r
## SavedVariables: AutoInviteSettings
## OptionalDependsOn: LibAddonMenu-2.0
@@ -30,11 +30,7 @@ lua/kick.lua
lua/queue.lua
AutoInviteUI.lua
-ui/half_grouplist.lua
-ui/half_grouplist.xml
-ui/ai_enabled_fragment.lua
ui/ai_options_fragment.lua
-ui/autoinvitescene.lua
ui/bindings.xml
AutoInvite.lua
diff --git a/AutoInviteUI.lua b/AutoInviteUI.lua
index d487565..ff46bda 100644
--- a/AutoInviteUI.lua
+++ b/AutoInviteUI.lua
@@ -28,10 +28,26 @@ function AutoInviteUI.refresh()
ui.fragmentOptions.max:UpdateValue()
end
+function AutoInviteUI:AddGroupMenu()
+ local categories = WINDOW_MANAGER:GetControlByName("ZO_GroupMenu_KeyboardCategories" , "")
+ local divider = CreateControlFromVirtual("ZO_GroupMenu_KeyboardAUIDivider", ZO_GroupMenu_Keyboard, "ZO_DynamicHorizontalDivider")
+ divider:SetAnchor(TOPLEFT, categories, TOPRIGHT, -275, 114)
+ divider:SetDimensions(270,10)
+ divider:SetHidden(false)
+
+ local data = {
+ name = GetString(SI_AUTO_INVITE),
+ categoryFragment = AUTO_INVITE_OPTIONS_FRAGMENT,
+ normalIcon = "EsoUI/Art/Campaign/campaign_tabIcon_summary_up.dds",
+ pressedIcon = "EsoUI/Art/Campaign/campaign_tabIcon_summary_down.dds",
+ mouseoverIcon = "EsoUI/Art/Campaign/campaign_tabIcon_summary_over.dds",
+ }
+ GROUP_MENU_KEYBOARD:AddCategory(data)
+end
+
function AutoInviteUI.init()
if ui.created then return end
ui.created = true
- AutoInviteUI:CreateEnabledFragment()
AutoInviteUI:CreateOptionFragment()
- AutoInviteUI:CreateScene()
+ AutoInviteUI:AddGroupMenu()
end
diff --git a/lua/queue.lua b/lua/queue.lua
index 245c6ef..61fc55e 100644
--- a/lua/queue.lua
+++ b/lua/queue.lua
@@ -36,7 +36,6 @@ function queue:push(val)
local back = self.back
self.vals[back] = val
self.back = back + 1
- MINI_GROUP_LIST:updateSingle(val)
end
function queue:pop()
@@ -80,7 +79,6 @@ function AutoInvite:processQueue()
if self.player ~= name then
GroupInviteByName(name)
end
- MINI_GROUP_LIST:updateSingle(name)
end
AutoInvite.sentInvites = math.max(sentCount, 0)
@@ -180,8 +178,6 @@ function AutoInvite.inviteResponse(_, name, responseCode)
--TODO: Build in a retry invite for some options
AutoInvite.sentInvite[name] = nil
AutoInvite.sentInvites = math.max(AutoInvite.sentInvites - 1, 0)
-
- MINI_GROUP_LIST:updateSingle(name)
end
end
diff --git a/ui/ai_enabled_fragment.lua b/ui/ai_enabled_fragment.lua
deleted file mode 100644
index 8c56986..0000000
--- a/ui/ai_enabled_fragment.lua
+++ /dev/null
@@ -1,59 +0,0 @@
--- This file is part of AutoInvite
---
--- (C) 2014 Scott Yeskie (Sasky)
---
--- This program is free software; you can redistribute it and/or modify
--- it under the terms of the GNU General Public License as published by
--- the Free Software Foundation; either version 2 of the License, or
--- (at your option) any later version.
---
--- This program is distributed in the hope that it will be useful,
--- but WITHOUT ANY WARRANTY; without even the implied warranty of
--- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
--- GNU General Public License for more details.
---
--- You should have received a copy of the GNU General Public License
--- along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-AutoInviteUI = AutoInviteUI or {}
-AutoInviteUI.fragmentEnabled = {}
-local ui = AutoInviteUI.fragmentEnabled
-local wm = WINDOW_MANAGER
-
-function AutoInviteUI:CreateEnabledFragment()
- ui.main = wm:CreateTopLevelWindow("AutoInviteEnabledFragment")
- ui.scroll = ui.main -- For using LAM controls
- ui.main:SetHidden(true)
- -- LAMr18 bugfix
- ui.main:SetWidth(250)
- ui.panel = ui.main
- ui.panel.data = {}
- -- End LAMr18 bugfix
-
- ui.enabled = LAMCreateControl.checkbox(ui, {
- type = "checkbox",
- name = GetString(SI_AUTO_INVITE_OPT_ENABLED),
- tooltip = GetString(SI_AUTO_INVITE_TT_ENABLED),
- getFunc = function() return AutoInvite.listening end,
- setFunc = function(val)
- if val then AutoInvite.startListening() else AutoInvite.disable() end
- end
- })
- ui.enabled:SetDimensions(250, 26)
- ui.enabled:SetAnchor(TOP, ZO_GroupList, TOP, 0, 20)
-
- --TODO: Sanity check between enable and blank string
- ui.text = LAMCreateControl.editbox(ui, {
- type = "editbox",
- name = GetString(SI_AUTO_INVITE_OPT_STRING),
- tooltip = GetString(SI_AUTO_INVITE_TT_STRING),
- getFunc = function() return AutoInvite.cfg.watchStr end,
- setFunc = function(val) AutoInvite.cfg.watchStr = val end,
- --width = "half"
- })
- ui.text:SetWidth(260)
- ui.text.container:SetWidth(140)
- ui.text:SetAnchor(TOPRIGHT, ZO_GroupList, TOPRIGHT, -40, 20)
-
- AUTO_INVITE_ENABLED_FRAGMENT = ZO_FadeSceneFragment:New(ui.main)
-end
diff --git a/ui/ai_options_fragment.lua b/ui/ai_options_fragment.lua
index 785191b..ce3c7a6 100644
--- a/ui/ai_options_fragment.lua
+++ b/ui/ai_options_fragment.lua
@@ -23,19 +23,33 @@ local wm = WINDOW_MANAGER
function AutoInviteUI:CreateOptionFragment()
ui.main = wm:CreateTopLevelWindow("AutoInviteOptionsFragment")
ui.scroll = ui.main -- For using LAM controls
- ui.main:SetAnchor(TOPRIGHT, ZO_GroupList, TOPRIGHT, -40, 60)
+ ui.main:SetAnchor(TOPRIGHT, ZO_GroupList, TOPRIGHT, -100, -40)
ui.main:SetHidden(true)
-- LAMr18 bugfix
- ui.main:SetWidth(510)
+ ui.main:SetWidth(500)
ui.panel = ui.main
ui.panel.data = {}
-- End LAMr18 bugfix
- ui.refreshList = wm:CreateControlFromVirtual(nil, ui.main, "ZO_DefaultButton")
- ui.refreshList:SetAnchor(TOPRIGHT, ui.main, TOPRIGHT, -365, 5)
- ui.refreshList:SetWidth(160)
- ui.refreshList:SetText(GetString(SI_AUTO_INVITE_BTN_REFRESH))
- ui.refreshList:SetHandler("OnClicked", function() MINI_GROUP_LIST:RefreshData() end)
+ ui.enabled = LAMCreateControl.checkbox(ui, {
+ type = "checkbox",
+ name = GetString(SI_AUTO_INVITE_OPT_ENABLED),
+ tooltip = GetString(SI_AUTO_INVITE_TT_ENABLED),
+ getFunc = function() return AutoInvite.listening end,
+ setFunc = function(val)
+ if val then AutoInvite.startListening() else AutoInvite.disable() end
+ end
+ })
+ ui.enabled:SetAnchor(TOPRIGHT, ui.main, TOPRIGHT, 0, 40)
+
+ ui.text = LAMCreateControl.editbox(ui, {
+ type = "editbox",
+ name = GetString(SI_AUTO_INVITE_OPT_STRING),
+ tooltip = GetString(SI_AUTO_INVITE_TT_STRING),
+ getFunc = function() return AutoInvite.cfg.watchStr end,
+ setFunc = function(val) AutoInvite.cfg.watchStr = val end,
+ })
+ ui.text:SetAnchor(TOPRIGHT, ui.enabled, TOPRIGHT, 0, 40)
ui.max = LAMCreateControl.slider(ui, {
type = "slider",
@@ -46,9 +60,8 @@ function AutoInviteUI:CreateOptionFragment()
getFunc = function() return AutoInvite.cfg.maxSize end,
setFunc = function(val) AutoInvite.cfg.maxSize = val end,
default = 24,
- --width = "half"
})
- ui.max:SetAnchor(TOPRIGHT, ui.main, TOPRIGHT, 0, 55)
+ ui.max:SetAnchor(TOPLEFT, ui.text, BOTTOMLEFT, 0, 25)
ui.restart = LAMCreateControl.checkbox(ui, {
type = "checkbox",
@@ -56,7 +69,6 @@ function AutoInviteUI:CreateOptionFragment()
tooltip = GetString(SI_AUTO_INVITE_TT_RESTART),
getFunc = function() return AutoInvite.cfg.restart end,
setFunc = function(val) AutoInvite.cfg.restart = val end,
- --width = "half"
})
ui.restart:SetAnchor(TOPLEFT, ui.max, BOTTOMLEFT, 0, 25)
@@ -66,7 +78,6 @@ function AutoInviteUI:CreateOptionFragment()
tooltip = GetString(SI_AUTO_INVITE_TT_CYRCHECK),
getFunc = function() return AutoInvite.cfg.cyrCheck end,
setFunc = function(val) AutoInvite.cfg.cyrCheck = val end,
- --width = "half"
})
ui.cyr:SetAnchor(TOPLEFT, ui.restart, BOTTOMLEFT, 0, 25)
@@ -76,7 +87,6 @@ function AutoInviteUI:CreateOptionFragment()
tooltip = GetString(SI_AUTO_INVITE_TT_KICK),
getFunc = function() return AutoInvite.cfg.autoKick end,
setFunc = function(val) AutoInvite.cfg.autoKick = val end,
- --width = "half"
})
ui.kick:SetAnchor(TOPLEFT, ui.cyr, BOTTOMLEFT, 0, 25)
@@ -94,13 +104,13 @@ function AutoInviteUI:CreateOptionFragment()
ui.kickTime:SetAnchor(TOPLEFT, ui.kick, BOTTOMLEFT, 0, 25)
ui.regroup = wm:CreateControlFromVirtual(nil, ui.main, "ZO_DefaultButton")
- ui.regroup:SetAnchor(TOPLEFT, ui.kickTime, BOTTOMLEFT, 70, 70)
+ ui.regroup:SetAnchor(TOPLEFT, ui.kickTime, BOTTOMLEFT, 150, 50)
ui.regroup:SetWidth(160)
ui.regroup:SetText(GetString(SI_AUTO_INVITE_BTN_REFORM))
ui.regroup:SetHandler("OnClicked", function() AutoInvite:resetGroup() end)
ui.invite = wm:CreateControlFromVirtual(nil, ui.main, "ZO_DefaultButton")
- ui.invite:SetAnchor(TOPLEFT, ui.kickTime, BOTTOMLEFT, 70, 105)
+ ui.invite:SetAnchor(TOPLEFT, ui.kickTime, BOTTOMLEFT, 150, 85)
ui.invite:SetWidth(160)
ui.invite:SetText(GetString(SI_AUTO_INVITE_BTN_REINVITE))
ui.invite:SetHandler("OnClicked", function() AutoInvite:inviteGroup() end)
diff --git a/ui/autoinvitescene.lua b/ui/autoinvitescene.lua
deleted file mode 100644
index 17f3fca..0000000
--- a/ui/autoinvitescene.lua
+++ /dev/null
@@ -1,112 +0,0 @@
--- This file is part of AutoInvite
---
--- (C) 2014 Scott Yeskie (Sasky)
---
--- This program is free software; you can redistribute it and/or modify
--- it under the terms of the GNU General Public License as published by
--- the Free Software Foundation; either version 2 of the License, or
--- (at your option) any later version.
---
--- This program is distributed in the hope that it will be useful,
--- but WITHOUT ANY WARRANTY; without even the implied warranty of
--- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
--- GNU General Public License for more details.
---
--- You should have received a copy of the GNU General Public License
--- along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-AutoInviteUI = AutoInviteUI or {}
-
---local keybindStripDescriptor =
---{
--- alignment = KEYBIND_STRIP_ALIGN_CENTER,
---
--- -- Invite to Group
--- {
--- name = GetString(SI_GROUP_WINDOW_INVITE_PLAYER),
--- keybind = "UI_SHORTCUT_PRIMARY",
---
--- callback = function()
--- ZO_Dialogs_ShowDialog("GROUP_INVITE")
--- end,
---
--- visible = function()
--- --return not self.playerIsGrouped or (self.playerIsLeader and self.groupSize < GROUP_SIZE_MAX)
--- return (GetGroupSize() <= AutoInvite.cfg.maxSize)
--- end
--- },
---
--- -- Start Search
--- {
--- name = GetString(SI_GROUPING_TOOLS_PANEL_START_SEARCH),
--- keybind = "UI_SHORTCUT_SECONDARY",
---
--- callback = function()
--- AutoInvite.startListening()
--- end,
---
--- visible = function()
--- return not AutoInvite.enabled
--- end
--- },
---
--- -- Cancel Search
--- {
--- name = GetString(SI_GROUP_WINDOW_CANCEL_SEARCH),
--- keybind = "UI_SHORTCUT_NEGATIVE",
---
--- callback = function()
--- AutoInvite.disable()
--- end,
---
--- visible = function()
--- return AutoInvite.enabled
--- end
--- },
---}
---
---local function manageKeybinds(_, newState)
--- if(newState == SCENE_SHOWING) then
--- KEYBIND_STRIP:AddKeybindButtonGroup(keybindStripDescriptor)
--- elseif(newState == SCENE_HIDDEN) then
--- KEYBIND_STRIP:RemoveKeybindButtonGroup(keybindStripDescriptor)
--- end
---end
-
-function AutoInviteUI:CreateScene()
- AUTO_INVITE_SCENE = ZO_Scene:New("autoInvite", SCENE_MANAGER)
- AUTO_INVITE_SCENE:AddFragmentGroup(FRAGMENT_GROUP.MOUSE_DRIVEN_UI_WINDOW)
- AUTO_INVITE_SCENE:AddFragmentGroup(FRAGMENT_GROUP.FRAME_TARGET_STANDARD_RIGHT_PANEL)
- AUTO_INVITE_SCENE:AddFragment(RIGHT_BG_FRAGMENT)
- AUTO_INVITE_SCENE:AddFragment(DISPLAY_NAME_FRAGMENT)
- AUTO_INVITE_SCENE:AddFragment(TITLE_FRAGMENT)
- AUTO_INVITE_SCENE:AddFragment(GROUP_TITLE_FRAGMENT)
- AUTO_INVITE_SCENE:AddFragment(GROUP_MEMBERS_FRAGMENT)
- AUTO_INVITE_SCENE:AddFragment(GROUP_WINDOW_SOUNDS)
- AUTO_INVITE_SCENE:AddFragment(PLAYER_PROGRESS_BAR_FRAGMENT)
- AUTO_INVITE_SCENE:AddFragment(PLAYER_PROGRESS_BAR_CURRENT_FRAGMENT)
-
- --AutoInvite Fragments
- AUTO_INVITE_SCENE:AddFragment(AI_SMALL_GROUP_LIST_FRAGMENT)
- AUTO_INVITE_SCENE:AddFragment(AUTO_INVITE_OPTIONS_FRAGMENT)
- AUTO_INVITE_SCENE:AddFragment(AUTO_INVITE_ENABLED_FRAGMENT)
-
- local mainMenu = GetAPIVersion() <= 100012 and MAIN_MENU or MAIN_MENU_KEYBOARD
-
- local indx = #mainMenu.sceneGroupInfo.groupSceneGroup.menuBarIconData + 1
- mainMenu.sceneGroupInfo.groupSceneGroup.menuBarIconData[indx] = {
- categoryName = SI_AUTO_INVITE,
- descriptor = "autoInvite",
- normal = "EsoUI/Art/Campaign/campaign_tabIcon_summary_up.dds",
- pressed = "EsoUI/Art/Campaign/campaign_tabIcon_summary_down.dds",
- highlight = "EsoUI/Art/Campaign/campaign_tabIcon_summary_over.dds",
- }
-
- SCENE_MANAGER:GetSceneGroup("groupSceneGroup").scenes[indx] = "autoInvite"
- AUTO_INVITE_SCENE:AddFragment(ZO_FadeSceneFragment:New(mainMenu.sceneGroupBar))
-
--- AUTO_INVITE_SCENE:RegisterCallback("StateChange", manageKeybinds)
-
- --TODO: Constant for the magic number?
- mainMenu:AddRawScene("autoInvite", 6, mainMenu.categoryInfo[6], "groupSceneGroup")
-end
diff --git a/ui/half_grouplist.lua b/ui/half_grouplist.lua
deleted file mode 100644
index 6a2cb7c..0000000
--- a/ui/half_grouplist.lua
+++ /dev/null
@@ -1,288 +0,0 @@
--- This file is part of AutoInvite
---
--- (C) 2014 Scott Yeskie (Sasky)
---
--- This program is free software; you can redistribute it and/or modify
--- it under the terms of the GNU General Public License as published by
--- the Free Software Foundation; either version 2 of the License, or
--- (at your option) any later version.
---
--- This program is distributed in the hope that it will be useful,
--- but WITHOUT ANY WARRANTY; without even the implied warranty of
--- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
--- GNU General Public License for more details.
---
--- You should have received a copy of the GNU General Public License
--- along with this program. If not, see <http://www.gnu.org/licenses/>.
-local function dbg(msg) if AutoInvite.debug then d("|c999999" .. msg) end end
-local function echo(msg) CHAT_SYSTEM.primaryContainer.currentBuffer:AddMessage("|CFFFF00"..msg) end
-
-local AI_SmallGroupListing = ZO_SortFilterList:Subclass()
-local AI_GROUP_LIST_ENTRIES = {}
-
-local AI_GROUP_DATA = 1
-
---local ENTRY_SORT_KEYS =
---{
--- ["displayName"] = { },
---}
-
-local STATUS_ORDERING = setmetatable({
- ONLINE = 1,
- OFFLINE = 2,
- SENT = 3,
- QUEUE = 4,
- GROUPED = 5,
- UNKNOWN = 6,
-}, { __index = function() return 6 end })
-
-function AI_SmallGroupListing:New(control)
- local manager = ZO_SortFilterList.New(self, control)
-
- ZO_ScrollList_AddDataType(manager.list, AI_GROUP_DATA, "AI_SmallGroupListRow", 30, function(control, data) manager:SetupEntry(control, data) end)
- ZO_ScrollList_EnableHighlight(manager.list, "ZO_ThinListHighlight")
-
- manager:SetEmptyText(GetString(SI_AUTO_INVITE_NO_GROUP_MESSAGE))
- manager.emptyRow:ClearAnchors()
- manager.emptyRow:SetAnchor(TOPLEFT, manager.control, TOPLEFT, 15, 100)
- manager.emptyRow:SetWidth(300)
- manager:SetAlternateRowBackgrounds(true)
- manager:RefreshData()
-
- manager.sortHeaderGroup:SelectHeaderByKey("displayName")
-
- local function Update()
- manager:RefreshData()
- end
-
--- local function UpdateSingle(name)
--- manager:updateSingle(name)
--- end
-
- ZO_PreHook(GROUP_LIST, "FilterScrollList", function()
- dbg("Hooked FilterScrollList")
- if not hookedMasterList then
- manager:RefreshData()
- end
- end)
-
--- control:RegisterForEvent(EVENT_GROUP_MEMBER_LEFT, Update)
- control:RegisterForEvent(EVENT_GROUP_MEMBER_JOINED, Update)
--- control:RegisterForEvent(EVENT_GROUP_MEMBER_KICKED, Update)
--- control:RegisterForEvent(EVENT_GROUP_DISBANDED, Update)
--- control:RegisterForEvent(EVENT_PLAYER_ACTIVATED, Update)
-
- AI_SMALL_GROUP_LIST_FRAGMENT = ZO_FadeSceneFragment:New(AI_SmallGroupList)
-
- return manager
-end
-
-function AI_SmallGroupListing:updateSingle(name)
- dbg("Calling AI_SmallGroupListing:updateSingle()")
- --Used for sent invite, invite declined, add to queue
- --Updates that one entry then
- if AI_GROUP_LIST_ENTRIES[name] then
- AI_GROUP_LIST_ENTRIES[name]:Update()
- elseif name then
- dbg("Name " .. name .. " not found.")
- AI_GROUP_LIST_ENTRIES[name] = AI_SLG_Entry.New(name)
- end
-
- self:RefreshFilters()
-end
-
-function AI_SmallGroupListing:removeSingle(name)
- dbg("Calling AI_SmallGroupListing:updateSingle()")
- AI_GROUP_LIST_ENTRIES[name] = nil
- self:RefreshFilters()
-end
-
-function AI_SmallGroupListing:getStatus(data)
- --TODO: Make this a LUT
- local status = data.status
- if status == STATUS_ORDERING.ONLINE then
- return "|c33CC33Online"
- end
-
- if status == STATUS_ORDERING.OFFLINE then
- return "|c666666Offline"
- end
-
- if status == STATUS_ORDERING.SENT then
- return "|c999966Sent"
- end
-
- if status == STATUS_ORDERING.QUEUE then
- return "|c999999Queue"
- end
-
- if status == STATUS_ORDERING.GROUPED then
- return "|cFB2B2BGrouped"
- end
-
- return ""
-end
-
-function AI_SmallGroupListing:SetupEntry(control, data)
- ZO_SortFilterList.SetupRow(self, control, data)
-
- control.displayName = data.displayName
-
- GetControl(control, "DisplayName"):SetText(data.displayName)
- GetControl(control, "Status"):SetText(self:getStatus(data))
- --GetControl(control, "BG"):SetWidth(300)
-end
-
-function AI_SmallGroupListing.CompareMembers(listEntry1, listEntry2)
- local d1 = listEntry1.data
- local d2 = listEntry2.data
-
- if d1.status == d2.status then
- return string.lower(d1.displayName) < string.lower(d2.displayName)
- else
- return d1.status < d2.status
- end
-end
-
-local function addTestCase(name, status, arg)
- AI_GROUP_LIST_ENTRIES[name] = AI_SLG_Entry.NewDefined(name, status, arg)
-end
-
-function AI_SmallGroupListing:BuildMasterList()
- dbg("Calling AI_SmallGroupListing:BuildMasterList()")
- AI_GROUP_LIST_ENTRIES = {}
-
- for name,time in pairs(AutoInvite.sentInvite) do
- AI_GROUP_LIST_ENTRIES[name] = AI_SLG_Entry.NewDefined(name, STATUS_ORDERING.SENT, time)
- end
-
- for _,name in pairs(AutoInvite.__getQueue()) do
- AI_GROUP_LIST_ENTRIES[name] = AI_SLG_Entry.NewDefined(name, STATUS_ORDERING.QUEUE)
- end
-
- for i=1,GetGroupSize() do
- local tag = GetGroupUnitTagByIndex(i)
- local name = GetUnitName(tag)
- AI_GROUP_LIST_ENTRIES[name] = AI_SLG_Entry.New(name, tag)
- end
-
--- addTestCase("Zaniira", 1)
--- addTestCase("Ravlor", 2)
--- addTestCase("Sasky", 1)
--- addTestCase("Jinsa", 3)
--- addTestCase("Sascii", 4)
-end
-
-function AI_SmallGroupListing:FilterScrollList()
- dbg("Calling AI_SmallGroupListing:FilterScrollList()")
- -- No filtering. Copy over from master list
- local scrollData = ZO_ScrollList_GetDataList(self.list)
- ZO_ClearNumericallyIndexedTable(scrollData)
-
- for _,data in pairs(AI_GROUP_LIST_ENTRIES) do
- table.insert(scrollData, ZO_ScrollList_CreateDataEntry(AI_GROUP_DATA, data))
- end
-end
-
-function AI_SmallGroupListing:SortScrollList()
- dbg("Calling AI_SmallGroupListing:SortScrollList()")
- if(self.currentSortKey ~= nil and self.currentSortOrder ~= nil) then
- local scrollData = ZO_ScrollList_GetDataList(self.list)
- table.sort(scrollData, self.CompareMembers)
- end
-end
-
-AI_SLG_Entry = {}
-AI_SLG_Entry.__index = AI_SLG_Entry
-
---For debugging
-function AI_SLG_Entry.NewDefined(name, status, arg)
- local self = setmetatable({}, AI_SLG_Entry)
- self.status = status
- self.displayName = name
-
- if status == STATUS_ORDERING.queue then
- self.position = arg
- else
- self.time = arg
- end
-
- return self
-end
-
-function AI_SLG_Entry:Update()
- local name = self.displayName or ""
- local tag = self.unitName
-
- local grouped = IsPlayerInGroup(name) and not AutoInvite:IsPlayerInSameGroup(name)
- if grouped then
- self.status = STATUS_ORDERING.GROUPED
- return;
- end
- if GetUnitName(tag) == name then
- local offline = AutoInvite.kickTable[name]
- if IsUnitOnline(tag) then
- self.status = STATUS_ORDERING.ONLINE
- else
- self.status = STATUS_ORDERING.OFFLINE
- self.time = offline
- end
- else
- local sent = AutoInvite:IsInviteSent(name)
- if sent then
- self.status = STATUS_ORDERING.SENT
- self.time = sent
- else
- local queue = AutoInvite:IsInQueue(name)
- if queue then
- self.status = STATUS_ORDERING.QUEUE
- --self.position = queue
- else
- dbg("Unknown status for " .. name)
- AI_GROUP_LIST_ENTRIES[name] = nil
- end
- end
- end
-end
-
-function AI_SLG_Entry.New(name, tag)
- local self = setmetatable({}, AI_SLG_Entry)
- self.status = STATUS_ORDERING.UNKNOWN
- self.displayName = name
- self.unitName = tag
- self:Update()
- return self
-end
-
---Global XML Handlers
-
-
---function ZO_IgnoreListManager:IgnoreListPanelRow_OnMouseUp(control, button, upInside)
--- if(button == 2 and upInside) then
--- ClearMenu()
---
--- local data = ZO_ScrollList_GetData(control)
--- if data then
--- AddMenuItem(GetString(SI_SOCIAL_MENU_EDIT_NOTE), GetNoteEditFunction(self.control, data.displayName))
--- AddMenuItem(GetString(SI_IGNORE_MENU_REMOVE_IGNORE), function() RemoveIgnore(data.displayName) end)
---
--- self:ShowMenu(control)
--- end
--- end
---end
-
-function AI_SmallGroupListing_OnMouseEnter(control)
- MINI_GROUP_LIST:Row_OnMouseEnter(control)
-end
-
-function AI_SmallGroupListing_OnMouseExit(control)
- MINI_GROUP_LIST:Row_OnMouseExit(control)
-end
-
---function AI_SmallGroupListing_OnMouseUp(control, button, upInside)
--- MINI_GROUP_LIST:IgnoreListPanelRow_OnMouseUp(control, button, upInside)
---end
-
-function AI_SmallGroupListing_OnInitialized(self)
- MINI_GROUP_LIST = AI_SmallGroupListing:New(self)
-end
diff --git a/ui/half_grouplist.xml b/ui/half_grouplist.xml
deleted file mode 100644
index 56eb0fc..0000000
--- a/ui/half_grouplist.xml
+++ /dev/null
@@ -1,96 +0,0 @@
-<!--
- ~ This file is part of AutoInvite
- ~
- ~ (C) 2014 Scott Yeskie (Sasky)
- ~
- ~ This program is free software; you can redistribute it and/or modify
- ~ it under the terms of the GNU General Public License as published by
- ~ the Free Software Foundation; either version 2 of the License, or
- ~ (at your option) any later version.
- ~
- ~ This program is distributed in the hope that it will be useful,
- ~ but WITHOUT ANY WARRANTY; without even the implied warranty of
- ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- ~ GNU General Public License for more details.
- ~
- ~ You should have received a copy of the GNU General Public License
- ~ along with this program. If not, see <http://www.gnu.org/licenses/>.
- -->
-
-<GuiXml>
- <Controls>
- <Label name="AI_SmallGroupListLabel" font="ZoFontGame" wrapMode="ELLIPSIS" virtual="true"/>
- <Control name="AI_SmallGroupListRow" mouseEnabled="true" virtual="true">
- <Dimensions x="300" y="30"/>
- <OnMouseEnter>
- AI_SmallGroupListing_OnMouseEnter(self)
- </OnMouseEnter>
- <OnMouseExit>
- AI_SmallGroupListing_OnMouseExit(self)
- </OnMouseExit>
- <!--<OnMouseUp>
- AI_SmallGroupListing_OnMouseUp(self, button, upInside)
- </OnMouseUp>-->
- <Controls>
- <Texture name="$(parent)BG" inherits="ZO_ThinListBgStrip" hidden="true">
- <Dimensions x="260"/>
- </Texture>
-
- <!--<Button name="$(parent)Cancel" inherits="ZO_IgnoreListRowButton">
- <Anchor point="LEFT" offsetX="5"/>
- <Textures
- normal="EsoUI/Art/Buttons/cancel_up.dds"
- pressed="EsoUI/Art/Buttons/cancel_down.dds"
- mouseOver="EsoUI/Art/Buttons/cancel_over.dds"
- />
- <OnMouseEnter>
- ZO_Tooltips_ShowTextTooltip(self, TOP, GetString(SI_IGNORE_LIST_REMOVE_IGNORE))
- ZO_IgnoreListRow_OnMouseEnter(self:GetParent())
- </OnMouseEnter>
- <OnMouseExit>
- ZO_Tooltips_HideTextTooltip()
- ZO_IgnoreListRow_OnMouseExit(self:GetParent())
- </OnMouseExit>
- <OnClicked>
- RemoveIgnore(self:GetParent().displayName)
- </OnClicked>
- </Button>-->
- <Label name="$(parent)Status" inherits="AI_SmallGroupListLabel">
- <Anchor point="LEFT" offsetX="5"/>
- <Dimensions x="50"/>
- </Label>
- <Label name="$(parent)DisplayName" inherits="AI_SmallGroupListLabel">
- <Anchor point="LEFT" relativeTo="$(parent)Status" relativePoint="RIGHT" offsetX="10"/>
- <Dimensions x="200"/>
- </Label>
- </Controls>
- </Control>
-
- <TopLevelControl name="AI_SmallGroupList" inherits="ZO_RightPanelFootPrint" hidden="true">
- <OnInitialized>
- AI_SmallGroupListing_OnInitialized(self)
- </OnInitialized>
- <Controls>
- <Control name="$(parent)Headers">
- <Anchor point="TOPLEFT" offsetX="30" offsetY="67"/>
- <Anchor point="TOPRIGHT" offsetY="67" offsetX="-500"/>
- <Dimensions y="32"/>
- <Controls>
- <Control name="$(parent)DisplayName" inherits="ZO_SortHeader">
- <OnInitialized>
- ZO_SortHeader_Initialize(self, GetString(SI_GROUP_LIST_PANEL_NAME_HEADER), "displayName", ZO_SORT_ORDER_UP, TEXT_ALIGN_LEFT, "ZoFontGameLargeBold")
- </OnInitialized>
- <Anchor point="TOPLEFT" offsetX="59"/>
- <Dimensions x="200" y="32"/>
- </Control>
- </Controls>
- </Control>
-
- <Control name="$(parent)List" inherits="ZO_ScrollList">
- <Anchor point="TOPLEFT" relativeTo="$(parent)Headers" relativePoint="BOTTOMLEFT" offsetY="3"/>
- <Anchor point="BOTTOMRIGHT" relativeTo="$(parent)" relativePoint="BOTTOMLEFT" offsetX="360" offsetY="-32"/>
- </Control>
- </Controls>
- </TopLevelControl>
- </Controls>
-</GuiXml>
\ No newline at end of file