diff options
Diffstat (limited to 'Userland/Applications/Mail/MailboxTreeModel.h')
-rw-r--r-- | Userland/Applications/Mail/MailboxTreeModel.h | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/Userland/Applications/Mail/MailboxTreeModel.h b/Userland/Applications/Mail/MailboxTreeModel.h new file mode 100644 index 0000000000..d24a766ce3 --- /dev/null +++ b/Userland/Applications/Mail/MailboxTreeModel.h @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2021, Luke Wilde <lukew@serenityos.org> + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#pragma once + +#include <LibGUI/Model.h> +#include <LibIMAP/Objects.h> + +class AccountHolder; + +class MailboxTreeModel final : public GUI::Model { +public: + static NonnullRefPtr<MailboxTreeModel> create(AccountHolder const& account_holder) + { + return adopt_ref(*new MailboxTreeModel(account_holder)); + } + + virtual ~MailboxTreeModel() override; + + virtual int row_count(GUI::ModelIndex const& = GUI::ModelIndex()) const override; + virtual int column_count(GUI::ModelIndex const& = GUI::ModelIndex()) const override; + virtual GUI::Variant data(GUI::ModelIndex const&, GUI::ModelRole) const override; + virtual GUI::ModelIndex index(int row, int column, GUI::ModelIndex const& parent = GUI::ModelIndex()) const override; + virtual GUI::ModelIndex parent_index(GUI::ModelIndex const&) const override; + virtual void update() override; + +private: + explicit MailboxTreeModel(AccountHolder const&); + + AccountHolder const& m_account_holder; + + GUI::Icon m_mail_icon; + GUI::Icon m_folder_icon; + GUI::Icon m_account_icon; +}; |