#pragma once #include #include #include namespace dchat { class MessagePart { public: enum class Type { TEXT }; MessagePart(Type _type) : type(_type) {} virtual ~MessagePart(){} static float getSizeScaled(); virtual sf::Vector2f getPosition() const = 0; virtual sf::Vector2f getSize() const = 0; const Type type; }; class MessagePartText : public MessagePart { public: MessagePartText(const std::string &text); static float getFontSizeScaled(); virtual sf::Vector2f getPosition() const override; virtual sf::Vector2f getSize() const override; sf::Text text; }; }