// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved. // For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md #pragma once #include "ThreadsModel.hpp" #include #include namespace gui { class ThreadItem : public BaseThreadItem { std::shared_ptr threadStruct; auto getNumberImportance() -> std::optional; void setPreview(); void setContactName(std::optional numberImportance = std::nullopt); public: ThreadItem() = default; void setThreadItem(std::shared_ptr _threadStruct); [[nodiscard]] auto getThreadName() const -> UTF8; std::shared_ptr getThreadItem() { return threadStruct->thread; } static ThreadItem *makeThreadItem(const std::shared_ptr &threadStruct); }; class ThreadItemWithIndicator : public ThreadItem { gui::Image *indicator = nullptr; void onDimensionChangedBottom(const BoundingBox &oldDim, const BoundingBox &newDim) override; public: ThreadItemWithIndicator(const UTF8 &indicatorName); }; class ThreadItemNotRead : public ThreadItemWithIndicator { static constexpr auto indicatorName = "dot_12px_hard_alpha_W_M"; public: ThreadItemNotRead(); }; } /*namespace gui*/