diff --git a/widgets/src/labeled_item/imp.rs b/widgets/src/labeled_item/imp.rs index 690febdf..a822ce89 100644 --- a/widgets/src/labeled_item/imp.rs +++ b/widgets/src/labeled_item/imp.rs @@ -1,5 +1,5 @@ use gtk4::{prelude::*, Align, Label, Orientation, Widget}; -use relm4::{ComponentBuilder, ComponentParts, Sender, SimpleComponent}; +use relm4::{ComponentParts, Sender, SimpleComponent}; use std::cell::RefCell; #[derive(Debug)] @@ -107,7 +107,7 @@ impl SimpleComponent for LabeledItem { root: &Self::Root, input: &Sender, _output: &Sender, - ) -> ComponentParts { + ) -> ComponentParts { let model = LabeledItem { _title: String::default(), _desc: None, diff --git a/widgets/src/labeled_item/mod.rs b/widgets/src/labeled_item/mod.rs index 694b3534..366a8221 100644 --- a/widgets/src/labeled_item/mod.rs +++ b/widgets/src/labeled_item/mod.rs @@ -2,15 +2,15 @@ mod imp; use gtk4::{glib::IsA, prelude::*, Align, Orientation, Widget}; use relm4::{Component, ComponentController, ComponentParts, Controller}; -use std::cell::Ref; +use std::{cell::Ref, ops::Deref}; pub struct LabeledItem { root: gtk4::Box, - controller: Controller, + controller: Controller, } impl LabeledItem { - fn inner(&self) -> Ref<'_, ComponentParts> { + fn inner(&self) -> Ref<'_, ComponentParts> { self.controller.state().get() } @@ -72,3 +72,17 @@ impl Default for LabeledItem { Self { root, controller } } } + +impl AsRef for LabeledItem { + fn as_ref(&self) -> &Widget { + self.root.upcast_ref() + } +} + +impl Deref for LabeledItem { + type Target = gtk4::Box; + + fn deref(&self) -> &Self::Target { + &self.root + } +}