| 509 | } |
| 510 | |
| 511 | func (tr *Tree) setBranchState() { |
| 512 | br := tr.Branch |
| 513 | if br == nil { |
| 514 | return |
| 515 | } |
| 516 | switch { |
| 517 | case !tr.This.(Treer).CanOpen(): |
| 518 | br.SetState(true, states.Indeterminate) |
| 519 | case tr.Closed: |
| 520 | br.SetState(false, states.Indeterminate) |
| 521 | br.SetState(false, states.Checked) |
| 522 | br.NeedsRender() |
| 523 | default: |
| 524 | br.SetState(false, states.Indeterminate) |
| 525 | br.SetState(true, states.Checked) |
| 526 | br.NeedsRender() |
| 527 | } |
| 528 | } |
| 529 | |
| 530 | // Tree is tricky for alloc because it is both a layout |
| 531 | // of its children but has to maintain its own bbox for its own widget. |