Add interactive controls to table example
This commit is contained in:
parent
931ed20cf8
commit
2777de3c7d
2 changed files with 102 additions and 57 deletions
|
|
@ -21,13 +21,6 @@ where
|
|||
Table::new(columns, rows)
|
||||
}
|
||||
|
||||
pub fn definition<'a, T, Message, Theme, Renderer>()
|
||||
-> Definition<'a, T, Message, Theme, Renderer> {
|
||||
Definition {
|
||||
columns: Vec::new(),
|
||||
}
|
||||
}
|
||||
|
||||
pub fn column<'a, T, E, Message, Theme, Renderer>(
|
||||
header: impl Into<Element<'a, Message, Theme, Renderer>>,
|
||||
view: impl Fn(T) -> E + 'a,
|
||||
|
|
@ -133,6 +126,22 @@ where
|
|||
self.padding_y = padding.into().0;
|
||||
self
|
||||
}
|
||||
|
||||
pub fn separator(self, separator: impl Into<Pixels>) -> Self {
|
||||
let separator = separator.into();
|
||||
|
||||
self.separator_x(separator).separator_y(separator)
|
||||
}
|
||||
|
||||
pub fn separator_x(mut self, separator: impl Into<Pixels>) -> Self {
|
||||
self.separator_x = separator.into().0;
|
||||
self
|
||||
}
|
||||
|
||||
pub fn separator_y(mut self, separator: impl Into<Pixels>) -> Self {
|
||||
self.separator_y = separator.into().0;
|
||||
self
|
||||
}
|
||||
}
|
||||
|
||||
pub struct Metrics {
|
||||
|
|
@ -452,44 +461,6 @@ where
|
|||
}
|
||||
}
|
||||
|
||||
pub struct Definition<
|
||||
'a,
|
||||
T,
|
||||
Message,
|
||||
Theme = crate::Theme,
|
||||
Renderer = crate::Renderer,
|
||||
> {
|
||||
columns: Vec<Column<'a, T, Message, Theme, Renderer>>,
|
||||
}
|
||||
|
||||
impl<'a, T, Message, Theme, Renderer>
|
||||
Definition<'a, T, Message, Theme, Renderer>
|
||||
{
|
||||
pub fn column<E>(
|
||||
mut self,
|
||||
header: impl Into<Element<'a, Message, Theme, Renderer>>,
|
||||
view: impl Fn(T) -> E + 'a,
|
||||
) -> Self
|
||||
where
|
||||
T: 'a,
|
||||
E: Into<Element<'a, Message, Theme, Renderer>>,
|
||||
{
|
||||
self.columns.push(column(header, view));
|
||||
self
|
||||
}
|
||||
}
|
||||
|
||||
impl<'a, T, Message, Theme, Renderer> IntoIterator
|
||||
for Definition<'a, T, Message, Theme, Renderer>
|
||||
{
|
||||
type Item = Column<'a, T, Message, Theme, Renderer>;
|
||||
type IntoIter = ::std::vec::IntoIter<Self::Item>;
|
||||
|
||||
fn into_iter(self) -> Self::IntoIter {
|
||||
self.columns.into_iter()
|
||||
}
|
||||
}
|
||||
|
||||
pub struct Column<
|
||||
'a,
|
||||
T,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue