feat: hit on primitives
This commit is contained in:
+11
-5
@@ -18,7 +18,7 @@ type interactiveRaster struct {
|
||||
onScrolled func(*fyne.ScrollEvent)
|
||||
onDragged func(*fyne.DragEvent)
|
||||
onDragEnd func()
|
||||
onTapped *fyne.PointEvent
|
||||
onTapped func(*fyne.PointEvent)
|
||||
}
|
||||
|
||||
func (r *interactiveRaster) SetMinSize(size fyne.Size) {
|
||||
@@ -40,17 +40,22 @@ func (r *interactiveRaster) CreateRenderer() fyne.WidgetRenderer {
|
||||
|
||||
// Tapped is a left-click event
|
||||
func (r *interactiveRaster) Tapped(ev *fyne.PointEvent) {
|
||||
x, y := int(ev.Position.X), int(ev.Position.Y)
|
||||
size := r.raster.Size()
|
||||
if x >= int(size.Width) || y >= int(size.Height) {
|
||||
if r.onTapped == nil {
|
||||
return
|
||||
}
|
||||
r.onTapped(ev)
|
||||
}
|
||||
|
||||
// TappedSecondary is a right-click event
|
||||
func (r *interactiveRaster) TappedSecondary(*fyne.PointEvent) {}
|
||||
|
||||
func newInteractiveRaster(edit *editor, raster *canvas.Raster, onLayout func(fyne.Size), onScrolled func(*fyne.ScrollEvent), 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(),
|
||||
onTapped func(*fyne.PointEvent),
|
||||
) *interactiveRaster {
|
||||
r := &interactiveRaster{
|
||||
// raster: canvas.NewRaster(edit.draw),
|
||||
raster: raster,
|
||||
@@ -59,6 +64,7 @@ func newInteractiveRaster(edit *editor, raster *canvas.Raster, onLayout func(fyn
|
||||
onScrolled: onScrolled,
|
||||
onDragged: onDragged,
|
||||
onDragEnd: onDragEnd,
|
||||
onTapped: onTapped,
|
||||
}
|
||||
r.ExtendBaseWidget(r)
|
||||
return r
|
||||
|
||||
Reference in New Issue
Block a user