#include "DialogBase.h"
#include "LString.h"
-#include <boost/utility.hpp>
#include FORMS_H_LOCATION
#include "ButtonController.h"
#include "gettext.h"
+#include <sigc++/signal_system.h>
class Buffer;
class Dialogs;
#endif
/** This class is an XForms GUI base class.
- It is meant to be used solely as the parent class to FormBaseBI and FormBaseBD
+ It is meant to be used solely as the parent class to FormBaseBI
+ and FormBaseBD.
@author Angus Leeming
*/
-class FormBase : public DialogBase, public noncopyable {
+
+class FormBase : public DialogBase {
public:
/// Callback functions
static int WMHideCB(FL_FORM *, void *);
static void RestoreCB(FL_OBJECT *, long);
protected: // methods
- /** Constructor.
- #FormBase(lv, d, _("DialogName"), BUFFER_DEPENDENT, new ButtonPolicy)#
- */
+ ///
FormBase(LyXView *, Dialogs *, string const &,
ButtonPolicy *, char const *, char const *);
///
virtual ~FormBase();
+ /** Redraw the form (on receipt of a Signal indicating, for example,
+ that the xform colors have been re-mapped).
+ Must be virtual because dialogs with tabbed folders will need to
+ redraw the form for each tab.
+ */
+ virtual void redraw();
+
/// Create the dialog if necessary, update it and display it.
- void show();
+ virtual void show();
/// Hide the dialog.
virtual void hide();
/// Update the dialog.
/// Connect signals. Also perform any necessary initialisation.
virtual void connect();
/// Disconnect signals. Also perform any necessary housekeeping.
- virtual void disconnect() = 0;
+ virtual void disconnect();
/// Build the dialog
virtual void build() = 0;
/** Filter the inputs on callback from xforms
Dialogs * d_;
/// Hide connection.
Connection h_;
+ /// Redraw connection.
+ Connection r_;
/// dialog title, displayed by WM.
string title;
+private:
///
ButtonPolicy * bp_;
+public:
/// Overcome a dumb xforms sizing bug
mutable int minw_;
///
protected:
/// Constructor
FormBaseBI(LyXView *, Dialogs *, string const &,
- ButtonPolicy * bp = new OkApplyCancelPolicy,
+ ButtonPolicy * bp,
char const * close = N_("Close"),
char const * cancel = N_("Cancel"));
/// Connect signals
virtual void connect();
- /// Disconnect signals
- virtual void disconnect();
};
protected:
/// Constructor
FormBaseBD(LyXView *, Dialogs *, string const &,
- ButtonPolicy * bp = new OkApplyCancelReadOnlyPolicy,
+ ButtonPolicy * bp,
char const * close = N_("Close"),
char const * cancel = N_("Cancel"));