mirror of
				https://github.com/ErikasKontenis/SabrehavenServer.git
				synced 2025-10-31 03:56:22 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			47 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
| -- @docclass
 | |
| UIWindow = extends(UIWidget, "UIWindow")
 | |
| 
 | |
| function UIWindow.create()
 | |
|   local window = UIWindow.internalCreate()
 | |
|   window:setTextAlign(AlignTopCenter)
 | |
|   window:setDraggable(true)  
 | |
|   window:setAutoFocusPolicy(AutoFocusFirst)
 | |
|   return window
 | |
| 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)
 | |
|   if self.static then
 | |
|     return false
 | |
|   end
 | |
|   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)
 | |
|   if self.static then
 | |
|     return
 | |
|   end
 | |
|   local pos = { x = mousePos.x - self.movingReference.x, y = mousePos.y - self.movingReference.y }
 | |
|   self:setPosition(pos)
 | |
|   self:bindRectToParent()
 | |
| end
 | 
