add minibar height into overlap height

pull/736/head
chrox 10 years ago
parent d5860fa9fb
commit ce266bffb8

@ -24,6 +24,7 @@ local ReaderFooter = InputContainer:new{
progress_text = nil,
text_font_face = "ffont",
text_font_size = 14,
bar_height = Screen:scaleByDPI(7),
height = Screen:scaleByDPI(19),
padding = Screen:scaleByDPI(10),
}
@ -59,7 +60,7 @@ function ReaderFooter:init()
local text_width = self.progress_text:getSize().w
self.progress_bar = ProgressWidget:new{
width = math.floor(Screen:getWidth() - text_width - self.padding),
height = Screen:scaleByDPI(7),
height = self.bar_height,
percentage = self.progress_percentage,
}
local horizontal_group = HorizontalGroup:new{}
@ -143,17 +144,17 @@ function ReaderFooter:updateFooterPage()
end
self.progress_text.text = string.sub(self.progress_text.text,4)
else
if self.mode == 1 then
if self.mode == 1 then
self.progress_text.text = string.format("%d / %d", self.pageno, self.pages)
elseif self.mode == 2 then
elseif self.mode == 2 then
self.progress_text.text = os.date("%H:%M")
elseif self.mode == 3 then
elseif self.mode == 3 then
self.progress_text.text = "=> " .. self.ui.toc:_getChapterPagesLeft(self.pageno,self.pages)
elseif self.mode == 4 then
elseif self.mode == 4 then
powerd = Device:getPowerDevice()
state = powerd:isCharging() and -1 or powerd:getCapacity()
self.progress_text.text = "B:" .. powerd:getCapacity() .. "%"
end
end
end
end

@ -603,15 +603,21 @@ function ReaderPaging:onScrollPanRel(diff)
UIManager:setDirty(self.view.dialog, "fast")
end
function ReaderPaging:calculateOverlap()
local footer_height = (self.view.footer_visible and 1 or 0) * self.view.footer.bar_height
return self.overlap + footer_height
end
function ReaderPaging:onScrollPageRel(diff)
DEBUG("scroll relative page:", diff)
local blank_area = Geom:new{}
blank_area:setSizeTo(self.view.dimen)
local overlap = self:calculateOverlap()
if diff > 0 then
local last_page_state = table.remove(self.view.page_states)
local offset = Geom:new{
x = 0,
y = last_page_state.visible_area.h - self.overlap
y = last_page_state.visible_area.h - overlap
}
self.view.page_states = self:genPageStatesFromTop(last_page_state, blank_area, offset)
end
@ -619,7 +625,7 @@ function ReaderPaging:onScrollPageRel(diff)
local first_page_state = table.remove(self.view.page_states, 1)
local offset = Geom:new{
x = 0,
y = -first_page_state.visible_area.h + self.overlap
y = -first_page_state.visible_area.h + overlap
}
self.view.page_states = self:genPageStatesFromBottom(first_page_state, blank_area, offset)
end
@ -672,16 +678,17 @@ function ReaderPaging:onGotoPageRel(diff)
else
-- not end of page yet, goto next view
-- adjust panning step according to overlap
if x_pan_off > self.overlap then
local overlap = self:calculateOverlap()
if x_pan_off > overlap then
-- moving to next view, move view
x_pan_off = x_pan_off - self.overlap
elseif x_pan_off < -self.overlap then
x_pan_off = x_pan_off + self.overlap
x_pan_off = x_pan_off - overlap
elseif x_pan_off < -overlap then
x_pan_off = x_pan_off + overlap
end
if y_pan_off > self.overlap then
y_pan_off = y_pan_off - self.overlap
elseif y_pan_off < -self.overlap then
y_pan_off = y_pan_off + self.overlap
if y_pan_off > overlap then
y_pan_off = y_pan_off - overlap
elseif y_pan_off < -overlap then
y_pan_off = y_pan_off + overlap
end
-- we have to calculate again to count into overlap
new_va.x = Math.roundAwayFromZero(self.visible_area.x+x_pan_off)

Loading…
Cancel
Save