GStatusBar.cpp 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  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({ 2, 2, 2, 2 });
  13. layout()->set_spacing(2);
  14. m_label = new GLabel(this);
  15. m_label->set_frame_shadow(FrameShadow::Sunken);
  16. m_label->set_frame_shape(FrameShape::Panel);
  17. m_label->set_frame_thickness(1);
  18. m_label->set_text_alignment(TextAlignment::CenterLeft);
  19. }
  20. GStatusBar::~GStatusBar()
  21. {
  22. }
  23. void GStatusBar::set_text(String&& text)
  24. {
  25. m_label->set_text(move(text));
  26. }
  27. String GStatusBar::text() const
  28. {
  29. return m_label->text();
  30. }
  31. void GStatusBar::paint_event(GPaintEvent& event)
  32. {
  33. GPainter painter(*this);
  34. painter.add_clip_rect(event.rect());
  35. StylePainter::paint_surface(painter, rect(), !spans_entire_window_horizontally());
  36. }