simple_renderer.go 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. package widget
  2. import "fyne.io/fyne/v2"
  3. var _ fyne.WidgetRenderer = (*SimpleRenderer)(nil)
  4. // SimpleRenderer is a basic renderer that satisfies widget.Renderer interface by wrapping
  5. // a single fyne.CanvasObject.
  6. //
  7. // Since: 2.1
  8. type SimpleRenderer struct {
  9. objects []fyne.CanvasObject
  10. }
  11. // NewSimpleRenderer creates a new SimpleRenderer to render a widget using a
  12. // single CanvasObject.
  13. //
  14. // Since: 2.1
  15. func NewSimpleRenderer(object fyne.CanvasObject) *SimpleRenderer {
  16. return &SimpleRenderer{[]fyne.CanvasObject{object}}
  17. }
  18. // Destroy does nothing in this implementation.
  19. //
  20. // Implements: fyne.WidgetRenderer
  21. //
  22. // Since: 2.1
  23. func (r *SimpleRenderer) Destroy() {
  24. }
  25. // Layout updates the contained object to be the requested size.
  26. //
  27. // Implements: fyne.WidgetRenderer
  28. //
  29. // Since: 2.1
  30. func (r *SimpleRenderer) Layout(s fyne.Size) {
  31. r.objects[0].Resize(s)
  32. }
  33. // MinSize returns the smallest size that this render can use, returned from the underlying object.
  34. //
  35. // Implements: fyne.WidgetRenderer
  36. //
  37. // Since: 2.1
  38. func (r *SimpleRenderer) MinSize() fyne.Size {
  39. return r.objects[0].MinSize()
  40. }
  41. // Objects returns the objects that should be rendered.
  42. //
  43. // Implements: fyne.WidgetRenderer
  44. //
  45. // Since: 2.1
  46. func (r *SimpleRenderer) Objects() []fyne.CanvasObject {
  47. return r.objects
  48. }
  49. // Refresh requests the underlying object to redraw.
  50. //
  51. // Implements: fyne.WidgetRenderer
  52. //
  53. // Since: 2.1
  54. func (r *SimpleRenderer) Refresh() {
  55. r.objects[0].Refresh()
  56. }