mirror of
				https://github.com/edubart/otclient.git
				synced 2025-11-04 04:36:23 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			78 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
function UITextEdit:onStyleApply(styleName, styleNode)
 | 
						|
  for name,value in pairs(styleNode) do
 | 
						|
    if name == 'vertical-scrollbar' then
 | 
						|
      addEvent(function()
 | 
						|
        self:setVerticalScrollBar(self:getParent():getChildById(value))
 | 
						|
      end)
 | 
						|
    elseif name == 'horizontal-scrollbar' then
 | 
						|
      addEvent(function()
 | 
						|
        self:setHorizontalScrollBar(self:getParent():getChildById(value))
 | 
						|
      end)
 | 
						|
    end
 | 
						|
  end
 | 
						|
end
 | 
						|
 | 
						|
function UITextEdit:onMouseWheel(mousePos, mouseWheel)
 | 
						|
  if self.verticalScrollBar and self:isMultiline() then
 | 
						|
    if mouseWheel == MouseWheelUp then
 | 
						|
      self.verticalScrollBar:decrement()
 | 
						|
    else
 | 
						|
      self.verticalScrollBar:increment()
 | 
						|
    end
 | 
						|
    return true
 | 
						|
  elseif self.horizontalScrollBar then
 | 
						|
    if mouseWheel == MouseWheelUp then
 | 
						|
      self.horizontalScrollBar:increment()
 | 
						|
    else
 | 
						|
      self.horizontalScrollBar:decrement()
 | 
						|
    end
 | 
						|
    return true
 | 
						|
  end
 | 
						|
end
 | 
						|
 | 
						|
function UITextEdit:onTextAreaUpdate(virtualOffset, virtualSize, totalSize)
 | 
						|
  self:updateScrollBars()
 | 
						|
end
 | 
						|
 | 
						|
function UITextEdit:setVerticalScrollBar(scrollbar)
 | 
						|
  self.verticalScrollBar = scrollbar
 | 
						|
  self.verticalScrollBar.onValueChange = function(scrollbar, value)
 | 
						|
    local virtualOffset = self:getTextVirtualOffset()
 | 
						|
    virtualOffset.y = value
 | 
						|
    self:setTextVirtualOffset(virtualOffset)
 | 
						|
  end
 | 
						|
  self:updateScrollBars()
 | 
						|
end
 | 
						|
 | 
						|
function UITextEdit:setHorizontalScrollBar(scrollbar)
 | 
						|
  self.horizontalScrollBar = scrollbar
 | 
						|
  self.horizontalScrollBar.onValueChange = function(scrollbar, value)
 | 
						|
    local virtualOffset = self:getTextVirtualOffset()
 | 
						|
    virtualOffset.x = value
 | 
						|
    self:setTextVirtualOffset(virtualOffset)
 | 
						|
  end
 | 
						|
  self:updateScrollBars()
 | 
						|
end
 | 
						|
 | 
						|
function UITextEdit:updateScrollBars()
 | 
						|
  local scrollSize = self:getTextTotalSize()
 | 
						|
  local scrollWidth = math.max(scrollSize.width - self:getTextVirtualSize().width, 0)
 | 
						|
  local scrollHeight = math.max(scrollSize.height - self:getTextVirtualSize().height, 0)
 | 
						|
 | 
						|
  local scrollbar = self.verticalScrollBar
 | 
						|
  if scrollbar then
 | 
						|
    scrollbar:setMinimum(0)
 | 
						|
    scrollbar:setMaximum(scrollHeight)
 | 
						|
    scrollbar:setValue(self:getTextVirtualOffset().y)
 | 
						|
  end
 | 
						|
 | 
						|
  local scrollbar = self.horizontalScrollBar
 | 
						|
  if scrollbar then
 | 
						|
    scrollbar:setMinimum(0)
 | 
						|
    scrollbar:setMaximum(scrollWidth)
 | 
						|
    scrollbar:setValue(self:getTextVirtualOffset().x)
 | 
						|
  end
 | 
						|
 | 
						|
end
 | 
						|
 | 
						|
-- todo: ontext change, focus to cursor |