//! Create choices using radio buttons. use crate::widget::Tree; use crate::{Element, Widget}; use iced_native::event::{self, Event}; use iced_native::layout::{self, Layout}; use iced_native::mouse; use iced_native::renderer; use iced_native::text; use iced_native::widget; use iced_native::{Clipboard, Length, Point, Rectangle, Shell}; pub use iced_native::widget::radio::{Appearance, Radio, StyleSheet}; impl Widget for Radio where Message: Clone, Renderer: text::Renderer, Renderer::Theme: StyleSheet + widget::text::StyleSheet, { fn width(&self) -> Length { >::width(self) } fn height(&self) -> Length { >::height(self) } fn layout( &self, renderer: &Renderer, limits: &layout::Limits, ) -> layout::Node { >::layout( self, renderer, limits, ) } fn on_event( &mut self, _state: &mut Tree, event: Event, layout: Layout<'_>, cursor_position: Point, renderer: &Renderer, clipboard: &mut dyn Clipboard, shell: &mut Shell<'_, Message>, ) -> event::Status { >::on_event( self, event, layout, cursor_position, renderer, clipboard, shell, ) } fn draw( &self, _tree: &Tree, renderer: &mut Renderer, theme: &Renderer::Theme, style: &renderer::Style, layout: Layout<'_>, cursor_position: Point, viewport: &Rectangle, ) { >::draw( self, renderer, theme, style, layout, cursor_position, viewport, ) } fn mouse_interaction( &self, _state: &Tree, layout: Layout<'_>, cursor_position: Point, viewport: &Rectangle, renderer: &Renderer, ) -> mouse::Interaction { >::mouse_interaction( self, layout, cursor_position, viewport, renderer, ) } } impl<'a, Message, Renderer> Into> for Radio where Message: 'a + Clone, Renderer: text::Renderer + 'a, Renderer::Theme: StyleSheet + widget::text::StyleSheet, { fn into(self) -> Element<'a, Message, Renderer> { Element::new(self) } }