class Dialog: public Panel
{
public:
+ class Loader: public DataFile::DerivedObjectLoader<Dialog, Panel::Loader>
+ {
+ public:
+ Loader(Dialog &, WidgetMap &);
+ private:
+ void action_button(const std::string &, int);
+ };
+
sigc::signal<void, int> signal_response;
private:
public:
Dialog();
+ virtual const char *get_class() const { return "dialog"; }
+
/** Adds an action button to the dialog. Pressing the button will invoke
response handlers and delete the dialog. */
void add_button(Button &, int);
+ /** Sets the modality of the dialog. When modal, the user can't navigate
+ away from the dialog. */
+ void set_modal(bool);
+
virtual void button_release(int, int, unsigned);
- virtual void key_release(unsigned, unsigned);
+ virtual bool key_release(unsigned, unsigned);
+ virtual bool navigate(Navigation);
protected:
void response(int);
+ void check_stale();
/** Called when an action button is pressed. */
virtual void on_response(int) { }