GStatusBar.cpp 885 B

123456789101112131415161718192021222324252627282930313233343536
  1. #include <LibGUI/GStatusBar.h>
  2. #include <LibGUI/GLabel.h>
  3. #include <LibGUI/GBoxLayout.h>
  4. #include <SharedGraphics/Painter.h>
  5. GStatusBar::GStatusBar(GWidget* parent)
  6. : GWidget(parent)
  7. {
  8. set_size_policy(SizePolicy::Fill, SizePolicy::Fixed);
  9. set_preferred_size({ 0, 16 });
  10. set_layout(make<GBoxLayout>(Orientation::Horizontal));
  11. m_label = new GLabel(this);
  12. m_label->set_text_alignment(TextAlignment::CenterLeft);
  13. m_label->set_fill_with_background_color(false);
  14. }
  15. GStatusBar::~GStatusBar()
  16. {
  17. }
  18. void GStatusBar::set_text(String&& text)
  19. {
  20. m_label->set_text(move(text));
  21. }
  22. String GStatusBar::text() const
  23. {
  24. return m_label->text();
  25. }
  26. void GStatusBar::paint_event(GPaintEvent&)
  27. {
  28. Painter painter(*this);
  29. painter.fill_rect({ 0, 1, width(), height() - 1 }, Color::LightGray);
  30. painter.draw_line({ 0, 0 }, { width() - 1, 0 }, Color::DarkGray);
  31. }