+ /// Refresh the status of the Ok, Apply, Restore, Cancel buttons.
+ void refresh();
+ /// Refresh the status of any widgets in the read_only list
+ void refreshReadOnly();
+
+private:
+ /// Enable/Disable a widget
+ virtual void setWidgetEnabled(Widget * obj, bool enable) = 0;
+ /// Enable/Disable a button
+ virtual void setButtonEnabled(Button * obj, bool enable) = 0;
+ /// Set the Label on the button
+ virtual void setButtonLabel(Button * obj, string const & label) = 0;
+
+ Button * okay_;
+ Button * apply_;
+ Button * cancel_;
+ Button * restore_;
+
+ typedef std::list<Widget *> Widgets;
+ Widgets read_only_;