mirror of
https://github.com/FliegendeWurst/cursive.git
synced 2024-11-23 17:35:00 +00:00
Add View::important_area
In preparation for ScrollView
This commit is contained in:
parent
e23a5cd3a2
commit
bd3ea469e9
@ -1,6 +1,7 @@
|
|||||||
use Printer;
|
use Printer;
|
||||||
use direction::Direction;
|
use direction::Direction;
|
||||||
use event::{Event, EventResult};
|
use event::{Event, EventResult};
|
||||||
|
use rect::Rect;
|
||||||
use std::any::Any;
|
use std::any::Any;
|
||||||
use vec::Vec2;
|
use vec::Vec2;
|
||||||
use view::{AnyView, Selector};
|
use view::{AnyView, Selector};
|
||||||
@ -9,7 +10,6 @@ use view::{AnyView, Selector};
|
|||||||
///
|
///
|
||||||
/// This is what you should implement to define a custom View.
|
/// This is what you should implement to define a custom View.
|
||||||
pub trait View: Any + AnyView {
|
pub trait View: Any + AnyView {
|
||||||
|
|
||||||
/// Draws the view with the given printer (includes bounds) and focus.
|
/// Draws the view with the given printer (includes bounds) and focus.
|
||||||
///
|
///
|
||||||
/// This is the only *required* method to implement.
|
/// This is the only *required* method to implement.
|
||||||
@ -63,7 +63,6 @@ pub trait View: Any + AnyView {
|
|||||||
EventResult::Ignored
|
EventResult::Ignored
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/// Runs a closure on the view identified by the given selector.
|
/// Runs a closure on the view identified by the given selector.
|
||||||
///
|
///
|
||||||
/// See [`Finder::call_on`] for a nicer interface, implemented for all
|
/// See [`Finder::call_on`] for a nicer interface, implemented for all
|
||||||
@ -97,4 +96,16 @@ pub trait View: Any + AnyView {
|
|||||||
let _ = source;
|
let _ = source;
|
||||||
false
|
false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// What part of the view is important and should be visible?
|
||||||
|
///
|
||||||
|
/// When only part of this view can be visible, this helps
|
||||||
|
/// determine which part.
|
||||||
|
///
|
||||||
|
/// It is given the view size (same size given to `layout`).
|
||||||
|
///
|
||||||
|
/// Default implementation return the entire view.
|
||||||
|
fn important_area(&self, view_size: Vec2) -> Rect {
|
||||||
|
Rect::from_corners((0, 0), view_size)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user