diff --git a/frontend/ui/widget/openwithdialog.lua b/frontend/ui/widget/openwithdialog.lua index cc6df4c51..8ceb5fcb2 100644 --- a/frontend/ui/widget/openwithdialog.lua +++ b/frontend/ui/widget/openwithdialog.lua @@ -5,12 +5,11 @@ This widget displays an open with dialog. local Blitbuffer = require("ffi/blitbuffer") local CenterContainer = require("ui/widget/container/centercontainer") local CheckButton = require("ui/widget/checkbutton") -local Font = require("ui/font") local FrameContainer = require("ui/widget/container/framecontainer") local Geom = require("ui/geometry") local InputDialog = require("ui/widget/inputdialog") -local LeftContainer = require("ui/widget/container/leftcontainer") local LineWidget = require("ui/widget/linewidget") +local MovableContainer = require("ui/widget/container/movablecontainer") local RadioButtonTable = require("ui/widget/radiobuttontable") local Size = require("ui/size") local UIManager = require("ui/uimanager") @@ -25,7 +24,6 @@ function OpenWithDialog:init() -- init title and buttons in base class InputDialog.init(self) - self.face = Font:getFace("cfont", 22) self.element_width = math.floor(self.width * 0.9) self.radio_button_table = RadioButtonTable:new{ @@ -34,7 +32,6 @@ function OpenWithDialog:init() focused = true, scroll = false, parent = self, - face = self.face, button_select_callback = function(btn) if btn.provider.one_time_provider then self._check_file_button:disable() @@ -45,36 +42,55 @@ function OpenWithDialog:init() end end } + self._input_widget = self.radio_button_table - self._check_file_button = self._check_file_button or CheckButton:new{ - text = _("Always use this engine for this file"), - width = self.element_width, - face = self.face, - parent = self, + local vertical_span = VerticalSpan:new{ + width = Size.padding.large, } - self._always_file_toggle = LeftContainer:new{ - bordersize = 0, - dimen = Geom:new{ - w = self.element_width, - h = self._check_file_button:getSize().h, + self.vgroup = VerticalGroup:new{ + align = "left", + self.title_bar, + vertical_span, + CenterContainer:new{ + dimen = Geom:new{ + w = self.width, + h = self.radio_button_table:getSize().h, + }, + self.radio_button_table, + }, + CenterContainer:new{ + dimen = Geom:new{ + w = self.width, + h = Size.padding.large, + }, + LineWidget:new{ + background = Blitbuffer.COLOR_DARK_GRAY, + dimen = Geom:new{ + w = self.element_width, + h = Size.line.medium, + } + }, }, - self._check_file_button, + vertical_span, + CenterContainer:new{ + dimen = Geom:new{ + w = self.title_bar:getSize().w, + h = self.button_table:getSize().h, + }, + self.button_table, + } } + self._check_file_button = self._check_file_button or CheckButton:new{ + text = _("Always use this engine for this file"), + parent = self, + } + self:addWidget(self._check_file_button) self._check_global_button = self._check_global_button or CheckButton:new{ text = _("Always use this engine for file type"), - width = self.element_width, - face = self.face, parent = self, } - self._always_global_toggle = LeftContainer:new{ - bordersize = 0, - dimen = Geom:new{ - w = self.element_width, - h = self._check_global_button:getSize().h, - }, - self._check_global_button, - } + self:addWidget(self._check_global_button) self.dialog_frame = FrameContainer:new{ radius = Size.radius.window, @@ -82,68 +98,17 @@ function OpenWithDialog:init() padding = 0, margin = 0, background = Blitbuffer.COLOR_WHITE, - VerticalGroup:new{ - align = "left", - self.title_bar, - VerticalSpan:new{ - width = Size.span.vertical_large*2, - }, - CenterContainer:new{ - dimen = Geom:new{ - w = self.title_bar:getSize().w, - h = self.radio_button_table:getSize().h, - }, - self.radio_button_table, - }, - CenterContainer:new{ - dimen = Geom:new{ - w = self.title_bar:getSize().w, - h = Size.span.vertical_large*2, - }, - LineWidget:new{ - background = Blitbuffer.COLOR_DARK_GRAY, - dimen = Geom:new{ - w = self.element_width, - h = Size.line.medium, - } - }, - }, - CenterContainer:new{ - dimen = Geom:new{ - w = self.title_bar:getSize().w, - h = self._always_file_toggle:getSize().h, - }, - self._always_file_toggle, - }, - CenterContainer:new{ - dimen = Geom:new{ - w = self.title_bar:getSize().w, - h = self._always_global_toggle:getSize().h, - }, - self._always_global_toggle, - }, - VerticalSpan:new{ - width = Size.span.vertical_large*2, - }, - -- buttons - CenterContainer:new{ - dimen = Geom:new{ - w = self.title_bar:getSize().w, - h = self.button_table:getSize().h, - }, - self.button_table, - } - } + self.vgroup, + } + self.movable = MovableContainer:new{ + self.dialog_frame, } - - self._input_widget = self.radio_button_table - self[1] = CenterContainer:new{ dimen = Geom:new{ w = Screen:getWidth(), h = Screen:getHeight(), }, - self.dialog_frame, + self.movable, } end