add combat controls

This commit is contained in:
Eduardo Bart
2012-02-07 21:06:52 -02:00
parent e51789378a
commit ee1357a848
21 changed files with 293 additions and 8 deletions

View File

@@ -25,6 +25,8 @@ Module
dofile 'uimessagebox'
dofile 'tooltip'
dofile 'radiogroup'
ToolTip.init()
onUnload: |

View File

@@ -0,0 +1,43 @@
RadioGroup = newclass()
function RadioGroup.create()
local radiogroup = RadioGroup.internalCreate()
radiogroup.widgets = {}
return radiogroup
end
function RadioGroup:destroy()
while #self.widgets ~= 0 do
self:removeWidget(self.widgets[1])
end
end
function RadioGroup:addWidget(widget)
table.insert(self.widgets, widget)
widget.onMousePress = function(widget) self:selectWidget(widget) end
end
function RadioGroup:removeWidget(widget)
if self.selectedWidget == widget then
self:selectWidget(nil)
end
widget.onMousePress = nil
table.removevalue(self.widgets, widget)
end
function RadioGroup:selectWidget(selectedWidget)
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
signalcall(self.onSelectionChange, self, selectedWidget, previousSelectedWidget)
end

View File

@@ -57,6 +57,8 @@ function ToolTip.terminate()
currentHoveredWidget = nil
toolTipLabel:destroy()
toolTipLabel = nil
ToolTip = nil
end
function ToolTip.display(text)

View File

@@ -7,9 +7,7 @@ function UICheckBox.create()
return checkbox
end
function UICheckBox:onMouseRelease(mousePos, mouseButton)
if self:isPressed() and self:containsPoint(mousePos) then
self:setChecked(not self:isChecked())
return true
end
function UICheckBox:onMousePress(mousePos, mouseButton)
self:setChecked(not self:isChecked())
return true
end