Allow LabeledItem to be used as a regular widget, hopefully
This commit is contained in:
parent
724f7f5a9f
commit
feee2bacc3
2 changed files with 19 additions and 5 deletions
|
|
@ -1,5 +1,5 @@
|
||||||
use gtk4::{prelude::*, Align, Label, Orientation, Widget};
|
use gtk4::{prelude::*, Align, Label, Orientation, Widget};
|
||||||
use relm4::{ComponentBuilder, ComponentParts, Sender, SimpleComponent};
|
use relm4::{ComponentParts, Sender, SimpleComponent};
|
||||||
use std::cell::RefCell;
|
use std::cell::RefCell;
|
||||||
|
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
|
|
@ -107,7 +107,7 @@ impl SimpleComponent for LabeledItem {
|
||||||
root: &Self::Root,
|
root: &Self::Root,
|
||||||
input: &Sender<Self::Input>,
|
input: &Sender<Self::Input>,
|
||||||
_output: &Sender<Self::Output>,
|
_output: &Sender<Self::Output>,
|
||||||
) -> ComponentParts<Self, Self::Widgets> {
|
) -> ComponentParts<Self> {
|
||||||
let model = LabeledItem {
|
let model = LabeledItem {
|
||||||
_title: String::default(),
|
_title: String::default(),
|
||||||
_desc: None,
|
_desc: None,
|
||||||
|
|
|
||||||
|
|
@ -2,15 +2,15 @@ mod imp;
|
||||||
|
|
||||||
use gtk4::{glib::IsA, prelude::*, Align, Orientation, Widget};
|
use gtk4::{glib::IsA, prelude::*, Align, Orientation, Widget};
|
||||||
use relm4::{Component, ComponentController, ComponentParts, Controller};
|
use relm4::{Component, ComponentController, ComponentParts, Controller};
|
||||||
use std::cell::Ref;
|
use std::{cell::Ref, ops::Deref};
|
||||||
|
|
||||||
pub struct LabeledItem {
|
pub struct LabeledItem {
|
||||||
root: gtk4::Box,
|
root: gtk4::Box,
|
||||||
controller: Controller<imp::LabeledItem, gtk4::Box, imp::AppWidgets, imp::LabeledItemMessage>,
|
controller: Controller<imp::LabeledItem>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl LabeledItem {
|
impl LabeledItem {
|
||||||
fn inner(&self) -> Ref<'_, ComponentParts<imp::LabeledItem, imp::AppWidgets>> {
|
fn inner(&self) -> Ref<'_, ComponentParts<imp::LabeledItem>> {
|
||||||
self.controller.state().get()
|
self.controller.state().get()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -72,3 +72,17 @@ impl Default for LabeledItem {
|
||||||
Self { root, controller }
|
Self { root, controller }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl AsRef<Widget> 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
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue