diff options
Diffstat (limited to 'src/UsersSidePanel.cpp')
-rw-r--r-- | src/UsersSidePanel.cpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/UsersSidePanel.cpp b/src/UsersSidePanel.cpp index 035826f..6ddfbe2 100644 --- a/src/UsersSidePanel.cpp +++ b/src/UsersSidePanel.cpp @@ -24,7 +24,7 @@ namespace dchat const float PADDING_BOTTOM = 20.0f; const i64 USER_TIMEOUT_SEC = 10; - static void renderUser(Cache &cache, User *user, sf::Shader *circleShader, sf::RenderWindow &window, sf::Vector2f &position, const sf::Font *font, const float textHeight) + static void renderUser(Cache &cache, User *user, sf::Shader *circleShader, sf::RenderWindow &window, sf::Vector2f &position, const sf::Font *font, const float textHeight, bool isUserOnline) { // Max avatar size = 1mb const ContentByUrlResult avatarResult = cache.getContentByUrl(user->avatarUrl, 1024 * 1024); @@ -39,6 +39,7 @@ namespace dchat auto textureSize = avatarResult.texture->getSize(); sprite.setPosition(sf::Vector2f(floor(position.x), floor(position.y))); sprite.setScale(sf::Vector2f(AVATAR_DIAMETER * Settings::getScaling() / (float)textureSize.x, AVATAR_DIAMETER * Settings::getScaling() / (float)textureSize.y)); + sprite.setColor(isUserOnline ? sf::Color::White : sf::Color(255, 255, 255, 100)); window.draw(sprite, circleShader); } else if(avatarResult.cachedType == ContentByUrlResult::CachedType::GIF) @@ -46,6 +47,7 @@ namespace dchat auto gifSize = avatarResult.gif->getSize(); avatarResult.gif->setPosition(sf::Vector2f(floor(position.x), floor(position.y))); avatarResult.gif->setScale(sf::Vector2f(AVATAR_DIAMETER * Settings::getScaling() / (float)gifSize.x, AVATAR_DIAMETER * Settings::getScaling() / (float)gifSize.y)); + avatarResult.gif->setColor(isUserOnline ? sf::Color::White : sf::Color(255, 255, 255, 100)); avatarResult.gif->draw(window, circleShader); } } @@ -53,7 +55,7 @@ namespace dchat { sf::CircleShape avatarCircle(AVATAR_DIAMETER * 0.5f * Settings::getScaling(), 60 * Settings::getScaling()); avatarCircle.setPosition(sf::Vector2f(floor(position.x), floor(position.y))); - avatarCircle.setFillColor(ColorScheme::getBackgroundColor() + sf::Color(30, 30, 30)); + avatarCircle.setFillColor(isUserOnline ? ColorScheme::getBackgroundColor() + sf::Color(30, 30, 30) : ColorScheme::getBackgroundColor() * sf::Color(255, 255, 255, 100)); window.draw(avatarCircle); } @@ -61,7 +63,7 @@ namespace dchat sf::String str = sf::String::fromUtf8(user->getName().begin(), user->getName().end()); sf::Text text(str, *font, FONT_SIZE * Settings::getScaling()); text.setPosition(floor(position.x + (AVATAR_DIAMETER + AVATAR_PADDING_SIDE) * Settings::getScaling()), floor(position.y + AVATAR_DIAMETER * 0.5f - textHeight * 0.5f)); - text.setFillColor(sf::Color(15, 192, 252)); + text.setFillColor(isUserOnline ? sf::Color(15, 192, 252) : sf::Color(15, 192, 252, 100)); window.draw(text); position.y += ((AVATAR_DIAMETER + PADDING_BOTTOM) * Settings::getScaling()); } @@ -128,7 +130,7 @@ namespace dchat } if(isUserOnline) - renderUser(cache, user, circleShader, window, position, font, textHeight); + renderUser(cache, user, circleShader, window, position, font, textHeight, isUserOnline); } if(numOfflineUsers == 0) return; @@ -156,7 +158,7 @@ namespace dchat } if(!isUserOnline) - renderUser(cache, user, circleShader, window, position, font, textHeight); + renderUser(cache, user, circleShader, window, position, font, textHeight, isUserOnline); } } |