use view::{View,ViewWrapper,SizeRequest,DimensionRequest}; use vec::Vec2; /// Simple wrapper view that asks for all the space it can get. pub struct FullView { /// Wrapped view. pub view: T, } impl FullView { /// Wraps the given view into a new FullView. pub fn new(view: T) -> Self { FullView { view: view, } } } impl ViewWrapper for FullView { wrap_impl!(&self.view); fn wrap_get_min_size(&self, req: SizeRequest) -> Vec2 { let w = match req.w { DimensionRequest::Fixed(w) => w, DimensionRequest::AtMost(w) => w, DimensionRequest::Unknown => self.view.get_min_size(req).x, }; let h = match req.h { DimensionRequest::Fixed(h) => h, DimensionRequest::AtMost(h) => h, DimensionRequest::Unknown => self.view.get_min_size(req).y, }; Vec2::new(w,h) } }