GStatusBar.cpp 1014 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #include <LibGUI/GStatusBar.h>
  2. #include <LibGUI/GLabel.h>
  3. #include <LibGUI/GBoxLayout.h>
  4. #include <SharedGraphics/StylePainter.h>
  5. #include <LibGUI/GPainter.h>
  6. GStatusBar::GStatusBar(GWidget* parent)
  7. : GWidget(parent)
  8. {
  9. set_size_policy(SizePolicy::Fill, SizePolicy::Fixed);
  10. set_preferred_size({ 0, 20 });
  11. set_layout(make<GBoxLayout>(Orientation::Horizontal));
  12. layout()->set_margins({ 4, 2, 4, 2 });
  13. m_label = new GLabel(this);
  14. m_label->set_frame_shadow(GFrame::Shadow::Sunken);
  15. m_label->set_frame_shape(GFrame::Shape::Panel);
  16. m_label->set_frame_thickness(1);
  17. m_label->set_text_alignment(TextAlignment::CenterLeft);
  18. }
  19. GStatusBar::~GStatusBar()
  20. {
  21. }
  22. void GStatusBar::set_text(String&& text)
  23. {
  24. m_label->set_text(move(text));
  25. }
  26. String GStatusBar::text() const
  27. {
  28. return m_label->text();
  29. }
  30. void GStatusBar::paint_event(GPaintEvent& event)
  31. {
  32. GPainter painter(*this);
  33. painter.set_clip_rect(event.rect());
  34. StylePainter::the().paint_surface(painter, rect());
  35. }