GButton.h 640 B

123456789101112131415161718192021222324252627
  1. #pragma once
  2. #include "GWidget.h"
  3. #include <AK/AKString.h>
  4. #include <AK/Function.h>
  5. class GButton final : public GWidget {
  6. public:
  7. explicit GButton(GWidget* parent);
  8. virtual ~GButton() override;
  9. String caption() const { return m_caption; }
  10. void set_caption(String&&);
  11. Function<void(GButton&)> on_click;
  12. private:
  13. virtual void paint_event(GPaintEvent&) override;
  14. virtual void mousedown_event(GMouseEvent&) override;
  15. virtual void mouseup_event(GMouseEvent&) override;
  16. virtual const char* class_name() const override { return "GButton"; }
  17. String m_caption;
  18. bool m_being_pressed { false };
  19. };