mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-06 11:46:41 +01:00
wip: focus refactor, e0
This commit is contained in:
parent
b663a09c15
commit
6f5c28f671
1 changed files with 20 additions and 12 deletions
|
|
@ -69,12 +69,12 @@ pub trait PhrasesViewState: Send + Sync {
|
|||
fn phrase_mode (&self) -> &Option<PhrasesMode>;
|
||||
}
|
||||
macro_rules! impl_phrases_view_state {
|
||||
($Struct:ident $(:: $field:ident)* [$self:ident: $focus:expr] [self: $enter:expr]) => {
|
||||
($Struct:ident $(:: $field:ident)* [$self1:ident: $focus:expr] [$self2:ident: $enter:expr]) => {
|
||||
impl PhrasesViewState for $Struct {
|
||||
fn phrases_focused (&$self) -> bool {
|
||||
fn phrases_focused (&$self1) -> bool {
|
||||
$focus
|
||||
}
|
||||
fn phrases_entered (&$self) -> bool {
|
||||
fn phrases_entered (&$self2) -> bool {
|
||||
$enter
|
||||
}
|
||||
fn phrases (&self) -> Vec<Arc<RwLock<Phrase>>> {
|
||||
|
|
@ -111,20 +111,22 @@ pub trait PhraseViewState: Send + Sync {
|
|||
fn size (&self) -> &Measure<Tui>;
|
||||
}
|
||||
macro_rules! impl_phrase_view_state {
|
||||
($Struct:ident $(:: $field:ident)*) => {
|
||||
($Struct:ident $(:: $field:ident)* [$self1:ident : $focused:expr] [$self2:ident : $entered:expr]) => {
|
||||
impl PhraseViewState for $Struct {
|
||||
fn phrase_editing (&self) -> &Option<Arc<RwLock<Phrase>>> {
|
||||
&self$(.$field)*.phrase
|
||||
}
|
||||
fn phrase_editor_focused (&self) -> bool {
|
||||
self$(.$field)*.focus.is_focused()
|
||||
fn phrase_editor_focused (&$self1) -> bool {
|
||||
$focused
|
||||
//self$(.$field)*.focus.is_focused()
|
||||
}
|
||||
fn phrase_editor_entered (&$self2) -> bool {
|
||||
$entered
|
||||
//self$(.$field)*.focus.is_entered()
|
||||
}
|
||||
fn phrase_editor_size (&self) -> &Measure<Tui> {
|
||||
todo!()
|
||||
}
|
||||
fn phrase_editor_entered (&self) -> bool {
|
||||
self$(.$field)*.focus.is_entered()
|
||||
}
|
||||
fn keys (&self) -> &Buffer {
|
||||
&self$(.$field)*.keys
|
||||
}
|
||||
|
|
@ -149,9 +151,15 @@ macro_rules! impl_phrase_view_state {
|
|||
}
|
||||
}
|
||||
}
|
||||
impl_phrase_view_state!(PhraseEditorModel);
|
||||
impl_phrase_view_state!(SequencerTui::editor);
|
||||
impl_phrase_view_state!(ArrangerTui::editor);
|
||||
impl_phrase_view_state!(PhraseEditorModel
|
||||
[self: true]
|
||||
[self: true]);
|
||||
impl_phrase_view_state!(SequencerTui::editor
|
||||
[self: self.focused() == AppFocus::Content(SequencerFocus::PhraseEditor)]
|
||||
[self: self.entered() && self.focused() == AppFocus::Content(SequencerFocus::PhraseEditor)]);
|
||||
impl_phrase_view_state!(ArrangerTui::editor
|
||||
[self: self.focused() == AppFocus::Content(ArrangerFocus::PhraseEditor)]
|
||||
[self: self.entered() && self.focused() == AppFocus::Content(ArrangerFocus::PhraseEditor)]);
|
||||
|
||||
fn track_widths (tracks: &[ArrangerTrack]) -> Vec<(usize, usize)> {
|
||||
let mut widths = vec![];
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue