Serenity Operating System
1/*
2 * Copyright (c) 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 <LibGUI/Model.h>
11#include <LibGfx/Bitmap.h>
12
13namespace GUI {
14
15class RunningProcessesModel final : public GUI::Model {
16public:
17 static NonnullRefPtr<RunningProcessesModel> create();
18 virtual ~RunningProcessesModel() override = default;
19
20 enum Column {
21 Icon,
22 PID,
23 UID,
24 Name,
25 __Count,
26 };
27
28 virtual int row_count(const GUI::ModelIndex&) const override;
29 virtual int column_count(const GUI::ModelIndex&) const override;
30 virtual DeprecatedString column_name(int column_index) const override;
31 virtual GUI::Variant data(const GUI::ModelIndex&, GUI::ModelRole) const override;
32
33 void update();
34
35private:
36 RunningProcessesModel() = default;
37
38 struct Process {
39 pid_t pid;
40 uid_t uid;
41 RefPtr<Gfx::Bitmap const> icon;
42 DeprecatedString name;
43 };
44 Vector<Process> m_processes;
45};
46
47}