WIP: menu
This commit is contained in:
59
src/app.rs
59
src/app.rs
@@ -19,7 +19,7 @@ use crate::state::{
|
||||
AudioSettings, EditorContext, Focus, LiveKeyState, Metrics, Modal, PanelState, PatternField,
|
||||
PatternsNav, PlaybackState, ProjectState, UiState,
|
||||
};
|
||||
use crate::views::doc_view;
|
||||
use crate::views::{dict_view, help_view};
|
||||
|
||||
const STEPS_PER_PAGE: usize = 32;
|
||||
|
||||
@@ -865,33 +865,46 @@ impl App {
|
||||
AppCommand::PageUp => self.page.up(),
|
||||
AppCommand::PageDown => self.page.down(),
|
||||
|
||||
// Doc navigation
|
||||
AppCommand::DocNextTopic => {
|
||||
self.ui.doc_topic = (self.ui.doc_topic + 1) % doc_view::topic_count();
|
||||
self.ui.doc_scroll = 0;
|
||||
self.ui.doc_category = 0;
|
||||
// Help navigation
|
||||
AppCommand::HelpNextTopic => {
|
||||
self.ui.help_topic = (self.ui.help_topic + 1) % help_view::topic_count();
|
||||
self.ui.help_scroll = 0;
|
||||
}
|
||||
AppCommand::DocPrevTopic => {
|
||||
let count = doc_view::topic_count();
|
||||
self.ui.doc_topic = (self.ui.doc_topic + count - 1) % count;
|
||||
self.ui.doc_scroll = 0;
|
||||
self.ui.doc_category = 0;
|
||||
AppCommand::HelpPrevTopic => {
|
||||
let count = help_view::topic_count();
|
||||
self.ui.help_topic = (self.ui.help_topic + count - 1) % count;
|
||||
self.ui.help_scroll = 0;
|
||||
}
|
||||
AppCommand::DocScrollDown(n) => {
|
||||
self.ui.doc_scroll = self.ui.doc_scroll.saturating_add(n);
|
||||
AppCommand::HelpScrollDown(n) => {
|
||||
self.ui.help_scroll = self.ui.help_scroll.saturating_add(n);
|
||||
}
|
||||
AppCommand::DocScrollUp(n) => {
|
||||
self.ui.doc_scroll = self.ui.doc_scroll.saturating_sub(n);
|
||||
AppCommand::HelpScrollUp(n) => {
|
||||
self.ui.help_scroll = self.ui.help_scroll.saturating_sub(n);
|
||||
}
|
||||
AppCommand::DocNextCategory => {
|
||||
let count = doc_view::category_count();
|
||||
self.ui.doc_category = (self.ui.doc_category + 1) % count;
|
||||
self.ui.doc_scroll = 0;
|
||||
|
||||
// Dictionary navigation
|
||||
AppCommand::DictToggleFocus => {
|
||||
use crate::state::DictFocus;
|
||||
self.ui.dict_focus = match self.ui.dict_focus {
|
||||
DictFocus::Categories => DictFocus::Words,
|
||||
DictFocus::Words => DictFocus::Categories,
|
||||
};
|
||||
}
|
||||
AppCommand::DocPrevCategory => {
|
||||
let count = doc_view::category_count();
|
||||
self.ui.doc_category = (self.ui.doc_category + count - 1) % count;
|
||||
self.ui.doc_scroll = 0;
|
||||
AppCommand::DictNextCategory => {
|
||||
let count = dict_view::category_count();
|
||||
self.ui.dict_category = (self.ui.dict_category + 1) % count;
|
||||
self.ui.dict_scroll = 0;
|
||||
}
|
||||
AppCommand::DictPrevCategory => {
|
||||
let count = dict_view::category_count();
|
||||
self.ui.dict_category = (self.ui.dict_category + count - 1) % count;
|
||||
self.ui.dict_scroll = 0;
|
||||
}
|
||||
AppCommand::DictScrollDown(n) => {
|
||||
self.ui.dict_scroll = self.ui.dict_scroll.saturating_add(n);
|
||||
}
|
||||
AppCommand::DictScrollUp(n) => {
|
||||
self.ui.dict_scroll = self.ui.dict_scroll.saturating_sub(n);
|
||||
}
|
||||
|
||||
// Patterns view
|
||||
|
||||
Reference in New Issue
Block a user