#pragma once #include #include class GDialog : public GWindow { public: enum ExecResult { ExecOK = 0, ExecCancel = 1, ExecAborted = 2 }; virtual ~GDialog() override; int exec(); int result() const { return m_result; } void done(int result); protected: explicit GDialog(GObject* parent); private: OwnPtr m_event_loop; int m_result { ExecAborted }; };