Struct PasscodeKeyboard
pub struct PasscodeKeyboard { /* private fields */ }Expand description
The keyboard’s state: which layer shows and whether the next letter is a
capital. Small and Copy, so a surface can keep it beside its own state.
Implementations§
§impl PasscodeKeyboard
impl PasscodeKeyboard
pub fn for_pin() -> PasscodeKeyboard
pub fn for_pin() -> PasscodeKeyboard
The keyboard for a PIN: its digits on a phone’s number pad, four rows of three.
pub fn for_secret(pin: bool) -> PasscodeKeyboard
pub fn for_secret(pin: bool) -> PasscodeKeyboard
The keyboard for a secret that is a PIN when pin, a password
otherwise.
pub fn is_for_pin(self) -> bool
pub fn is_for_pin(self) -> bool
Whether this keyboard is for a PIN (Self::for_pin).
pub fn character(self, key: PasscodeKey) -> Option<String>
pub fn character(self, key: PasscodeKey) -> Option<String>
The character a PasscodeKey::Char key types now, shift applied;
None for every other key.
pub fn height(self, key_height: f64, gap: f64) -> f64
pub fn height(self, key_height: f64, gap: f64) -> f64
How tall the keyboard is: four rows for a PIN’s number pad, five for the letters.
pub fn layout(
self,
rect: Rect,
key_height: f64,
gap: f64,
) -> Vec<(PasscodeKey, Rect)>
pub fn layout( self, rect: Rect, key_height: f64, gap: f64, ) -> Vec<(PasscodeKey, Rect)>
Every key and where it sits inside rect, row by row, left to
right. Keys are no wider than a comfortable target and each row is
centred; the number pad’s rows share one grid of three columns.
pub fn key_at( self, rect: Rect, key_height: f64, gap: f64, point: Point, ) -> Option<PasscodeKey>
pub fn press(&mut self, key: PasscodeKey) -> Option<PasscodeInput>
pub fn press(&mut self, key: PasscodeKey) -> Option<PasscodeInput>
Press key: shift and the symbols layer change the keyboard; every
other key asks something of the passcode.
pub fn face(self, key: PasscodeKey) -> KeyFace
pub fn face(self, key: PasscodeKey) -> KeyFace
What key shows on this keyboard: the character it types (shift
applied), its layer’s word, or the icon of what it does.
pub fn paint(
self,
scene: &mut Scene,
transform: Affine,
text: &mut TextRenderer,
theme: &Theme,
place: (Rect, f64, f64),
enter_enabled: bool,
)
pub fn paint( self, scene: &mut Scene, transform: Affine, text: &mut TextRenderer, theme: &Theme, place: (Rect, f64, f64), enter_enabled: bool, )
Paint the keys at place (the keyboard’s rectangle, key height and
gap) as the theme’s controls: a key’s filled face and its label, the
active modifiers lit. Enter takes the disabled face while
enter_enabled is false, as the action it stands for would.
Trait Implementations§
§impl Clone for PasscodeKeyboard
impl Clone for PasscodeKeyboard
§fn clone(&self) -> PasscodeKeyboard
fn clone(&self) -> PasscodeKeyboard
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more§impl Debug for PasscodeKeyboard
impl Debug for PasscodeKeyboard
§impl Default for PasscodeKeyboard
impl Default for PasscodeKeyboard
§fn default() -> PasscodeKeyboard
fn default() -> PasscodeKeyboard
§impl PartialEq for PasscodeKeyboard
impl PartialEq for PasscodeKeyboard
§fn eq(&self, other: &PasscodeKeyboard) -> bool
fn eq(&self, other: &PasscodeKeyboard) -> bool
self and other values to be equal, and is used by ==.impl Copy for PasscodeKeyboard
impl Eq for PasscodeKeyboard
impl StructuralPartialEq for PasscodeKeyboard
Auto Trait Implementations§
impl Freeze for PasscodeKeyboard
impl RefUnwindSafe for PasscodeKeyboard
impl Send for PasscodeKeyboard
impl Sync for PasscodeKeyboard
impl Unpin for PasscodeKeyboard
impl UnsafeUnpin for PasscodeKeyboard
impl UnwindSafe for PasscodeKeyboard
Blanket Implementations§
§impl<T> AnyEq for T
impl<T> AnyEq 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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§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.§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.§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.§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.§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§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>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.§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>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.§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.§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.§impl<T> DowncastSend for T
impl<T> DowncastSend for T
§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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 more