mirror of
https://github.com/mehah/otclient
synced 2026-08-15 16:29:06 -04:00
56 lines
1.3 KiB
Lua
56 lines
1.3 KiB
Lua
-- @docclass
|
|
UIWindow = extends(UIWidget, 'UIWindow')
|
|
|
|
function UIWindow.create()
|
|
local window = UIWindow.internalCreate()
|
|
window:setTextAlign(AlignTopCenter)
|
|
window:setDraggable(true)
|
|
window:setAutoFocusPolicy(AutoFocusFirst)
|
|
window.hotkeyBlock = false
|
|
return window
|
|
end
|
|
|
|
function UIWindow:onKeyPress(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
|
|
|
|
function UIWindow:onDestroy()
|
|
if self.hotkeyBlock then
|
|
self.hotkeyBlock.release()
|
|
self.hotkeyBlock = false
|
|
end
|
|
end
|