blob: a8d5cc875eba45efff67763be0a51e07a97051d2 (
plain)
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
#include "ClickStateConditionEditor.h"
#include "cru/common/ClonablePtr.h"
#include "cru/ui/helper/ClickDetector.h"
#include "cru/ui/style/Condition.h"
namespace cru::theme_builder::components::conditions {
using ui::helper::ClickState;
namespace {
const std::vector<String> kClickStates{
u"None",
u"Hover",
u"Press",
u"PressInactive",
};
Index ConvertClickStateToIndex(ClickState click_state) {
switch (click_state) {
case ClickState::None:
return 0;
case ClickState::Hover:
return 1;
case ClickState::Press:
return 2;
case ClickState::PressInactive:
return 3;
}
return -1;
}
ClickState ConvertIndexToClickState(Index index) {
switch (index) {
case 0:
return ClickState::None;
case 1:
return ClickState::Hover;
case 2:
return ClickState::Press;
case 3:
return ClickState::PressInactive;
}
return ClickState::None;
}
} // namespace
ClickStateConditionEditor::ClickStateConditionEditor() {
SetLabel(u"Click State Condition");
GetContainer()->AddChild(click_state_select_.GetRootControl());
click_state_select_.SetLabel(u"Click State");
click_state_select_.SetItems(kClickStates);
click_state_select_.SetSelectedIndex(0, false);
ConnectChangeEvent(click_state_select_);
}
ClickStateConditionEditor::~ClickStateConditionEditor() {}
ClonablePtr<ui::style::ClickStateCondition>
ClickStateConditionEditor::GetValue() const {
return ui::style::ClickStateCondition::Create(
ConvertIndexToClickState(click_state_select_.GetSelectedIndex()));
}
void ClickStateConditionEditor::SetValue(ui::style::ClickStateCondition* value,
bool trigger_change) {
click_state_select_.SetSelectedIndex(
ConvertClickStateToIndex(value->GetClickState()), trigger_change);
}
} // namespace cru::theme_builder::components::conditions
|