47 lines
767 B
C++
47 lines
767 B
C++
#pragma once
|
|
|
|
#include <memory>
|
|
#include <thread>
|
|
|
|
#include "slimchat.h"
|
|
#include "tgclient.h"
|
|
#include "message.h"
|
|
|
|
#include <cdk/cdk.h>
|
|
|
|
class Crypt;
|
|
|
|
class TgTUI {
|
|
public:
|
|
|
|
TgTUI();
|
|
~TgTUI();
|
|
|
|
void run();
|
|
void stop();
|
|
|
|
const std::vector<SlimChat>& getChats();
|
|
|
|
private:
|
|
void initDoneCB();
|
|
|
|
void threadLoop();
|
|
|
|
void handleNewChat(objptr<td_api::chat> chat);
|
|
void handleChatMessages(const std::vector<std::shared_ptr<Message>>& msgs);
|
|
|
|
TGClient tgclient;
|
|
std::unique_ptr<Crypt> crypt;
|
|
|
|
std::vector<SlimChat> chats;
|
|
std::vector<char*> chatsItemList;
|
|
std::vector<std::shared_ptr<Message>> messages;
|
|
|
|
CDKSCROLL* chatsScroll = nullptr;
|
|
CDKSCROLL* chatScroll = nullptr;
|
|
CDKENTRY* textEntry = nullptr;
|
|
|
|
bool shouldRun = false;
|
|
std::thread tuiThread;
|
|
};
|