aboutsummaryrefslogtreecommitdiff
path: root/include/MessageBoard.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'include/MessageBoard.hpp')
-rw-r--r--include/MessageBoard.hpp15
1 files changed, 8 insertions, 7 deletions
diff --git a/include/MessageBoard.hpp b/include/MessageBoard.hpp
index a4dc5a6..a6867d2 100644
--- a/include/MessageBoard.hpp
+++ b/include/MessageBoard.hpp
@@ -6,7 +6,9 @@
#include <SFML/Graphics/RenderTexture.hpp>
#include <SFML/Graphics/RenderWindow.hpp>
#include <SFML/Window/Event.hpp>
+#include <odhtdb/Hash.hpp>
#include <stdexcept>
+#include <mutex>
namespace dchat
{
@@ -16,25 +18,23 @@ namespace dchat
{
friend class Channel;
public:
- MessageBoard(const sf::Vector2u &size);
+ MessageBoard(Channel *channel);
~MessageBoard();
void processEvent(const sf::Event &event);
void draw(sf::RenderWindow &window, Cache &cache);
private:
void updateStaticContentTexture(const sf::Vector2u &newSize);
- void addMessage(Message *message);
+ void addMessage(Message *message, const odhtdb::Hash &id);
+ void deleteMessage(const odhtdb::Hash &id);
void drawDefault(sf::RenderWindow &window, Cache &cache);
void drawSimple(sf::RenderWindow &window, Cache &cache);
private:
- sf::RenderTexture staticContentTexture;
+ Channel *channel;
bool dirty;
- bool selectingText;
- bool leftMouseButtonPressed;
- sf::Vector2f mousePos;
- sf::Vector2f selectingTextStart;
std::vector<Message*> messages;
+ odhtdb::MapHash<Message*> messageIdMap;
double scroll;
double scrollSpeed;
sf::Clock frameTimer;
@@ -43,5 +43,6 @@ namespace dchat
sf::Vector2f backgroundSizeWithoutPadding;
sf::Vector2f backgroundSize;
sf::Vector2f backgroundPos;
+ std::mutex messageProcessMutex;
};
}