44 lines
889 B
Go
44 lines
889 B
Go
package client
|
|
|
|
import (
|
|
"image/color"
|
|
|
|
"fyne.io/fyne/v2"
|
|
"fyne.io/fyne/v2/canvas"
|
|
"fyne.io/fyne/v2/theme"
|
|
)
|
|
|
|
type rasterWidgetRender struct {
|
|
canvas *interactiveRaster
|
|
bg *canvas.Raster
|
|
onLayout func(fyne.Size)
|
|
}
|
|
|
|
func (r *rasterWidgetRender) Layout(size fyne.Size) {
|
|
r.bg.Resize(size)
|
|
r.canvas.raster.Resize(size)
|
|
if r.onLayout != nil {
|
|
r.onLayout(size)
|
|
}
|
|
// fmt.Println("widget layout:", size.Width, size.Height, "raster:", r.canvas.raster.Size())
|
|
}
|
|
|
|
func (r *rasterWidgetRender) MinSize() fyne.Size {
|
|
return r.MinSize()
|
|
}
|
|
|
|
func (r *rasterWidgetRender) Refresh() {
|
|
canvas.Refresh(r.canvas)
|
|
}
|
|
|
|
func (r *rasterWidgetRender) BackgroundColor() color.Color {
|
|
return theme.Color(theme.ColorNameBackground)
|
|
}
|
|
|
|
func (r *rasterWidgetRender) Objects() []fyne.CanvasObject {
|
|
return []fyne.CanvasObject{r.bg, r.canvas.raster}
|
|
}
|
|
|
|
func (r *rasterWidgetRender) Destroy() {
|
|
}
|