[feat] optimize UpdateNotificationWindow UI appearance

This commit is contained in:
dijunkun
2025-11-27 03:07:55 +08:00
parent c0a98f97c3
commit f14bdb7fe8
2 changed files with 22 additions and 11 deletions

View File

@@ -75,6 +75,13 @@
#define SELF_HOSTED_SERVER_CONFIG_OK_BUTTON_PADDING_EN 91 #define SELF_HOSTED_SERVER_CONFIG_OK_BUTTON_PADDING_EN 91
#define UPDATE_NOTIFICATION_OK_BUTTON_PADDING_CN 162 #define UPDATE_NOTIFICATION_OK_BUTTON_PADDING_CN 162
#define UPDATE_NOTIFICATION_OK_BUTTON_PADDING_EN 146 #define UPDATE_NOTIFICATION_OK_BUTTON_PADDING_EN 146
#ifdef _WIN32
#define UPDATE_NOTIFICATION_RESERVED_HEIGHT 130
#elif __APPLE__
#define UPDATE_NOTIFICATION_RESERVED_HEIGHT 100
#else
#define UPDATE_NOTIFICATION_RESERVED_HEIGHT 100
#endif
#define REQUEST_PERMISSION_WINDOW_WIDTH_CN 130 #define REQUEST_PERMISSION_WINDOW_WIDTH_CN 130
#define REQUEST_PERMISSION_WINDOW_HEIGHT_CN 125 #define REQUEST_PERMISSION_WINDOW_HEIGHT_CN 125
#define REQUEST_PERMISSION_WINDOW_WIDTH_EN 260 #define REQUEST_PERMISSION_WINDOW_WIDTH_EN 260

View File

@@ -58,6 +58,12 @@ int Render::UpdateNotificationWindow() {
float window_width = update_notification_window_width_; float window_width = update_notification_window_width_;
float window_height = update_notification_window_height_; float window_height = update_notification_window_height_;
#ifdef __APPLE__
float font_scale = 0.3f;
#else
float font_scale = 0.5f;
#endif
ImGui::SetNextWindowPos( ImGui::SetNextWindowPos(
ImVec2( ImVec2(
(viewport->WorkSize.x - viewport->WorkPos.x - window_width) / 2, (viewport->WorkSize.x - viewport->WorkPos.x - window_width) / 2,
@@ -70,29 +76,27 @@ int Render::UpdateNotificationWindow() {
ImGui::PushStyleVar(ImGuiStyleVar_WindowBorderSize, 1.0f); ImGui::PushStyleVar(ImGuiStyleVar_WindowBorderSize, 1.0f);
ImGui::PushStyleVar(ImGuiStyleVar_WindowRounding, 5.0f); ImGui::PushStyleVar(ImGuiStyleVar_WindowRounding, 5.0f);
ImGui::PushStyleVar(ImGuiStyleVar_FrameRounding, 3.0f); ImGui::PushStyleVar(ImGuiStyleVar_FrameRounding, 3.0f);
ImGui::SetWindowFontScale(0.5f);
ImGui::Begin( ImGui::Begin(
localization::notification[localization_language_index_].c_str(), localization::notification[localization_language_index_].c_str(),
nullptr, nullptr,
ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoCollapse |
ImGuiWindowFlags_NoSavedSettings); ImGuiWindowFlags_NoSavedSettings | ImGuiWindowFlags_NoTitleBar);
ImGui::SetWindowFontScale(1.0f);
ImGui::SetWindowFontScale(0.5f);
// use system Chinese font
if (system_chinese_font_ != nullptr) { if (system_chinese_font_ != nullptr) {
ImGui::PushFont(system_chinese_font_); ImGui::PushFont(system_chinese_font_);
} }
ImGui::SetCursorPosY(ImGui::GetCursorPosY() + ImGui::GetTextLineHeight() +
5.0f);
// title: new version available // title: new version available
ImGui::SetCursorPosX(window_width * 0.1f); ImGui::SetCursorPosX(window_width * 0.1f);
ImGui::SetWindowFontScale(0.7f); ImGui::SetWindowFontScale(font_scale + 0.2f);
std::string title = std::string title =
localization::new_version_available[localization_language_index_] + localization::new_version_available[localization_language_index_] +
": v" + latest_version_; ": v" + latest_version_;
ImGui::Text("%s", title.c_str()); ImGui::Text("%s", title.c_str());
ImGui::SetWindowFontScale(0.5f); ImGui::SetWindowFontScale(font_scale);
ImGui::Spacing(); ImGui::Spacing();
@@ -104,8 +108,8 @@ int Render::UpdateNotificationWindow() {
ImGui::Spacing(); ImGui::Spacing();
float reserved_height = 140.0f; float scrollable_height =
float scrollable_height = window_height - reserved_height; window_height - UPDATE_NOTIFICATION_RESERVED_HEIGHT;
// scrollable content area // scrollable content area
ImGui::SetCursorPosX(window_width * 0.05f); ImGui::SetCursorPosX(window_width * 0.05f);
@@ -187,7 +191,7 @@ int Render::UpdateNotificationWindow() {
} }
ImGui::SetWindowFontScale(1.0f); ImGui::SetWindowFontScale(1.0f);
ImGui::SetWindowFontScale(0.5f); ImGui::SetWindowFontScale(font_scale);
// pop system font // pop system font
if (system_chinese_font_ != nullptr) { if (system_chinese_font_ != nullptr) {