Selectable elements can now request the selection to be moved

This commit is contained in:
2023-01-16 13:49:32 -05:00
parent 93ab47cdc9
commit 7754679710
5 changed files with 55 additions and 3 deletions

View File

@@ -103,6 +103,7 @@ func (element *Button) HandleSelection (
) (
accepted bool,
) {
direction = direction.Canon()
if !element.enabled { return false }
if element.selected && direction != tomo.SelectionDirectionNeutral {
return false

View File

@@ -43,6 +43,9 @@ func (element *Container) SetLayout (layout tomo.Layout) {
// whatever way is defined by the current layout.
func (element *Container) Adopt (child tomo.Element, expand bool) {
child.SetParentHooks (tomo.ParentHooks {
Draw: func (region tomo.Canvas) {
element.drawChildRegion(child, region)
},
MinimumSizeChange: func (int, int) {
element.updateMinimumSize()
},
@@ -51,8 +54,12 @@ func (element *Container) Adopt (child tomo.Element, expand bool) {
if !selectable { return }
return element.childSelectionRequestCallback(child)
},
Draw: func (region tomo.Canvas) {
element.drawChildRegion(child, region)
SelectionMotionRequest: func (
direction tomo.SelectionDirection,
) (
granted bool,
) {
return element.core.RequestSelectionMotion(direction)
},
})
element.children = append (element.children, tomo.LayoutEntry {