pub type NativeWidgets = (NativeButton, (NativeCheckBox, (NativeSlider, (NativeProgressIndicator, (NativeSpinBox, (NativeGroupBox, (NativeLineEdit, (NativeScrollView, (NativeStandardListViewItem, (NativeTableHeaderSection, (NativeComboBox, (NativeComboBoxPopup, (NativeTabWidget, (NativeTab, ()))))))))))))));
Expand description
NativeWidgets and NativeGlobals are “type list” containing all the native widgets and global types.
It is built as a tuple (Type, Tail)
where Tail
is also a “type list”. a ()
is the end.
So it can be used like this to do something for all types:
trait DoSomething {
fn do_something(/*...*/) { /*...*/
}
}
impl DoSomething for () {}
impl<T: i_slint_core::rtti::BuiltinItem, Next: DoSomething> DoSomething for (T, Next) {
fn do_something(/*...*/) {
/*...*/
Next::do_something(/*...*/);
}
}
i_slint_backend_qt::NativeWidgets::do_something(/*...*/)