diff --git a/frontend/ui/widget/confirmbox.lua b/frontend/ui/widget/confirmbox.lua index 7b470a29c..2423317d1 100644 --- a/frontend/ui/widget/confirmbox.lua +++ b/frontend/ui/widget/confirmbox.lua @@ -1,16 +1,19 @@ +local InputContainer = require("ui/widget/container/inputcontainer") local CenterContainer = require("ui/widget/container/centercontainer") -local FrameContainer = require("ui/widget/container/centercontainer") -local FocusManager = require("ui/widget/focusmanager") -local Button = require("ui/widget/button") +local FrameContainer = require("ui/widget/container/framecontainer") +local HorizontalGroup = require("ui/widget/horizontalgroup") local VerticalGroup = require("ui/widget/verticalgroup") local ImageWidget = require("ui/widget/imagewidget") local TextBoxWidget = require("ui/widget/textboxwidget") -local Font = require("ui/font") +local HorizontalSpan = require("ui/widget/horizontalspan") +local ButtonTable = require("ui/widget/buttontable") +local GestureRange = require("ui/gesturerange") local UIManager = require("ui/uimanager") +local Device = require("ui/device") +local Geom = require("ui/geometry") +local Input = require("ui/input") local Screen = require("ui/screen") -local HorizontalGroup = require("ui/widget/horizontalgroup") -local VerticalSpan = require("ui/widget/verticalspan") -local HorizontalSpan = require("ui/widget/horizontalspan") +local Font = require("ui/font") local DEBUG = require("dbg") local _ = require("gettext") @@ -19,73 +22,70 @@ local _ = require("gettext") --[[ Widget that shows a message and OK/Cancel buttons ]] -local ConfirmBox = FocusManager:new{ +local ConfirmBox = InputContainer:new{ text = _("no text"), - width = nil, + face = Font:getFace("infofont", 25), ok_text = _("OK"), cancel_text = _("Cancel"), ok_callback = function() end, cancel_callback = function() end, + margin = 5, + padding = 5, } function ConfirmBox:init() - -- calculate box width on the fly if not given - if not self.width then - self.width = Screen:getWidth() - 200 - end - -- build bottons - self.key_events.Close = { {{"Home","Back"}}, doc = "cancel" } - self.key_events.Select = { {{"Enter","Press"}}, doc = "chose selected option" } - - local ok_button = Button:new{ - text = self.ok_text, - callback = function() - self.ok_callback() - UIManager:close(self) - end, - show_parent = self, + local content = HorizontalGroup:new{ + align = "center", + ImageWidget:new{ + file = "resources/info-i.png" + }, + HorizontalSpan:new{ width = 10 }, + TextBoxWidget:new{ + text = self.text, + face = self.face, + width = Screen:getWidth()*2/3, + } } - local cancel_button = Button:new{ - text = self.cancel_text, - preselect = true, - callback = function() - self.cancel_callback() - UIManager:close(self) - end, + local button_table = ButtonTable:new{ + width = content:getSize().w, + button_font_face = "cfont", + button_font_size = 20, + buttons = { + { + { + text = self.cancel_text, + callback = function() + self.cancel_callback() + UIManager:close(self) + end, + }, + { + text = self.ok_text, + callback = function() + self.ok_callback() + UIManager:close(self) + end, + }, + }, + }, + zero_sep = true, show_parent = self, } - self.layout = { { ok_button, cancel_button } } - self.selected.x = 2 -- Cancel is default - self[1] = CenterContainer:new{ dimen = Screen:getSize(), FrameContainer:new{ - margin = 2, background = 0, - padding = 10, - HorizontalGroup:new{ - ImageWidget:new{ - file = "resources/info-i.png" - }, - HorizontalSpan:new{ width = 10 }, - VerticalGroup:new{ - align = "left", - TextBoxWidget:new{ - text = self.text, - face = Font:getFace("cfont", 30), - width = self.width, - }, - VerticalSpan:new{ width = 10 }, - HorizontalGroup:new{ - ok_button, - HorizontalSpan:new{ width = 10 }, - cancel_button, - } - } + margin = self.margin, + padding = self.padding, + VerticalGroup:new{ + align = "left", + content, + button_table, } } } + end function ConfirmBox:onClose()