allow events bound to widget classes

This commit is contained in:
airstruck
2015-10-27 10:20:13 -04:00
parent 61c9aacd94
commit ca67432b66
6 changed files with 96 additions and 92 deletions

View File

@@ -2,36 +2,32 @@ local Widget = require((...):gsub('%.[^.]*$', ''))
local Sash = Widget:extend()
function Sash:constructor (layout, data)
Widget.constructor(self, layout, data)
Sash:onPressDrag(function (event)
local self = event.target
local axis = self.parent.flow
if axis == 'x' then
dimension = 'width'
else
axis = 'y'
dimension = 'height'
end
local prevSibling = self:getPrevious()
local nextSibling = self:getNext()
local prevSize = prevSibling and prevSibling[dimension]
local nextSize = nextSibling and nextSibling[dimension]
if prevSize then
prevSibling:setDimension(dimension,
event[axis] - prevSibling:calculatePosition(axis))
end
if nextSize then
nextSibling:setDimension(dimension,
nextSibling:calculatePosition(axis) +
nextSibling[dimension] - event[axis])
end
self:onPressDrag(function (event)
local axis = self.parent.flow
if axis == 'x' then
dimension = 'width'
else
axis = 'y'
dimension = 'height'
end
local prevSibling = self:getPrevious()
local nextSibling = self:getNext()
local prevSize = prevSibling and prevSibling[dimension]
local nextSize = nextSibling and nextSibling[dimension]
if prevSize then
prevSibling:setDimension(dimension,
event[axis] - prevSibling:calculatePosition(axis))
end
if nextSize then
nextSibling:setDimension(dimension,
nextSibling:calculatePosition(axis) +
nextSibling[dimension] - event[axis])
end
prevSibling:reflow()
nextSibling:reflow()
self:reflow()
end)
end
prevSibling:reflow()
nextSibling:reflow()
self:reflow()
end)
return Sash