mirror of
https://github.com/celisej567/abaddon.git
synced 2026-09-19 20:11:59 +03:00
add typing indicator with optional res/typing_indicator.gif
This commit is contained in:
24
components/typingindicator.hpp
Normal file
24
components/typingindicator.hpp
Normal file
@@ -0,0 +1,24 @@
|
||||
#pragma once
|
||||
#include <gtkmm.h>
|
||||
#include <unordered_map>
|
||||
#include "../discord/snowflake.hpp"
|
||||
#include "../discord/user.hpp"
|
||||
|
||||
class TypingIndicator : public Gtk::Box {
|
||||
public:
|
||||
TypingIndicator();
|
||||
void SetActiveChannel(Snowflake id);
|
||||
|
||||
private:
|
||||
void AddUser(Snowflake channel_id, const UserData &user, int timeout);
|
||||
void OnUserTypingStart(Snowflake user_id, Snowflake channel_id);
|
||||
void OnMessageCreate(Snowflake message_id);
|
||||
void SetTypingString(const Glib::ustring &str);
|
||||
void ComputeTypingString();
|
||||
|
||||
Gtk::Image m_img;
|
||||
Gtk::Label m_label;
|
||||
|
||||
Snowflake m_active_channel;
|
||||
std::unordered_map<Snowflake, std::unordered_map<Snowflake, sigc::connection>> m_typers; // channel id -> [user id -> connection]
|
||||
};
|
||||
Reference in New Issue
Block a user