mirror of
				https://github.com/ErikasKontenis/SabrehavenServer.git
				synced 2025-10-31 03:56:22 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			67 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
| -- @docclass
 | |
| UIRadioGroup = newclass("UIRadioGroup")
 | |
| 
 | |
| function UIRadioGroup.create()
 | |
|   local radiogroup = UIRadioGroup.internalCreate()
 | |
|   radiogroup.widgets = {}
 | |
|   radiogroup.selectedWidget = nil
 | |
|   return radiogroup
 | |
| end
 | |
| 
 | |
| function UIRadioGroup:destroy()
 | |
|   for k,widget in pairs(self.widgets) do
 | |
|     widget.onClick = nil
 | |
|   end
 | |
|   self.widgets = {}
 | |
| end
 | |
| 
 | |
| function UIRadioGroup:addWidget(widget)
 | |
|   table.insert(self.widgets, widget)
 | |
|   widget.onClick = function(widget) self:selectWidget(widget) end
 | |
| end
 | |
| 
 | |
| function UIRadioGroup:removeWidget(widget)
 | |
|   if self.selectedWidget == widget then
 | |
|     self:selectWidget(nil)
 | |
|   end
 | |
|   widget.onClick = nil
 | |
|   table.removevalue(self.widgets, widget)
 | |
| end
 | |
| 
 | |
| function UIRadioGroup:selectWidget(selectedWidget, dontSignal)
 | |
|   if selectedWidget == self.selectedWidget then return end
 | |
| 
 | |
|   local previousSelectedWidget = self.selectedWidget
 | |
|   self.selectedWidget = selectedWidget
 | |
| 
 | |
|   if previousSelectedWidget then
 | |
|     previousSelectedWidget:setChecked(false)
 | |
|   end
 | |
| 
 | |
|   if selectedWidget then
 | |
|     selectedWidget:setChecked(true)
 | |
|   end
 | |
| 
 | |
|   if not dontSignal then
 | |
|     signalcall(self.onSelectionChange, self, selectedWidget, previousSelectedWidget)
 | |
|   end
 | |
| end
 | |
| 
 | |
| function UIRadioGroup:clearSelected()
 | |
|   if not self.selectedWidget then return end
 | |
| 
 | |
|   local previousSelectedWidget = self.selectedWidget
 | |
|   self.selectedWidget:setChecked(false)
 | |
|   self.selectedWidget = nil
 | |
| 
 | |
|   signalcall(self.onSelectionChange, self, nil, previousSelectedWidget)
 | |
| end
 | |
| 
 | |
| function UIRadioGroup:getSelectedWidget()
 | |
|   return self.selectedWidget
 | |
| end
 | |
| 
 | |
| function UIRadioGroup:getFirstWidget()
 | |
|   return self.widgets[1]
 | |
| end
 | 
