mirror of
				https://github.com/ErikasKontenis/SabrehavenServer.git
				synced 2025-10-31 11:56:23 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			135 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			135 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
| local context = G.botContext
 | |
| 
 | |
| -- DO NOT USE THIS CODE.
 | |
| -- IT'S ONLY HERE FOR BACKWARD COMPATIBILITY, MAY BE REMOVED IN THE FUTURE
 | |
| 
 | |
| context.createWidget = function(name, parent)
 | |
|   if parent == nil then      
 | |
|     parent = context.panel
 | |
|   end
 | |
|   g_ui.createWidget(name, parent)
 | |
| end
 | |
| 
 | |
| context.setupUI = function(otml, parent)
 | |
|   if parent == nil then      
 | |
|     parent = context.panel
 | |
|   end
 | |
|   local widget = g_ui.loadUIFromString(otml, parent)
 | |
|   widget.botWidget = true
 | |
|   return widget
 | |
| end
 | |
| 
 | |
| context.importStyle = function(otml)
 | |
|   if type(otml) ~= "string" then
 | |
|     return error("Invalid parameter for importStyle, should be string")
 | |
|   end
 | |
|   if otml:find(".otui") and not otml:find("\n") then
 | |
|     return g_ui.importStyle(context.configDir .. "/" .. otml)
 | |
|   end
 | |
|   return g_ui.importStyleFromString(otml)
 | |
| end
 | |
| 
 | |
| context.addTab = function(name)
 | |
|   local tab = context.tabs:getTab(name)
 | |
|   if tab then -- return existing tab
 | |
|     return tab.tabPanel.content
 | |
|   end
 | |
|   
 | |
|   local smallTabs = #(context.tabs.tabs) >= 5
 | |
|   local newTab = context.tabs:addTab(name, g_ui.createWidget('BotPanel')).tabPanel.content
 | |
|   context.tabs:setOn(true)
 | |
|   if smallTabs then
 | |
|     for k,tab in pairs(context.tabs.tabs) do
 | |
|       tab:setFont('small-9px')
 | |
|     end
 | |
|   end
 | |
|   
 | |
|   return newTab
 | |
| end
 | |
| context.getTab = context.addTab
 | |
| 
 | |
| context.setDefaultTab = function(name)
 | |
|   local tab = context.addTab(name)
 | |
|   context.panel = tab
 | |
| end
 | |
| 
 | |
| context.addSwitch = function(id, text, onClickCallback, parent)
 | |
|   if not parent then
 | |
|     parent = context.panel
 | |
|   end
 | |
|   local switch = g_ui.createWidget('BotSwitch', parent)
 | |
|   switch:setId(id)
 | |
|   switch:setText(text)
 | |
|   switch.onClick = onClickCallback
 | |
|   return switch
 | |
| end
 | |
| 
 | |
| context.addButton = function(id, text, onClickCallback, parent)
 | |
|   if not parent then
 | |
|     parent = context.panel
 | |
|   end
 | |
|   local button = g_ui.createWidget('BotButton', parent)
 | |
|   button:setId(id)
 | |
|   button:setText(text)
 | |
|   button.onClick = onClickCallback
 | |
|   return button    
 | |
| end
 | |
| 
 | |
| context.addLabel = function(id, text, parent)
 | |
|   if not parent then
 | |
|     parent = context.panel
 | |
|   end
 | |
|   local label = g_ui.createWidget('BotLabel', parent)
 | |
|   label:setId(id)
 | |
|   label:setText(text)
 | |
|   return label    
 | |
| end
 | |
| 
 | |
| context.addTextEdit = function(id, text, onTextChangeCallback, parent)
 | |
|   if not parent then
 | |
|     parent = context.panel
 | |
|   end
 | |
|   local widget = g_ui.createWidget('BotTextEdit', parent)
 | |
|   widget:setId(id)
 | |
|   widget.onTextChange = onTextChangeCallback
 | |
|   widget:setText(text)
 | |
|   return widget    
 | |
| end
 | |
| 
 | |
| context.addSeparator = function(id, parent)
 | |
|   if not parent then
 | |
|     parent = context.panel
 | |
|   end
 | |
|   local separator = g_ui.createWidget('BotSeparator', parent)
 | |
|   separator:setId(id)
 | |
|   return separator    
 | |
| end
 | |
| 
 | |
| context._addMacroSwitch = function(name, keys, parent)
 | |
|   if not parent then
 | |
|     parent = context.panel
 | |
|   end
 | |
|   local text = name
 | |
|   if keys:len() > 0 then
 | |
|     text = name .. " [" .. keys .. "]"
 | |
|   end
 | |
|   local switch = context.addSwitch("macro_" .. #context._macros, text, function(widget)
 | |
|     context.storage._macros[name] = not context.storage._macros[name]
 | |
|     widget:setOn(context.storage._macros[name])
 | |
|   end, parent)
 | |
|   switch:setOn(context.storage._macros[name])
 | |
|   return switch
 | |
| end
 | |
| 
 | |
| context._addHotkeySwitch = function(name, keys, parent)
 | |
|   if not parent then
 | |
|     parent = context.panel
 | |
|   end
 | |
|   local text = name
 | |
|   if keys:len() > 0 then
 | |
|     text = name .. " [" .. keys .. "]"
 | |
|   end
 | |
|   local switch = context.addSwitch("hotkey_" .. #context._hotkeys, text, nil, parent)
 | |
|   switch:setOn(false)
 | |
|   return switch
 | |
| end | 
