diff --git a/frontend/document/koptinterface.lua b/frontend/document/koptinterface.lua
index 95742f2fc..b7ee5b29c 100644
--- a/frontend/document/koptinterface.lua
+++ b/frontend/document/koptinterface.lua
@@ -64,14 +64,26 @@ KoptOptions = {
{
name = "max_columns",
name_text = "Columns",
- item_text = {"1","2","3","4"},
+ --item_text = {"1","2","3","4"},
+ item_icons = {
+ "resources/icons/appbar.column.one.png",
+ "resources/icons/appbar.column.two.png",
+ "resources/icons/appbar.column.three.png",
+ },
values = {1,2,3,4},
default_value = 2,
},
{
name = "justification",
- name_text = "Justification",
- item_text = {"auto","left","center","right","full"},
+ name_text = "Text Align",
+ --item_text = {"auto","left","center","right","full"},
+ item_icons = {
+ "resources/icons/appbar.align.auto.png",
+ "resources/icons/appbar.align.left.png",
+ "resources/icons/appbar.align.center.png",
+ "resources/icons/appbar.align.right.png",
+ "resources/icons/appbar.align.justify.png",
+ },
values = {-1,0,1,2,3},
default_value = -1,
},
diff --git a/frontend/ui/config.lua b/frontend/ui/config.lua
index d0eb3777b..af8939de1 100644
--- a/frontend/ui/config.lua
+++ b/frontend/ui/config.lua
@@ -99,6 +99,48 @@ function OptionTextItem:onTapSelect()
return true
end
+OptionIconItem = InputContainer:new{}
+function OptionIconItem:init()
+ self.dimen = self.icon:getSize()
+ self[1] = UnderlineContainer:new{
+ self.icon,
+ padding = self.padding,
+ color = self.color,
+ }
+ -- we need this table per-instance, so we declare it here
+ if Device:isTouchDevice() then
+ self.ges_events = {
+ TapSelect = {
+ GestureRange:new{
+ ges = "tap",
+ range = self.dimen,
+ },
+ doc = "Select Option Item",
+ },
+ }
+ end
+end
+
+function OptionIconItem:onTapSelect()
+ for _, item in pairs(self.items) do
+ --item[1][1].invert = false
+ item[1].color = 0
+ end
+ --self[1][1].invert = true
+ self[1].color = 15
+ local option_value = nil
+ local option_arg = nil
+ if type(self.values) == "table" then
+ option_value = self.values[self.current_item]
+ self.config:onConfigChoice(self.name, option_value, self.event)
+ elseif type(self.args) == "table" then
+ option_arg = self.args[self.current_item]
+ self.config:onConfigChoice(self.name, option_arg, self.event)
+ end
+ UIManager.repaint_all = true
+ return true
+end
+
--[[
Dummy Widget that reserves vertical and horizontal space
]]
@@ -265,7 +307,7 @@ function ConfigOption:init()
local default_item_font_size = math.floor(16*mag_ratio)
local default_items_spacing = math.floor(30*mag_ratio)
local default_option_height = math.floor(50*mag_ratio)
- local default_option_padding = math.floor(30*mag_ratio)
+ local default_option_padding = math.floor(15*mag_ratio)
local vertical_group = VerticalGroup:new{}
table.insert(vertical_group, VerticalSpan:new{ width = default_option_padding })
for c = 1, #self.options do
@@ -381,6 +423,30 @@ function ConfigOption:init()
end
end
+ if self.options[c].item_icons then
+ for d = 1, #self.options[c].item_icons do
+ local option_item = OptionIconItem:new{
+ icon = ImageWidget:new{
+ file = self.options[c].item_icons[d]
+ },
+ padding = -2,
+ color = d == current_item and 15 or 0,
+ }
+ option_items[d] = option_item
+ option_item.items = option_items
+ option_item.name = self.options[c].name
+ option_item.values = self.options[c].values
+ option_item.args = self.options[c].args
+ option_item.event = self.options[c].event
+ option_item.current_item = d
+ option_item.config = self.config
+ table.insert(option_items_group, option_item)
+ if d ~= #self.options[c].item_icons then
+ table.insert(option_items_group, items_spacing)
+ end
+ end
+ end
+
if self.options[c].toggle then
local switch = ToggleSwitch:new{
name = self.options[c].name,
diff --git a/resources/icons/appbar.align.auto.png b/resources/icons/appbar.align.auto.png
new file mode 100644
index 000000000..5d63b3965
Binary files /dev/null and b/resources/icons/appbar.align.auto.png differ
diff --git a/resources/icons/appbar.align.center.png b/resources/icons/appbar.align.center.png
new file mode 100644
index 000000000..6db64f325
Binary files /dev/null and b/resources/icons/appbar.align.center.png differ
diff --git a/resources/icons/appbar.align.justify.png b/resources/icons/appbar.align.justify.png
new file mode 100644
index 000000000..7897f35ed
Binary files /dev/null and b/resources/icons/appbar.align.justify.png differ
diff --git a/resources/icons/appbar.align.left.png b/resources/icons/appbar.align.left.png
new file mode 100644
index 000000000..d6acd7568
Binary files /dev/null and b/resources/icons/appbar.align.left.png differ
diff --git a/resources/icons/appbar.align.right.png b/resources/icons/appbar.align.right.png
new file mode 100644
index 000000000..68e060963
Binary files /dev/null and b/resources/icons/appbar.align.right.png differ
diff --git a/resources/icons/appbar.column.one.png b/resources/icons/appbar.column.one.png
new file mode 100644
index 000000000..2ba8f0998
Binary files /dev/null and b/resources/icons/appbar.column.one.png differ
diff --git a/resources/icons/appbar.column.three.png b/resources/icons/appbar.column.three.png
new file mode 100644
index 000000000..a66eaeb6f
Binary files /dev/null and b/resources/icons/appbar.column.three.png differ
diff --git a/resources/icons/appbar.column.two.large.png b/resources/icons/appbar.column.two.large.png
index 6fc0150b7..12ff14bba 100644
Binary files a/resources/icons/appbar.column.two.large.png and b/resources/icons/appbar.column.two.large.png differ
diff --git a/resources/icons/appbar.column.two.png b/resources/icons/appbar.column.two.png
new file mode 100644
index 000000000..222d33c2a
Binary files /dev/null and b/resources/icons/appbar.column.two.png differ
diff --git a/resources/icons/src/appbar.align.center.xaml b/resources/icons/src/appbar.align.center.xaml
new file mode 100644
index 000000000..52e696825
--- /dev/null
+++ b/resources/icons/src/appbar.align.center.xaml
@@ -0,0 +1,9 @@
+
+
diff --git a/resources/icons/src/appbar.align.justify.xaml b/resources/icons/src/appbar.align.justify.xaml
new file mode 100644
index 000000000..1a929c590
--- /dev/null
+++ b/resources/icons/src/appbar.align.justify.xaml
@@ -0,0 +1,9 @@
+
+
diff --git a/resources/icons/src/appbar.align.left.xaml b/resources/icons/src/appbar.align.left.xaml
new file mode 100644
index 000000000..d7e0e0c7d
--- /dev/null
+++ b/resources/icons/src/appbar.align.left.xaml
@@ -0,0 +1,9 @@
+
+
diff --git a/resources/icons/src/appbar.align.right.xaml b/resources/icons/src/appbar.align.right.xaml
new file mode 100644
index 000000000..08a86c4cb
--- /dev/null
+++ b/resources/icons/src/appbar.align.right.xaml
@@ -0,0 +1,9 @@
+
+