#pragma once #include class GProgressBar : public GWidget { public: explicit GProgressBar(GWidget* parent); virtual ~GProgressBar() override; void set_range(int min, int max); void set_value(int); int value() const { return m_value; } String caption() const { return m_caption; } void set_caption(const String& caption) { m_caption = caption; } enum Format { Percentage, ValueSlashMax }; Format format() const { return m_format; } void set_format(Format format) { m_format = format; } protected: virtual void paint_event(GPaintEvent&) override; private: Format m_format { Percentage }; int m_min { 0 }; int m_max { 100 }; int m_value { 0 }; String m_caption; };