Back to Home

ESO Lua File v101041

ingame/utility/zo_slotutil.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
-- ==================================================================================
-- Input Handlers - All input handlers (mouse down, mouse click, mouse enter, etc) work in the same manner. For each handler,
-- a table of slot types is maintained. When an input event happens, if an entry matching the interacted slot type exists, the
-- functions listed within that entry are executed in the listed order. However, upon the first function returning true, execution
-- stops.
-- ==================================================================================
--convenience function to execute handlers
function RunHandlers(handlerTable, slot, ...)
    local handlers = handlerTable[slot.slotType]
    if(not handlers) then return end
    for i = 1,#handlers do
        local done, returnVal = handlers[i](slot, ...)
        --terminate on the first handler that returns something that's not false or nil
        if(done) then
            return done, returnVal
        end
    end
    return false
end
function RunClickHandlers(handlerTable, slot, buttonId, ...)
    local handlers = handlerTable[slot.slotType]
    if(not handlers) then
        return 
    end
   
    local buttonHandlers = handlers[buttonId]
    if(not buttonHandlers) then return end
   
    for i = 1,#buttonHandlers do
        local done, returnVal = buttonHandlers[i](slot, ...)
        --terminate on the first handler that returns something that's not false or nil
        if(done) then
            return done, returnVal
        end
    end
    return false
end