Skip to main content

Focus

Struct Focus 

Source
pub struct Focus {
    pub annot: usize,
    pub box_: FocusBox,
}
Expand description

Which annotation on the page holds the keyboard focus, and what its focus rectangle is.

Both halves are needed and they are independent. The index alone decides the tint: a widget with a live control is never tinted, focused or not, and the focused one is the only widget a live control reaches in a single-focus session. The box decides whether anything is stroked in its place, which most field types answer with nothing.

use pdfrum_doc::{AnnotOverlay, Focus, FocusBox, geom};

let mut overlay = AnnotOverlay::with_capacity(2);
overlay.set_focus(Focus {
    annot: 1,
    box_: FocusBox::Rect(geom::rect(0.0, 0.0, 100.0, 20.0)),
});
assert_eq!(overlay.focus().map(|f| f.annot), Some(1));

Fields§

§annot: usize

The raw /Annots index of the focused annotation — the same key space AnnotOverlay::set uses.

§box_: FocusBox

The rectangle to stroke, in page space.

Implementations§

Source§

impl Focus

Source

pub fn at(annot: usize) -> Focus

Focus on one annotation with no rectangle to stroke — the answer a text field and an editable combo box give.

use pdfrum_doc::{Focus, FocusBox};

let focus = Focus::at(2);
assert_eq!(focus.annot, 2);
// No rectangle to stroke, which is what a text field answers.
assert_eq!(focus.box_, FocusBox::None);

Trait Implementations§

Source§

impl Clone for Focus

Source§

fn clone(&self) -> Focus

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for Focus

Source§

impl Debug for Focus

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for Focus

Source§

fn eq(&self, other: &Focus) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for Focus

Auto Trait Implementations§

§

impl Freeze for Focus

§

impl RefUnwindSafe for Focus

§

impl Send for Focus

§

impl Sync for Focus

§

impl Unpin for Focus

§

impl UnsafeUnpin for Focus

§

impl UnwindSafe for Focus

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.