Communicating between widgets
We'll now communicate between the widgets to indicate we want to add a song to the playlist. But before we do so, we'll look in more detail at how a widget can communicate with itself.
Communicating with the same widget
We previously saw how to communicate with the same widget. To send a message to the same widget from an event handler in the view, we simply need to specify the message to be sent on the right side of =>, like in the following example:
gtk::ToolButton {
icon_widget: &new_icon("gtk-quit"),
clicked => Quit,
}Here, the Quit message is sent to the same widget (that is, App) when the user clicks this tool button. But this is syntax sugar for a call to the emit() method on the stream of events of a relm widget.
Emit
So, let's see how to send a message to the same widget without using this syntax: this is useful in more complex cases, such as when we want to conditionally send a message. Let's go back to our Playlist and add a play() method...