FIX: button focused state
Change-Id: Ieab02661c8f2e406b5bf5f156d9142efbe76d1cf
This commit is contained in:
parent
09d5651c39
commit
ec59446e44
|
@ -26,8 +26,9 @@ Button::Button()
|
||||||
, text_color(*wxBLACK)
|
, text_color(*wxBLACK)
|
||||||
{
|
{
|
||||||
background_color = StateColor(
|
background_color = StateColor(
|
||||||
std::make_pair(*wxLIGHT_GREY, (int) StateColor::Checked),
|
std::make_pair(0x00AE42, (int) StateColor::Checked),
|
||||||
std::make_pair(*wxLIGHT_GREY, (int) StateColor::Hovered),
|
std::make_pair(*wxLIGHT_GREY, (int) StateColor::Hovered),
|
||||||
|
std::make_pair(0x37EE7C, (int) StateColor::Hovered | StateColor::Checked),
|
||||||
std::make_pair(*wxWHITE, (int) StateColor::Normal));
|
std::make_pair(*wxWHITE, (int) StateColor::Normal));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -27,7 +27,6 @@ END_EVENT_TABLE()
|
||||||
SpinInput::SpinInput()
|
SpinInput::SpinInput()
|
||||||
: state_handler(this)
|
: state_handler(this)
|
||||||
, border_color(std::make_pair(0xDBDBDB, (int) StateColor::Disabled),
|
, border_color(std::make_pair(0xDBDBDB, (int) StateColor::Disabled),
|
||||||
std::make_pair(0x00AE42, (int) StateColor::Focused),
|
|
||||||
std::make_pair(0x00AE42, (int) StateColor::Hovered),
|
std::make_pair(0x00AE42, (int) StateColor::Hovered),
|
||||||
std::make_pair(0xDBDBDB, (int) StateColor::Normal))
|
std::make_pair(0xDBDBDB, (int) StateColor::Normal))
|
||||||
, text_color(std::make_pair(0xACACAC, (int) StateColor::Disabled), std::make_pair(*wxBLACK, (int) StateColor::Normal))
|
, text_color(std::make_pair(0xACACAC, (int) StateColor::Disabled), std::make_pair(*wxBLACK, (int) StateColor::Normal))
|
||||||
|
|
|
@ -36,6 +36,9 @@ int StateColor::states() const
|
||||||
{
|
{
|
||||||
int states = 0;
|
int states = 0;
|
||||||
for (auto s : statesList_) states |= s;
|
for (auto s : statesList_) states |= s;
|
||||||
|
states = (states & 0xffff) | (states >> 16);
|
||||||
|
if (takeFocusedAsHovered_ && (states & Hovered))
|
||||||
|
states |= Focused;
|
||||||
return states;
|
return states;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -45,6 +48,7 @@ wxColour StateColor::defaultColor() {
|
||||||
|
|
||||||
wxColour StateColor::colorForStates(int states)
|
wxColour StateColor::colorForStates(int states)
|
||||||
{
|
{
|
||||||
|
bool focused = takeFocusedAsHovered_ && (states & Focused);
|
||||||
for (int i = 0; i < statesList_.size(); ++i) {
|
for (int i = 0; i < statesList_.size(); ++i) {
|
||||||
int s = statesList_[i];
|
int s = statesList_[i];
|
||||||
int on = s & 0xffff;
|
int on = s & 0xffff;
|
||||||
|
@ -52,6 +56,13 @@ wxColour StateColor::colorForStates(int states)
|
||||||
if ((on & states) == on && (off & ~states) == off) {
|
if ((on & states) == on && (off & ~states) == off) {
|
||||||
return colors_[i];
|
return colors_[i];
|
||||||
}
|
}
|
||||||
|
if (focused && (on & Hovered)) {
|
||||||
|
on |= Focused;
|
||||||
|
on &= ~Hovered;
|
||||||
|
if ((on & states) == on && (off & ~states) == off) {
|
||||||
|
return colors_[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return wxColour(0, 0, 0, 0);
|
return wxColour(0, 0, 0, 0);
|
||||||
}
|
}
|
||||||
|
@ -78,3 +89,5 @@ bool StateColor::setColorForStates(wxColour const &color, int states)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void StateColor::setTakeFocusedAsHovered(bool set) { takeFocusedAsHovered_ = set; }
|
||||||
|
|
||||||
|
|
|
@ -58,6 +58,8 @@ public:
|
||||||
|
|
||||||
bool setColorForStates(wxColour const & color, int states);
|
bool setColorForStates(wxColour const & color, int states);
|
||||||
|
|
||||||
|
void setTakeFocusedAsHovered(bool set);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
template<typename Color, typename ...Colors>
|
template<typename Color, typename ...Colors>
|
||||||
void fill(std::pair<Color, int> color, std::pair<Colors, int>... colors) {
|
void fill(std::pair<Color, int> color, std::pair<Colors, int>... colors) {
|
||||||
|
@ -76,6 +78,7 @@ private:
|
||||||
private:
|
private:
|
||||||
std::vector<int> statesList_;
|
std::vector<int> statesList_;
|
||||||
std::vector<wxColour> colors_;
|
std::vector<wxColour> colors_;
|
||||||
|
bool takeFocusedAsHovered_ = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // !slic3r_GUI_StateColor_hpp_
|
#endif // !slic3r_GUI_StateColor_hpp_
|
||||||
|
|
|
@ -26,7 +26,6 @@ END_EVENT_TABLE()
|
||||||
TextInput::TextInput()
|
TextInput::TextInput()
|
||||||
: state_handler(this)
|
: state_handler(this)
|
||||||
, border_color(std::make_pair(0xDBDBDB, (int) StateColor::Disabled),
|
, border_color(std::make_pair(0xDBDBDB, (int) StateColor::Disabled),
|
||||||
std::make_pair(0x00AE42, (int) StateColor::Focused),
|
|
||||||
std::make_pair(0x00AE42, (int) StateColor::Hovered),
|
std::make_pair(0x00AE42, (int) StateColor::Hovered),
|
||||||
std::make_pair(0xDBDBDB, (int) StateColor::Normal))
|
std::make_pair(0xDBDBDB, (int) StateColor::Normal))
|
||||||
, text_color(std::make_pair(0xACACAC, (int) StateColor::Disabled),
|
, text_color(std::make_pair(0xACACAC, (int) StateColor::Disabled),
|
||||||
|
|
Loading…
Reference in New Issue