#pragma once #include #include #include #include #include class RemoteProcess; class RemoteObjectGraphModel final : public GModel { public: static NonnullRefPtr create(RemoteProcess& process) { return adopt(*new RemoteObjectGraphModel(process)); } virtual ~RemoteObjectGraphModel() override; virtual int row_count(const GModelIndex& = GModelIndex()) const override; virtual int column_count(const GModelIndex& = GModelIndex()) const override; virtual GVariant data(const GModelIndex&, Role = Role::Display) const override; virtual GModelIndex index(int row, int column, const GModelIndex& parent = GModelIndex()) const override; virtual GModelIndex parent_index(const GModelIndex&) const override; virtual void update() override; private: explicit RemoteObjectGraphModel(RemoteProcess&); RemoteProcess& m_process; GIcon m_object_icon; GIcon m_window_icon; };