X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=otk%2Fmessagedialog.hh;h=818946242a676a4a8fb3812f4f9dd0d4ce732340;hb=7d215bd255d0744101b9ceb52c235bdc985fa034;hp=cc8adc7087807cbdd042e2c5c446a90b7daecd8d;hpb=c71738f3f47535492eadcf0e463282b681d2271f;p=chaz%2Fopenbox diff --git a/otk/messagedialog.hh b/otk/messagedialog.hh index cc8adc70..81894624 100644 --- a/otk/messagedialog.hh +++ b/otk/messagedialog.hh @@ -16,14 +16,15 @@ class DialogButton { ustring _label; bool _default; public: - DialogButton(char *label) : _label(label), _default(false) - {} DialogButton(ustring label) : _label(label), _default(false) {} DialogButton(ustring label, bool def) : _label(label), _default(def) {} inline const ustring& label() const { return _label; } inline const bool& isDefault() const { return _default; } + + bool operator==(const DialogButton &o) const { return _label == o._label; } + bool operator!=(const DialogButton &o) const { return!(_label == o._label); } }; class MessageDialog : public Widget { @@ -34,7 +35,7 @@ public: MessageDialog(Widget *parent, ustring title, ustring caption); virtual ~MessageDialog(); - virtual void addButton(const DialogButton &b) { _buttons.push_back(b); } + virtual void addButton(const DialogButton &b); virtual const DialogButton& run(); @@ -42,24 +43,22 @@ public: virtual void hide(); virtual void focus(); - virtual const DialogButton& result() const { return *_result; } - virtual void setResult(const DialogButton &result) { _result = &result; } + virtual const DialogButton& result() const { return _result; } + virtual void setResult(const DialogButton &result) { _result = result; } virtual void keyPressHandler(const XKeyEvent &e); virtual void clientMessageHandler(const XClientMessageEvent &e); private: - static DialogButton _default_result; - void init(const ustring &title, const ustring &caption); - std::vector _buttons; +protected: std::vector