From 25bcbfa53a6bf6500b1cf385c67ef90036851594 Mon Sep 17 00:00:00 2001 From: chrox Date: Sun, 3 Feb 2013 05:16:19 +0800 Subject: [PATCH] set menu font size according to screen dpi --- frontend/document/koptinterface.lua | 2 +- frontend/document/pdfdocument.lua | 3 +-- frontend/ui/config.lua | 15 ++++++++------- frontend/ui/menu.lua | 8 ++++---- frontend/ui/screen.lua | 4 ++++ 5 files changed, 18 insertions(+), 14 deletions(-) diff --git a/frontend/document/koptinterface.lua b/frontend/document/koptinterface.lua index a98fb354d..95742f2fc 100644 --- a/frontend/document/koptinterface.lua +++ b/frontend/document/koptinterface.lua @@ -99,7 +99,7 @@ KoptOptions = { name_text = "Contrast", name_align_right = 0.2, item_text = {"lightest", "lighter", "default", "darker", "darkest"}, - item_font_size = math.floor(18*Screen:getWidth()/600), + item_font_size = math.floor(18*Screen:getDPI()/167), item_align_center = 0.8, values = {2.0, 1.5, 1.0, 0.5, 0.2}, default_value = 1.0, diff --git a/frontend/document/pdfdocument.lua b/frontend/document/pdfdocument.lua index 8dd860f5d..a0dbecd88 100644 --- a/frontend/document/pdfdocument.lua +++ b/frontend/document/pdfdocument.lua @@ -1,7 +1,6 @@ require "cache" require "ui/geometry" require "ui/screen" -require "ui/device" require "ui/reader/readerconfig" require "document/koptinterface" @@ -11,7 +10,7 @@ PdfDocument = Document:new{ mupdf_cache_size = 5 * 1024 * 1024, dc_null = DrawContext.new(), screen_size = Screen:getSize(), - screen_dpi = Device:getModel() == "KindlePaperWhite" and 212 or 167, + screen_dpi = Screen:getDPI(), options = KoptOptions, configurable = Configurable, koptinterface = KoptInterface, diff --git a/frontend/ui/config.lua b/frontend/ui/config.lua index c8f797dcb..d0eb3777b 100644 --- a/frontend/ui/config.lua +++ b/frontend/ui/config.lua @@ -129,7 +129,7 @@ function ToggleSwitch:init() self.position = nil local label_font_face = "cfont" - local label_font_size = math.floor(20*Screen:getWidth()/600) + local label_font_size = math.floor(16*Screen:getDPI()/167) self.toggle_frame = FrameContainer:new{background = 0, color = 7, radius = 7, bordersize = 1, padding = 2,} self.toggle_content = HorizontalGroup:new{} @@ -260,18 +260,19 @@ end ConfigOption = CenterContainer:new{} function ConfigOption:init() - local default_name_font_size = math.floor(20*Screen:getWidth()/600) - local default_item_font_size = math.floor(20*Screen:getWidth()/600) - local default_items_spacing = math.floor(30*Screen:getWidth()/600) - local default_option_height = math.floor(50*Screen:getWidth()/600) - local default_option_padding = math.floor(30*Screen:getWidth()/600) + local mag_ratio = Screen:getDPI()/167 + local default_name_font_size = math.floor(20*mag_ratio) + 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 vertical_group = VerticalGroup:new{} table.insert(vertical_group, VerticalSpan:new{ width = default_option_padding }) for c = 1, #self.options do if self.options[c].show ~= false then local name_align = self.options[c].name_align_right and self.options[c].name_align_right or 0.33 local item_align = self.options[c].item_align_center and self.options[c].item_align_center or 0.66 - local name_font_face = self.options[c].name_font_face and self.options[c].name_font_face or "tfont" + local name_font_face = self.options[c].name_font_face and self.options[c].name_font_face or "cfont" local name_font_size = self.options[c].name_font_size and self.options[c].name_font_size or default_name_font_size local item_font_face = self.options[c].item_font_face and self.options[c].item_font_face or "cfont" local item_font_size = self.options[c].item_font_size and self.options[c].item_font_size or default_item_font_size diff --git a/frontend/ui/menu.lua b/frontend/ui/menu.lua index 63e6be7f5..67c07551c 100644 --- a/frontend/ui/menu.lua +++ b/frontend/ui/menu.lua @@ -195,13 +195,13 @@ Widget that displays menu --]] Menu = FocusManager:new{ -- face for displaying item contents - cface = Font:getFace("cfont", 22), + cface = Font:getFace("cfont", math.floor(22*Screen:getDPI()/167)), -- face for menu title - tface = Font:getFace("tfont", 25), + tface = Font:getFace("tfont", math.floor(25*Screen:getDPI()/167)), -- face for paging info display - fface = Font:getFace("ffont", 16), + fface = Font:getFace("ffont", math.floor(16*Screen:getDPI()/167)), -- font for item shortcut - sface = Font:getFace("scfont", 20), + sface = Font:getFace("scfont", math.floor(20*Screen:getDPI()/167)), title = "No Title", -- default width and height diff --git a/frontend/ui/screen.lua b/frontend/ui/screen.lua index 34349a943..0ed626cc6 100644 --- a/frontend/ui/screen.lua +++ b/frontend/ui/screen.lua @@ -84,6 +84,10 @@ function Screen:getHeight() return h end +function Screen:getDPI() + return Device:getModel() == "KindlePaperWhite" and 212 or 167 +end + function Screen:getPitch() return self.fb:getPitch() end