45 lines
1.1 KiB
Lua
45 lines
1.1 KiB
Lua
-- @docclass
|
|
UIWindow = extends(UIWidget)
|
|
|
|
function UIWindow.create()
|
|
local window = UIWindow.internalCreate()
|
|
window:setTextAlign(AlignTopCenter)
|
|
window:setDraggable(true)
|
|
window:setAutoFocusPolicy(AutoFocusFirst)
|
|
return window
|
|
end
|
|
|
|
function UIWindow:getClassName()
|
|
return 'UIWindow'
|
|
end
|
|
|
|
function UIWindow:onKeyDown(keyCode, keyboardModifiers)
|
|
if keyboardModifiers == KeyboardNoModifier then
|
|
if keyCode == KeyEnter then
|
|
signalcall(self.onEnter, self)
|
|
elseif keyCode == KeyEscape then
|
|
signalcall(self.onEscape, self)
|
|
end
|
|
end
|
|
end
|
|
|
|
function UIWindow:onFocusChange(focused)
|
|
if focused then self:raise() end
|
|
end
|
|
|
|
function UIWindow:onDragEnter(mousePos)
|
|
self:breakAnchors()
|
|
self.movingReference = { x = mousePos.x - self:getX(), y = mousePos.y - self:getY() }
|
|
return true
|
|
end
|
|
|
|
function UIWindow:onDragLeave(droppedWidget, mousePos)
|
|
-- TODO: auto detect and reconnect anchors
|
|
end
|
|
|
|
function UIWindow:onDragMove(mousePos, mouseMoved)
|
|
local pos = { x = mousePos.x - self.movingReference.x, y = mousePos.y - self.movingReference.y }
|
|
self:setPosition(pos)
|
|
self:bindRectToParent()
|
|
end
|