Skip to content

Commit

Permalink
Reorganize regional bindings
Browse files Browse the repository at this point in the history
  • Loading branch information
baskerville committed Mar 13, 2018
1 parent 1b97d23 commit f3059dd
Show file tree
Hide file tree
Showing 2 changed files with 56 additions and 23 deletions.
36 changes: 22 additions & 14 deletions doc/MANUAL.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,26 +24,34 @@ The screen is divided into seven regions:
Gestures by region:

- *LE* (Left Ear):
- tap: previous page.
- hold: previous chapter.
- Normal Mode:
- Tap: previous page.
- Hold: previous chapter.
- Search Mode:
- Tap: previous results page.
- Hold: first results page.
- *MB* (Middle Band):
- tap: toggle the top and bottom bars.
- hold: perform a full screen refresh.
- Tap: toggle the top and bottom bars.
- Hold: perform a full screen refresh.
- *RE* (Right Ear):
- tap: next page.
- hold: next chapter.
- Normal Mode:
- Tap: next page.
- Hold: next chapter.
- Search Mode:
- Tap: next results page.
- Hold: last results page.
- *TL* (Top Left Corner):
- tap: previous bookmark.
- hold: previous location.
- Tap: previous location.
- Hold: previous bookmark.
- *TR* (Top Right Corner):
- tap: next bookmark.
- hold: toggle bookmark.
- Tap: toggle bookmark.
- Hold: next bookmark.
- *BL* (Bottom Left Corner):
- tap: previous page.
- hold: toggle frontlight.
- Tap: table of contents in normal mode, previous page in search mode.
- Hold: toggle frontlight.
- *BR* (Bottom Right Corner):
- tap: next page.
- hold: invert colors.
- Tap: go to page in normal mode, next page in search mode.
- Hold: invert colors.

Swipe west/east to go to the next/previous page.

Expand Down
43 changes: 34 additions & 9 deletions src/view/reader/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -951,7 +951,7 @@ impl View for Reader {
if let Ok(index) = caps[2].parse::<usize>() {
if &caps[1] == "@" {
hub.send(Event::Back).unwrap();
hub.send(Event::Toggle(ViewId::TopBottomBars)).unwrap();
hub.send(Event::Close(ViewId::TopBottomBars)).unwrap();
hub.send(Event::GoTo(index)).unwrap();
} else {
self.go_to_page(index.saturating_sub(1), true, hub);
Expand All @@ -972,10 +972,18 @@ impl View for Reader {
let dx = x1 - center.x;
// Top left corner.
if center.y < self.rect.min.y + dx {
self.go_to_bookmark(CycleDir::Previous, hub);
self.go_to_last_page(hub);
// Bottom left corner.
} else if center.y > self.rect.max.y - dx {
self.set_current_page(CycleDir::Previous, hub);
if self.search.is_none() {
if self.ephemeral {
hub.send(Event::Back).unwrap();
} else {
hub.send(Event::Show(ViewId::TableOfContents)).unwrap();
}
} else {
self.set_current_page(CycleDir::Previous, hub);
}
// Left ear.
} else {
if self.search.is_none() {
Expand All @@ -988,10 +996,14 @@ impl View for Reader {
let dx = center.x - x2;
// Top right corner.
if center.y < self.rect.min.y + dx {
self.go_to_bookmark(CycleDir::Next, hub);
self.add_remove_bookmark(hub);
// Bottom right corner.
} else if center.y > self.rect.max.y - dx {
self.set_current_page(CycleDir::Next, hub);
if self.search.is_none() {
hub.send(Event::Toggle(ViewId::GoToPage)).unwrap();
} else {
self.set_current_page(CycleDir::Next, hub);
}
// Right ear.
} else {
if self.search.is_none() {
Expand Down Expand Up @@ -1020,25 +1032,34 @@ impl View for Reader {
let dx = x1 - center.x;
// Top left corner.
if center.y < self.rect.min.y + dx {
self.go_to_last_page(hub);
self.go_to_bookmark(CycleDir::Previous, hub);
// Bottom left corner.
} else if center.y > self.rect.max.y - dx {
hub.send(Event::ToggleFrontlight).unwrap();
// Left ear.
} else {
self.go_to_chapter(CycleDir::Previous, hub);
if self.search.is_none() {
self.go_to_chapter(CycleDir::Previous, hub);
} else {
self.go_to_results_page(0, hub);
}
}
} else if center.x > x2 {
let dx = center.x - x2;
// Top right corner.
if center.y < self.rect.min.y + dx {
self.add_remove_bookmark(hub);
self.go_to_bookmark(CycleDir::Next, hub);
// Bottom right corner.
} else if center.y > self.rect.max.y - dx {
hub.send(Event::Select(EntryId::ToggleInverted)).unwrap();
// Right ear.
} else {
self.go_to_chapter(CycleDir::Next, hub);
if self.search.is_none() {
self.go_to_chapter(CycleDir::Next, hub);
} else {
let last_page = self.search.as_ref().unwrap().highlights.len() - 1;
self.go_to_results_page(last_page, hub);
}
}
} else {
hub.send(Event::Render(self.rect, UpdateMode::Full)).unwrap();
Expand Down Expand Up @@ -1129,6 +1150,10 @@ impl View for Reader {
self.toggle_page_menu(rect, None, hub, &mut context.fonts);
true
},
Event::Close(ViewId::TopBottomBars) => {
self.toggle_bars(Some(false), hub, context);
true
},
Event::Close(ViewId::MainMenu) => {
toggle_main_menu(self, Rectangle::default(), Some(false), hub, context);
true
Expand Down

0 comments on commit f3059dd

Please sign in to comment.