mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-04-22 04:25:13 +00:00
LibGUI+Inspector: Highlight the currently remotely inspected widget
This patch adds a magenta rectangle around the currently inspected widget. This allows you to browse an app's widget tree somewhat visually using the Inspector. :^)
This commit is contained in:
parent
d16f8214d8
commit
e23c5b7e83
Notes:
sideshowbarker
2024-07-19 08:54:01 +09:00
Author: https://github.com/awesomekling Commit: https://github.com/SerenityOS/serenity/commit/e23c5b7e83f
5 changed files with 29 additions and 0 deletions
|
@ -96,6 +96,14 @@ void RemoteProcess::send_request(const JsonObject& request)
|
|||
m_socket->write(serialized);
|
||||
}
|
||||
|
||||
void RemoteProcess::set_inspected_object(uintptr_t address)
|
||||
{
|
||||
JsonObject request;
|
||||
request.set("type", "SetInspectedObject");
|
||||
request.set("address", address);
|
||||
send_request(request);
|
||||
}
|
||||
|
||||
void RemoteProcess::update()
|
||||
{
|
||||
m_socket->on_connected = [this] {
|
||||
|
|
|
@ -43,6 +43,8 @@ public:
|
|||
RemoteObjectGraphModel& object_graph_model() { return *m_object_graph_model; }
|
||||
const NonnullOwnPtrVector<RemoteObject>& roots() const { return m_roots; }
|
||||
|
||||
void set_inspected_object(uintptr_t);
|
||||
|
||||
Function<void()> on_update;
|
||||
|
||||
private:
|
||||
|
|
|
@ -81,6 +81,7 @@ int main(int argc, char** argv)
|
|||
tree_view.on_activation = [&](auto& index) {
|
||||
auto* remote_object = static_cast<RemoteObject*>(index.internal_data());
|
||||
properties_table_view.set_model(remote_object->property_model());
|
||||
remote_process.set_inspected_object(remote_object->json.get("address").to_number<uintptr_t>());
|
||||
};
|
||||
|
||||
window->show();
|
||||
|
|
|
@ -240,6 +240,11 @@ void Widget::handle_paint_event(PaintEvent& event)
|
|||
return IterationDecision::Continue;
|
||||
});
|
||||
second_paint_event(event);
|
||||
|
||||
if (is_being_inspected()) {
|
||||
Painter painter(*this);
|
||||
painter.draw_rect(rect(), Color::Magenta);
|
||||
}
|
||||
}
|
||||
|
||||
void Widget::set_layout(NonnullRefPtr<Layout> layout)
|
||||
|
@ -763,4 +768,14 @@ Gfx::Palette Widget::palette() const
|
|||
return Gfx::Palette(*m_palette);
|
||||
}
|
||||
|
||||
void Widget::did_begin_inspection()
|
||||
{
|
||||
update();
|
||||
}
|
||||
|
||||
void Widget::did_end_inspection()
|
||||
{
|
||||
update();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -293,6 +293,9 @@ protected:
|
|||
virtual void drag_move_event(DragEvent&);
|
||||
virtual void drop_event(DropEvent&);
|
||||
|
||||
virtual void did_begin_inspection() override;
|
||||
virtual void did_end_inspection() override;
|
||||
|
||||
private:
|
||||
void handle_paint_event(PaintEvent&);
|
||||
void handle_resize_event(ResizeEvent&);
|
||||
|
|
Loading…
Add table
Reference in a new issue