use gpui::{App, Bounds, Context, Window, WindowBounds, WindowOptions, div, prelude::*, px, size};use gpui_platform::application; struct Scrollable {} impl Render for Scrollable { fn render(&mut self, _window: &mut Window, _cx: &mut Context<Self>) -> impl IntoElement { div() .size_full() .id("vertical") .p_4() .overflow_scroll() .bg(gpui::white()) .child("Example for test 2 way scroll in nested layout") .child( div() .h(px(5000.)) .border_1() .border_color(gpui::blue()) .bg(gpui::blue().opacity(0.05)) .p_4() .child( div() .mb_5() .w_full() .id("horizontal") .overflow_scroll() .child( div() .w(px(2000.)) .h(px(150.)) .bg(gpui::green().opacity(0.1)) .hover(|this| this.bg(gpui::green().opacity(0.2))) .border_1() .border_color(gpui::green()) .p_4() .child("Scroll Horizontal"), ), ) .child("Scroll Vertical"), ) }} fn main() { application().run(|cx: &mut App| { let bounds = Bounds::centered(None, size(px(500.), px(500.0)), cx); cx.open_window( WindowOptions { window_bounds: Some(WindowBounds::Windowed(bounds)), ..Default::default() }, |_, cx| cx.new(|_| Scrollable {}), ) .unwrap(); cx.activate(true); });}
use gpui::{App, Bounds, Context, Window, WindowBounds, WindowOptions, div, prelude::*, px, size};
use gpui_platform::application;
struct Scrollable {}
impl Render for Scrollable {
fn render(&mut self, _window: &mut Window, _cx: &mut Context<Self>) -> impl IntoElement {
div()
.size_full()
.id("vertical")
.p_4()
.overflow_scroll()
.bg(gpui::white())
.child("Example for test 2 way scroll in nested layout")
.child(
div()
.h(px(5000.))
.border_1()
.border_color(gpui::blue())
.bg(gpui::blue().opacity(0.05))
.p_4()
.child(
div()
.mb_5()
.w_full()
.id("horizontal")
.overflow_scroll()
.child(
div()
.w(px(2000.))
.h(px(150.))
.bg(gpui::green().opacity(0.1))
.hover(|this| this.bg(gpui::green().opacity(0.2)))
.border_1()
.border_color(gpui::green())
.p_4()
.child("Scroll Horizontal"),
),
)
.child("Scroll Vertical"),
)
}
}
fn main() {
application().run(|cx: &mut App| {
let bounds = Bounds::centered(None, size(px(500.), px(500.0)), cx);
cx.open_window(
WindowOptions {
window_bounds: Some(WindowBounds::Windowed(bounds)),
..Default::default()
},
|_, cx| cx.new(|_| Scrollable {}),
)
.unwrap();
cx.activate(true);
});
}