Macro conrod_core::widget_ids [−][src]
macro_rules! widget_ids {
($(#[$attr : meta]) * struct $Ids : ident { $($id : tt) * }) => { ... };
($(#[$attr : meta]) * pub struct $Ids : ident { $($id : tt) * }) => { ... };
(implement $(#[$attr : meta]) * [$($public : tt) *] $Ids : ident
{ $($id : tt) * }) => { ... };
(define_struct $(#[$attr : meta]) * [$($public : tt) *] $Ids : ident
{ { $($id_field : ident : $T : path,) * } $id : ident [], $($rest : tt) * }) => { ... };
(define_struct $(#[$attr : meta]) * [$($public : tt) *] $Ids : ident
{ { $($id_field : ident : $T : path,) * } $id : ident, $($rest : tt) * }) => { ... };
(define_struct $(#[$attr : meta]) * [$($public : tt) *] $Ids : ident
{ { $($id_field : ident : $T : path,) * } $id : ident [] }) => { ... };
(define_struct $(#[$attr : meta]) * [$($public : tt) *] $Ids : ident
{ { $($id_field : ident : $T : path,) * } $id : ident }) => { ... };
(define_struct $(#[$attr : meta]) * [pub] $Ids : ident
{ { $($id : ident : $T : path,) * } }) => { ... };
(define_struct $(#[$attr : meta]) * [] $Ids : ident
{ { $($id : ident : $T : path,) * } }) => { ... };
(constructor $Ids : ident, $generator : ident
{
{ $($id_field : ident : $new : expr,) * } $id : ident [], $($rest : tt) *
}) => { ... };
(constructor $Ids : ident, $generator : ident
{ { $($id_field : ident : $new : expr,) * } $id : ident, $($rest : tt) * }) => { ... };
(constructor $Ids : ident, $generator : ident
{ { $($id_field : ident : $new : expr,) * } $id : ident [] }) => { ... };
(constructor $Ids : ident, $generator : ident
{ { $($id_field : ident : $new : expr,) * } $id : ident }) => { ... };
(constructor $Ids : ident, $generator : ident
{ { $($id : ident : $new : expr,) * } }) => { ... };
}
Expand description
A macro used to generate a struct with a field for each unique identifier given.
Each field can then be used to generate unique widget::Id
s.
For example, given the following invocation:
#[macro_use]
extern crate conrod_core;
widget_ids! {
struct Ids {
button,
toggles[],
}
}
The following will be produced:
struct Ids {
button: conrod_core::widget::Id,
toggles: conrod_core::widget::id::List,
}
impl Ids {
pub fn new(mut generator: conrod_core::widget::id::Generator) -> Self {
Ids {
button: generator.next(),
toggles: conrod_core::widget::id::List::new(),
}
}
}
In the example above, the generated Ids
type can be used as follows.
ⓘ
widget::Button::new().set(ids.button, ui);
ids.toggles.resize(5, &mut ui.widget_id_generator());
for &id in &ids.toggles {
widget::Toggle::new(true).set(id, ui);
}