// // Copyright (c) 2015, Brian Frank and Andy Frank // Licensed under the Academic Free License version 3.0 // // History: // 17 Mar 2015 Andy Frank Creation // using dom ** ** ToggleButton models a boolean state toggled by pressing a button. ** ** See also: [docDomkit]`docDomkit::Controls#toggleButton`, `Button` ** @Js class ToggleButton : Button { new make() : super() { this.style.addClass("domkit-ToggleButton") } ** Toggle selection state. Bool selected := false { set { &selected = it this.style.toggleClass("selected", it) if (it) { showDown if (elemOn != null) removeAll.add(elemOn) } else { showUp if (elemOff != null) removeAll.add(elemOff) } } } ** Optional content to display when selected. If the argument ** is not an [Elem]`dom::Elem` instance, one will be created ** with text content using 'toStr'. Obj? elemOn := null { set { val := it; &elemOn = it is Elem ? val : Elem { it.text=val.toStr }} } ** Optional content to display when not selected. If the argument ** is not an [Elem]`dom::Elem` instance, one will be created ** with text content using 'toStr'. Obj? elemOff := null { set { val := it; &elemOff = it is Elem ? val : Elem { it.text=val.toStr }} } internal override Void doMouseUp() { if (mouseDown) { selected = !selected if (group != null) { group._event = this._event group.select(this) } } } // internal use only internal ButtonGroup? group := null }