mirror of
https://github.com/FliegendeWurst/cursive.git
synced 2024-11-23 17:35:00 +00:00
Add basis for ScrollView
This commit is contained in:
parent
8f04356baa
commit
4042a45b8d
@ -14,15 +14,24 @@ use vec::Vec2;
|
||||
pub struct Printer<'a> {
|
||||
/// Offset into the window this printer should start drawing at.
|
||||
pub offset: Vec2,
|
||||
|
||||
/// Offset into the view for this printer.
|
||||
pub content_offset: Vec2,
|
||||
|
||||
/// Size of the area we are allowed to draw on.
|
||||
///
|
||||
/// Anything outside of this should be discarded.
|
||||
pub size: Vec2,
|
||||
|
||||
/// Whether the view to draw is currently focused or not.
|
||||
pub focused: bool,
|
||||
|
||||
/// Currently used theme
|
||||
pub theme: &'a Theme,
|
||||
|
||||
/// `true` if nothing has been drawn yet.
|
||||
new: Rc<Cell<bool>>,
|
||||
|
||||
/// Backend used to actually draw things
|
||||
backend: &'a backend::Concrete,
|
||||
}
|
||||
@ -37,6 +46,7 @@ impl<'a> Printer<'a> {
|
||||
) -> Self {
|
||||
Printer {
|
||||
offset: Vec2::zero(),
|
||||
content_offset: Vec2::zero(),
|
||||
size: size.into(),
|
||||
focused: true,
|
||||
theme: theme,
|
||||
|
@ -53,6 +53,7 @@ mod menu_popup;
|
||||
mod panel;
|
||||
mod progress_bar;
|
||||
mod radio;
|
||||
mod scroll_view;
|
||||
mod select_view;
|
||||
mod slider_view;
|
||||
mod shadow_view;
|
||||
@ -79,6 +80,7 @@ pub use self::on_event_view::OnEventView;
|
||||
pub use self::panel::Panel;
|
||||
pub use self::progress_bar::{Counter, ProgressBar};
|
||||
pub use self::radio::{RadioButton, RadioGroup};
|
||||
pub use self::scroll_view::ScrollView;
|
||||
pub use self::select_view::SelectView;
|
||||
pub use self::shadow_view::ShadowView;
|
||||
pub use self::sized_view::SizedView;
|
||||
|
17
src/views/scroll_view.rs
Normal file
17
src/views/scroll_view.rs
Normal file
@ -0,0 +1,17 @@
|
||||
use view::View;
|
||||
use Printer;
|
||||
use vec::Vec2;
|
||||
|
||||
/// Wraps a view in a scrollable area.
|
||||
pub struct ScrollView<V> {
|
||||
inner: V,
|
||||
offset: Vec2,
|
||||
}
|
||||
|
||||
impl <V> View for ScrollView<V> where V: View {
|
||||
|
||||
fn draw(&self, printer: &Printer) {
|
||||
self.printer.offset
|
||||
self.inner.draw(printer);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user