diff --git a/LibGUI/GButton.cpp b/LibGUI/GButton.cpp index 007bb84186..7be6cc824a 100644 --- a/LibGUI/GButton.cpp +++ b/LibGUI/GButton.cpp @@ -37,7 +37,7 @@ void GButton::paint_event(GPaintEvent& event) StylePainter::paint_button(painter, rect(), m_button_style, m_being_pressed, m_hovered, m_checkable && m_checked); if (!caption().is_empty() || m_icon) { - auto content_rect = rect(); + auto content_rect = rect().shrunken(10, 2); auto icon_location = m_icon ? content_rect.center().translated(-(m_icon->width() / 2), -(m_icon->height() / 2)) : Point(); if (m_being_pressed) { content_rect.move_by(1, 1); @@ -46,7 +46,7 @@ void GButton::paint_event(GPaintEvent& event) if (m_icon) painter.blit(icon_location, *m_icon, m_icon->rect()); auto& font = (m_checkable && m_checked) ? Font::default_bold_font() : this->font(); - painter.draw_text(content_rect, caption(), font, TextAlignment::Center, Color::Black); + painter.draw_text(content_rect, caption(), font, text_alignment(), Color::Black); } } diff --git a/LibGUI/GButton.h b/LibGUI/GButton.h index 050d0f4f69..2e52fde4dc 100644 --- a/LibGUI/GButton.h +++ b/LibGUI/GButton.h @@ -5,6 +5,7 @@ #include #include #include +#include class GButton : public GWidget { public: @@ -24,6 +25,9 @@ public: bool is_checked() const { return m_checked; } void set_checked(bool); + void set_text_alignment(TextAlignment text_alignment) { m_text_alignment = text_alignment; } + TextAlignment text_alignment() const { return m_text_alignment; } + Function on_click; void set_button_style(ButtonStyle style) { m_button_style = style; } @@ -44,6 +48,7 @@ private: String m_caption; RetainPtr m_icon; ButtonStyle m_button_style { ButtonStyle::Normal }; + TextAlignment m_text_alignment { TextAlignment::Center }; bool m_being_pressed { false }; bool m_hovered { false }; bool m_checkable { false };