diff options
Diffstat (limited to 'internal/gui')
| -rw-r--r-- | internal/gui/widgets.go | 38 |
1 files changed, 24 insertions, 14 deletions
diff --git a/internal/gui/widgets.go b/internal/gui/widgets.go index df74027..6e40391 100644 --- a/internal/gui/widgets.go +++ b/internal/gui/widgets.go @@ -30,25 +30,35 @@ type ImageDisplay struct { func NewImageDisplay() *ImageDisplay { d := &ImageDisplay{} - // Create image canvas - d.imageCanvas = canvas.NewImageFromResource(nil) - d.imageCanvas.FillMode = canvas.ImageFillContain - d.imageCanvas.SetMinSize(fyne.NewSize(200, 150)) // Half the size + d.imageCanvas = newImageCanvas() + d.imageLabel = newImageLabel() + d.container = newImageContainer(d.imageCanvas, d.imageLabel) - // Create label - d.imageLabel = widget.NewLabel("No image") - d.imageLabel.Alignment = fyne.TextAlignCenter + d.ExtendBaseWidget(d) + return d +} + +func newImageCanvas() *canvas.Image { + img := canvas.NewImageFromResource(nil) + img.FillMode = canvas.ImageFillContain + img.SetMinSize(fyne.NewSize(200, 150)) // Half the size + return img +} - // Create main container - no navigation buttons here - d.container = container.NewBorder( +func newImageLabel() *widget.Label { + label := widget.NewLabel("No image") + label.Alignment = fyne.TextAlignCenter + return label +} + +func newImageContainer(img *canvas.Image, label *widget.Label) *fyne.Container { + // Create main container with the image centered and its label at the bottom. + return container.NewBorder( nil, - d.imageLabel, + label, nil, nil, - d.imageCanvas, + img, ) - - d.ExtendBaseWidget(d) - return d } // CreateRenderer implements fyne.Widget |
