LibGUI: Make the "enabled" widget state propagate to child widgets
This simplifies building composite widgets by not having to worry about updating widget subtrees.
This commit is contained in:
parent
677568e3d4
commit
0f0d73d1b5
Notes:
sideshowbarker
2024-07-19 06:53:12 +09:00
Author: https://github.com/awesomekling Commit: https://github.com/SerenityOS/serenity/commit/0f0d73d1b50
3 changed files with 6 additions and 11 deletions
|
@ -87,15 +87,6 @@ void SpinBox::set_range(int min, int max)
|
|||
update();
|
||||
}
|
||||
|
||||
void SpinBox::set_enabled(bool value)
|
||||
{
|
||||
Widget::set_enabled(value);
|
||||
|
||||
m_editor->set_enabled(value);
|
||||
m_increment_button->set_enabled(value);
|
||||
m_decrement_button->set_enabled(value);
|
||||
}
|
||||
|
||||
void SpinBox::keydown_event(KeyEvent& event)
|
||||
{
|
||||
if (event.key() == KeyCode::Key_Up) {
|
||||
|
|
|
@ -44,8 +44,6 @@ public:
|
|||
void set_max(int max) { set_range(min(), max); }
|
||||
void set_range(int min, int max);
|
||||
|
||||
void set_enabled(bool);
|
||||
|
||||
Function<void(int value)> on_change;
|
||||
|
||||
protected:
|
||||
|
|
|
@ -616,6 +616,12 @@ void Widget::set_enabled(bool enabled)
|
|||
if (m_enabled == enabled)
|
||||
return;
|
||||
m_enabled = enabled;
|
||||
|
||||
for_each_child_widget([enabled](auto& child) {
|
||||
child.set_enabled(enabled);
|
||||
return IterationDecision::Continue;
|
||||
});
|
||||
|
||||
Event e(Event::EnabledChange);
|
||||
event(e);
|
||||
update();
|
||||
|
|
Loading…
Add table
Reference in a new issue