tomato/src/chat_gui4.hpp
2023-08-01 13:21:16 +02:00

55 lines
1.2 KiB
C++

#pragma once
#include <solanaceae/message3/registry_message_model.hpp>
#include <solanaceae/util/config_model.hpp>
#include "./texture_uploader.hpp"
#include "./texture_cache.hpp"
#include "./tox_avatar_loader.hpp"
#include "./file_selector.hpp"
#include <vector>
#include <set>
class ChatGui4 {
ConfigModelI& _conf;
RegistryMessageModel& _rmm;
Contact3Registry& _cr;
ToxAvatarLoader _tal;
TextureCache<void*, Contact3, ToxAvatarLoader> _contact_tc;
//TextureCache<Message3Handle> _msg_tc;
FileSelector _fss;
std::optional<Contact3> _selected_contact;
bool _show_chat_extra_info {true};
float TEXT_BASE_WIDTH {1};
float TEXT_BASE_HEIGHT {1};
public:
ChatGui4(
ConfigModelI& conf,
RegistryMessageModel& rmm,
Contact3Registry& cr,
TextureUploaderI& tu
);
public:
void render(void);
private:
void renderMessageBodyText(Message3Registry& reg, const Message3 e);
void renderMessageBodyFile(Message3Registry& reg, const Message3 e);
void renderMessageExtra(Message3Registry& reg, const Message3 e);
void renderContactList(void);
bool renderContactListContactBig(const Contact3 c);
bool renderContactListContactSmall(const Contact3 c);
bool renderSubContactListContact(const Contact3 c);
};