Back to Home

ESO Lua File v100021

libraries/zo_parametricgridlist/zo_gridscrolllist.lua

[◄ back to folders ]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
ZO_GRID_SCROLL_LIST_DEFAULT_TEMPLATE = "ZO_GridScrollList_Entry_Template_Keyboard"
ZO_GRID_SCROLL_LIST_DEFAULT_TEMPLATE_DIMENSIONS_KEYBOARD = 32
ZO_GRID_SCROLL_LIST_DEFAULT_HEADER_TEMPLATE_KEYBOARD = "ZO_GridScrollList_Entry_Header_Template_Keyboard"
local GRID_LIST_OPERATION_ADD_CELL = 1
local GRID_LIST_OPERATION_ADD_HEADER = 2
ZO_GridScrollList = ZO_CallbackObject:Subclass()
function ZO_GridScrollList:New(...)
    local list = ZO_CallbackObject.New(self)
    list:Initialize(...)
    return list
end
function ZO_GridScrollList:Initialize(control)
    self.control = control
    self.container = control:GetNamedChild("Container")
    self.list = self.container:GetNamedChild("List")
    self.scrollbar = self.list:GetNamedChild("ScrollBar")
    self.currentHeaderName = nil
end
function ZO_GridScrollList:SetLineBreakAmount(lineBreakAmount)
    self.lineBreakAmount = lineBreakAmount
end
function ZO_GridScrollList:SetHeaderTemplate(templateName, height, setupFunc, onHideFunc, resetControlFunc)
    local SPACING_XY = 0
    local IS_SELECTABLE = false
    local WIDTH = nil
    ZO_ScrollList_AddControlOperation(self.list, GRID_LIST_OPERATION_ADD_HEADER, templateName, WIDTH, height, resetControlFunc, setupFunc, onHideFunc, SPACING_XY, SPACING_XY, IS_SELECTABLE)
end
function ZO_GridScrollList:SetGridEntryTemplate(templateName, width, height, spacing, setupFunc, onHideFunc, resetControlFunc, spacingX, spacingY)
    local IS_SELECTABLE = true
    ZO_ScrollList_AddControlOperation(self.list, GRID_LIST_OPERATION_ADD_CELL, templateName, width, height, resetControlFunc, setupFunc, onHideFunc, spacingX, spacingY, IS_SELECTABLE)
end
function ZO_GridScrollList:AddEntry(data)
    if self.currentHeaderName ~= data.categoryName then
        local scrollData = ZO_ScrollList_GetDataList(self.list)
        if self.currentHeaderName or #scrollData > 0 then
            ZO_ScrollList_AddOperation(self.list, ZO_SCROLL_LIST_OPERATION_LINE_BREAK, { lineBreakAmount = self.lineBreakAmount })
        end
        self.currentHeaderName = data.categoryName
        ZO_ScrollList_AddOperation(self.list, GRID_LIST_OPERATION_ADD_HEADER, { header = data.categoryName })
    end
    ZO_ScrollList_AddOperation(self.list, GRID_LIST_OPERATION_ADD_CELL, data)
end
function ZO_GridScrollList:CommitGridList()
end
function ZO_GridScrollList:ClearGridList()
    self.currentHeaderName = nil
end
----------------------
-- Global functions --
----------------------
function ZO_DefaultGridEntrySetup(control, data, selected)
    if not control.icon then
        control.icon = control:GetNamedChild("Icon")
    end
    control.icon:SetTexture(data.iconFile)
end
function ZO_DefaultGridHeaderSetup(control, data, selected)
end