--- title: Screen slug: /screen --- `Screen` is a OSUI structure that allows the program to use osui elements and it's extensions. Diagram ### `Screen::new() -> Arc` Creates a new `Screen` structure with empty widgets and extensions. ### `draw(self: &Arc, element: FnMut() -> WidgetLoad) -> Arc` Adds a element to the widgets array and returns the widget for extra parameters. ### `extension(&mut self, ext: Extension)` Implements a extension to the screen. ### `run(&mut self) -> std::io::Result<()>` Runs the app. ### `render(&self) -> std::io::Result<()>` > :::warning > Do not call this function if you don't know what you're doing, this function may cause a mutex deadlock. ### `pub fn draw_box(self: &Arc, element: Box WidgetLoad + Send + Sync>) -> Arc` Adds a element to the widgets array and returns the widget for extra parameters. > :::info > This function is useful in special scenarios.