mirror of
https://github.com/Detanup01/gbe_fork.git
synced 2024-11-27 05:04:01 +08:00
Improve achievement notification
This commit is contained in:
parent
36960f7095
commit
d0193b953d
@ -124,7 +124,7 @@ struct Overlay_Appearance {
|
||||
float notification_g = 0.29f;
|
||||
float notification_b = 0.48f;
|
||||
float notification_a = 1.0f;
|
||||
|
||||
float notification_rounding = 0.f;
|
||||
float background_r = -1.0f;
|
||||
float background_g = -1.0f;
|
||||
float background_b = -1.0f;
|
||||
|
@ -252,7 +252,12 @@ static void load_overlay_appearance(class Settings *settings_client, class Setti
|
||||
float nnotification_a = std::stof(value, NULL);
|
||||
settings_client->overlay_appearance.notification_a = nnotification_a;
|
||||
settings_server->overlay_appearance.notification_a = nnotification_a;
|
||||
} else if (name.compare("Background_R") == 0) {
|
||||
} else if (name.compare("Notification_Rounding") == 0) {
|
||||
float nnotification_rounding = std::stof(value, NULL);
|
||||
settings_client->overlay_appearance.notification_rounding = nnotification_rounding;
|
||||
settings_server->overlay_appearance.notification_rounding = nnotification_rounding;
|
||||
}
|
||||
else if (name.compare("Background_R") == 0) {
|
||||
float nbackground_r = std::stof(value, NULL);
|
||||
settings_client->overlay_appearance.background_r = nbackground_r;
|
||||
settings_server->overlay_appearance.background_r = nbackground_r;
|
||||
|
@ -836,12 +836,21 @@ void Steam_Overlay::build_friend_window(Friend const& frd, friend_window_state&
|
||||
// set the position of the next notification
|
||||
void Steam_Overlay::set_next_notification_pos(float width, float height, float font_size, notification_type type, struct NotificationsIndexes &idx)
|
||||
{
|
||||
// Add window rounding
|
||||
ImGuiStyle& style = ImGui::GetStyle();
|
||||
style.WindowRounding = settings->overlay_appearance.notification_rounding;
|
||||
|
||||
const float noti_width = width * Notification::width_percent;
|
||||
float noti_height = Notification::height * font_size;
|
||||
// 0 on the y-axis is top, 0 on the x-axis is left
|
||||
|
||||
// get the required position
|
||||
Overlay_Appearance::NotificationPosition pos = Overlay_Appearance::default_pos;
|
||||
switch (type) {
|
||||
case notification_type::notification_type_achievement: pos = settings->overlay_appearance.ach_earned_pos; break;
|
||||
case notification_type::notification_type_achievement:
|
||||
pos = settings->overlay_appearance.ach_earned_pos;
|
||||
noti_height = settings->overlay_appearance.icon_size + style.FramePadding.y * Notification::height;
|
||||
break;
|
||||
case notification_type::notification_type_invite: pos = settings->overlay_appearance.invite_pos; break;
|
||||
case notification_type::notification_type_message: pos = settings->overlay_appearance.chat_msg_pos; break;
|
||||
default: /* satisfy compiler warning */ break;
|
||||
@ -849,8 +858,6 @@ void Steam_Overlay::set_next_notification_pos(float width, float height, float f
|
||||
|
||||
float x = 0.0f;
|
||||
float y = 0.0f;
|
||||
const float noti_width = width * Notification::width_percent;
|
||||
const float noti_height = Notification::height * font_size;
|
||||
switch (pos) {
|
||||
// top
|
||||
case Overlay_Appearance::NotificationPosition::top_left:
|
||||
@ -890,6 +897,8 @@ void Steam_Overlay::set_next_notification_pos(float width, float height, float f
|
||||
}
|
||||
|
||||
ImGui::SetNextWindowPos(ImVec2( x, y ));
|
||||
ImGui::SetNextWindowSize(ImVec2(width * Notification::width_percent, noti_height));
|
||||
ImGui::SetNextWindowBgAlpha(0.9f);
|
||||
}
|
||||
|
||||
void Steam_Overlay::build_notifications(int width, int height)
|
||||
@ -903,9 +912,7 @@ void Steam_Overlay::build_notifications(int width, int height)
|
||||
auto elapsed_notif = now - it->start_time;
|
||||
|
||||
set_next_notification_pos(width, height, font_size, (notification_type)it->type, idx);
|
||||
ImGui::SetNextWindowSize(ImVec2( width * Notification::width_percent, Notification::height * font_size ));
|
||||
ImGui::SetNextWindowBgAlpha(0.9f);
|
||||
|
||||
|
||||
if ( elapsed_notif < Notification::fade_in) { // still appearing (fading in)
|
||||
float alpha = settings->overlay_appearance.notification_a * (elapsed_notif.count() / static_cast<float>(Notification::fade_in.count()));
|
||||
ImGui::PushStyleColor(ImGuiCol_Border, ImVec4(0, 0, 0, alpha));
|
||||
|
@ -42,11 +42,14 @@ Icon_Size=64.0
|
||||
Font_Glyph_Extra_Spacing_x=1.0
|
||||
Font_Glyph_Extra_Spacing_y=0.0
|
||||
|
||||
Notification_R=0.16
|
||||
Notification_G=0.29
|
||||
Notification_B=0.48
|
||||
Notification_R=0.14
|
||||
Notification_G=0.15
|
||||
Notification_B=0.18
|
||||
Notification_A=1.0
|
||||
|
||||
# Notification rounded corners
|
||||
Notification_Rounding=10
|
||||
|
||||
Background_R=-1.0
|
||||
Background_G=-1.0
|
||||
Background_B=-1.0
|
||||
|
Loading…
Reference in New Issue
Block a user