diff --git a/Base/res/icons/resize-corner.png b/Base/res/icons/resize-corner.png deleted file mode 100644 index 408b88b7da..0000000000 Binary files a/Base/res/icons/resize-corner.png and /dev/null differ diff --git a/Libraries/LibGUI/ResizeCorner.cpp b/Libraries/LibGUI/ResizeCorner.cpp index 7db9c08007..e17989a06f 100644 --- a/Libraries/LibGUI/ResizeCorner.cpp +++ b/Libraries/LibGUI/ResizeCorner.cpp @@ -24,7 +24,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include +#include #include #include #include @@ -32,14 +32,55 @@ namespace GUI { +static const char* s_resize_corner_shadows_data = { + " " + " ## " + " # " + " " + " ## ## " + " # # " + " " + " ## ## ## " + " # # # " + " " + " ## ## ## ## " + " # # # # " + " " + " ## ## ## ## ## " + " # # # # # " + " " +}; + +static const char* s_resize_corner_highlights_data = { + " " + " " + " # " + " " + " " + " # # " + " " + " " + " # # # " + " " + " " + " # # # # " + " " + " " + " # # # # # " + " " +}; + +static Gfx::CharacterBitmap* s_resize_corner_shadows_bitmap; +static Gfx::CharacterBitmap* s_resize_corner_highlights_bitmap; +static const int s_resize_corner_bitmap_width = 16; +static const int s_resize_corner_bitmap_height = 16; + ResizeCorner::ResizeCorner(Widget* parent) : Widget(parent) { set_background_role(ColorRole::Button); set_size_policy(SizePolicy::Fixed, SizePolicy::Fixed); set_preferred_size(16, 16); - m_bitmap = Gfx::Bitmap::load_from_file("/res/icons/resize-corner.png"); - ASSERT(m_bitmap); } ResizeCorner::~ResizeCorner() @@ -51,7 +92,15 @@ void ResizeCorner::paint_event(PaintEvent& event) Painter painter(*this); painter.add_clip_rect(event.rect()); painter.fill_rect(rect(), palette().color(background_role())); - painter.blit({ 0, 0 }, *m_bitmap, m_bitmap->rect()); + + if (!s_resize_corner_shadows_bitmap) + s_resize_corner_shadows_bitmap = &Gfx::CharacterBitmap::create_from_ascii(s_resize_corner_shadows_data, s_resize_corner_bitmap_width, s_resize_corner_bitmap_height).leak_ref(); + painter.draw_bitmap({ 0, 0 }, *s_resize_corner_shadows_bitmap, palette().threed_shadow1()); + + if (!s_resize_corner_highlights_bitmap) + s_resize_corner_highlights_bitmap = &Gfx::CharacterBitmap::create_from_ascii(s_resize_corner_highlights_data, s_resize_corner_bitmap_width, s_resize_corner_bitmap_height).leak_ref(); + painter.draw_bitmap({ 0, 0 }, *s_resize_corner_highlights_bitmap, palette().threed_highlight()); + Widget::paint_event(event); } diff --git a/Libraries/LibGUI/ResizeCorner.h b/Libraries/LibGUI/ResizeCorner.h index ff4778ac07..2a16d2574b 100644 --- a/Libraries/LibGUI/ResizeCorner.h +++ b/Libraries/LibGUI/ResizeCorner.h @@ -40,9 +40,6 @@ protected: virtual void mousedown_event(MouseEvent&) override; virtual void enter_event(Core::Event&) override; virtual void leave_event(Core::Event&) override; - -private: - RefPtr m_bitmap; }; }