~aleteoryx/muditaos

muditaos/module-apps/application-messages/widgets/SMSInputWidget.hpp -rw-r--r-- 1.1 KiB
a405cad6Aleteoryx trim readme 6 days ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
// Copyright (c) 2017-2024, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/blob/master/LICENSE.md

#pragma once

#include "Application.hpp"

#include "Text.hpp"
#include "Image.hpp"
#include "ListItem.hpp"
#include <BoxLayout.hpp>
#include "Interface/SMSRecord.hpp"

namespace gui
{

    class SMSInputWidget : public ListItem
    {
        app::ApplicationCommon *application = nullptr;
        HBox *body                          = nullptr;
        gui::Image *replyImage              = nullptr;

      public:
        gui::Text *inputText = nullptr;
        std::optional<SMSRecord> draft; // draft message of the thread we are showing, if exists.
        std::unique_ptr<utils::PhoneNumber::View> number = nullptr;

        SMSInputWidget(app::ApplicationCommon *application);
        ~SMSInputWidget() override = default;

        void handleDraftMessage();
        void clearDraftMessage();
        void updateDraftMessage(const UTF8 &inputText);
        void displayDraftMessage() const;

        auto handleRequestResize(const Item *, Length request_w, Length request_h) -> Size override;
    };

} /* namespace gui */