1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-06-01 06:38:10 +00:00

ThemeEditor: Display the theme's window icons in the preview

If the icons could not be loaded, we fall back to the defaults (which
are the bitmaps that were always used before.)
This commit is contained in:
Sam Atkins 2021-10-27 19:27:43 +01:00 committed by Andreas Kling
parent dbeff9ad84
commit c1d26c884d
2 changed files with 26 additions and 6 deletions

View file

@ -6,6 +6,7 @@
*/
#include "PreviewWidget.h"
#include <AK/LexicalPath.h>
#include <AK/StringView.h>
#include <LibCore/MimeData.h>
#include <LibFileSystemAccessClient/Client.h>
@ -81,9 +82,15 @@ PreviewWidget::PreviewWidget(const Gfx::Palette& preview_palette)
m_active_window_icon = Gfx::Bitmap::try_load_from_file("/res/icons/16x16/window.png");
m_inactive_window_icon = Gfx::Bitmap::try_load_from_file("/res/icons/16x16/window.png");
m_close_bitmap = Gfx::Bitmap::try_load_from_file("/res/icons/16x16/window-close.png");
m_maximize_bitmap = Gfx::Bitmap::try_load_from_file("/res/icons/16x16/upward-triangle.png");
m_minimize_bitmap = Gfx::Bitmap::try_load_from_file("/res/icons/16x16/downward-triangle.png");
m_default_close_bitmap = Gfx::Bitmap::try_load_from_file("/res/icons/16x16/window-close.png");
m_default_maximize_bitmap = Gfx::Bitmap::try_load_from_file("/res/icons/16x16/upward-triangle.png");
m_default_minimize_bitmap = Gfx::Bitmap::try_load_from_file("/res/icons/16x16/downward-triangle.png");
VERIFY(m_active_window_icon);
VERIFY(m_inactive_window_icon);
VERIFY(m_default_close_bitmap);
VERIFY(m_default_maximize_bitmap);
VERIFY(m_default_minimize_bitmap);
load_theme_bitmaps();
@ -110,6 +117,12 @@ void PreviewWidget::load_theme_bitmaps()
}
};
auto buttons_path = m_preview_palette.title_button_icons_path();
load_bitmap(LexicalPath::absolute_path(buttons_path, "window-close.png"), m_last_close_path, m_close_bitmap);
load_bitmap(LexicalPath::absolute_path(buttons_path, "window-maximize.png"), m_last_maximize_path, m_maximize_bitmap);
load_bitmap(LexicalPath::absolute_path(buttons_path, "window-minimize.png"), m_last_minimize_path, m_minimize_bitmap);
load_bitmap(m_preview_palette.active_window_shadow_path(), m_last_active_window_shadow_path, m_active_window_shadow);
load_bitmap(m_preview_palette.inactive_window_shadow_path(), m_last_inactive_window_shadow_path, m_inactive_window_shadow);
load_bitmap(m_preview_palette.menu_shadow_path(), m_last_menu_shadow_path, m_menu_shadow);
@ -159,9 +172,9 @@ void PreviewWidget::paint_event(GUI::PaintEvent& event)
int pos = titlebar_text_rect.right() + 1;
Vector<Button> buttons;
buttons.append(Button { {}, m_close_bitmap });
buttons.append(Button { {}, m_maximize_bitmap });
buttons.append(Button { {}, m_minimize_bitmap });
buttons.append(Button { {}, m_close_bitmap.is_null() ? m_default_close_bitmap : m_close_bitmap });
buttons.append(Button { {}, m_maximize_bitmap.is_null() ? m_default_maximize_bitmap : m_maximize_bitmap });
buttons.append(Button { {}, m_minimize_bitmap.is_null() ? m_default_minimize_bitmap : m_minimize_bitmap });
for (auto& button : buttons) {
pos -= window_button_width;

View file

@ -1,5 +1,6 @@
/*
* Copyright (c) 2020, Andreas Kling <kling@serenityos.org>
* Copyright (c) 2021, Sam Atkins <atkinssj@serenityos.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
@ -42,9 +43,15 @@ private:
RefPtr<MiniWidgetGallery> m_gallery;
RefPtr<Gfx::Bitmap> m_default_close_bitmap;
RefPtr<Gfx::Bitmap> m_default_maximize_bitmap;
RefPtr<Gfx::Bitmap> m_default_minimize_bitmap;
RefPtr<Gfx::Bitmap> m_close_bitmap;
RefPtr<Gfx::Bitmap> m_maximize_bitmap;
RefPtr<Gfx::Bitmap> m_minimize_bitmap;
String m_last_close_path;
String m_last_maximize_path;
String m_last_minimize_path;
RefPtr<Gfx::Bitmap> m_active_window_shadow;
RefPtr<Gfx::Bitmap> m_inactive_window_shadow;