update updates the menu item visual state
()
| 767 | |
| 768 | // update updates the menu item visual state |
| 769 | func (mi *MenuItem) update() { |
| 770 | |
| 771 | // Separator |
| 772 | if mi.label == nil { |
| 773 | mi.applyStyle(&mi.styles.Separator) |
| 774 | return |
| 775 | } |
| 776 | // Disabled item |
| 777 | if mi.disabled { |
| 778 | mi.applyStyle(&mi.styles.Disabled) |
| 779 | return |
| 780 | } |
| 781 | // Selected item |
| 782 | if mi.selected { |
| 783 | mi.applyStyle(&mi.styles.Over) |
| 784 | if mi.submenu != nil && mi.menu.autoOpen { |
| 785 | mi.menu.SetTopChild(mi) |
| 786 | mi.submenu.SetVisible(true) |
| 787 | if mi.menu != nil && mi.menu.bar { |
| 788 | mi.submenu.SetPosition(0, mi.Height()-2) |
| 789 | } else { |
| 790 | mi.submenu.SetPosition(mi.Width()-2, 0) |
| 791 | } |
| 792 | } |
| 793 | return |
| 794 | } |
| 795 | // If this menu item has a sub menu and the sub menu is not active, |
| 796 | // hides the sub menu |
| 797 | if mi.submenu != nil { |
| 798 | mi.submenu.SetVisible(false) |
| 799 | } |
| 800 | mi.applyStyle(&mi.styles.Normal) |
| 801 | } |
| 802 | |
| 803 | // applyStyle applies the specified menu item style |
| 804 | func (mi *MenuItem) applyStyle(mis *MenuItemStyle) { |
no test coverage detected