aboutsummaryrefslogtreecommitdiff
path: root/src/QuickMedia.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/QuickMedia.cpp')
-rw-r--r--src/QuickMedia.cpp132
1 files changed, 65 insertions, 67 deletions
diff --git a/src/QuickMedia.cpp b/src/QuickMedia.cpp
index 9613199..bcd9a53 100644
--- a/src/QuickMedia.cpp
+++ b/src/QuickMedia.cpp
@@ -28,6 +28,7 @@
#include "../include/ResourceLoader.hpp"
#include "../include/Utils.hpp"
#include "../include/Tabs.hpp"
+#include "../include/Theme.hpp"
#include "../include/gui/Button.hpp"
#include "../external/hash-library/sha256.h"
@@ -50,7 +51,6 @@
#include <X11/extensions/Xrandr.h>
#include <GL/glx.h>
-static const sf::Color back_color(21, 25, 30);
static const std::string fourchan_google_captcha_api_key = "6Ldp2bsSAAAAAAJ5uyx_lx34lJeEpTLVkP5k04qc";
static int FPS_IDLE = 2;
static const double IDLE_TIMEOUT_SEC = 2.0;
@@ -312,7 +312,7 @@ namespace QuickMedia {
auto body_item = BodyItem::create(std::move(title));
if(!description.empty()) {
body_item->set_description(std::move(description));
- body_item->set_description_color(sf::Color(179, 179, 179));
+ body_item->set_description_color(get_current_theme().faded_text_color);
}
body_item->url = std::to_string(handlers.size());
handlers.push_back(std::move(handler));
@@ -658,6 +658,7 @@ namespace QuickMedia {
}
set_resource_loader_root_path(resources_root.c_str());
+ init_themes();
if(!is_touch_enabled()) {
if(!circle_mask_shader.loadFromFile(resources_root + "shaders/circle_mask.glsl", sf::Shader::Type::Fragment)) {
@@ -1332,7 +1333,7 @@ namespace QuickMedia {
body_item->url = "https://www.youtube.com/watch?v=" + video_id_str;
body_item->thumbnail_url = "https://img.youtube.com/vi/" + video_id_str + "/mqdefault.jpg";
body_item->set_description("Watched " + seconds_to_relative_time_str(time_now - timestamp.asInt64()));
- body_item->set_description_color(sf::Color(179, 179, 179));
+ body_item->set_description_color(get_current_theme().faded_text_color);
body_item->thumbnail_size = sf::Vector2i(192, 108);
body_items.push_back(std::move(body_item));
}
@@ -1411,7 +1412,7 @@ namespace QuickMedia {
// TODO: Add thumbnail
auto body_item = BodyItem::create(manga_name.asString());
body_item->set_description("Last read " + seconds_to_relative_time_str(now - last_modified_time));
- body_item->set_description_color(sf::Color(179, 179, 179));
+ body_item->set_description_color(get_current_theme().faded_text_color);
if(strcmp(plugin_name, "manganelo") == 0)
body_item->url = "https://manganelo.com/manga/" + base64_decode(filename.string());
@@ -1564,7 +1565,7 @@ namespace QuickMedia {
if(!tabs[selected_tab].search_bar) {
shade_extra_height = std::floor(10.0f * get_ui_scale());
sf::RectangleShape shade_top(sf::Vector2f(window_size.x, shade_extra_height));
- shade_top.setFillColor(sf::Color(33, 37, 44));
+ shade_top.setFillColor(get_current_theme().shade_color);
window.draw(shade_top);
}
@@ -2013,18 +2014,18 @@ namespace QuickMedia {
if(tab_associated_data[selected_tab].fetching_next_page_running) {
double progress = 0.5 + std::sin(std::fmod(gradient_inc, 360.0) * 0.017453292519943295 - 1.5707963267948966*0.5) * 0.5;
gradient_inc += (frame_time_ms * 0.5);
- sf::Color bottom_color = interpolate_colors(back_color, sf::Color(175, 180, 188), progress);
+ sf::Color bottom_color = interpolate_colors(get_current_theme().background_color, get_current_theme().loading_bar_color, progress);
if(tabs[selected_tab].body->attach_side == AttachSide::TOP) {
- gradient_points[0].color = back_color;
- gradient_points[1].color = back_color;
+ gradient_points[0].color = get_current_theme().background_color;
+ gradient_points[1].color = get_current_theme().background_color;
gradient_points[2].color = bottom_color;
gradient_points[3].color = bottom_color;
} else if(tabs[selected_tab].body->attach_side == AttachSide::BOTTOM) {
gradient_points[0].color = bottom_color;
gradient_points[1].color = bottom_color;
- gradient_points[2].color = back_color;
- gradient_points[3].color = back_color;
+ gradient_points[2].color = get_current_theme().background_color;
+ gradient_points[3].color = get_current_theme().background_color;
}
}
@@ -2164,7 +2165,7 @@ namespace QuickMedia {
ui_tabs.set_text(i, tab.page->get_title());
}
- window.clear(back_color);
+ window.clear(get_current_theme().background_color);
page_loop_render(window, tabs, selected_tab, tab_associated_data[selected_tab], json_chapters, ui_tabs);
AsyncImageLoader::get_instance().update();
window.display();
@@ -2331,7 +2332,7 @@ namespace QuickMedia {
goto task_end;
}
- window.clear(back_color);
+ window.clear(get_current_theme().background_color);
load_sprite.setPosition(window_size.x * 0.5f, window_size.y * 0.5f);
load_sprite.setRotation(load_sprite_timer.getElapsedTime().asSeconds() * 400.0);
window.draw(load_sprite);
@@ -2943,7 +2944,7 @@ namespace QuickMedia {
AsyncImageLoader::get_instance().update();
if(!video_loaded) {
- window.clear(back_color);
+ window.clear(get_current_theme().background_color);
load_sprite.setPosition(window_size.x * 0.5f, window_size.y * 0.5f);
load_sprite.setRotation(load_sprite_timer.getElapsedTime().asSeconds() * 400.0);
window.draw(load_sprite);
@@ -3194,7 +3195,7 @@ namespace QuickMedia {
break;
}
- window.clear(back_color);
+ window.clear(get_current_theme().background_color);
load_sprite.setPosition(window_size.x * 0.5f, window_size.y * 0.5f);
load_sprite.setRotation(load_sprite_timer.getElapsedTime().asSeconds() * 400.0);
window.draw(load_sprite);
@@ -3217,7 +3218,7 @@ namespace QuickMedia {
sf::Texture image_texture;
sf::Sprite image;
sf::Text error_message("", *FontLoader::get_font(FontLoader::FontType::LATIN), std::floor(30 * get_ui_scale()));
- error_message.setFillColor(sf::Color::White);
+ error_message.setFillColor(get_current_theme().text_color);
bool download_in_progress = false;
sf::Event event;
@@ -3381,7 +3382,7 @@ namespace QuickMedia {
image.setPosition(std::floor(content_size.x * 0.5f - image_size.x * 0.5f), std::floor(content_size.y * 0.5f - image_size.y * 0.5f));
}
- window.clear(back_color);
+ window.clear(get_current_theme().background_color);
if(error) {
window.draw(error_message);
@@ -3453,7 +3454,7 @@ namespace QuickMedia {
while(current_page == PageType::IMAGES_CONTINUOUS && window.isOpen()) {
handle_window_close();
- window.clear(back_color);
+ window.clear(get_current_theme().background_color);
ImageViewerAction action = image_viewer.draw();
switch(action) {
case ImageViewerAction::NONE:
@@ -3514,7 +3515,7 @@ namespace QuickMedia {
GoogleCaptchaChallengeInfo challenge_info;
sf::Text challenge_description_text("", *FontLoader::get_font(FontLoader::FontType::LATIN), std::floor(24 * get_ui_scale()));
- challenge_description_text.setFillColor(sf::Color::White);
+ challenge_description_text.setFillColor(get_current_theme().text_color);
const size_t captcha_num_columns = 3;
const size_t captcha_num_rows = 3;
std::array<bool, captcha_num_columns * captcha_num_rows> selected_captcha_images;
@@ -3654,7 +3655,7 @@ namespace QuickMedia {
};
sf::RectangleShape comment_input_shade;
- comment_input_shade.setFillColor(sf::Color(33, 37, 44));
+ comment_input_shade.setFillColor(get_current_theme().shade_color);
sf::Sprite logo_sprite(plugin_logo);
logo_sprite.setScale(0.8f * get_ui_scale(), 0.8f * get_ui_scale());
@@ -3981,7 +3982,7 @@ namespace QuickMedia {
//comment_input.update();
- window.clear(back_color);
+ window.clear(get_current_theme().background_color);
if(navigation_stage == NavigationStage::SOLVING_POST_CAPTCHA) {
std::lock_guard<std::mutex> lock(captcha_image_mutex);
if(captcha_texture.getNativeHandle() != 0) {
@@ -4051,7 +4052,7 @@ namespace QuickMedia {
window.draw(attached_image_sprite);
} else {
sf::RectangleShape rect(sf::Vector2f(640.0f, 480.0f));
- rect.setFillColor(sf::Color(52, 58, 70));
+ rect.setFillColor(get_current_theme().image_loading_background_color);
auto content_size = window_size;
auto rect_size = clamp_to_size(rect.getSize(), content_size);
rect.setSize(rect_size);
@@ -4093,7 +4094,7 @@ namespace QuickMedia {
SearchBar *inputs[num_inputs] = { &login_input, &password_input, &homeserver_input };
int focused_input = 0;
- RoundedRectangle background(sf::Vector2f(1.0f, 1.0f), 10.0f, sf::Color(33, 37, 44), &rounded_rectangle_shader);
+ RoundedRectangle background(sf::Vector2f(1.0f, 1.0f), 10.0f, get_current_theme().shade_color, &rounded_rectangle_shader);
auto text_submit_callback = [this, inputs](const sf::String&) {
for(int i = 0; i < num_inputs; ++i) {
@@ -4173,7 +4174,7 @@ namespace QuickMedia {
}
}
- window.clear(back_color);
+ window.clear(get_current_theme().background_color);
background.draw(window);
for(int i = 0; i < num_inputs; ++i) {
inputs[i]->update();
@@ -4220,9 +4221,9 @@ namespace QuickMedia {
body_item->embedded_item->embedded_item = nullptr;
body_item->embedded_item->reactions.clear();
if(message->user->user_id != my_user_id && ((related_body_item->userdata && static_cast<Message*>(related_body_item->userdata)->user.get() == me) || message_contains_user_mention(body_item->get_description(), my_display_name) || message_contains_user_mention(body_item->get_description(), my_user_id)))
- body_item->set_description_color(sf::Color(255, 100, 100));
+ body_item->set_description_color(get_current_theme().attention_alert_text_color);
else
- body_item->set_description_color(sf::Color::White);
+ body_item->set_description_color(get_current_theme().text_color);
body_item->embedded_item_status = FetchStatus::FINISHED_LOADING;
return true;
}
@@ -4255,7 +4256,7 @@ namespace QuickMedia {
if(message->related_event_type == RelatedEventType::REDACTION || message->related_event_type == RelatedEventType::EDIT || message->related_event_type == RelatedEventType::REACTION)
body_item->visible = false;
if(message->user->user_id != my_user_id && (message_contains_user_mention(body_item->get_description(), my_display_name) || message_contains_user_mention(body_item->get_description(), my_user_id)))
- body_item->set_description_color(sf::Color(255, 100, 100));
+ body_item->set_description_color(get_current_theme().attention_alert_text_color);
return body_item;
}
@@ -4367,7 +4368,7 @@ namespace QuickMedia {
tab.body->show_drop_shadow = false;
}
- Tabs ui_tabs(&rounded_rectangle_shader, is_touch_enabled() ? sf::Color::Transparent : back_color);
+ Tabs ui_tabs(&rounded_rectangle_shader, is_touch_enabled() ? sf::Color::Transparent : get_current_theme().background_color);
const int PINNED_TAB_INDEX = ui_tabs.add_tab("Pinned messages (0)", tabs[0].body.get());
const int MESSAGES_TAB_INDEX = ui_tabs.add_tab("Messages", tabs[1].body.get());
const int USERS_TAB_INDEX = ui_tabs.add_tab("Users (0)", tabs[2].body.get());
@@ -4450,7 +4451,7 @@ namespace QuickMedia {
const float room_topic_text_height = std::floor(12.0f * get_ui_scale());
sf::Text room_topic_text("", *FontLoader::get_font(FontLoader::FontType::LATIN), room_topic_text_height);
- room_topic_text.setFillColor(sf::Color(179, 179, 179));
+ room_topic_text.setFillColor(get_current_theme().faded_text_color);
sf::Text room_label(matrix_chat_page->rooms_page->get_title(), *FontLoader::get_font(FontLoader::FontType::LATIN_BOLD), std::floor(18 * get_ui_scale()));
room_label.setPosition(15.0f, room_name_text_padding_y + 4.0f);
@@ -4475,7 +4476,7 @@ namespace QuickMedia {
body_item->thumbnail_mask_type = ThumbnailMaskType::CIRCLE;
}
body_item->set_description("Message deleted");
- body_item->set_description_color(sf::Color::White);
+ body_item->set_description_color(get_current_theme().text_color);
body_item->thumbnail_size = AVATAR_THUMBNAIL_SIZE;
body_item->url.clear();
};
@@ -4502,9 +4503,9 @@ namespace QuickMedia {
Message *orig_message = get_original_message(reply_to_message);
body_item->set_description(strip(message_get_body_remove_formatting(message.get())));
if(message->user != me && (message_contains_user_mention(body_item->get_description(), my_display_name) || message_contains_user_mention(body_item->get_description(), me->user_id) || (orig_message && orig_message->user == me)))
- body_item->set_description_color(sf::Color(255, 100, 100));
+ body_item->set_description_color(get_current_theme().attention_alert_text_color);
else
- body_item->set_description_color(sf::Color::White);
+ body_item->set_description_color(get_current_theme().text_color);
message->replaces = reply_to_message;
reply_to_message->replaced_by = message;
}
@@ -4540,9 +4541,9 @@ namespace QuickMedia {
Message *orig_message = get_original_message(reply_to_message);
body_item->set_description(strip(message_get_body_remove_formatting(message.get())));
if(message->user != me && (message_contains_user_mention(body_item->get_description(), my_display_name) || message_contains_user_mention(body_item->get_description(), me->user_id) || (orig_message && orig_message->user == me)))
- body_item->set_description_color(sf::Color(255, 100, 100));
+ body_item->set_description_color(get_current_theme().attention_alert_text_color);
else
- body_item->set_description_color(sf::Color::White);
+ body_item->set_description_color(get_current_theme().text_color);
message->replaces = reply_to_message;
reply_to_message->replaced_by = message;
}
@@ -4897,8 +4898,6 @@ namespace QuickMedia {
message->type = MessageType::TEXT;
message->timestamp = time(NULL) * 1000;
- const sf::Color provisional_message_color(255, 255, 255, 150);
-
int num_items = tabs[MESSAGES_TAB_INDEX].body->items.size();
bool scroll_to_end = num_items == 0;
if(tabs[MESSAGES_TAB_INDEX].body->is_selected_item_last_visible_item() && selected_tab == MESSAGES_TAB_INDEX)
@@ -4931,7 +4930,7 @@ namespace QuickMedia {
});
} else {
auto body_item = message_to_body_item(current_room, message.get(), current_room->get_user_avatar_url(me), me->user_id);
- body_item->set_description_color(provisional_message_color);
+ body_item->set_description_color(get_current_theme().provisional_message_color);
load_cached_related_embedded_item(body_item.get(), message.get(), me, current_room, tabs[MESSAGES_TAB_INDEX].body->items);
tabs[MESSAGES_TAB_INDEX].body->insert_items_by_timestamps({body_item});
post_task_queue.push([this, &current_room, text, msgtype, body_item, message]() {
@@ -4956,7 +4955,7 @@ namespace QuickMedia {
message->related_event_type = RelatedEventType::REPLY;
message->related_event_id = static_cast<Message*>(related_to_message)->event_id;
auto body_item = message_to_body_item(current_room, message.get(), current_room->get_user_avatar_url(me), me->user_id);
- body_item->set_description_color(provisional_message_color);
+ body_item->set_description_color(get_current_theme().provisional_message_color);
load_cached_related_embedded_item(body_item.get(), message.get(), me, current_room, tabs[MESSAGES_TAB_INDEX].body->items);
tabs[MESSAGES_TAB_INDEX].body->insert_items_by_timestamps({body_item});
post_task_queue.push([this, &current_room, text, related_to_message, body_item, message, transaction_id]() {
@@ -4982,7 +4981,7 @@ namespace QuickMedia {
if(body_item) {
auto body_item_shared_ptr = tabs[MESSAGES_TAB_INDEX].body->items[body_item_index];
body_item_shared_ptr->set_description(text);
- body_item_shared_ptr->set_description_color(provisional_message_color);
+ body_item_shared_ptr->set_description_color(get_current_theme().provisional_message_color);
auto edit_body_item = message_to_body_item(current_room, message.get(), current_room->get_user_avatar_url(me), me->user_id);
edit_body_item->visible = false;
@@ -5070,9 +5069,9 @@ namespace QuickMedia {
*body_item = *related_body_item;
body_item->reactions.clear();
if(message_contains_user_mention(related_body_item->get_description(), current_room->get_user_display_name(me)) || message_contains_user_mention(related_body_item->get_description(), me->user_id))
- body_item->set_description_color(sf::Color(255, 100, 100));
+ body_item->set_description_color(get_current_theme().attention_alert_text_color);
else
- body_item->set_description_color(sf::Color::White);
+ body_item->set_description_color(get_current_theme().text_color);
event_data->status = FetchStatus::FINISHED_LOADING;
event_data->message = static_cast<Message*>(related_body_item->userdata);
body_item->userdata = event_data;
@@ -5158,10 +5157,10 @@ namespace QuickMedia {
};
sf::RectangleShape more_messages_below_rect;
- more_messages_below_rect.setFillColor(sf::Color(128, 50, 50));
+ more_messages_below_rect.setFillColor(get_current_theme().new_items_alert_color);
sf::RectangleShape chat_input_shade;
- chat_input_shade.setFillColor(sf::Color(33, 37, 44));
+ chat_input_shade.setFillColor(get_current_theme().shade_color);
float tab_vertical_offset = 0.0f;
@@ -5721,11 +5720,11 @@ namespace QuickMedia {
if(!provisional_message->event_id.empty()) {
provisional_message->message->event_id = std::move(provisional_message->event_id);
- provisional_message->body_item->set_description_color(sf::Color::White);
+ provisional_message->body_item->set_description_color(get_current_theme().text_color);
sent_messages[provisional_message->message->event_id] = std::move(provisional_message.value());
} else if(provisional_message->body_item) {
provisional_message->body_item->set_description("Failed to send: " + provisional_message->body_item->get_description());
- provisional_message->body_item->set_description_color(sf::Color::Red);
+ provisional_message->body_item->set_description_color(get_current_theme().failed_text_color);
provisional_message->body_item->userdata = nullptr;
}
}
@@ -5942,7 +5941,7 @@ namespace QuickMedia {
fetch_body_item->embedded_item = message_to_body_item(current_room, fetch_message_result.message.get(), current_room->get_user_display_name(me), me->user_id);
fetch_body_item->embedded_item_status = FetchStatus::FINISHED_LOADING;
if(fetch_message_result.message->user == me)
- fetch_body_item->set_description_color(sf::Color(255, 100, 100));
+ fetch_body_item->set_description_color(get_current_theme().attention_alert_text_color);
} else {
fetch_body_item->embedded_item_status = FetchStatus::FAILED_TO_LOAD;
}
@@ -5951,7 +5950,7 @@ namespace QuickMedia {
fetch_message_tab = -1;
}
- window.clear(back_color);
+ window.clear(get_current_theme().background_color);
if(chat_state == ChatState::URL_SELECTION) {
url_selection_body.draw(window, body_pos, body_size);
@@ -5960,7 +5959,7 @@ namespace QuickMedia {
if(selected_tab == MESSAGES_TAB_INDEX && mention.visible && chat_state == ChatState::TYPING_MESSAGE) {
sf::RectangleShape user_mention_background(sf::Vector2f(body_size.x, user_mention_body_height));
user_mention_background.setPosition(sf::Vector2f(body_pos.x, body_pos.y + body_size.y - user_mention_body_height));
- user_mention_background.setFillColor(sf::Color(33, 37, 44));
+ user_mention_background.setFillColor(get_current_theme().shade_color);
window.draw(user_mention_background);
tabs[USERS_TAB_INDEX].body->draw(window, user_mention_background.getPosition(), user_mention_background.getSize());
@@ -5992,7 +5991,7 @@ namespace QuickMedia {
if(draw_room_list) {
sf::RectangleShape room_list_background(sf::Vector2f(this->body_size.x, window_size.y));
//room_list_background.setPosition(this->body_pos);
- room_list_background.setFillColor(sf::Color(33, 37, 44));
+ room_list_background.setFillColor(get_current_theme().shade_color);
glEnable(GL_SCISSOR_TEST);
glScissor(0.0f, 0.0f, this->body_size.x, window_size.y);
window.draw(room_list_background);
@@ -6008,7 +6007,7 @@ namespace QuickMedia {
if(previous_messages_future.valid() && selected_tab == MESSAGES_TAB_INDEX) {
double progress = 0.5 + std::sin(std::fmod(gradient_inc, 360.0) * 0.017453292519943295 - 1.5707963267948966*0.5) * 0.5;
gradient_inc += (frame_time_ms * 0.5);
- sf::Color top_color = interpolate_colors(back_color, sf::Color(175, 180, 188), progress);
+ sf::Color top_color = interpolate_colors(get_current_theme().background_color, get_current_theme().loading_page_color, progress);
gradient_points[0].position.x = chat_input_shade.getPosition().x;
gradient_points[0].position.y = tab_shade_height;
@@ -6024,8 +6023,8 @@ namespace QuickMedia {
gradient_points[0].color = top_color;
gradient_points[1].color = top_color;
- gradient_points[2].color = back_color;
- gradient_points[3].color = back_color;
+ gradient_points[2].color = get_current_theme().background_color;
+ gradient_points[3].color = get_current_theme().background_color;
window.draw(gradient_points, 4, sf::Quads); // Note: sf::Quads doesn't work with egl
}
@@ -6050,13 +6049,13 @@ namespace QuickMedia {
sf::RectangleShape item_background(sf::Vector2f(window_size.x, body_item_size.y + chat_input_height_full + replying_to_text_height + margin));
item_background.setPosition(sf::Vector2f(0.0f, window_size.y - (body_item_size.y + chat_input_height_full + replying_to_text_height + margin)));
- item_background.setFillColor(back_color);
+ item_background.setFillColor(get_current_theme().background_color);
window.draw(item_background);
if(mention.visible) {
sf::RectangleShape user_mention_background(sf::Vector2f(window_size.x, user_mention_body_height));
user_mention_background.setPosition(sf::Vector2f(0.0f, item_background.getPosition().y - user_mention_body_height));
- user_mention_background.setFillColor(sf::Color(33, 37, 44));
+ user_mention_background.setFillColor(get_current_theme().shade_color);
window.draw(user_mention_background);
tabs[USERS_TAB_INDEX].body->draw(window,
@@ -6093,9 +6092,9 @@ namespace QuickMedia {
room_desc.erase(room_desc.begin() + last_line_start - 1, room_desc.end());
}
current_room->body_item->set_description(std::move(room_desc));
- current_room->body_item->set_description_color(sf::Color(179, 179, 179));
+ current_room->body_item->set_description_color(get_current_theme().faded_text_color);
// TODO: Show a line like nheko instead for unread messages, or something else
- current_room->body_item->set_title_color(sf::Color::White);
+ current_room->body_item->set_title_color(get_current_theme().text_color);
current_room->last_message_read = true;
// TODO: Maybe set this instead when the mention is visible on the screen?
current_room->unread_notification_count = 0;
@@ -6670,13 +6669,13 @@ namespace QuickMedia {
}
idle_active_handler();
- window.clear(back_color);
+ window.clear(get_current_theme().background_color);
window.display();
const float loading_bar_padding_x = std::floor(4.0f * get_ui_scale());
const float loading_bar_padding_y = std::floor(4.0f * get_ui_scale());
- RoundedRectangle loading_bar_background(sf::Vector2f(1.0f, 1.0f), std::floor(10.0f * get_ui_scale()), sf::Color(21, 25, 30), &rounded_rectangle_shader);
- RoundedRectangle loading_bar(sf::Vector2f(1.0f, 1.0f), std::floor(10.0f * get_ui_scale() - loading_bar_padding_y), sf::Color(31, 117, 255), &rounded_rectangle_shader);
+ RoundedRectangle loading_bar_background(sf::Vector2f(1.0f, 1.0f), std::floor(10.0f * get_ui_scale()), get_current_theme().background_color, &rounded_rectangle_shader);
+ RoundedRectangle loading_bar(sf::Vector2f(1.0f, 1.0f), std::floor(10.0f * get_ui_scale() - loading_bar_padding_y), get_current_theme().loading_bar_color, &rounded_rectangle_shader);
const float padding_x = std::floor(30.0f * get_ui_scale());
const float spacing_y = std::floor(15.0f * get_ui_scale());
@@ -6685,9 +6684,9 @@ namespace QuickMedia {
sf::Text progress_text("0kb/Unknown", *FontLoader::get_font(FontLoader::FontType::LATIN), std::floor(20.0f * get_ui_scale()));
sf::Text status_text("Downloading", *FontLoader::get_font(FontLoader::FontType::LATIN), std::floor(20.0f * get_ui_scale()));
sf::Text filename_text(filename.c_str(), *FontLoader::get_font(FontLoader::FontType::LATIN), std::floor(14.0f * get_ui_scale()));
- filename_text.setFillColor(sf::Color(179, 179, 179));
+ filename_text.setFillColor(get_current_theme().faded_text_color);
sf::Text download_speed_text("0 bytes/s", *FontLoader::get_font(FontLoader::FontType::LATIN), std::floor(14.0f * get_ui_scale()));
- download_speed_text.setFillColor(sf::Color(179, 179, 179));
+ download_speed_text.setFillColor(get_current_theme().faded_text_color);
bool redraw = true;
sf::Event event;
@@ -6779,7 +6778,7 @@ namespace QuickMedia {
std::floor((loading_bar_background.get_size().x - loading_bar_padding_x * 2.0f) * ui_progress),
loading_bar_height - loading_bar_padding_y * 2.0f));
- window.clear(sf::Color(33, 37, 44));
+ window.clear(get_current_theme().shade_color);
loading_bar_background.draw(window);
loading_bar.draw(window);
window.draw(progress_text);
@@ -6854,10 +6853,10 @@ namespace QuickMedia {
const float bottom_panel_spacing = 10.0f;
Button cancel_button("Cancel", FontLoader::get_font(FontLoader::FontType::LATIN), 16, 100.0f, &rounded_rectangle_shader, get_ui_scale());
- cancel_button.set_background_color(sf::Color(41, 45, 50));
+ cancel_button.set_background_color(get_current_theme().cancel_button_background_color);
Button save_button("Save", FontLoader::get_font(FontLoader::FontType::LATIN), 16, 100.0f, &rounded_rectangle_shader, get_ui_scale());
- save_button.set_background_color(sf::Color(31, 117, 255));
+ save_button.set_background_color(get_current_theme().confirm_button_background_color);
sf::Text file_name_label("File name:", *FontLoader::get_font(FontLoader::FontType::LATIN), std::floor(16.0f * get_ui_scale()));
@@ -6867,11 +6866,9 @@ namespace QuickMedia {
file_name_entry.set_editable(false);
sf::RectangleShape bottom_panel_background;
- bottom_panel_background.setFillColor(sf::Color(33, 37, 44));
+ bottom_panel_background.setFillColor(get_current_theme().shade_color);
- const sf::Color color(0, 0, 0, 50);
const float gradient_height = 5.0f;
-
sf::Vertex gradient_points[4];
auto save_file = [this, &file_name_entry, &file_manager_page]() -> std::string {
@@ -6976,13 +6973,14 @@ namespace QuickMedia {
bottom_panel_background.setPosition(0.0f, window_size.y - std::floor(bottom_panel_padding * 2.0f + file_name_entry.get_height()));
bottom_panel_background.setSize(sf::Vector2f(window_size.x, std::floor(bottom_panel_padding * 2.0f + file_name_entry.get_height())));
+ const sf::Color color(0, 0, 0, 50);
gradient_points[0] = sf::Vertex(bottom_panel_background.getPosition() + sf::Vector2f(0.0f, -gradient_height), sf::Color(color.r, color.g, color.b, 0));
gradient_points[1] = sf::Vertex(bottom_panel_background.getPosition() + sf::Vector2f(bottom_panel_background.getSize().x, -gradient_height), sf::Color(color.r, color.g, color.b, 0));
gradient_points[2] = sf::Vertex(bottom_panel_background.getPosition() + sf::Vector2f(bottom_panel_background.getSize().x, 0.0f), color);
gradient_points[3] = sf::Vertex(bottom_panel_background.getPosition() + sf::Vector2f(0.0f, 0.0f), color);
}
- window.clear(back_color);
+ window.clear(get_current_theme().background_color);
ui_tabs.draw(window, sf::Vector2f(0.0f, search_bar->getBottomWithoutShadow()), window_size.x);
search_bar->draw(window, window_size, true);