no-wrap option; pivoted exponential zoom

This commit is contained in:
Ilia Denisov
2026-03-07 11:35:18 +02:00
committed by GitHub
parent 1de621c743
commit 477e656008
22 changed files with 605 additions and 81 deletions
+21 -12
View File
@@ -11,12 +11,13 @@ import (
type interactiveRaster struct {
widget.BaseWidget
edit *editor
min fyne.Size
raster *canvas.Raster
onLayout func(fyne.Size)
onDragged func(*fyne.DragEvent)
onDragEnd func()
edit *editor
min fyne.Size
raster *canvas.Raster
onLayout func(fyne.Size)
onScrolled func(*fyne.ScrollEvent)
onDragged func(*fyne.DragEvent)
onDragEnd func()
}
func (r *interactiveRaster) SetMinSize(size fyne.Size) {
@@ -48,14 +49,15 @@ func (r *interactiveRaster) Tapped(ev *fyne.PointEvent) {
// TappedSecondary is a right-click event
func (r *interactiveRaster) TappedSecondary(*fyne.PointEvent) {}
func newInteractiveRaster(edit *editor, raster *canvas.Raster, onLayout func(fyne.Size), onDragged func(*fyne.DragEvent), onDragEnd func()) *interactiveRaster {
func newInteractiveRaster(edit *editor, raster *canvas.Raster, onLayout func(fyne.Size), onScrolled func(*fyne.ScrollEvent), onDragged func(*fyne.DragEvent), onDragEnd func()) *interactiveRaster {
r := &interactiveRaster{
// raster: canvas.NewRaster(edit.draw),
raster: raster,
edit: edit,
onLayout: onLayout,
onDragged: onDragged,
onDragEnd: onDragEnd,
raster: raster,
edit: edit,
onLayout: onLayout,
onScrolled: onScrolled,
onDragged: onDragged,
onDragEnd: onDragEnd,
}
r.ExtendBaseWidget(r)
return r
@@ -71,6 +73,13 @@ func bgPattern(x, y, _, _ int) color.Color {
return color.Gray{Y: 84}
}
func (r *interactiveRaster) Scrolled(e *fyne.ScrollEvent) {
if r.onScrolled == nil {
return
}
r.onScrolled(e)
}
func (r *interactiveRaster) Dragged(e *fyne.DragEvent) {
if r.onDragged == nil {
return