pub struct CopyModal {
pub focus: CopyFocus,
pub scope: CopyScope,
pub format: CopyFormat,
pub header_row: bool,
pub header_view: bool,
pub header_table: bool,
pub column: Option<String>,
pub available_columns: Vec<String>,
pub picker: Option<PickerState>,
pub attention: bool,
pub context: CopyContext,
}Fields§
§focus: CopyFocus§scope: CopyScope§format: CopyFormat§header_row: boolHeader per tabular scope. A row pasted mid-sheet rarely wants one; a view or table pasted whole usually does. Each remembers its last setting for the session.
header_view: bool§header_table: bool§column: Option<String>The cell scope’s column: the column cursor’s when the dialog opens.
available_columns: Vec<String>§picker: Option<PickerState>The one Picker, open for the focused row; None while the form has the keys.
attention: boolEnter on an incomplete form re-accents the spec line instead of raising a modal; any other key clears it.
context: CopyContextImplementations§
Source§impl CopyModal
impl CopyModal
Sourcepub const MOST_ROWS: u16 = 3
pub const MOST_ROWS: u16 = 3
The most rows any scope offers: the dialog’s height, whatever the scope.
pub fn new() -> Self
Sourcepub fn open(
&mut self,
columns: Vec<String>,
current: Option<&str>,
context: CopyContext,
)
pub fn open( &mut self, columns: Vec<String>, current: Option<&str>, context: CopyContext, )
Open over the current table. Scope, format and headers are sticky; the
cell scope’s column is the column cursor’s, current.
pub fn close(&mut self)
Sourcepub fn row_order(&self) -> Vec<CopyFocus>
pub fn row_order(&self) -> Vec<CopyFocus>
The rows the dialog offers, in Tab order. The cell scope trades the format and header rows for the column row; a Markdown table without its header row is not a table, so Markdown drops the header row too.
Sourcepub fn step_scope(&mut self, delta: i8)
pub fn step_scope(&mut self, delta: i8)
Step the scope. The scope decides which rows exist, so a focus the new scope does not offer goes back to the scope row.
Sourcepub fn step_format(&mut self, delta: i8)
pub fn step_format(&mut self, delta: i8)
Step the format. Markdown has no header row, so focus there moves back.
Sourcepub fn step_column(&mut self, delta: i8)
pub fn step_column(&mut self, delta: i8)
←/→ on the column row: the next or previous column.
pub fn toggle_header(&mut self)
Sourcepub fn is_picker_row(&self, focus: CopyFocus) -> bool
pub fn is_picker_row(&self, focus: CopyFocus) -> bool
Rows edited through the Picker: the column, a list too long to step. Scope and format step; the header row is a toggle.
Sourcepub fn picker_items(&self) -> Vec<String>
pub fn picker_items(&self) -> Vec<String>
What the focused row’s Picker offers.
Sourcepub fn open_picker(&mut self)
pub fn open_picker(&mut self)
Open the Picker for the focused row, cursor on the current choice.
Sourcepub fn picker_choose(&mut self)
pub fn picker_choose(&mut self)
Enter in the column Picker takes the cursor’s item and closes it.
Sourcepub fn validation_error(&self) -> Option<&'static str>
pub fn validation_error(&self) -> Option<&'static str>
Why Enter cannot copy yet, or None when it can.
Trait Implementations§
Source§impl Form for CopyModal
impl Form for CopyModal
Source§fn shown_picker(&mut self) -> Option<(&mut PickerState, bool)>
fn shown_picker(&mut self) -> Option<(&mut PickerState, bool)>
None
for a form with no picker open.Source§fn dismiss_picker(&mut self)
fn dismiss_picker(&mut self)
Source§fn pick(&mut self, _toggle: bool)
fn pick(&mut self, _toggle: bool)
toggle, flip it and stay open.Source§fn fields(&self) -> Vec<(CopyFocus, FieldKind)>
fn fields(&self) -> Vec<(CopyFocus, FieldKind)>
fn focused(&self) -> CopyFocus
Source§fn set_focused(&mut self, field: CopyFocus)
fn set_focused(&mut self, field: CopyFocus)
field. Called only with a field of Form::fields; a modal
that shows a text cursor in the focused field syncs it here.Source§fn text_edge(&self, _field: Self::Field) -> (bool, bool)
fn text_edge(&self, _field: Self::Field) -> (bool, bool)
Source§fn list_row(&self, _field: Self::Field) -> bool
fn list_row(&self, _field: Self::Field) -> bool
field is a row of a list (a sort, a filter, a column) rather than a
setting. A click on a list row only focuses it, so it can be picked to move or
remove without changing it; a click on it once focused acts. A setting (a
checkbox, a choice, a button) acts on the first click.Source§fn focused_kind(&self) -> Option<FieldKind>
fn focused_kind(&self) -> Option<FieldKind>
None when focus is on a field not shown.Source§fn focus(&mut self, field: Self::Field) -> bool
fn focus(&mut self, field: Self::Field) -> bool
field if the form shows it: a click on a row, or a modal moving
focus itself. Returns whether it did.Source§fn move_focus(&mut self, delta: isize)
fn move_focus(&mut self, delta: isize)
delta fields along, wrapping. A focus the form no longer shows
counts from the top.fn focus_next(&mut self)
fn focus_prev(&mut self)
Source§fn settle_focus(&mut self)
fn settle_focus(&mut self)
Auto Trait Implementations§
impl Freeze for CopyModal
impl RefUnwindSafe for CopyModal
impl Send for CopyModal
impl Sync for CopyModal
impl Unpin for CopyModal
impl UnsafeUnpin for CopyModal
impl UnwindSafe for CopyModal
Blanket Implementations§
impl<T> Allocation for T
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg or
a color-specific method, such as OwoColorize::green, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read more