CheckButton: insert RadioMark

reviewable/pr8794/r1
hius07 2 years ago committed by Frans de Jonge
parent aaa3a980f3
commit e7b3952fa2

@ -22,6 +22,7 @@ local FrameContainer = require("ui/widget/container/framecontainer")
local GestureRange = require("ui/gesturerange") local GestureRange = require("ui/gesturerange")
local HorizontalGroup = require("ui/widget/horizontalgroup") local HorizontalGroup = require("ui/widget/horizontalgroup")
local InputContainer = require("ui/widget/container/inputcontainer") local InputContainer = require("ui/widget/container/inputcontainer")
local RadioMark = require("ui/widget/radiomark")
local TextBoxWidget = require("ui/widget/textboxwidget") local TextBoxWidget = require("ui/widget/textboxwidget")
local UIManager = require("ui/uimanager") local UIManager = require("ui/uimanager")
local VerticalGroup = require("ui/widget/verticalgroup") local VerticalGroup = require("ui/widget/verticalgroup")
@ -30,8 +31,10 @@ local VerticalSpan = require("ui/widget/verticalspan")
local CheckButton = InputContainer:new{ local CheckButton = InputContainer:new{
callback = nil, callback = nil,
hold_callback = nil, hold_callback = nil,
checkable = true, -- empty space when false
checked = false, checked = false,
enabled = true, enabled = true,
radio = false, -- radio mark when true
face = Font:getFace("smallinfofont"), face = Font:getFace("smallinfofont"),
background = Blitbuffer.COLOR_WHITE, background = Blitbuffer.COLOR_WHITE,
text = nil, text = nil,
@ -46,13 +49,25 @@ end
function CheckButton:initCheckButton(checked) function CheckButton:initCheckButton(checked)
self.checked = checked self.checked = checked
self._checkmark = CheckMark:new{ if self.radio then
checked = self.checked, self._checkmark = RadioMark:new{
enabled = self.enabled, checkable = self.checkable,
face = self.face, checked = self.checked,
parent = self.parent or self, enabled = self.enabled,
show_parent = self.show_parent or self, face = self.face,
} parent = self.parent or self,
show_parent = self.show_parent or self,
}
else
self._checkmark = CheckMark:new{
checkable = self.checkable,
checked = self.checked,
enabled = self.enabled,
face = self.face,
parent = self.parent or self,
show_parent = self.show_parent or self,
}
end
self._textwidget = TextBoxWidget:new{ self._textwidget = TextBoxWidget:new{
text = self.text, text = self.text,
face = self.face, face = self.face,
@ -118,7 +133,9 @@ function CheckButton:onTapCheckButton()
self:onInput(self.tap_input_func()) self:onInput(self.tap_input_func())
else else
if G_reader_settings:isFalse("flash_ui") then if G_reader_settings:isFalse("flash_ui") then
self:toggleCheck() if not self.radio then
self:toggleCheck()
end
if self.callback then if self.callback then
self.callback() self.callback()
end end
@ -144,7 +161,9 @@ function CheckButton:onTapCheckButton()
-- Callback -- Callback
-- --
self:toggleCheck() if not self.radio then
self:toggleCheck()
end
if self.callback then if self.callback then
self.callback() self.callback()
end end

Loading…
Cancel
Save