Serenity Operating System
at master 44 lines 1.3 kB view raw
1/* 2 * Copyright (c) 2018-2020, Andreas Kling <kling@serenityos.org> 3 * Copyright (c) 2022, the SerenityOS developers. 4 * 5 * SPDX-License-Identifier: BSD-2-Clause 6 */ 7 8#pragma once 9 10#include <AK/JsonArray.h> 11#include <AK/JsonObject.h> 12#include <LibGUI/Model.h> 13 14namespace Inspector { 15 16class RemoteProcess; 17 18class RemoteObjectGraphModel final : public GUI::Model { 19public: 20 static NonnullRefPtr<RemoteObjectGraphModel> create(RemoteProcess& process) 21 { 22 return adopt_ref(*new RemoteObjectGraphModel(process)); 23 } 24 25 virtual ~RemoteObjectGraphModel() override = default; 26 27 virtual int row_count(const GUI::ModelIndex& = GUI::ModelIndex()) const override; 28 virtual int column_count(const GUI::ModelIndex& = GUI::ModelIndex()) const override; 29 virtual GUI::Variant data(const GUI::ModelIndex&, GUI::ModelRole) const override; 30 virtual GUI::ModelIndex index(int row, int column, const GUI::ModelIndex& parent = GUI::ModelIndex()) const override; 31 virtual GUI::ModelIndex parent_index(const GUI::ModelIndex&) const override; 32 33private: 34 explicit RemoteObjectGraphModel(RemoteProcess&); 35 36 RemoteProcess& m_process; 37 38 GUI::Icon m_object_icon; 39 GUI::Icon m_window_icon; 40 GUI::Icon m_layout_icon; 41 GUI::Icon m_timer_icon; 42}; 43 44}