34 lines
1.4 KiB
Go
34 lines
1.4 KiB
Go
package fyne
|
|
|
|
// Widget defines the standard behaviours of any widget. This extends
|
|
// [CanvasObject]. A widget behaves in the same basic way but will encapsulate
|
|
// many child objects to create the rendered widget.
|
|
type Widget interface {
|
|
CanvasObject
|
|
|
|
// CreateRenderer returns a new [WidgetRenderer] for this widget.
|
|
// This should not be called by regular code, it is used internally to render a widget.
|
|
CreateRenderer() WidgetRenderer
|
|
}
|
|
|
|
// WidgetRenderer defines the behaviour of a widget's implementation.
|
|
// This is returned from a widget's declarative object through [Widget.CreateRenderer]
|
|
// and should be exactly one instance per widget in memory.
|
|
type WidgetRenderer interface {
|
|
// Destroy is a hook that is called when the renderer is being destroyed.
|
|
// This happens at some time after the widget is no longer visible, and
|
|
// once destroyed, a renderer will not be reused.
|
|
// Renderers should dispose and clean up any related resources, if necessary.
|
|
Destroy()
|
|
// Layout is a hook that is called if the widget needs to be laid out.
|
|
// This should never call [Refresh].
|
|
Layout(Size)
|
|
// MinSize returns the minimum size of the widget that is rendered by this renderer.
|
|
MinSize() Size
|
|
// Objects returns all objects that should be drawn.
|
|
Objects() []CanvasObject
|
|
// Refresh is a hook that is called if the widget has updated and needs to be redrawn.
|
|
// This might trigger a [Layout].
|
|
Refresh()
|
|
}
|