/* * Copyright (c) 2021, sin-ack * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include class BasicModel final : public GUI::Model { public: static NonnullRefPtr create() { return adopt_ref(*new BasicModel()); } virtual int row_count(GUI::ModelIndex const& = GUI::ModelIndex()) const override { return m_items.size(); } virtual int column_count(GUI::ModelIndex const& = GUI::ModelIndex()) const override { return 1; } virtual DeprecatedString column_name(int) const override { return "Item"; } virtual GUI::Variant data(GUI::ModelIndex const&, GUI::ModelRole = GUI::ModelRole::Display) const override; virtual TriState data_matches(GUI::ModelIndex const&, GUI::Variant const&) const override; virtual void invalidate() override; virtual GUI::ModelIndex index(int row, int column = 0, GUI::ModelIndex const& parent = GUI::ModelIndex()) const override; Function on_invalidate; void add_item(DeprecatedString const& item); void remove_item(GUI::ModelIndex const&); private: BasicModel() { } Vector m_items; };