/
ControlLogic.hx
35 lines (27 loc) · 1.24 KB
/
ControlLogic.hx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package guise.controls;
import composure.utilTraits.Furnisher;
import composure.core.ComposeItem;
import guise.controls.ControlTags;
import guise.controls.data.ISelected;
import guise.controls.logic.states.ButtonStateMapper;
import guise.controls.logic.states.SelectableStateMapper;
import guise.controls.logic.states.FocusStateMapper;
import guise.controls.logic.input.MouseOverTrait;
import guise.controls.logic.input.ButtonClickTrait;
import guise.controls.logic.input.TextInputPrompt;
import guise.controls.logic.input.ClickToggleSelect;
/**
* @author Tom Byrne
*/
class ControlLogic
{
public static function install(within:ComposeItem):Void
{
var furnisher = new Furnisher(TextButtonTag, [TType(MouseOverTrait), TType(ButtonStateMapper), TType(SelectableStateMapper), TType(ButtonClickTrait)]);
within.addTrait(furnisher);
furnisher = new Furnisher(TextInputTag, [TType(TextInputPrompt), Furnisher.fact(new FocusStateMapper(ControlLayers.INPUT_TEXT))]);
within.addTrait(furnisher);
furnisher = new Furnisher(ToggleButtonTag, [TType(MouseOverTrait), TType(ButtonStateMapper), TType(SelectableStateMapper), TType(ButtonClickTrait), TType(ClickToggleSelect), TType(Selected, [UnlessHas(ISelected)])]);
within.addTrait(furnisher);
}
}