mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 14:38:11 +00:00
GWindow: Highlight for multicharacter SerenityKeys
This commit is contained in:
parent
053f41f4f9
commit
d449cda3d8
1 changed files with 11 additions and 4 deletions
|
@ -233,12 +233,21 @@ void GWindow::event(CEvent& event)
|
|||
if (m_keybind_mode) {
|
||||
//If we're in keybind mode indicate widgets in m_potential_keybind_widgets
|
||||
GPainter painter(*m_main_widget);
|
||||
painter.draw_text(Rect(20,20,20,20), m_entered_keybind.characters(), TextAlignment::TopLeft, Color::Green);
|
||||
|
||||
for (auto& keypair: m_hashed_potential_keybind_widgets) {
|
||||
auto widget = keypair.value;
|
||||
auto rect = Rect(widget->x()-5, widget->y()-5, 12, 12);
|
||||
painter.draw_text(rect, keypair.key.characters(), TextAlignment::TopLeft, Color::Black);
|
||||
bool could_be_keybind = true;
|
||||
for (size_t i = 0; i < m_entered_keybind.length(); i++) {
|
||||
if (keypair.key.characters()[i] != m_entered_keybind.characters()[i]) {
|
||||
could_be_keybind = false;
|
||||
}
|
||||
}
|
||||
if (could_be_keybind) {
|
||||
painter.draw_text(rect, keypair.key.characters(), TextAlignment::TopLeft, Color::Black);
|
||||
painter.draw_text(rect, m_entered_keybind.characters(), TextAlignment::TopLeft, Color::Green);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -280,7 +289,6 @@ void GWindow::event(CEvent& event)
|
|||
if (m_keybind_mode) {
|
||||
if (event.type() == GEvent::KeyUp) {
|
||||
StringBuilder builder;
|
||||
//Y u no work
|
||||
builder.append(m_entered_keybind);
|
||||
builder.append(keyevent.text());
|
||||
m_entered_keybind = builder.to_string();
|
||||
|
@ -297,7 +305,6 @@ void GWindow::event(CEvent& event)
|
|||
} else if (m_entered_keybind.length() >= m_max_keybind_length) {
|
||||
m_keybind_mode = false;
|
||||
}
|
||||
//m_entered_keybind.append(keyevent.text());
|
||||
update();
|
||||
}
|
||||
} else {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue