]> git.lyx.org Git - features.git/commitdiff
Flatten the ButtonController tree by splitting it into a Controller and
authorAngus Leeming <leeming@lyx.org>
Mon, 10 Mar 2003 03:13:28 +0000 (03:13 +0000)
committerAngus Leeming <leeming@lyx.org>
Mon, 10 Mar 2003 03:13:28 +0000 (03:13 +0000)
a View.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@6410 a592a061-630c-0410-9148-cb99ea01b6c8

118 files changed:
src/frontends/Dialogs.C
src/frontends/controllers/BCView.C [new file with mode: 0644]
src/frontends/controllers/BCView.h [new file with mode: 0644]
src/frontends/controllers/BCView.tmpl [new file with mode: 0644]
src/frontends/controllers/ButtonController.C [new file with mode: 0644]
src/frontends/controllers/ButtonController.h
src/frontends/controllers/ButtonController.tmpl [deleted file]
src/frontends/controllers/ButtonControllerBase.C [deleted file]
src/frontends/controllers/ButtonControllerBase.h [deleted file]
src/frontends/controllers/ChangeLog
src/frontends/controllers/ControlButtons.C
src/frontends/controllers/ControlButtons.h
src/frontends/controllers/ControlChanges.C
src/frontends/controllers/ControlCharacter.C
src/frontends/controllers/ControlDialog.tmpl
src/frontends/controllers/ControlDocument.C
src/frontends/controllers/ControlMath.C
src/frontends/controllers/ControlMath.h
src/frontends/controllers/ControlParagraph.C
src/frontends/controllers/ControlPrint.C
src/frontends/controllers/ControlVCLog.C
src/frontends/controllers/Dialog.C
src/frontends/controllers/Dialog.h
src/frontends/controllers/GUI.h
src/frontends/controllers/Makefile.am
src/frontends/controllers/ViewBase.C [new file with mode: 0644]
src/frontends/controllers/ViewBase.h
src/frontends/qt2/ChangeLog
src/frontends/qt2/Dialogs.C
src/frontends/qt2/Dialogs3.C
src/frontends/qt2/QAbout.C
src/frontends/qt2/QBibitem.C
src/frontends/qt2/QBibtex.C
src/frontends/qt2/QChanges.C
src/frontends/qt2/QCharacter.C
src/frontends/qt2/QCitation.C
src/frontends/qt2/QDialogView.C
src/frontends/qt2/QDialogView.h
src/frontends/qt2/QDocument.C
src/frontends/qt2/QERT.C
src/frontends/qt2/QError.C
src/frontends/qt2/QExternal.C
src/frontends/qt2/QFloat.C
src/frontends/qt2/QGraphics.C
src/frontends/qt2/QInclude.C
src/frontends/qt2/QIndex.C
src/frontends/qt2/QLog.C
src/frontends/qt2/QMinipage.C
src/frontends/qt2/QParagraph.C
src/frontends/qt2/QParagraph.h
src/frontends/qt2/QPrefs.C
src/frontends/qt2/QPrint.C
src/frontends/qt2/QRef.C
src/frontends/qt2/QSearch.C
src/frontends/qt2/QSendto.C
src/frontends/qt2/QShowFile.C
src/frontends/qt2/QSpellchecker.C
src/frontends/qt2/QTabular.C
src/frontends/qt2/QTabularCreate.C
src/frontends/qt2/QTexinfo.C
src/frontends/qt2/QThesaurus.C
src/frontends/qt2/QToc.C
src/frontends/qt2/QURL.C
src/frontends/qt2/QVCLog.C
src/frontends/qt2/QWrap.C
src/frontends/qt2/Qt2BC.C
src/frontends/qt2/Qt2BC.h
src/frontends/qt2/Qt2Base.C
src/frontends/qt2/Qt2Base.h
src/frontends/qt2/Toolbar_pimpl.C
src/frontends/xforms/ChangeLog
src/frontends/xforms/Dialogs.C
src/frontends/xforms/Dialogs3.C
src/frontends/xforms/FormAboutlyx.C
src/frontends/xforms/FormBase.C
src/frontends/xforms/FormBase.h
src/frontends/xforms/FormBibitem.C
src/frontends/xforms/FormBibtex.C
src/frontends/xforms/FormBrowser.C
src/frontends/xforms/FormChanges.C
src/frontends/xforms/FormCharacter.C
src/frontends/xforms/FormCitation.C
src/frontends/xforms/FormDialogView.C
src/frontends/xforms/FormDialogView.h
src/frontends/xforms/FormDocument.C
src/frontends/xforms/FormERT.C
src/frontends/xforms/FormError.C
src/frontends/xforms/FormExternal.C
src/frontends/xforms/FormFloat.C
src/frontends/xforms/FormForks.C
src/frontends/xforms/FormGraphics.C
src/frontends/xforms/FormInclude.C
src/frontends/xforms/FormMathsBitmap.C
src/frontends/xforms/FormMathsDelim.C
src/frontends/xforms/FormMathsMatrix.C
src/frontends/xforms/FormMathsPanel.C
src/frontends/xforms/FormMathsSpace.C
src/frontends/xforms/FormMathsStyle.C
src/frontends/xforms/FormMinipage.C
src/frontends/xforms/FormParagraph.C
src/frontends/xforms/FormPreamble.C
src/frontends/xforms/FormPreferences.C
src/frontends/xforms/FormPrint.C
src/frontends/xforms/FormRef.C
src/frontends/xforms/FormSearch.C
src/frontends/xforms/FormSendto.C
src/frontends/xforms/FormSpellchecker.C
src/frontends/xforms/FormTabular.C
src/frontends/xforms/FormTabularCreate.C
src/frontends/xforms/FormText.C
src/frontends/xforms/FormThesaurus.C
src/frontends/xforms/FormToc.C
src/frontends/xforms/FormUrl.C
src/frontends/xforms/FormWrap.C
src/frontends/xforms/checkedwidgets.C
src/frontends/xforms/checkedwidgets.h
src/frontends/xforms/xformsBC.C
src/frontends/xforms/xformsBC.h

index dbc2aa8746b583c4e944a5be1ff29abbb0dddfe1..23907a8709127028fd48fc09dc0610f5af4c5357 100644 (file)
@@ -13,7 +13,6 @@
 
 #include "Dialogs.h"
 #include "controllers/Dialog.h"
-#include "controllers/ButtonControllerBase.h"
 #include <boost/bind.hpp>
 
 
diff --git a/src/frontends/controllers/BCView.C b/src/frontends/controllers/BCView.C
new file mode 100644 (file)
index 0000000..29a8b70
--- /dev/null
@@ -0,0 +1,52 @@
+/**
+ * \file BCView.C
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
+ *
+ * \author Angus Leeming
+ *
+ * Full author contact details are available in file CREDITS
+ */
+
+#include <config.h>
+
+#include "BCView.h"
+#include "ButtonController.h"
+
+
+CheckedWidget::~CheckedWidget()
+{}
+
+
+BCView::BCView(ButtonController const & p)
+       : parent(p)
+{}
+
+
+ButtonPolicy & BCView::bp() const
+{
+       return parent.bp();
+}
+
+
+void BCView::addCheckedWidget(CheckedWidget * ptr)
+{
+       if (ptr)
+               checked_widgets.push_back(checked_widget_ptr(ptr));
+}
+
+
+bool BCView::checkWidgets()
+{
+       bool valid = true;
+
+       checked_widget_list::const_iterator it  = checked_widgets.begin();
+       checked_widget_list::const_iterator end = checked_widgets.end();
+
+       for (; it != end; ++it) {
+               valid &= (*it)->check();
+       }
+
+       // return valid status after checking ALL widgets
+       return valid;
+}
diff --git a/src/frontends/controllers/BCView.h b/src/frontends/controllers/BCView.h
new file mode 100644 (file)
index 0000000..f4d66bb
--- /dev/null
@@ -0,0 +1,114 @@
+// -*- C++ -*-
+/**
+ * \file BCView.h
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
+ *
+ * \author Allan Rae
+ * \author Angus Leeming
+ * \author Baruch Even
+ *
+ * Full author contact details are available in file CREDITS
+ */
+
+#ifndef BCVIEW_H
+#define BCVIEW_H
+
+#include "LString.h"
+#include <boost/shared_ptr.hpp>
+#include <list>
+
+class ButtonController;
+class ButtonPolicy;
+
+struct CheckedWidget {
+       ///
+       virtual ~CheckedWidget();
+
+       /** Returns true if the widget is in a valid state.
+       *  Might also change the visual appearance of the widget,
+       *  to reflect this state.
+       */
+       virtual bool check() const = 0;
+};
+
+
+class BCView {
+public:
+       BCView(ButtonController const &);
+       ///
+       virtual ~BCView() {}
+       ///
+       virtual void refresh() = 0;
+       ///
+       virtual void refreshReadOnly() = 0;
+       ///
+       ButtonPolicy & bp() const;
+       ///
+       void addCheckedWidget(CheckedWidget * ptr);
+protected:
+       ///
+       bool checkWidgets();
+
+private:
+       ///
+       typedef boost::shared_ptr<CheckedWidget> checked_widget_ptr;
+       typedef std::list<checked_widget_ptr> checked_widget_list;
+       ///
+       checked_widget_list checked_widgets;
+       ///
+       ButtonController const & parent;
+};
+
+
+/** A templatised instantiation of the ButtonController's View requiring the
+ *  gui-frontend widgets.
+ */
+template <class Button, class Widget>
+class GuiBC : public BCView {
+public:
+       ///
+       GuiBC(ButtonController const & parent,
+             string const & cancel, string const & close);
+
+       ///
+       void setOK(Button * obj) { okay_ = obj; }
+       ///
+       void setApply(Button * obj) { apply_ = obj; }
+       ///
+       void setCancel(Button * obj) { cancel_ = obj; }
+       ///
+       void setRestore(Button * obj) { restore_ = obj; }
+       ///
+       void addReadOnly(Widget * obj) { read_only_.push_back(obj); }
+       ///
+       void eraseReadOnly() { read_only_.clear(); }
+
+       /// 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;
+
+       string cancel_label_;
+       string close_label_;
+
+       Button * okay_;
+       Button * apply_;
+       Button * cancel_;
+       Button * restore_;
+
+       typedef std::list<Widget *> Widgets;
+       Widgets read_only_;
+};
+
+
+#include "BCView.tmpl"
+
+#endif // BCVIEW_H
diff --git a/src/frontends/controllers/BCView.tmpl b/src/frontends/controllers/BCView.tmpl
new file mode 100644 (file)
index 0000000..e97a1d2
--- /dev/null
@@ -0,0 +1,75 @@
+// -*- C++ -*-
+/**
+ * \file ButtonController.tmpl
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
+ *
+ * \author Allan Rae
+ * \author Angus Leeming
+ * \author Baruch Even
+ *
+ * Full author contact details are available in file CREDITS
+ *
+ * GuiBC is a base class and so these templatised methods will be
+ * instantiated if this file is #included in the derived classes' .C file.
+ * see, e.g., xforms/xformsBC.C
+ */
+
+#include "BCView.h"
+#include "ButtonPolicies.h"
+#include "debug.h"
+
+template <class Button, class Widget>
+GuiBC<Button, Widget>::GuiBC(ButtonController const & parent,
+                            string const & cancel, string const & close)
+       : BCView(parent),
+         cancel_label_(cancel), close_label_(close),
+         okay_(0), apply_(0), cancel_(0), restore_(0)
+{}
+
+
+template <class Button, class Widget>
+void GuiBC<Button, Widget>::refresh()
+{
+       lyxerr[Debug::GUI] << "Calling BC refresh()" << std::endl;
+
+       bool const all_valid = checkWidgets();
+
+       if (okay_) {
+               bool const enabled =
+                       all_valid && bp().buttonStatus(ButtonPolicy::OKAY);
+               setButtonEnabled(okay_, enabled);
+       }
+       if (apply_) {
+               bool const enabled =
+                       all_valid && bp().buttonStatus(ButtonPolicy::APPLY);
+               setButtonEnabled(apply_, enabled);
+       }
+       if (restore_) {
+               bool const enabled =
+                       all_valid && bp().buttonStatus(ButtonPolicy::RESTORE);
+               setButtonEnabled(restore_, enabled);
+       }
+       if (cancel_) {
+               bool const enabled = bp().buttonStatus(ButtonPolicy::CANCEL);
+               if (enabled)
+                       setButtonLabel(cancel_, cancel_label_);
+               else
+                       setButtonLabel(cancel_, close_label_);
+       }
+}
+
+
+template <class Button, class Widget>
+void GuiBC<Button, Widget>::refreshReadOnly()
+{
+       if (read_only_.empty()) return;
+
+       bool const enable = !bp().isReadOnly();
+
+       typename Widgets::const_iterator end = read_only_.end();
+       typename Widgets::const_iterator iter = read_only_.begin();
+       for (; iter != end; ++iter) {
+               setWidgetEnabled(*iter, enable);
+       }
+}
diff --git a/src/frontends/controllers/ButtonController.C b/src/frontends/controllers/ButtonController.C
new file mode 100644 (file)
index 0000000..ea9c96d
--- /dev/null
@@ -0,0 +1,132 @@
+/**
+ * \file ButtonController.C
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
+ *
+ * \author Allan Rae
+ *
+ * Full author contact details are available in file CREDITS
+ */
+
+
+#include <config.h>
+#include "ButtonController.h"
+#include "BCView.h"
+#include "support/LAssert.h"
+#include "debug.h"
+
+
+ButtonController::~ButtonController()
+{}
+
+
+BCView & ButtonController::view() const
+{
+       lyx::Assert(view_.get());
+       return *view_.get();
+}
+
+void ButtonController::view(BCView * view)
+{
+       view_.reset(view);
+}
+
+
+ButtonPolicy & ButtonController::bp() const
+{
+       lyx::Assert(bp_.get());
+       return *bp_.get();
+}
+
+void ButtonController::bp(ButtonPolicy * bp)
+{
+       bp_.reset(bp);
+}
+
+
+void ButtonController::refresh()
+{
+       view().refresh();
+}
+
+               
+void ButtonController::refreshReadOnly()
+{
+       view().refreshReadOnly();
+}
+
+
+void ButtonController::ok()
+{
+       input(ButtonPolicy::SMI_OKAY);
+}
+
+
+void ButtonController::input(ButtonPolicy::SMInput in)
+{
+       if (ButtonPolicy::SMI_NOOP == in)
+               return;
+       bp().input(in);
+       view().refresh();
+}
+
+
+void ButtonController::apply()
+{
+       input(ButtonPolicy::SMI_APPLY);
+}
+
+
+void ButtonController::cancel()
+{
+       input(ButtonPolicy::SMI_CANCEL);
+}
+
+
+void ButtonController::restore()
+{
+       input(ButtonPolicy::SMI_RESTORE);
+}
+
+
+void ButtonController::hide()
+{
+       input(ButtonPolicy::SMI_HIDE);
+}
+
+
+void ButtonController::valid(bool v)
+{
+       if (v) {
+               input(ButtonPolicy::SMI_VALID);
+       } else {
+               input(ButtonPolicy::SMI_INVALID);
+       }
+}
+
+
+void ButtonController::invalid()
+{
+       input(ButtonPolicy::SMI_INVALID);
+}
+
+
+bool ButtonController::readOnly(bool ro)
+{
+       lyxerr[Debug::GUI] << "Setting controller ro: " << ro << std::endl;
+
+       if (ro) {
+               bp().input(ButtonPolicy::SMI_READ_ONLY);
+       } else {
+               bp().input(ButtonPolicy::SMI_READ_WRITE);
+       }
+       view().refreshReadOnly();
+       view().refresh();
+       return ro;
+}
+
+
+void ButtonController::readWrite()
+{
+       readOnly(false);
+}
index 53100c2b712d1d7e6ede37f2587f7c7c0f8eb178..6fc1f967d93f8949ef25df61f49df7b0931c952c 100644 (file)
@@ -5,8 +5,6 @@
  * Licence details can be found in the file COPYING.
  *
  * \author Allan Rae
- * \author Angus Leeming
- * \author Baruch Even
  *
  * Full author contact details are available in file CREDITS
  */
 #define BUTTONCONTROLLER_H
 
 
-#include "ButtonControllerBase.h"
-#include "gettext.h"
-#include <list>
+#include "ButtonPolicies.h"
 
-/** A templatised instantiation of the ButtonController requiring the
- *  gui-frontend widgets.
- *  The template declarations are in ButtonController.tmpl, which should
- *  be #included in the gui-frontend BC class, see e.g. xforms/xformsBC.C
+#include "LString.h"
+#include <boost/scoped_ptr.hpp>
+
+
+/** Controls the activation of the OK, Apply and Cancel buttons.
+ *
+ * Actually supports 4 buttons in all and it's up to the user to decide on
+ * the activation policy and which buttons correspond to which output of the
+ * state machine.
+ * Author: Allan Rae <rae@lyx.org>.
+ * This class stripped of xforms-specific code by
+ * Angus Leeming <leeming@lyx.org>
  */
-template <class Button, class Widget>
-class GuiBC : public ButtonControllerBase {
+class BCView;
+
+class ButtonController : boost::noncopyable {
 public:
        ///
-       GuiBC(string const & cancel, string const & close);
+       ~ButtonController();
 
        ///
-       void setOK(Button * obj) { okay_ = obj; }
+       BCView & view() const;
        ///
-       void setApply(Button * obj) { apply_ = obj; }
+       void view(BCView *);
+
        ///
-       void setCancel(Button * obj) { cancel_ = obj; }
+       ButtonPolicy & bp() const;
        ///
-       void setRestore(Button * obj) { restore_ = obj; }
+       void bp(ButtonPolicy *);
+
        ///
-       void addReadOnly(Widget * obj) { read_only_.push_back(obj); }
+       void input(ButtonPolicy::SMInput);
        ///
-       void eraseReadOnly() { read_only_.clear(); }
+       void ok();
+       ///
+       void apply();
+       ///
+       void cancel();
+       ///
+       void restore();
+       ///
+       void hide();
 
-       /// 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_;
-};
 
+       /// Passthrough function -- returns its input value
+       bool readOnly(bool = true);
+       ///
+       void readWrite();
 
-template <class BP, class GUIBC>
-class ButtonController: public GUIBC {
-public:
        ///
-       ButtonController(string const & = _("Cancel"),
-                        string const & = _("Close"));
+       void valid(bool = true);
        ///
-       ~ButtonController() {}
+       void invalid();
+
+private:
        ///
-       virtual ButtonPolicy & bp() { return bp_; }
-protected:
+       boost::scoped_ptr<ButtonPolicy> bp_;
        ///
-       BP bp_;
+       boost::scoped_ptr<BCView> view_;
 };
 
-
-#include "ButtonController.tmpl"
-
 #endif // BUTTONCONTROLLER_H
diff --git a/src/frontends/controllers/ButtonController.tmpl b/src/frontends/controllers/ButtonController.tmpl
deleted file mode 100644 (file)
index a53af6c..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-// -*- C++ -*-
-/**
- * \file ButtonController.tmpl
- * This file is part of LyX, the document processor.
- * Licence details can be found in the file COPYING.
- *
- * \author Allan Rae
- * \author Angus Leeming
- * \author Baruch Even
- *
- * Full author contact details are available in file CREDITS
- *
- * GuiBC is a base class and so these templatised methods will be
- * instantiated if this file is #included in the derived classes' .C file.
- * see, e.g., xforms/xformsBC.C
- */
-
-#include "ButtonController.h"
-#include "debug.h"
-
-template <class Button, class Widget>
-GuiBC<Button, Widget>::GuiBC(string const & cancel, string const & close)
-       : ButtonControllerBase(cancel, close),
-         okay_(0), apply_(0), cancel_(0), restore_(0)
-{}
-
-
-template <class Button, class Widget>
-void GuiBC<Button, Widget>::refresh()
-{
-       lyxerr[Debug::GUI] << "Calling BC refresh()" << std::endl;
-
-       bool const all_valid = checkWidgets();
-
-       if (okay_) {
-               bool const enabled =
-                       all_valid && bp().buttonStatus(ButtonPolicy::OKAY);
-               setButtonEnabled(okay_, enabled);
-       }
-       if (apply_) {
-               bool const enabled =
-                       all_valid && bp().buttonStatus(ButtonPolicy::APPLY);
-               setButtonEnabled(apply_, enabled);
-       }
-       if (restore_) {
-               bool const enabled =
-                       all_valid && bp().buttonStatus(ButtonPolicy::RESTORE);
-               setButtonEnabled(restore_, enabled);
-       }
-       if (cancel_) {
-               bool const enabled = bp().buttonStatus(ButtonPolicy::CANCEL);
-               if (enabled)
-                       setButtonLabel(cancel_, cancel_label_);
-               else
-                       setButtonLabel(cancel_, close_label_);
-       }
-}
-
-
-template <class Button, class Widget>
-void GuiBC<Button, Widget>::refreshReadOnly()
-{
-       if (read_only_.empty()) return;
-
-       bool const enable = !bp().isReadOnly();
-
-       typename Widgets::const_iterator end = read_only_.end();
-       typename Widgets::const_iterator iter = read_only_.begin();
-       for (; iter != end; ++iter) {
-               setWidgetEnabled(*iter, enable);
-       }
-}
-
-
-template <class BP, class GUIBC>
-ButtonController<BP, GUIBC>::ButtonController(string const & cancel,
-                                             string const & close)
-       : GUIBC(cancel, close)
-{}
diff --git a/src/frontends/controllers/ButtonControllerBase.C b/src/frontends/controllers/ButtonControllerBase.C
deleted file mode 100644 (file)
index d35c4d6..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-/**
- * \file ButtonControllerBase.C
- * This file is part of LyX, the document processor.
- * Licence details can be found in the file COPYING.
- *
- * \author Allan Rae
- *
- * Full author contact details are available in file CREDITS
- */
-
-
-#include <config.h>
-#include "ButtonControllerBase.h"
-#include "support/LAssert.h"
-#include "debug.h"
-
-
-CheckedWidget::~CheckedWidget()
-{}
-
-
-ButtonControllerBase::ButtonControllerBase(string const & cancel,
-                                          string const & close)
-       : cancel_label_(cancel), close_label_(close)
-{}
-
-
-void ButtonControllerBase::ok()
-{
-       input(ButtonPolicy::SMI_OKAY);
-}
-
-
-void ButtonControllerBase::input(ButtonPolicy::SMInput in)
-{
-       if (ButtonPolicy::SMI_NOOP == in)
-               return;
-       bp().input(in);
-       refresh();
-}
-
-
-void ButtonControllerBase::apply()
-{
-       input(ButtonPolicy::SMI_APPLY);
-}
-
-
-void ButtonControllerBase::cancel()
-{
-       input(ButtonPolicy::SMI_CANCEL);
-}
-
-
-void ButtonControllerBase::restore()
-{
-       input(ButtonPolicy::SMI_RESTORE);
-}
-
-
-void ButtonControllerBase::hide()
-{
-       input(ButtonPolicy::SMI_HIDE);
-}
-
-
-void ButtonControllerBase::valid(bool v)
-{
-       if (v) {
-               input(ButtonPolicy::SMI_VALID);
-       } else {
-               input(ButtonPolicy::SMI_INVALID);
-       }
-}
-
-
-void ButtonControllerBase::invalid()
-{
-       input(ButtonPolicy::SMI_INVALID);
-}
-
-
-bool ButtonControllerBase::readOnly(bool ro)
-{
-       lyxerr[Debug::GUI] << "Setting controller ro: " << ro << std::endl;
-
-       if (ro) {
-               bp().input(ButtonPolicy::SMI_READ_ONLY);
-       } else {
-               bp().input(ButtonPolicy::SMI_READ_WRITE);
-       }
-       refreshReadOnly();
-       refresh();
-       return ro;
-}
-
-
-void ButtonControllerBase::readWrite()
-{
-       readOnly(false);
-}
-
-
-void ButtonControllerBase::addCheckedWidget(CheckedWidget * ptr)
-{
-       if (ptr)
-               checked_widgets.push_back(checked_widget_ptr(ptr));
-}
-
-
-bool ButtonControllerBase::checkWidgets()
-{
-       bool valid = true;
-
-       checked_widget_list::const_iterator it  = checked_widgets.begin();
-       checked_widget_list::const_iterator end = checked_widgets.end();
-
-       for (; it != end; ++it) {
-               valid &= (*it)->check();
-       }
-
-       // return valid status after checking ALL widgets
-       return valid;
-}
diff --git a/src/frontends/controllers/ButtonControllerBase.h b/src/frontends/controllers/ButtonControllerBase.h
deleted file mode 100644 (file)
index 45c6a75..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-// -*- C++ -*-
-/**
- * \file ButtonControllerBase.h
- * This file is part of LyX, the document processor.
- * Licence details can be found in the file COPYING.
- *
- * \author Allan Rae
- *
- * Full author contact details are available in file CREDITS
- */
-
-#ifndef BUTTONCONTROLLERBASE_H
-#define BUTTONCONTROLLERBASE_H
-
-
-#include "ButtonPolicies.h"
-#include "LString.h"
-
-#include <boost/shared_ptr.hpp>
-#include <list>
-
-struct CheckedWidget {
-       ///
-       virtual ~CheckedWidget();
-
-       /** Returns true if the widget is in a valid state.
-       *  Might also change the visual appearance of the widget,
-       *  to reflect this state.
-       */
-       virtual bool check() const = 0;
-};
-
-
-/** Abstract base class for a ButtonController
-
- * Controls the activation of the OK, Apply and Cancel buttons.
- * Actually supports 4 buttons in all and it's up to the user to decide on
- * the activation policy and which buttons correspond to which output of the
- * state machine.
- * Author: Allan Rae <rae@lyx.org>.
- * This abstract base class stripped of xforms-specific code by
- * Angus Leeming <leeming@lyx.org>
- */
-class ButtonControllerBase : boost::noncopyable {
-public:
-       /** Constructor.
-           The cancel/close label entries are _not_ managed within the class
-           thereby allowing you to reassign at will and to use static labels.
-           It also means if you really don't want to have the Cancel button
-           label be different when there is nothing changed in the dialog then
-           you can just assign "Cancel" to both labels.  Or even reuse this
-           class for something completely different.
-        */
-       ButtonControllerBase(string const & cancel, string const & close);
-       ///
-       virtual ~ButtonControllerBase() {}
-       ///
-       virtual ButtonPolicy & bp() = 0;
-       ///
-       virtual void input(ButtonPolicy::SMInput);
-       ///
-       void ok();
-       ///
-       void apply();
-       ///
-       void cancel();
-       ///
-       void restore();
-       ///
-       void hide();
-       ///
-       virtual void refresh() = 0;
-       ///
-       virtual void refreshReadOnly() = 0;
-
-       /// Passthrough function -- returns its input value
-       bool readOnly(bool = true);
-       ///
-       void readWrite();
-       ///
-       void valid(bool = true);
-       ///
-       void invalid();
-       ///
-       void addCheckedWidget(CheckedWidget * ptr);
-
-protected:
-       ///
-       string cancel_label_;
-       ///
-       string close_label_;
-       ///
-       bool checkWidgets();
-
-private:
-       ///
-       typedef boost::shared_ptr<CheckedWidget> checked_widget_ptr;
-       typedef std::list<checked_widget_ptr> checked_widget_list;
-       ///
-       checked_widget_list checked_widgets;
-};
-
-#endif // BUTTONCONTROLLERBASE_H
index fd2a544242fd9e73ea3ca9f61419b0332ed0c162..4579834a2b0ce3f46c6cfec1b5f6768754ca4066 100644 (file)
@@ -1,3 +1,16 @@
+2003-03-09  Angus Leeming  <leeming@lyx.org>
+
+       Flatten the ButtonController tree by splitting it into a Controller
+       and a View.
+
+       * BCView.[Ch], BCView.tmpl: new files containing the View part of the
+       ButtonController.
+
+       * ButtonController.[Ch]: just the controller, which needs know only
+       two methods of the View, refresh and refreshReadOnly.
+
+       * lots of files: associated changes.
+
 2003-03-09  Angus Leeming  <leeming@lyx.org>
 
        * ControlChanges.[Ch]: rewrite to use the Dialog-based scheme.
index 43b72ea9bd94e56fa44496ac7e5180977164a366..cf3745f1f3344553cd0c09e2639ac9e54f705351 100644 (file)
 
 
 #include "ControlButtons.h"
-#include "ButtonControllerBase.h"
+#include "ButtonController.h"
+#include "BCView.h"
 #include "ViewBase.h"
 #include "lyxrc.h"
 #include "support/LAssert.h"
 
 
 ControlButtons::ControlButtons()
-       : emergency_exit_(false), is_closing_(false), bc_ptr_(0), view_ptr_(0)
+       : emergency_exit_(false), is_closing_(false),
+         bc_ptr_(new ButtonController), view_ptr_(0)
+{}
+
+
+ControlButtons::~ControlButtons()
 {}
 
 
@@ -60,10 +66,10 @@ bool ControlButtons::IconifyWithMain() const
 }
 
 
-ButtonControllerBase & ControlButtons::bc()
+ButtonController & ControlButtons::bc()
 {
-       lyx::Assert(bc_ptr_);
-       return *bc_ptr_;
+       lyx::Assert(bc_ptr_.get());
+       return *bc_ptr_.get();
 }
 
 
@@ -78,9 +84,3 @@ void ControlButtons::setView(ViewBase & v)
 {
        view_ptr_ = &v;
 }
-
-
-void ControlButtons::setButtonController(ButtonControllerBase & bc)
-{
-       bc_ptr_ = &bc;
-}
index f9ebcff63dd7f401e404f4aa52c8e65c7e86c5bc..68119bdc573ef9772cf5642d140521aa7a3ec94f 100644 (file)
 
 
 #include <boost/utility.hpp>
+#include <boost/scoped_ptr.hpp>
 
 class ViewBase;
-class ButtonControllerBase;
+class ButtonController;
 
 /** Abstract base class for Controllers with a ButtonController.
  */
@@ -39,7 +40,7 @@ public:
        ///
        ControlButtons();
        ///
-       virtual ~ControlButtons() {}
+       virtual ~ControlButtons();
 
        /** These functions are called by the view when the appropriate buttons
         *  are pressed.
@@ -57,12 +58,10 @@ public:
        bool IconifyWithMain() const;
 
        ///
-       ButtonControllerBase & bc();
+       ButtonController & bc();
 
        ///
        void setView(ViewBase &);
-       ///
-       void setButtonController(ButtonControllerBase &);
        /** When Applying it's useful to know whether the dialog is about
            to close or not (no point refreshing the display for example). */
        bool isClosing() const { return is_closing_; }
@@ -84,9 +83,9 @@ protected:
 private:
        ///
        bool is_closing_;
-       /// We own neither of these pointers.
-       ButtonControllerBase * bc_ptr_;
        ///
+       boost::scoped_ptr<ButtonController> bc_ptr_;
+       /// We do not own this pointer.
        ViewBase * view_ptr_;
 };
 
index 89b2a7fb835ec3168b4bf06188b929ec8a035c52..96f744c9ad67b174a175101404ae639966c82977 100644 (file)
@@ -17,7 +17,6 @@
 #include "BufferView.h"
 #include "funcrequest.h"
 #include "lyxfind.h"
-#include "lyxfunc.h"
 #include "author.h"
 #include "support/lstrings.h"
 
index 2485e97c71ef9026e1af69ed1c4152c7c0f154dc..b593ec008d8afcfe820f8b974a088d734176714f 100644 (file)
@@ -14,7 +14,7 @@
 #include "ControlCharacter.h"
 
 #include "ViewBase.h"
-#include "ButtonControllerBase.h"
+#include "ButtonController.h"
 
 #include "buffer.h"
 #include "bufferview_funcs.h" // ToggleAndShow
index dffa2e7ecc856ab40f91865f510f039035c574bb..8777673d71c629f24f85a71c46eef9bb104f928b 100644 (file)
@@ -14,7 +14,7 @@
 
 #include "ControlDialog.h"
 
-#include "ButtonControllerBase.h"
+#include "ButtonController.h"
 #include "ViewBase.h"
 
 
index 8d4be13af94adda1f13d0634649f39e7a21d89e9..d4fe5a52718a68abb89740a0443f308bce7bd322 100644 (file)
@@ -29,6 +29,7 @@
 #include "frontends/LyXView.h"
 #include "frontends/Alert.h"
 
+#include "support/LAssert.h"
 #include "support/lstrings.h"
 #include "support/filetools.h"
 
index 10016e9f24f0e07303abc11d86821b0d1d3d3512..5be73f5e54be9409848b632690888c8f02c3dae0 100644 (file)
@@ -14,6 +14,8 @@
 #include "ControlMath.h"
 #include "ViewBase.h"
 
+#include "BCView.h"
+
 #include "debug.h"
 #include "funcrequest.h"
 
@@ -50,12 +52,13 @@ void ControlMath::insertSymbol(string const & sym, bool bs) const
 
 
 void ControlMath::addDaughter(void * key, ViewBase * v,
-                             ButtonControllerBase * bc)
+                             BCView * bcview, ButtonPolicy * bcpolicy)
 {
        if (daughters_.find(key) != daughters_.end())
                return;
 
-       daughters_[key] = DaughterPtr(new GUIMathSub(lv_, d_, *this, v, bc));
+       daughters_[key] = DaughterPtr(new GUIMathSub(lv_, d_, *this,
+                                                    v, bcview, bcpolicy));
 }
 
 
@@ -104,12 +107,14 @@ void ControlMathSub::insertSymbol(string const & sym, bool bs) const
 GUIMathSub::GUIMathSub(LyXView & lv, Dialogs & d,
                       ControlMath const & p,
                       ViewBase * v,
-                      ButtonControllerBase * bc)
-       : controller_(lv, d, p), bc_(bc), view_(v)
+                      BCView * bcview,
+                      ButtonPolicy * bcpolicy)
+       : controller_(lv, d, p), view_(v)
 {
        controller_.setView(*view_);
-       controller_.setButtonController(*bc_);
        view_->setController(controller_);
+       controller_.bc().view(bcview);
+       controller_.bc().bp(bcpolicy);
 }
 
 
index bc48caf4bb12f05752e0b4998d2ecf118d95ea46..346540dea0b1eea7362ef859e8191cb39370d7e2 100644 (file)
@@ -18,7 +18,6 @@
 #include "ControlDialog_impl.h"
 
 #include "ButtonController.h"
-#include "ButtonPolicies.h"
 
 #include "LString.h"
 #include <boost/shared_ptr.hpp>
@@ -26,6 +25,7 @@
 
 
 class GUIMathSub;
+class BCView;
 
 
 class ControlMath : public ControlDialogBD {
@@ -39,7 +39,8 @@ public:
        void insertSymbol(string const & sym, bool bs = true) const;
 
        ///
-       void addDaughter(void * key, ViewBase * v, ButtonControllerBase * bc);
+       void addDaughter(void * key, ViewBase * v,
+                        BCView * bc, ButtonPolicy * bcpolicy);
        ///
        void showDaughter(void *);
 
@@ -86,7 +87,8 @@ public:
        GUIMathSub(LyXView & lv, Dialogs & d,
                   ControlMath const & p,
                   ViewBase * v,
-                  ButtonControllerBase * bc);
+                  BCView * bcview,
+                  ButtonPolicy * bcpolicy);
        ///
        ControlMathSub & controller() { return controller_; }
 
@@ -94,7 +96,7 @@ private:
        ///
        ControlMathSub controller_;
        ///
-       boost::scoped_ptr<ButtonControllerBase> bc_;
+       boost::scoped_ptr<ButtonController> bc_;
        ///
        boost::scoped_ptr<ViewBase> view_;
 };
index 8dcc5886d84413178e1cd8d5808c2e2ce337a907..4c4f51e621873cd15c8670f32dfe4e27d01c83b7 100644 (file)
@@ -14,7 +14,7 @@
 
 #include "ControlParagraph.h"
 
-#include "ButtonControllerBase.h"
+#include "ButtonController.h"
 #include "ViewBase.h"
 
 #include "buffer.h"
index d6fb50274900e31c3fa843d3ce2b60303fa0e71c..bcc51336dd79a4ae97312442d5290453650f2c97 100644 (file)
@@ -14,7 +14,7 @@
 #include "ControlPrint.h"
 
 #include "ViewBase.h"
-#include "ButtonControllerBase.h"
+#include "ButtonController.h"
 
 #include "buffer.h"
 #include "gettext.h"
index 0daeb899441ab01341839a022ee893484c0949b6..7048f79c3c58feb03af388e5648727420af0ab00 100644 (file)
@@ -13,7 +13,7 @@
 
 
 #include "ControlVCLog.h"
-#include "ButtonControllerBase.h"
+#include "ButtonController.h"
 #include "buffer.h"
 #include "lyxrc.h"
 #include "gettext.h"
index f75686a950908fd5c004fc6eddf5eeec744b2384..29a4a141c797ee71b291a55b1d1c3ef6869bbb93 100644 (file)
 
 #include "Dialog.h"
 
-#include "ButtonControllerBase.h"
+#include "ButtonController.h"
+#include "BCView.h"
 #include "support/LAssert.h"
 
 
 Dialog::Dialog(LyXView & lv, string const & name)
-       : is_closing_(false), kernel_(lv), name_(name)
+       : is_closing_(false), kernel_(lv), name_(name),
+         bc_ptr_(new ButtonController)
+{}
+
+
+Dialog::~Dialog()
 {}
 
 
@@ -123,7 +129,7 @@ void Dialog::redraw()
 }
 
 
-ButtonControllerBase & Dialog::bc() const
+ButtonController & Dialog::bc() const
 {
        lyx::Assert(bc_ptr_.get());
        return *bc_ptr_.get();
@@ -144,13 +150,6 @@ Dialog::View & Dialog::view() const
 }
 
 
-void Dialog::setButtonController(ButtonControllerBase * bc)
-{
-       lyx::Assert(bc && !bc_ptr_.get());
-       bc_ptr_.reset(bc);
-}
-
-
 void Dialog::setController(Controller * i)
 {
        lyx::Assert(i && !controller_ptr_.get());
index ef83ec5c140dd344e10dce80a5239a584e59131b..e9200e4104beba592e52cde3ed8bc62bdca25d3a 100644 (file)
@@ -23,7 +23,7 @@
 
 
 class LyXView;
-class ButtonControllerBase;
+class ButtonController;
 
 
 class Dialog : boost::noncopyable {
@@ -32,6 +32,8 @@ public:
         *  itself to the kernel.
         */
        Dialog(LyXView &, string const & name);
+       ///
+       ~Dialog();
 
        ///
        string const & name() const { return name_; }
@@ -94,13 +96,11 @@ public:
        void setController(Controller *);
        ///
        void setView(View *);
-       ///
-       void setButtonController(ButtonControllerBase *);
 
        ///
        Controller & controller() const;
        ///
-       ButtonControllerBase & bc() const;
+       ButtonController & bc() const;
        ///
        View & view() const;
        //@}
@@ -116,7 +116,7 @@ private:
        ///
        string name_;
        ///
-       boost::scoped_ptr<ButtonControllerBase> bc_ptr_;
+       boost::scoped_ptr<ButtonController> bc_ptr_;
        ///
        boost::scoped_ptr<Controller> controller_ptr_;
        ///
@@ -196,6 +196,11 @@ public:
        ///
        Controller const & getController() const { return p_.controller(); }
 
+       ///
+       ButtonController & bc() { return p_.bc(); }
+       ///
+       ButtonController const & bc() const { return p_.bc(); }
+
 protected:
        ///
        Dialog & p_;
index b8b364c9d187864ea554cc041fd943591ab8cc10..2a1e7ebc779afb2e5fcd095e96a1c6b2f9a16591 100644 (file)
@@ -12,7 +12,7 @@
 #ifndef GUI_H
 #define GUI_H
 
-#include "ButtonController.h"
+#include "BCView.h"
 
 #include <boost/utility.hpp>
 
@@ -32,8 +32,6 @@ private:
        ///
        Controller controller_;
        ///
-       ButtonController<Policy, GUIbc> bc_;
-       ///
        GUIview view_;
 };
 
@@ -45,8 +43,9 @@ GUI<Controller, GUIview, Policy, GUIbc>::GUI(LyXView & lv, Dialogs & d)
          view_()
 {
        controller_.setView(view_);
-       controller_.setButtonController(bc_);
        view_.setController(controller_);
+       controller_.bc().view(new GUIbc(controller_.bc()));
+       controller_.bc().bp(new Policy);
 }
 
 #endif // GUI_H
index fee313842da3755c17b5b68f449d13fa092cba00..a6c195ccdcc8a66c2a9efa05fbbdddcf0b1ba05c 100644 (file)
@@ -5,7 +5,7 @@ noinst_LTLIBRARIES = libcontrollers.la
 INCLUDES = -I$(top_srcdir)/src \
        $(BOOST_INCLUDES)
 
-EXTRA_DIST = ButtonController.tmpl ControlDialog.tmpl
+EXTRA_DIST = BCView.tmpl ControlDialog.tmpl
 
 libcontrollers_la_SOURCES= \
        Dialog.C \
@@ -20,9 +20,10 @@ libcontrollers_la_SOURCES= \
        frnt_lang.h \
        tex_helpers.C \
        tex_helpers.h \
+       BCView.h \
+       BCView.C \
+       ButtonController.C \
        ButtonController.h \
-       ButtonControllerBase.C \
-       ButtonControllerBase.h \
        ButtonPolicies.C \
        ButtonPolicies.h \
        ControlAboutlyx.C \
@@ -102,6 +103,7 @@ libcontrollers_la_SOURCES= \
        ControlWrap.h \
        GUI.h \
        ViewBase.h \
+       ViewBase.C \
        helper_funcs.C \
        helper_funcs.h
 
diff --git a/src/frontends/controllers/ViewBase.C b/src/frontends/controllers/ViewBase.C
new file mode 100644 (file)
index 0000000..a4cfa84
--- /dev/null
@@ -0,0 +1,46 @@
+/**
+ * \file ViewBase.C
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
+ *
+ * \author Angus Leeming
+ *
+ * Full author contact details are available in file CREDITS
+ */
+
+#include <config.h>
+
+#include "ViewBase.h"
+#include "ControlButtons.h"
+#include "support/LAssert.h"
+
+
+ViewBase::ViewBase()
+       : controller_ptr_(0)
+{}
+
+
+void ViewBase::setController(ControlButtons & c)
+{
+       controller_ptr_ = &c;
+}
+
+
+ControlButtons & ViewBase::getController()
+{
+       lyx::Assert(controller_ptr_);
+       return *controller_ptr_;
+}
+
+
+ControlButtons const & ViewBase::getController() const
+{
+       lyx::Assert(controller_ptr_);
+       return *controller_ptr_;
+}
+
+
+ButtonController & ViewBase::bc()
+{
+       return getController().bc();
+}
index a3c3217a15cf4c9ac6c32772be2fe47065e2a1da..dd5994e5569f9902beb4e6bdbb5f1dbdb6eb62a1 100644 (file)
 #ifndef VIEWBASE_H
 #define VIEWBASE_H
 
-#include "support/LAssert.h"
-
-#include <boost/utility.hpp>
-
 class ControlButtons;
+class ButtonController;
 
+#include <boost/utility.hpp>
 
 class ViewBase : boost::noncopyable {
 public:
        ///
-       ViewBase() : controller_ptr_(0) {}
+       ViewBase();
        ///
        virtual ~ViewBase() {}
 
@@ -50,22 +48,17 @@ public:
        /** This should be set by the GUI class that owns both the controller
         *  and the view
         */
-       void setController(ControlButtons & c) { controller_ptr_ = &c; }
+       void setController(ControlButtons &);
 
        ///
-       ControlButtons & getController() {
-               lyx::Assert(controller_ptr_);
-               return *controller_ptr_;
-       }
+       ControlButtons & getController();
+       ///
+       ControlButtons const & getController() const;
        ///
-       ControlButtons const & getController() const {
-               lyx::Assert(controller_ptr_);
-               return *controller_ptr_;
-       }
+       ButtonController & bc();
 protected:
        /// We don't own this.
        ControlButtons * controller_ptr_;
 };
 
-
 #endif // VIEWBASE_H
index 421c6128866e71ad52dd80735dd6e1e40ef9dfe1..471776a95fcf8daa0a83997c0fcb3b87a8cad877 100644 (file)
@@ -1,3 +1,8 @@
+2003-03-09  Angus Leeming  <leeming@lyx.org>
+
+       * lots of files: changes associated with the clean-up of the
+       ButtonController.
+
 2003-03-09  Angus Leeming  <leeming@lyx.org>
 
        * Dialogs.C:
index 7175f4d4e1b86a79e9c165df028ec755e59eb4c0..bd466b53982e55c961347b50a9e55d4e65cfb1d5 100644 (file)
@@ -11,6 +11,7 @@
 #include <config.h>
 
 #include "Dialogs_impl.h"
+#include "ButtonController.h"
 
 
 void Dialogs::init_pimpl()
index a6b1ceb8d7ad9b8be2ef1d05f5bd2733d9374b1c..709a862c49d11ab913bde3be05d8cca3aa315397 100644 (file)
 #include "qt_helpers.h"
 
 
-typedef ButtonController<OkCancelPolicy, Qt2BC>
-       OkCancelBC;
-
-typedef ButtonController<OkCancelReadOnlyPolicy, Qt2BC>
-       OkCancelReadOnlyBC;
-
-typedef ButtonController<OkApplyCancelReadOnlyPolicy, Qt2BC>
-       OkApplyCancelReadOnlyBC;
-
-typedef ButtonController<NoRepeatedApplyReadOnlyPolicy, Qt2BC>
-       NoRepeatedApplyReadOnlyBC;
-
 namespace {
 
 char const * const dialognames[] = { "about", "bibitem", "bibtex", "changes",
@@ -127,91 +115,92 @@ Dialog * Dialogs::build(string const & name)
                return 0;
 
        Dialog * dialog = new Dialog(lyxview_, name);
+       dialog->bc().view(new Qt2BC(dialog->bc()));
 
        if (name == "about") {
                dialog->setController(new ControlAboutlyx(*dialog));
                dialog->setView(new QAbout(*dialog));
-               dialog->setButtonController(new OkCancelBC);
+               dialog->bc().bp(new OkCancelPolicy);
        } else if (name == "bibitem") {
                dialog->setController(new ControlCommand(*dialog, name));
                dialog->setView(new QBibitem(*dialog));
-               dialog->setButtonController(new OkCancelReadOnlyBC);
+               dialog->bc().bp(new OkCancelReadOnlyPolicy);
        } else if (name == "bibtex") {
                dialog->setController(new ControlBibtex(*dialog));
                dialog->setView(new QBibtex(*dialog));
-               dialog->setButtonController(new NoRepeatedApplyReadOnlyBC);
+               dialog->bc().bp(new NoRepeatedApplyReadOnlyPolicy);
        } else if (name == "changes") {
                dialog->setController(new ControlChanges(*dialog));
                dialog->setView(new QChanges(*dialog));
-               dialog->setButtonController(new NoRepeatedApplyReadOnlyBC);
+               dialog->bc().bp(new NoRepeatedApplyReadOnlyPolicy);
        } else if (name == "citation") {
                dialog->setController(new ControlCitation(*dialog));
                dialog->setView(new QCitation(*dialog));
-               dialog->setButtonController(new NoRepeatedApplyReadOnlyBC);
+               dialog->bc().bp(new NoRepeatedApplyReadOnlyPolicy);
        } else if (name == "error") {
                dialog->setController(new ControlError(*dialog));
                dialog->setView(new QError(*dialog));
-               dialog->setButtonController(new OkCancelBC);
+               dialog->bc().bp(new OkCancelPolicy);
        } else if (name == "ert") {
                dialog->setController(new ControlERT(*dialog));
                dialog->setView(new QERT(*dialog));
-               dialog->setButtonController(new NoRepeatedApplyReadOnlyBC);
+               dialog->bc().bp(new NoRepeatedApplyReadOnlyPolicy);
        } else if (name == "external") {
                dialog->setController(new ControlExternal(*dialog));
                dialog->setView(new QExternal(*dialog));
-               dialog->setButtonController(new OkApplyCancelReadOnlyBC);
+               dialog->bc().bp(new OkApplyCancelReadOnlyPolicy);
        } else if (name == "float") {
                dialog->setController(new ControlFloat(*dialog));
                dialog->setView(new QFloat(*dialog));
-               dialog->setButtonController(new NoRepeatedApplyReadOnlyBC);
+               dialog->bc().bp(new NoRepeatedApplyReadOnlyPolicy);
        } else if (name == "graphics") {
                dialog->setController(new ControlGraphics(*dialog));
                dialog->setView(new QGraphics(*dialog));
-               dialog->setButtonController(new NoRepeatedApplyReadOnlyBC);
+               dialog->bc().bp(new NoRepeatedApplyReadOnlyPolicy);
        } else if (name == "include") {
                dialog->setController(new ControlInclude(*dialog));
                dialog->setView(new QInclude(*dialog));
-               dialog->setButtonController(new OkApplyCancelReadOnlyBC);
+               dialog->bc().bp(new OkApplyCancelReadOnlyPolicy);
        } else if (name == "index") {
                dialog->setController(new ControlCommand(*dialog, name));
                dialog->setView(new QIndex(*dialog,
                                           qt_("LyX: Insert Index Entry"),
                                           qt_("&Keyword")));
-               dialog->setButtonController(new NoRepeatedApplyReadOnlyBC);
+               dialog->bc().bp(new NoRepeatedApplyReadOnlyPolicy);
        } else if (name == "label") {
                dialog->setController(new ControlCommand(*dialog, name));
                dialog->setView(new QIndex(*dialog,
                                           qt_("LyX: Insert Label"),
                                           qt_("&Label")));
-               dialog->setButtonController(new NoRepeatedApplyReadOnlyBC);
+               dialog->bc().bp(new NoRepeatedApplyReadOnlyPolicy);
        } else if (name == "minipage") {
                dialog->setController(new ControlMinipage(*dialog));
                dialog->setView(new QMinipage(*dialog));
-               dialog->setButtonController(new NoRepeatedApplyReadOnlyBC);
+               dialog->bc().bp(new NoRepeatedApplyReadOnlyPolicy);
        } else if (name == "ref") {
                dialog->setController(new ControlRef(*dialog));
                dialog->setView(new QRef(*dialog));
-               dialog->setButtonController(new NoRepeatedApplyReadOnlyBC);
+               dialog->bc().bp(new NoRepeatedApplyReadOnlyPolicy);
        } else if (name == "tabular") {
                dialog->setController(new ControlTabular(*dialog));
                dialog->setView(new QTabular(*dialog));
-               dialog->setButtonController(new NoRepeatedApplyReadOnlyBC);
+               dialog->bc().bp(new NoRepeatedApplyReadOnlyPolicy);
        } else if (name == "tabularcreate") {
                dialog->setController(new ControlTabularCreate(*dialog));
                dialog->setView(new QTabularCreate(*dialog));
-               dialog->setButtonController(new OkApplyCancelReadOnlyBC);
+               dialog->bc().bp(new OkApplyCancelReadOnlyPolicy);
        } else if (name == "toc") {
                dialog->setController(new ControlToc(*dialog));
                dialog->setView(new QToc(*dialog));
-               dialog->setButtonController(new OkCancelBC);
+               dialog->bc().bp(new OkCancelPolicy);
        } else if (name == "url") {
                dialog->setController(new ControlCommand(*dialog, name));
                dialog->setView(new QURL(*dialog));
-               dialog->setButtonController(new NoRepeatedApplyReadOnlyBC);
+               dialog->bc().bp(new NoRepeatedApplyReadOnlyPolicy);
        } else if (name == "wrap") {
                dialog->setController(new ControlWrap(*dialog));
                dialog->setView(new QWrap(*dialog));
-               dialog->setButtonController(new NoRepeatedApplyReadOnlyBC);
+               dialog->bc().bp(new NoRepeatedApplyReadOnlyPolicy);
        }
 
        return dialog;
index b464e4054f9181cb9a4d8db8e34958df69579108..a336c620ad933baf083b2533ed5d67dba4017539 100644 (file)
@@ -16,7 +16,7 @@
 #include "debug.h"
 #include "qt_helpers.h"
 #include "LyXView.h"
-#include "ButtonControllerBase.h"
+#include "ButtonController.h"
 #include "ControlAboutlyx.h"
 
 #include <qlabel.h>
@@ -106,6 +106,6 @@ void QAbout::build_dialog()
        dialog_->setMinimumSize(dialog_->sizeHint());
 
        // Manage the cancel/close button
-       bc().setCancel(dialog_->closePB);
+       bcview().setCancel(dialog_->closePB);
        bc().refresh();
 }
index cb8c61cc6e41bbb7b507701df1cfc23a2180d4e7..baaad5e1e142c5ee2bdfaf1c9de3422319553bcb 100644 (file)
@@ -37,10 +37,10 @@ void QBibitem::build_dialog()
 {
        dialog_.reset(new QBibitemDialog(this));
 
-       bc().setOK(dialog_->okPB);
-       bc().setCancel(dialog_->closePB);
-       bc().addReadOnly(dialog_->keyED);
-       bc().addReadOnly(dialog_->labelED);
+       bcview().setOK(dialog_->okPB);
+       bcview().setCancel(dialog_->closePB);
+       bcview().addReadOnly(dialog_->keyED);
+       bcview().addReadOnly(dialog_->labelED);
 }
 
 
index 3beb7eba3358360c2fd0368eb0d2960ff0ed997b..ba737b88d7d59b04a4bc256a28ffbea271f81ad0 100644 (file)
@@ -46,15 +46,15 @@ void QBibtex::build_dialog()
 {
        dialog_.reset(new QBibtexDialog(this));
 
-       bc().setOK(dialog_->okPB);
-       bc().setCancel(dialog_->closePB);
-       bc().addReadOnly(dialog_->databaseLB);
-       bc().addReadOnly(dialog_->databasePB);
-       bc().addReadOnly(dialog_->stylePB);
-       bc().addReadOnly(dialog_->styleCB);
-       bc().addReadOnly(dialog_->bibtocCB);
-       bc().addReadOnly(dialog_->databasePB);
-       bc().addReadOnly(dialog_->deletePB);
+       bcview().setOK(dialog_->okPB);
+       bcview().setCancel(dialog_->closePB);
+       bcview().addReadOnly(dialog_->databaseLB);
+       bcview().addReadOnly(dialog_->databasePB);
+       bcview().addReadOnly(dialog_->stylePB);
+       bcview().addReadOnly(dialog_->styleCB);
+       bcview().addReadOnly(dialog_->bibtocCB);
+       bcview().addReadOnly(dialog_->databasePB);
+       bcview().addReadOnly(dialog_->deletePB);
 }
 
 
index 12e64834e06db6fc7844a952a0315afc7b6c4403..98e2e3f4a6af54b674a00cafb9bdd7a2199b9aa0 100644 (file)
@@ -33,9 +33,9 @@ void QChanges::build_dialog()
 {
        dialog_.reset(new QChangesDialog(this));
 
-       bc().setCancel(dialog_->closePB);
-       bc().addReadOnly(dialog_->acceptPB);
-       bc().addReadOnly(dialog_->rejectPB);
+       bcview().setCancel(dialog_->closePB);
+       bcview().addReadOnly(dialog_->acceptPB);
+       bcview().addReadOnly(dialog_->rejectPB);
 }
 
 
index 8b4ed13f8ad7ef34971fb09407d67cb126800e23..dac9c882f37b19b567064a26ddad5e157ebec60e 100644 (file)
@@ -80,18 +80,18 @@ void QCharacter::build_dialog()
                dialog_->langCO->insertItem(toqstr(cit->first), -1);
        }
 
-       bc().setOK(dialog_->okPB);
-       bc().setApply(dialog_->applyPB);
-       bc().setCancel(dialog_->closePB);
-       bc().addReadOnly(dialog_->familyCO);
-       bc().addReadOnly(dialog_->seriesCO);
-       bc().addReadOnly(dialog_->sizeCO);
-       bc().addReadOnly(dialog_->shapeCO);
-       bc().addReadOnly(dialog_->miscCO);
-       bc().addReadOnly(dialog_->langCO);
-       bc().addReadOnly(dialog_->colorCO);
-       bc().addReadOnly(dialog_->toggleallCB);
-       bc().addReadOnly(dialog_->autoapplyCB);
+       bcview().setOK(dialog_->okPB);
+       bcview().setApply(dialog_->applyPB);
+       bcview().setCancel(dialog_->closePB);
+       bcview().addReadOnly(dialog_->familyCO);
+       bcview().addReadOnly(dialog_->seriesCO);
+       bcview().addReadOnly(dialog_->sizeCO);
+       bcview().addReadOnly(dialog_->shapeCO);
+       bcview().addReadOnly(dialog_->miscCO);
+       bcview().addReadOnly(dialog_->langCO);
+       bcview().addReadOnly(dialog_->colorCO);
+       bcview().addReadOnly(dialog_->toggleallCB);
+       bcview().addReadOnly(dialog_->autoapplyCB);
 }
 
 
index 293b9d88ebbd417f21b6069a6e84764667ff55de..33112e529ecb56f2f57645a3e7b277b2e8afd18d 100644 (file)
@@ -83,21 +83,21 @@ void QCitation::build_dialog()
        dialog_->searchCaseCB->setChecked(false);
 
        // Manage the ok, apply, restore and cancel/close buttons
-       bc().setOK(dialog_->okPB);
-       bc().setApply(dialog_->applyPB);
-       bc().setCancel(dialog_->closePB);
-       bc().setRestore(dialog_->restorePB);
-
-       bc().addReadOnly(dialog_->addPB);
-       bc().addReadOnly(dialog_->delPB);
-       bc().addReadOnly(dialog_->upPB);
-       bc().addReadOnly(dialog_->downPB);
-       bc().addReadOnly(dialog_->citationStyleCO);
-       bc().addReadOnly(dialog_->forceuppercaseCB);
-       bc().addReadOnly(dialog_->fulllistCB);
+       bcview().setOK(dialog_->okPB);
+       bcview().setApply(dialog_->applyPB);
+       bcview().setCancel(dialog_->closePB);
+       bcview().setRestore(dialog_->restorePB);
+
+       bcview().addReadOnly(dialog_->addPB);
+       bcview().addReadOnly(dialog_->delPB);
+       bcview().addReadOnly(dialog_->upPB);
+       bcview().addReadOnly(dialog_->downPB);
+       bcview().addReadOnly(dialog_->citationStyleCO);
+       bcview().addReadOnly(dialog_->forceuppercaseCB);
+       bcview().addReadOnly(dialog_->fulllistCB);
        // add when enabled !
-       //bc().addReadOnly(dialog_->textBeforeED);
-       bc().addReadOnly(dialog_->textAfterED);
+       //bcview().addReadOnly(dialog_->textBeforeED);
+       bcview().addReadOnly(dialog_->textAfterED);
 }
 
 
index 90de427ecb9eb67b8140d2cd28257dd6fe74e8ac..d2fee7a643bcdb33130cd8a2a5c3c0cf3162cf37 100644 (file)
@@ -18,6 +18,7 @@
 #include "QtLyXView.h"
 #include "QDialogView.h"
 #include "Qt2BC.h"
+#include "ButtonController.h"
 #include "support/LAssert.h"
 
 
@@ -26,9 +27,9 @@ QDialogView::QDialogView(Dialog & parent, QString const & t)
 {}
 
 
-Qt2BC & QDialogView::bc()
+Qt2BC & QDialogView::bcview()
 {
-       return static_cast<Qt2BC &>(dialog().bc());
+       return static_cast<Qt2BC &>(dialog().bc().view());
 }
 
 
index a4ae9b9177d46a8852697ac38643e295e4216e45..c2ab533e46a771d662e8f00d66f44d83ba8690c0 100644 (file)
@@ -56,7 +56,7 @@ protected:
        virtual bool isValid();
 
        ///
-       Qt2BC & bc();
+       Qt2BC & bcview();
 
        /// are we updating ?
        bool updating_;
index ae3fb57819cf51e6473168a8d458eeaf20e02091..358b1f0e3b65d29aba8cb1da2fc4e61323d0b132 100644 (file)
@@ -158,10 +158,10 @@ void QDocument::build_dialog()
        dialog_->setMargins(0);
 
        // Manage the restore, ok, apply, restore and cancel/close buttons
-       bc().setOK(dialog_->okPB);
-       bc().setApply(dialog_->applyPB);
-       bc().setCancel(dialog_->closePB);
-       bc().setRestore(dialog_->restorePB);
+       bcview().setOK(dialog_->okPB);
+       bcview().setApply(dialog_->applyPB);
+       bcview().setCancel(dialog_->closePB);
+       bcview().setRestore(dialog_->restorePB);
 }
 
 
index 12ea8be4ddecb7f611c956e79bd8dd814614f32a..fb92bac635bae426edb9c1c9507f43dddb35e5e2 100644 (file)
@@ -34,8 +34,8 @@ void QERT::build_dialog()
 {
        dialog_.reset(new QERTDialog(this));
 
-       bc().setOK(dialog_->okPB);
-       bc().setCancel(dialog_->closePB);
+       bcview().setOK(dialog_->okPB);
+       bcview().setCancel(dialog_->closePB);
 }
 
 
index 46748760cb4ab5a49ac197e19f0f796f999ab71f..09e9b65d4d3090353181fcda2ba9b633833d664d 100644 (file)
@@ -34,7 +34,7 @@ void QError::build_dialog()
 {
        dialog_.reset(new QErrorDialog(this));
 
-       bc().setCancel(dialog_->closePB);
+       bcview().setCancel(dialog_->closePB);
 }
 
 
index fe43270ddc3d550a3536cc44b52976e2c3296e16..dfde08ec85b743adf1c43d06d81f3a04a00231b5 100644 (file)
@@ -38,12 +38,12 @@ void QExternal::build_dialog()
 {
        dialog_.reset(new QExternalDialog(this));
 
-       bc().setOK(dialog_->okPB);
-       bc().setApply(dialog_->applyPB);
-       bc().setCancel(dialog_->closePB);
-       bc().addReadOnly(dialog_->externalCO);
-       bc().addReadOnly(dialog_->fileED);
-       bc().addReadOnly(dialog_->browsePB);
+       bcview().setOK(dialog_->okPB);
+       bcview().setApply(dialog_->applyPB);
+       bcview().setCancel(dialog_->closePB);
+       bcview().addReadOnly(dialog_->externalCO);
+       bcview().addReadOnly(dialog_->fileED);
+       bcview().addReadOnly(dialog_->browsePB);
 
        std::vector<string> templates(controller().getTemplates());
 
index 7385809f74548e5151f1715fbef4dce63b68d741..bec143567b3810ddd1e11f3815dc7d568acdf17f 100644 (file)
@@ -35,19 +35,19 @@ void QFloat::build_dialog()
 {
        dialog_.reset(new QFloatDialog(this));
 
-       bc().setCancel(dialog_->closePB);
-       bc().setApply(dialog_->applyPB);
-       bc().setOK(dialog_->okPB);
-       bc().setRestore(dialog_->restorePB);
-
-       bc().addReadOnly(dialog_->topCB);
-       bc().addReadOnly(dialog_->bottomCB);
-       bc().addReadOnly(dialog_->herepossiblyCB);
-       bc().addReadOnly(dialog_->heredefinitelyCB);
-       bc().addReadOnly(dialog_->pageCB);
-       bc().addReadOnly(dialog_->ignoreCB);
-       bc().addReadOnly(dialog_->defaultsCB);
-       bc().addReadOnly(dialog_->spanCB);
+       bcview().setCancel(dialog_->closePB);
+       bcview().setApply(dialog_->applyPB);
+       bcview().setOK(dialog_->okPB);
+       bcview().setRestore(dialog_->restorePB);
+
+       bcview().addReadOnly(dialog_->topCB);
+       bcview().addReadOnly(dialog_->bottomCB);
+       bcview().addReadOnly(dialog_->herepossiblyCB);
+       bcview().addReadOnly(dialog_->heredefinitelyCB);
+       bcview().addReadOnly(dialog_->pageCB);
+       bcview().addReadOnly(dialog_->ignoreCB);
+       bcview().addReadOnly(dialog_->defaultsCB);
+       bcview().addReadOnly(dialog_->spanCB);
 }
 
 
index f644acb7feca063e557cc81e422ef5d24259b017..1884242d864d3d47e82f286622f518881461c40e 100644 (file)
@@ -56,45 +56,45 @@ void QGraphics::build_dialog()
 {
        dialog_.reset(new QGraphicsDialog(this));
 
-       bc().setOK(dialog_->okPB);
-       bc().setApply(dialog_->applyPB);
-       bc().setRestore(dialog_->restorePB);
-       bc().setCancel(dialog_->closePB);
-
-       bc().addReadOnly(dialog_->rotateGB);
-       bc().addReadOnly(dialog_->latexoptions);
-       bc().addReadOnly(dialog_->subfigure);
-       bc().addReadOnly(dialog_->subcaption);
-       bc().addReadOnly(dialog_->filenameL);
-       bc().addReadOnly(dialog_->filename);
-       bc().addReadOnly(dialog_->browsePB);
-       bc().addReadOnly(dialog_->unzipCB);
-       bc().addReadOnly(dialog_->filename);
-       bc().addReadOnly(dialog_->lbX);
-       bc().addReadOnly(dialog_->lbY);
-       bc().addReadOnly(dialog_->rtX);
-       bc().addReadOnly(dialog_->rtY);
-       bc().addReadOnly(dialog_->lbXunit);
-       bc().addReadOnly(dialog_->lbYunit);
-       bc().addReadOnly(dialog_->rtXunit);
-       bc().addReadOnly(dialog_->rtYunit);
-       bc().addReadOnly(dialog_->draftCB);
-       bc().addReadOnly(dialog_->clip);
-       bc().addReadOnly(dialog_->unzipCB);
-       bc().addReadOnly(dialog_->subfigure);
-       bc().addReadOnly(dialog_->subcaption);
-       bc().addReadOnly(dialog_->showCB);
-       bc().addReadOnly(dialog_->width);
-       bc().addReadOnly(dialog_->height);
-       bc().addReadOnly(dialog_->displayCB);
-       bc().addReadOnly(dialog_->displayscale);
-       bc().addReadOnly(dialog_->widthUnit);
-       bc().addReadOnly(dialog_->heightUnit);
-       bc().addReadOnly(dialog_->aspectratio);
-       bc().addReadOnly(dialog_->angle);
-       bc().addReadOnly(dialog_->origin);
-       bc().addReadOnly(dialog_->latexoptions);
-       bc().addReadOnly(dialog_->getPB);
+       bcview().setOK(dialog_->okPB);
+       bcview().setApply(dialog_->applyPB);
+       bcview().setRestore(dialog_->restorePB);
+       bcview().setCancel(dialog_->closePB);
+
+       bcview().addReadOnly(dialog_->rotateGB);
+       bcview().addReadOnly(dialog_->latexoptions);
+       bcview().addReadOnly(dialog_->subfigure);
+       bcview().addReadOnly(dialog_->subcaption);
+       bcview().addReadOnly(dialog_->filenameL);
+       bcview().addReadOnly(dialog_->filename);
+       bcview().addReadOnly(dialog_->browsePB);
+       bcview().addReadOnly(dialog_->unzipCB);
+       bcview().addReadOnly(dialog_->filename);
+       bcview().addReadOnly(dialog_->lbX);
+       bcview().addReadOnly(dialog_->lbY);
+       bcview().addReadOnly(dialog_->rtX);
+       bcview().addReadOnly(dialog_->rtY);
+       bcview().addReadOnly(dialog_->lbXunit);
+       bcview().addReadOnly(dialog_->lbYunit);
+       bcview().addReadOnly(dialog_->rtXunit);
+       bcview().addReadOnly(dialog_->rtYunit);
+       bcview().addReadOnly(dialog_->draftCB);
+       bcview().addReadOnly(dialog_->clip);
+       bcview().addReadOnly(dialog_->unzipCB);
+       bcview().addReadOnly(dialog_->subfigure);
+       bcview().addReadOnly(dialog_->subcaption);
+       bcview().addReadOnly(dialog_->showCB);
+       bcview().addReadOnly(dialog_->width);
+       bcview().addReadOnly(dialog_->height);
+       bcview().addReadOnly(dialog_->displayCB);
+       bcview().addReadOnly(dialog_->displayscale);
+       bcview().addReadOnly(dialog_->widthUnit);
+       bcview().addReadOnly(dialog_->heightUnit);
+       bcview().addReadOnly(dialog_->aspectratio);
+       bcview().addReadOnly(dialog_->angle);
+       bcview().addReadOnly(dialog_->origin);
+       bcview().addReadOnly(dialog_->latexoptions);
+       bcview().addReadOnly(dialog_->getPB);
 }
 
 
index 352866a2e39610f026db74328fcacbc464874191..1c97d9c226b09857e57ab98abb049bb9cef47c69 100644 (file)
@@ -37,12 +37,12 @@ void QInclude::build_dialog()
 {
        dialog_.reset(new QIncludeDialog(this));
 
-       bc().setOK(dialog_->okPB);
-       bc().setCancel(dialog_->closePB);
-       bc().addReadOnly(dialog_->filenameED);
-       bc().addReadOnly(dialog_->browsePB);
-       bc().addReadOnly(dialog_->visiblespaceCB);
-       bc().addReadOnly(dialog_->typeCO);
+       bcview().setOK(dialog_->okPB);
+       bcview().setCancel(dialog_->closePB);
+       bcview().addReadOnly(dialog_->filenameED);
+       bcview().addReadOnly(dialog_->browsePB);
+       bcview().addReadOnly(dialog_->visiblespaceCB);
+       bcview().addReadOnly(dialog_->typeCO);
 }
 
 
index 2eceecf78313e97c1fb2628ba4b25d1dee113e50..0f5e01aaca6e17e6ffd9040c3569a6e9dc8abc9c 100644 (file)
@@ -17,6 +17,7 @@
 #include "QIndexDialog.h"
 #include "QIndex.h"
 #include "Qt2BC.h"
+#include "ButtonController.h"
 #include <qlabel.h>
 #include <qlineedit.h>
 #include <qpushbutton.h>
@@ -36,9 +37,9 @@ void QIndex::build_dialog()
 
        dialog_->keywordLA->setText(label_);
 
-       bc().setOK(dialog_->okPB);
-       bc().setCancel(dialog_->closePB);
-       bc().addReadOnly(dialog_->keywordED);
+       bcview().setOK(dialog_->okPB);
+       bcview().setCancel(dialog_->closePB);
+       bcview().addReadOnly(dialog_->keywordED);
 }
 
 
index feb5bef3d2d0cf1a4d2b9bc8335a806cd0e3ee91..b6dbfc032163c7aa972560d26ef38a406e2221dd 100644 (file)
@@ -40,7 +40,7 @@ void QLog::build_dialog()
 {
        dialog_.reset(new QLogDialog(this));
 
-       bc().setCancel(dialog_->closePB);
+       bcview().setCancel(dialog_->closePB);
 }
 
 
index 7ab69fcfac0f298ce4229699277f3f01547fe043..dcc807d45814c1329320bde5b1cceadb7cfae374 100644 (file)
@@ -39,14 +39,14 @@ void QMinipage::build_dialog()
 {
        dialog_.reset(new QMinipageDialog(this));
 
-       bc().setRestore(dialog_->restorePB);
-       bc().setOK(dialog_->okPB);
-       bc().setApply(dialog_->applyPB);
-       bc().setCancel(dialog_->closePB);
-
-       bc().addReadOnly(dialog_->widthED);
-       bc().addReadOnly(dialog_->unitsLC);
-       bc().addReadOnly(dialog_->valignCO);
+       bcview().setRestore(dialog_->restorePB);
+       bcview().setOK(dialog_->okPB);
+       bcview().setApply(dialog_->applyPB);
+       bcview().setCancel(dialog_->closePB);
+
+       bcview().addReadOnly(dialog_->widthED);
+       bcview().addReadOnly(dialog_->unitsLC);
+       bcview().addReadOnly(dialog_->valignCO);
 }
 
 
index ea298c7c203e6c6bbdeec1ad5aef0d0374078f19..fdf34ad6a040736f08be786687df71f9cc696576 100644 (file)
@@ -67,11 +67,11 @@ void QParagraph::build_dialog()
        }
 
        // Manage the ok, apply, restore and cancel/close buttons
-       bc().setOK(dialog_->okPB);
-       bc().setApply(dialog_->applyPB);
-       bc().setCancel(dialog_->closePB);
-       bc().setRestore(dialog_->restorePB);
-       bc().addReadOnly(dialog_->paragraphTab);
+       bcview().setOK(dialog_->okPB);
+       bcview().setApply(dialog_->applyPB);
+       bcview().setCancel(dialog_->closePB);
+       bcview().setRestore(dialog_->restorePB);
+       bcview().addReadOnly(dialog_->paragraphTab);
 }
 
 
index 4532eee7f5aaefc7327bf36fc2dc32bd0cbf5267..305f56f03afd815d8bd7568cfdb54fe3a36f186e 100644 (file)
@@ -15,6 +15,7 @@
 
 
 #include "Qt2Base.h"
+#include "LString.h"
 #include <vector>
 
 class ControlParagraph;
index 1ddf870d4eefc7abc24923ce0f8e4c6992622320..e774d34a3b91025005767b201c12eaf4a8420a31 100644 (file)
@@ -71,10 +71,10 @@ void QPrefs::build_dialog()
 {
        dialog_.reset(new QPrefsDialog(this));
 
-       bc().setOK(dialog_->savePB);
-       bc().setApply(dialog_->applyPB);
-       bc().setCancel(dialog_->closePB);
-       bc().setRestore(dialog_->restorePB);
+       bcview().setOK(dialog_->savePB);
+       bcview().setApply(dialog_->applyPB);
+       bcview().setCancel(dialog_->closePB);
+       bcview().setRestore(dialog_->restorePB);
 
        QPrefLanguageModule * langmod(dialog_->languageModule);
 
index 276ad9e53ae4bf7770f4554318c988aa1bf56439..8c9a4f7792237fb22eb3aa5432d3df8080b3ae91 100644 (file)
@@ -42,8 +42,8 @@ void QPrint::build_dialog()
 {
        dialog_.reset(new QLPrintDialog(this));
 
-       bc().setOK(dialog_->printPB);
-       bc().setCancel(dialog_->closePB);
+       bcview().setOK(dialog_->printPB);
+       bcview().setCancel(dialog_->closePB);
 }
 
 
index 797bfd089aad6efe94c771103b2bcf60f09595cb..9cfc30233c0eac5f86d9549891ec83f72f337563 100644 (file)
@@ -49,15 +49,15 @@ void QRef::build_dialog()
 {
        dialog_.reset(new QRefDialog(this));
 
-       bc().setOK(dialog_->okPB);
-       bc().setApply(dialog_->applyPB);
-       bc().setCancel(dialog_->closePB);
-       bc().addReadOnly(dialog_->refsLB);
-       bc().addReadOnly(dialog_->sortCB);
-       bc().addReadOnly(dialog_->nameED);
-       bc().addReadOnly(dialog_->referenceED);
-       bc().addReadOnly(dialog_->typeCO);
-       bc().addReadOnly(dialog_->bufferCO);
+       bcview().setOK(dialog_->okPB);
+       bcview().setApply(dialog_->applyPB);
+       bcview().setCancel(dialog_->closePB);
+       bcview().addReadOnly(dialog_->refsLB);
+       bcview().addReadOnly(dialog_->sortCB);
+       bcview().addReadOnly(dialog_->nameED);
+       bcview().addReadOnly(dialog_->referenceED);
+       bcview().addReadOnly(dialog_->typeCO);
+       bcview().addReadOnly(dialog_->bufferCO);
 }
 
 
index 9c2e66ba13504fc3f2706f216ac42ba6b37d811f..301ff1fe5e68028c7c19e0c959934ca0ed18603f 100644 (file)
@@ -37,13 +37,13 @@ void QSearch::build_dialog()
 {
        dialog_.reset(new QSearchDialog(this));
 
-       bc().setCancel(dialog_->closePB);
-       bc().addReadOnly(dialog_->replaceCO);
-       bc().addReadOnly(dialog_->replacePB);
-       bc().addReadOnly(dialog_->replaceallPB);
-       bc().addReadOnly(dialog_->caseCB);
-       bc().addReadOnly(dialog_->wordsCB);
-       bc().addReadOnly(dialog_->backwardsCB);
+       bcview().setCancel(dialog_->closePB);
+       bcview().addReadOnly(dialog_->replaceCO);
+       bcview().addReadOnly(dialog_->replacePB);
+       bcview().addReadOnly(dialog_->replaceallPB);
+       bcview().addReadOnly(dialog_->caseCB);
+       bcview().addReadOnly(dialog_->wordsCB);
+       bcview().addReadOnly(dialog_->backwardsCB);
 
        dialog_->replacePB->setEnabled(false);
        dialog_->replaceallPB->setEnabled(false);
index 22038d0b33ed2cdd3e4af021a2114554b5942eef..ba60678a9db3f28b519ffe5b11cf191b71b64b68 100644 (file)
@@ -41,9 +41,9 @@ void QSendto::build_dialog()
        dialog_.reset(new QSendtoDialog(this));
 
        // Manage the ok, apply, restore and cancel/close buttons
-       bc().setOK(dialog_->okPB);
-       bc().setApply(dialog_->applyPB);
-       bc().setCancel(dialog_->closePB);
+       bcview().setOK(dialog_->okPB);
+       bcview().setApply(dialog_->applyPB);
+       bcview().setCancel(dialog_->closePB);
 }
 
 
index 6d8c92a68178b57368fb967630f8b830d5869d13..924e9b4e6a2093a5e0367cb035b1f3abbbf38865 100644 (file)
@@ -34,7 +34,7 @@ void QShowFile::build_dialog()
 {
        dialog_.reset(new QShowFileDialog(this));
 
-       bc().setCancel(dialog_->closePB);
+       bcview().setCancel(dialog_->closePB);
 }
 
 
index d0e57c75fb4728072c9dbf5e44191053dac43645..cde1c18209bc8d727ba130124fe1f39ee865bccf 100644 (file)
@@ -38,7 +38,7 @@ void QSpellchecker::build_dialog()
 {
        dialog_.reset(new QSpellcheckerDialog(this));
 
-       bc().setCancel(dialog_->closePB);
+       bcview().setCancel(dialog_->closePB);
        dialog_->wordED->setReadOnly(true);
 }
 
index da61f1aa31692cb4367bd05bcc2a98125b0b02d8..3a620e3b16fd173d1a77926f8ff0e56bf5866505 100644 (file)
@@ -22,6 +22,7 @@
 #include "QTabularDialog.h"
 #include "QTabular.h"
 #include "Qt2BC.h"
+#include "ButtonController.h"
 
 #include <qpushbutton.h>
 #include <qlineedit.h>
@@ -41,39 +42,39 @@ void QTabular::build_dialog()
 {
        dialog_.reset(new QTabularDialog(this));
 
-       bc().setCancel(dialog_->closePB);
-
-       bc().addReadOnly(dialog_->multicolumnCB);
-       bc().addReadOnly(dialog_->rotateCellCB);
-       bc().addReadOnly(dialog_->rotateTabularCB);
-       bc().addReadOnly(dialog_->specialAlignmentED);
-       bc().addReadOnly(dialog_->widthED);
-       bc().addReadOnly(dialog_->widthUnit);
-       bc().addReadOnly(dialog_->hAlignCB);
-       bc().addReadOnly(dialog_->vAlignCB);
-       bc().addReadOnly(dialog_->columnAddPB);
-       bc().addReadOnly(dialog_->columnDeletePB);
-       bc().addReadOnly(dialog_->rowAddPB);
-       bc().addReadOnly(dialog_->rowDeletePB);
-       bc().addReadOnly(dialog_->borderSetPB);
-       bc().addReadOnly(dialog_->borderUnsetPB);
-       bc().addReadOnly(dialog_->borders);
-       bc().addReadOnly(dialog_->longTabularCB);
-       bc().addReadOnly(dialog_->headerStatusCB);
-       bc().addReadOnly(dialog_->headerBorderAboveCB);
-       bc().addReadOnly(dialog_->headerBorderBelowCB);
-       bc().addReadOnly(dialog_->firstheaderStatusCB);
-       bc().addReadOnly(dialog_->firstheaderBorderAboveCB);
-       bc().addReadOnly(dialog_->firstheaderBorderBelowCB);
-       bc().addReadOnly(dialog_->firstheaderNoContentsCB);
-       bc().addReadOnly(dialog_->footerStatusCB);
-       bc().addReadOnly(dialog_->footerBorderAboveCB);
-       bc().addReadOnly(dialog_->footerBorderBelowCB);
-       bc().addReadOnly(dialog_->lastfooterStatusCB);
-       bc().addReadOnly(dialog_->lastfooterBorderAboveCB);
-       bc().addReadOnly(dialog_->lastfooterBorderBelowCB);
-       bc().addReadOnly(dialog_->lastfooterNoContentsCB);
-       bc().addReadOnly(dialog_->newpageCB);
+       bcview().setCancel(dialog_->closePB);
+
+       bcview().addReadOnly(dialog_->multicolumnCB);
+       bcview().addReadOnly(dialog_->rotateCellCB);
+       bcview().addReadOnly(dialog_->rotateTabularCB);
+       bcview().addReadOnly(dialog_->specialAlignmentED);
+       bcview().addReadOnly(dialog_->widthED);
+       bcview().addReadOnly(dialog_->widthUnit);
+       bcview().addReadOnly(dialog_->hAlignCB);
+       bcview().addReadOnly(dialog_->vAlignCB);
+       bcview().addReadOnly(dialog_->columnAddPB);
+       bcview().addReadOnly(dialog_->columnDeletePB);
+       bcview().addReadOnly(dialog_->rowAddPB);
+       bcview().addReadOnly(dialog_->rowDeletePB);
+       bcview().addReadOnly(dialog_->borderSetPB);
+       bcview().addReadOnly(dialog_->borderUnsetPB);
+       bcview().addReadOnly(dialog_->borders);
+       bcview().addReadOnly(dialog_->longTabularCB);
+       bcview().addReadOnly(dialog_->headerStatusCB);
+       bcview().addReadOnly(dialog_->headerBorderAboveCB);
+       bcview().addReadOnly(dialog_->headerBorderBelowCB);
+       bcview().addReadOnly(dialog_->firstheaderStatusCB);
+       bcview().addReadOnly(dialog_->firstheaderBorderAboveCB);
+       bcview().addReadOnly(dialog_->firstheaderBorderBelowCB);
+       bcview().addReadOnly(dialog_->firstheaderNoContentsCB);
+       bcview().addReadOnly(dialog_->footerStatusCB);
+       bcview().addReadOnly(dialog_->footerBorderAboveCB);
+       bcview().addReadOnly(dialog_->footerBorderBelowCB);
+       bcview().addReadOnly(dialog_->lastfooterStatusCB);
+       bcview().addReadOnly(dialog_->lastfooterBorderAboveCB);
+       bcview().addReadOnly(dialog_->lastfooterBorderBelowCB);
+       bcview().addReadOnly(dialog_->lastfooterNoContentsCB);
+       bcview().addReadOnly(dialog_->newpageCB);
 }
 
 
index 6cb5a4729626daec4599b098014b0778e599b91c..866dfddb8ecc1e5907bfb29a77056c07133d4178 100644 (file)
@@ -34,8 +34,8 @@ void QTabularCreate::build_dialog()
 {
        dialog_.reset(new QTabularCreateDialog(this));
 
-       bc().setOK(dialog_->okPB);
-       bc().setCancel(dialog_->closePB);
+       bcview().setOK(dialog_->okPB);
+       bcview().setCancel(dialog_->closePB);
 }
 
 
index 71f40a4d680c57f98febb9c590868e6d24a76da9..38338438184a7ff7b4c091f538818d96280d09db 100644 (file)
@@ -42,7 +42,7 @@ void QTexinfo::build_dialog()
 
        updateStyles(ControlTexinfo::cls);
 
-       bc().setCancel(dialog_->closePB);
+       bcview().setCancel(dialog_->closePB);
 }
 
 
index 70ffd921c5b34a622d2fa67f67f4ebb24a9e284d..88a53ec0d898963d96251a0a841282a30188aab1 100644 (file)
@@ -34,10 +34,10 @@ void QThesaurus::build_dialog()
 {
        dialog_.reset(new QThesaurusDialog(this));
 
-       bc().setCancel(dialog_->closePB);
-       bc().setApply(dialog_->replacePB);
-       bc().addReadOnly(dialog_->replaceED);
-       bc().addReadOnly(dialog_->replacePB);
+       bcview().setCancel(dialog_->closePB);
+       bcview().setApply(dialog_->replacePB);
+       bcview().addReadOnly(dialog_->replaceED);
+       bcview().addReadOnly(dialog_->replacePB);
 }
 
 
index 867b4a941954f5dc62d8f274b194c3d2f2934894..d0fc232b484a3c1d31541aceccd6a64757921e74 100644 (file)
@@ -45,7 +45,7 @@ void QToc::build_dialog()
        dialog_.reset(new QTocDialog(this));
 
        // Manage the cancel/close button
-       bc().setCancel(dialog_->closePB);
+       bcview().setCancel(dialog_->closePB);
 }
 
 
index 4201e4a82e54ad5c7ea6dae5d5515393012eb98e..1fee2af643bb4a3450c8298946900a084e16e48b 100644 (file)
@@ -17,6 +17,7 @@
 #include "QURL.h"
 #include "QURLDialog.h"
 #include "Qt2BC.h"
+#include "ButtonController.h"
 
 #include <qcheckbox.h>
 #include <qpushbutton.h>
@@ -34,11 +35,11 @@ void QURL::build_dialog()
 {
        dialog_.reset(new QURLDialog(this));
 
-       bc().setOK(dialog_->okPB);
-       bc().setCancel(dialog_->closePB);
-       bc().addReadOnly(dialog_->urlED);
-       bc().addReadOnly(dialog_->nameED);
-       bc().addReadOnly(dialog_->hyperlinkCB);
+       bcview().setOK(dialog_->okPB);
+       bcview().setCancel(dialog_->closePB);
+       bcview().addReadOnly(dialog_->urlED);
+       bcview().addReadOnly(dialog_->nameED);
+       bcview().addReadOnly(dialog_->hyperlinkCB);
 }
 
 
index ed405a76ca9a6c6682f693bad589ccc7ce7307e9..4645eaf96380d8e97a87802dfb767d35cf27fe9e 100644 (file)
@@ -38,7 +38,7 @@ void QVCLog::build_dialog()
 {
        dialog_.reset(new QVCLogDialog(this));
 
-       bc().setCancel(dialog_->closePB);
+       bcview().setCancel(dialog_->closePB);
 }
 
 
index c6080b7a6b8dc2fb079ec3f1a606199761863e03..0e5dec9462fd7df7e1e8618cdd18f04b36dd1717 100644 (file)
@@ -41,14 +41,14 @@ void QWrap::build_dialog()
 {
        dialog_.reset(new QWrapDialog(this));
 
-       bc().setRestore(dialog_->restorePB);
-       bc().setOK(dialog_->okPB);
-       bc().setApply(dialog_->applyPB);
-       bc().setCancel(dialog_->closePB);
-
-       bc().addReadOnly(dialog_->widthED);
-       bc().addReadOnly(dialog_->unitsLC);
-       bc().addReadOnly(dialog_->valignCO);
+       bcview().setRestore(dialog_->restorePB);
+       bcview().setOK(dialog_->okPB);
+       bcview().setApply(dialog_->applyPB);
+       bcview().setCancel(dialog_->closePB);
+
+       bcview().addReadOnly(dialog_->widthED);
+       bcview().addReadOnly(dialog_->unitsLC);
+       bcview().addReadOnly(dialog_->valignCO);
 }
 
 
index 40f900b913faaf37258d834284f8078fbd38cf33..a9e5a700fc499dd76c2047b10cc82bd09ee192ff 100644 (file)
@@ -11,7 +11,6 @@
 
 #include <config.h>
 
-
 #include "Qt2BC.h"
 #include "debug.h"
 #include "qt_helpers.h"
@@ -20,8 +19,9 @@
 #include <qlineedit.h>
 
 
-Qt2BC::Qt2BC(string const & cancel, string const & close)
-       : GuiBC<QButton, QWidget>(cancel, close)
+Qt2BC::Qt2BC(ButtonController const & parent,
+            string const & cancel, string const & close)
+       : GuiBC<QButton, QWidget>(parent, cancel, close)
 {}
 
 
index 4f9524dd3a5b2c96e733c37cb6e1b05406b692d2..683c4dacf8e73c00842049b60a59ccba6df99e00 100644 (file)
@@ -15,7 +15,8 @@
 #define QT2BC_H
 
 
-#include "ButtonController.h"
+#include "BCView.h"
+#include "gettext.h"
 
 class QWidget;
 class QButton;
@@ -29,7 +30,8 @@ class QButton;
 class Qt2BC : public GuiBC<QButton, QWidget> {
 public:
        ///
-       Qt2BC(string const &, string const &);
+       Qt2BC(ButtonController const &,
+             string const & = _("Cancel"), string const & = _("Close"));
 private:
        /// Updates the button sensitivity (enabled/disabled)
        void setButtonEnabled(QButton *, bool enabled);
index 44fe8c86dc66ac075f93fd9bd4faa930c3bd59d9..27ca0953b8a844d54138285dbfd11036a4f96ee9 100644 (file)
@@ -17,6 +17,7 @@
 #include "QtLyXView.h"
 #include "Qt2Base.h"
 #include "Qt2BC.h"
+#include "ButtonController.h"
 #include "ControlButtons.h"
 #include "support/LAssert.h"
 
@@ -26,10 +27,10 @@ Qt2Base::Qt2Base(QString const & t)
 {}
 
 
-Qt2BC & Qt2Base::bc()
+Qt2BC & Qt2Base::bcview()
 {
-       return static_cast<Qt2BC &>(getController().bc());
-       // return dynamic_cast<Qt2BC &>(getController().bc());
+       return static_cast<Qt2BC &>(bc().view());
+       // return dynamic_cast<Qt2BC &>(bc());
 }
 
 
index ca98ae6c420017c3ec160d7cc6bfd7b06e8c678d..e9f573b155529fc1a1dab7f9bde42043e5b302b3 100644 (file)
@@ -51,7 +51,7 @@ protected:
        virtual bool isValid();
 
        ///
-       Qt2BC & bc();
+       Qt2BC & bcview();
 
        /// are we updating ?
        bool updating_;
index b9ec240e3ec90eb09be62b86e6ccb650bb5d44a5..0c3bdc875ee0f49bb0cfb1138535b0b6176f2620 100644 (file)
@@ -14,6 +14,7 @@
 
 #include "ToolbarDefaults.h"
 #include "debug.h"
+#include "gettext.h"
 #include "lyxfunc.h"
 #include "FuncStatus.h"
 #include "BufferView.h"
index 541014829d5b1bb7a2556ba738f0d74f874691ff..252fe1d293434c238a5330517da26551d43bde42 100644 (file)
@@ -1,3 +1,8 @@
+2003-03-09  Angus Leeming  <leeming@lyx.org>
+
+       * lots of files: changes associated with the clean-up of the
+       ButtonController.
+
 2003-03-09  Angus Leeming  <leeming@lyx.org>
 
        * Dialogs.C:
index f7e615356bc6faeac9a1fed4b2234dd930c2aec3..63fc41a07f396bd77977e0413f8073e554dd718f 100644 (file)
@@ -11,6 +11,7 @@
 #include <config.h>
 
 #include "Dialogs_impl.h"
+#include "ButtonController.h"
 
 
 void Dialogs::init_pimpl()
index 82767197b893cbd4d7ce41216ffb1b3b12daa75b..8991456a32e42f8f921871b5bccd28b18751e643 100644 (file)
 #include "ButtonController.h"
 
 
-typedef ButtonController<OkCancelPolicy, xformsBC>
-       OkCancelBC;
-
-typedef ButtonController<OkCancelReadOnlyPolicy, xformsBC>
-       OkCancelReadOnlyBC;
-
-typedef ButtonController<OkApplyCancelReadOnlyPolicy, xformsBC>
-       OkApplyCancelReadOnlyBC;
-
-typedef ButtonController<NoRepeatedApplyReadOnlyPolicy, xformsBC>
-       NoRepeatedApplyReadOnlyBC;
-
-
 namespace {
 
 char const * const dialognames[] = { "about", "bibitem", "bibtex", "citation",
@@ -127,89 +114,90 @@ Dialog * Dialogs::build(string const & name)
                return 0;
 
        Dialog * dialog = new Dialog(lyxview_, name);
+       dialog->bc().view(new xformsBC(dialog->bc()));
 
        if (name == "about") {
                dialog->setController(new ControlAboutlyx(*dialog));
                dialog->setView(new FormAboutlyx(*dialog));
-               dialog->setButtonController(new OkCancelBC);
+               dialog->bc().bp(new OkCancelPolicy);
        } else if (name == "bibitem") {
                dialog->setController(new ControlCommand(*dialog, name));
                dialog->setView(new FormBibitem(*dialog));
-               dialog->setButtonController(new OkCancelReadOnlyBC);
+               dialog->bc().bp(new OkCancelReadOnlyPolicy);
        } else if (name == "bibtex") {
                dialog->setController(new ControlBibtex(*dialog));
                dialog->setView(new FormBibtex(*dialog));
-               dialog->setButtonController(new NoRepeatedApplyReadOnlyBC);
+               dialog->bc().bp(new NoRepeatedApplyReadOnlyPolicy);
        } else if (name == "changes") {
                dialog->setController(new ControlChanges(*dialog));
                dialog->setView(new FormChanges(*dialog));
-               dialog->setButtonController(new NoRepeatedApplyReadOnlyBC);
+               dialog->bc().bp(new NoRepeatedApplyReadOnlyPolicy);
        } else if (name == "citation") {
                dialog->setController(new ControlCitation(*dialog));
                dialog->setView(new FormCitation(*dialog));
-               dialog->setButtonController(new NoRepeatedApplyReadOnlyBC);
+               dialog->bc().bp(new NoRepeatedApplyReadOnlyPolicy);
        } else if (name == "error") {
                dialog->setController(new ControlError(*dialog));
                dialog->setView(new FormError(*dialog));
-               dialog->setButtonController(new OkCancelBC);
+               dialog->bc().bp(new OkCancelPolicy);
        } else if (name == "ert") {
                dialog->setController(new ControlERT(*dialog));
                dialog->setView(new FormERT(*dialog));
-               dialog->setButtonController(new NoRepeatedApplyReadOnlyBC);
+               dialog->bc().bp(new NoRepeatedApplyReadOnlyPolicy);
        } else if (name == "external") {
                dialog->setController(new ControlExternal(*dialog));
                dialog->setView(new FormExternal(*dialog));
-               dialog->setButtonController(new OkApplyCancelReadOnlyBC);
+               dialog->bc().bp(new OkApplyCancelReadOnlyPolicy);
        } else if (name == "float") {
                dialog->setController(new ControlFloat(*dialog));
                dialog->setView(new FormFloat(*dialog));
-               dialog->setButtonController(new NoRepeatedApplyReadOnlyBC);
+               dialog->bc().bp(new NoRepeatedApplyReadOnlyPolicy);
        } else if (name == "graphics") {
                dialog->setController(new ControlGraphics(*dialog));
                dialog->setView(new FormGraphics(*dialog));
-               dialog->setButtonController(new NoRepeatedApplyReadOnlyBC);
+               dialog->bc().bp(new NoRepeatedApplyReadOnlyPolicy);
        } else if (name == "include") {
                dialog->setController(new ControlInclude(*dialog));
                dialog->setView(new FormInclude(*dialog));
-               dialog->setButtonController(new OkApplyCancelReadOnlyBC);
+               dialog->bc().bp(new OkApplyCancelReadOnlyPolicy);
        } else if (name == "index") {
                dialog->setController(new ControlCommand(*dialog, name));
                dialog->setView(new FormText(*dialog,
                                             _("Index"), _("Keyword:|#K")));
-               dialog->setButtonController(new NoRepeatedApplyReadOnlyBC);
+               dialog->bc().bp(new NoRepeatedApplyReadOnlyPolicy);
        } else if (name == "label") {
                dialog->setController(new ControlCommand(*dialog, name));
                dialog->setView(new FormText(*dialog,
                                             _("Label"), _("Label:|#L")));
-               dialog->setButtonController(new NoRepeatedApplyReadOnlyBC);
+               dialog->bc().bp(new NoRepeatedApplyReadOnlyPolicy);
        } else if (name == "minipage") {
                dialog->setController(new ControlMinipage(*dialog));
                dialog->setView(new FormMinipage(*dialog));
-               dialog->setButtonController(new NoRepeatedApplyReadOnlyBC);
+               dialog->bc().bp(new NoRepeatedApplyReadOnlyPolicy);
        } else if (name == "ref") {
                dialog->setController(new ControlRef(*dialog));
                dialog->setView(new FormRef(*dialog));
-               dialog->setButtonController(new NoRepeatedApplyReadOnlyBC);
+               dialog->bc().bp(new NoRepeatedApplyReadOnlyPolicy);
        } else if (name == "tabular") {
                dialog->setController(new ControlTabular(*dialog));
                dialog->setView(new FormTabular(*dialog));
-               dialog->setButtonController(new NoRepeatedApplyReadOnlyBC);
+               dialog->bc().bp(new NoRepeatedApplyReadOnlyPolicy);
        } else if (name == "tabularcreate") {
                dialog->setController(new ControlTabularCreate(*dialog));
                dialog->setView(new FormTabularCreate(*dialog));
-               dialog->setButtonController(new OkApplyCancelReadOnlyBC);
+               dialog->bc().bp(new OkApplyCancelReadOnlyPolicy);
        } else if (name == "toc") {
                dialog->setController(new ControlToc(*dialog));
                dialog->setView(new FormToc(*dialog));
-               dialog->setButtonController(new OkCancelBC);
+               dialog->bc().bp(new OkCancelPolicy);
        } else if (name == "url") {
                dialog->setController(new ControlCommand(*dialog, name));
                dialog->setView(new FormUrl(*dialog));
-               dialog->setButtonController(new NoRepeatedApplyReadOnlyBC);
+               dialog->bc().bp(new NoRepeatedApplyReadOnlyPolicy);
        } else if (name == "wrap") {
                dialog->setController(new ControlWrap(*dialog));
                dialog->setView(new FormWrap(*dialog));
-               dialog->setButtonController(new NoRepeatedApplyReadOnlyBC);
+               dialog->bc().bp(new NoRepeatedApplyReadOnlyPolicy);
        }
 
        return dialog;
index 947de9bd419000b1da0211a495f71569d6773dac..4b6e6227c9437b2447298ce4b7d72031d30eb084 100644 (file)
@@ -75,5 +75,5 @@ void FormAboutlyx::build()
        setPrehandler(dialog_->tabfolder);
 
        // Manage the cancel/close button
-       bc().setCancel(dialog_->button_close);
+       bcview().setCancel(dialog_->button_close);
 }
index 27b2522f37ef1cf79cbe6ca425aaeb6a6a6aa771..d0aad6c6de79ea6f2eef52685cd709b056a6fc75 100644 (file)
@@ -15,6 +15,7 @@
 
 #include "ControlButtons.h"
 #include "xformsBC.h"
+#include "ButtonController.h"
 #include "xforms_resize.h"
 #include "Tooltips.h"
 #include "xforms_helpers.h" // formatted
@@ -81,10 +82,9 @@ void FormBase::redraw()
 }
 
 
-xformsBC & FormBase::bc()
+xformsBC & FormBase::bcview()
 {
-       return static_cast<xformsBC &>(getController().bc());
-       // return dynamic_cast<GUIbc &>(controller_ptr_->bc());
+       return static_cast<xformsBC &>(bc().view());
 }
 
 
index ed8257dd861e441bf6822e85a8005f52ca1c98f5..bf5b9d4a714e73fe7f177ff2c2fefb680c7775f3 100644 (file)
@@ -86,7 +86,7 @@ protected:
        void clearMessage();
 
        ///
-       xformsBC & bc();
+       xformsBC & bcview();
 
 private:
        /// Pointer to the actual instantiation of xform's form
index cff49ed92afa3b8728516945c373f741cf32e7a3..51bc8ffa8356d12d3e9355ffea53856fdd8123db 100644 (file)
@@ -38,11 +38,11 @@ void FormBibitem::build()
        setPrehandler(dialog_->input_label);
 
        // Manage the ok, apply, restore and cancel/close buttons
-       bc().setOK(dialog_->button_ok);
-       bc().setCancel(dialog_->button_close);
+       bcview().setOK(dialog_->button_ok);
+       bcview().setCancel(dialog_->button_close);
 
-       bc().addReadOnly(dialog_->input_key);
-       bc().addReadOnly(dialog_->input_label);
+       bcview().addReadOnly(dialog_->input_key);
+       bcview().addReadOnly(dialog_->input_label);
 
        // set up the tooltips
        string str = _("Key used within LyX document.");
index b69409217b11b457240cca7dc29826d949f93c69..57e0c76113ca67c0919c591a42a1a6ebcd7ea967 100644 (file)
@@ -44,18 +44,18 @@ void FormBibtex::build()
        dialog_.reset(build_bibtex(this));
 
        // Manage the ok, apply, restore and cancel/close buttons
-       bc().setOK(dialog_->button_ok);
-       bc().setApply(dialog_->button_apply);
-       bc().setCancel(dialog_->button_close);
-       bc().setRestore(dialog_->button_restore);
+       bcview().setOK(dialog_->button_ok);
+       bcview().setApply(dialog_->button_apply);
+       bcview().setCancel(dialog_->button_close);
+       bcview().setRestore(dialog_->button_restore);
 
        // disable for read-only documents
-       bc().addReadOnly(dialog_->input_database);
-       bc().addReadOnly(dialog_->button_database_browse);
-       bc().addReadOnly(dialog_->button_style_browse);
-       bc().addReadOnly(dialog_->button_rescan);
-       bc().addReadOnly(dialog_->input_style);
-       bc().addReadOnly(dialog_->check_bibtotoc);
+       bcview().addReadOnly(dialog_->input_database);
+       bcview().addReadOnly(dialog_->button_database_browse);
+       bcview().addReadOnly(dialog_->button_style_browse);
+       bcview().addReadOnly(dialog_->button_rescan);
+       bcview().addReadOnly(dialog_->input_style);
+       bcview().addReadOnly(dialog_->check_bibtotoc);
 
        // trigger an input event for cut&paste with middle mouse button.
        setPrehandler(dialog_->input_database);
index 2c8f445b75e7de1acc3aa908a819c58cf7e277f5..19b670b2ea1c1007a385e9209af5551ba79dfce8 100644 (file)
@@ -25,5 +25,5 @@ void FormBrowser::build()
        dialog_.reset(build_browser(this));
 
        // Manage the close button
-       bc().setCancel(dialog_->button_close);
+       bcview().setCancel(dialog_->button_close);
 }
index bb2d592bf26e9638d5a6980612a7a69f715bd02e..f6ef563d7f54361b09a0d41be3f4c310eb46639f 100644 (file)
@@ -28,9 +28,9 @@ void FormChanges::build()
 {
        dialog_.reset(build_changes(this));
 
-       bc().setCancel(dialog_->button_close);
-       bc().addReadOnly(dialog_->button_accept);
-       bc().addReadOnly(dialog_->button_reject);
+       bcview().setCancel(dialog_->button_close);
+       bcview().addReadOnly(dialog_->button_accept);
+       bcview().addReadOnly(dialog_->button_reject);
 }
 
 
index ad5099c544af7b4d8677389ea9963646d42d4247..2765515d319df4036d35e758a157466dbbc1b634 100644 (file)
@@ -15,6 +15,7 @@
 #include <config.h>
 
 #include "xformsBC.h"
+#include "ButtonController.h"
 #include "ControlCharacter.h"
 #include "FormCharacter.h"
 #include "forms/form_character.h"
@@ -112,9 +113,9 @@ void FormCharacter::build()
        combo_language2_->select(1);
 
        // Manage the ok, apply and cancel/close buttons
-       bc().setApply(dialog_->button_apply);
-       bc().setCancel(dialog_->button_close);
-       bc().addReadOnly(dialog_->check_toggle_all);
+       bcview().setApply(dialog_->button_apply);
+       bcview().setCancel(dialog_->button_close);
+       bcview().addReadOnly(dialog_->check_toggle_all);
 }
 
 
index 14604da58b8da4ca603ea53c990ee4f8ef41933d..6897380c652c1f3a100a65d5ec5242b3d11525c0 100644 (file)
@@ -134,21 +134,21 @@ void FormCitation::build()
        dialog_.reset(build_citation(this));
 
        // Manage the ok, apply, restore and cancel/close buttons
-       bc().setOK(dialog_->button_ok);
-       bc().setApply(dialog_->button_apply);
-       bc().setCancel(dialog_->button_close);
-       bc().setRestore(dialog_->button_restore);
+       bcview().setOK(dialog_->button_ok);
+       bcview().setApply(dialog_->button_apply);
+       bcview().setCancel(dialog_->button_close);
+       bcview().setRestore(dialog_->button_restore);
 
        // disable for read-only documents
-       bc().addReadOnly(dialog_->button_add);
-       bc().addReadOnly(dialog_->button_del);
-       bc().addReadOnly(dialog_->button_up);
-       bc().addReadOnly(dialog_->button_down);
-       bc().addReadOnly(dialog_->choice_style);
-       bc().addReadOnly(dialog_->input_before);
-       bc().addReadOnly(dialog_->input_after);
-       bc().addReadOnly(dialog_->check_full_author_list);
-       bc().addReadOnly(dialog_->check_force_uppercase);
+       bcview().addReadOnly(dialog_->button_add);
+       bcview().addReadOnly(dialog_->button_del);
+       bcview().addReadOnly(dialog_->button_up);
+       bcview().addReadOnly(dialog_->button_down);
+       bcview().addReadOnly(dialog_->choice_style);
+       bcview().addReadOnly(dialog_->input_before);
+       bcview().addReadOnly(dialog_->input_after);
+       bcview().addReadOnly(dialog_->check_full_author_list);
+       bcview().addReadOnly(dialog_->check_force_uppercase);
 
        // trigger an input event for cut&paste with middle mouse button.
        setPrehandler(dialog_->input_search);
index 799663348574b509999becb83fa29d3ff53ce248..575f35af0270ee92714c974161bfe7c1f1493e95 100644 (file)
@@ -15,6 +15,7 @@
 
 #include "Dialog.h"
 #include "xformsBC.h"
+#include "ButtonController.h"
 #include "xforms_resize.h"
 #include "Tooltips.h"
 #include "xforms_helpers.h" // formatted
@@ -83,9 +84,9 @@ void FormDialogView::redraw()
 }
 
 
-xformsBC & FormDialogView::bc()
+xformsBC & FormDialogView::bcview()
 {
-       return static_cast<xformsBC &>(dialog().bc());
+       return static_cast<xformsBC &>(dialog().bc().view());
 }
 
 
index c76eed0c0fc40cb1705481de974ffd112f54b6ad..7a34894d55aa6c6c0c2de720b59424d4b847a5d7 100644 (file)
@@ -85,7 +85,7 @@ protected:
        void clearMessage();
 
        ///
-       xformsBC & bc();
+       xformsBC & bcview();
 
 private:
        /// Pointer to the actual instantiation of xform's form
index 95e8d9b6176d65fde16ab6c55468afd7cf8b191a..83db26f279e9dc60edfc1c3bfabe4a90c8568140 100644 (file)
@@ -16,6 +16,7 @@
 #include "FormDocument.h"
 #include "forms/form_document.h"
 #include "xformsBC.h"
+#include "ButtonController.h"
 
 #include "bmtable.h"
 #include "checkedwidgets.h"
@@ -81,32 +82,32 @@ void FormDocument::build()
        setMessageWidget(dialog_->text_warning);
 
        // Manage the restore, ok, apply, restore and cancel/close buttons
-       bc().setOK(dialog_->button_ok);
-       bc().setApply(dialog_->button_apply);
-       bc().setCancel(dialog_->button_close);
-       bc().setRestore(dialog_->button_restore);
+       bcview().setOK(dialog_->button_ok);
+       bcview().setApply(dialog_->button_apply);
+       bcview().setCancel(dialog_->button_close);
+       bcview().setRestore(dialog_->button_restore);
 
        // the document class form
        class_.reset(build_document_class(this));
 
        // disable for read-only documents
-       bc().addReadOnly(class_->radio_doc_indent);
-       bc().addReadOnly(class_->radio_doc_skip);
-       bc().addReadOnly(class_->choice_doc_pagestyle);
-       bc().addReadOnly(class_->choice_doc_fonts);
-       bc().addReadOnly(class_->choice_doc_fontsize);
-       bc().addReadOnly(class_->radio_doc_sides_one);
-       bc().addReadOnly(class_->radio_doc_sides_two);
-       bc().addReadOnly(class_->radio_doc_columns_one);
-       bc().addReadOnly(class_->radio_doc_columns_two);
-       bc().addReadOnly(class_->input_doc_extra);
-       bc().addReadOnly(class_->input_doc_skip);
-       bc().addReadOnly(class_->choice_doc_skip);
-       bc().addReadOnly(class_->choice_doc_spacing);
-       bc().addReadOnly(class_->input_doc_spacing);
+       bcview().addReadOnly(class_->radio_doc_indent);
+       bcview().addReadOnly(class_->radio_doc_skip);
+       bcview().addReadOnly(class_->choice_doc_pagestyle);
+       bcview().addReadOnly(class_->choice_doc_fonts);
+       bcview().addReadOnly(class_->choice_doc_fontsize);
+       bcview().addReadOnly(class_->radio_doc_sides_one);
+       bcview().addReadOnly(class_->radio_doc_sides_two);
+       bcview().addReadOnly(class_->radio_doc_columns_one);
+       bcview().addReadOnly(class_->radio_doc_columns_two);
+       bcview().addReadOnly(class_->input_doc_extra);
+       bcview().addReadOnly(class_->input_doc_skip);
+       bcview().addReadOnly(class_->choice_doc_skip);
+       bcview().addReadOnly(class_->choice_doc_spacing);
+       bcview().addReadOnly(class_->input_doc_spacing);
 
        // check validity of "length + unit" input
-       addCheckedGlueLength(bc(), class_->input_doc_skip,
+       addCheckedGlueLength(bcview(), class_->input_doc_skip,
                             class_->choice_doc_skip);
 
        // trigger an input event for cut&paste with middle mouse button.
@@ -164,38 +165,38 @@ void FormDocument::build()
                            fl_unsigned_float_filter);
 
        // disable for read-only documents
-       bc().addReadOnly(dialog_->button_save_defaults);
-       bc().addReadOnly(dialog_->button_reset_defaults);
+       bcview().addReadOnly(dialog_->button_save_defaults);
+       bcview().addReadOnly(dialog_->button_reset_defaults);
 
        // the document paper form
        paper_.reset(build_document_paper(this));
 
        // disable for read-only documents
-       bc().addReadOnly(paper_->choice_paperpackage);
-       bc().addReadOnly(paper_->radio_portrait);
-       bc().addReadOnly(paper_->radio_landscape);
-       bc().addReadOnly(paper_->choice_papersize);
-       bc().addReadOnly(paper_->check_use_geometry);
-       bc().addReadOnly(paper_->input_custom_width);
-       bc().addReadOnly(paper_->input_custom_height);
-       bc().addReadOnly(paper_->input_top_margin);
-       bc().addReadOnly(paper_->input_bottom_margin);
-       bc().addReadOnly(paper_->input_inner_margin);
-       bc().addReadOnly(paper_->input_outer_margin);
-       bc().addReadOnly(paper_->input_head_height);
-       bc().addReadOnly(paper_->input_head_sep);
-       bc().addReadOnly(paper_->input_foot_skip);
+       bcview().addReadOnly(paper_->choice_paperpackage);
+       bcview().addReadOnly(paper_->radio_portrait);
+       bcview().addReadOnly(paper_->radio_landscape);
+       bcview().addReadOnly(paper_->choice_papersize);
+       bcview().addReadOnly(paper_->check_use_geometry);
+       bcview().addReadOnly(paper_->input_custom_width);
+       bcview().addReadOnly(paper_->input_custom_height);
+       bcview().addReadOnly(paper_->input_top_margin);
+       bcview().addReadOnly(paper_->input_bottom_margin);
+       bcview().addReadOnly(paper_->input_inner_margin);
+       bcview().addReadOnly(paper_->input_outer_margin);
+       bcview().addReadOnly(paper_->input_head_height);
+       bcview().addReadOnly(paper_->input_head_sep);
+       bcview().addReadOnly(paper_->input_foot_skip);
 
        // check validity of "length + unit" input
-       addCheckedGlueLength(bc(), paper_->input_custom_width);
-       addCheckedGlueLength(bc(), paper_->input_custom_height);
-       addCheckedGlueLength(bc(), paper_->input_top_margin);
-       addCheckedGlueLength(bc(), paper_->input_bottom_margin);
-       addCheckedGlueLength(bc(), paper_->input_inner_margin);
-       addCheckedGlueLength(bc(), paper_->input_outer_margin);
-       addCheckedGlueLength(bc(), paper_->input_head_height);
-       addCheckedGlueLength(bc(), paper_->input_head_sep);
-       addCheckedGlueLength(bc(), paper_->input_foot_skip);
+       addCheckedGlueLength(bcview(), paper_->input_custom_width);
+       addCheckedGlueLength(bcview(), paper_->input_custom_height);
+       addCheckedGlueLength(bcview(), paper_->input_top_margin);
+       addCheckedGlueLength(bcview(), paper_->input_bottom_margin);
+       addCheckedGlueLength(bcview(), paper_->input_inner_margin);
+       addCheckedGlueLength(bcview(), paper_->input_outer_margin);
+       addCheckedGlueLength(bcview(), paper_->input_head_height);
+       addCheckedGlueLength(bcview(), paper_->input_head_sep);
+       addCheckedGlueLength(bcview(), paper_->input_foot_skip);
 
        // trigger an input event for cut&paste with middle mouse button.
        setPrehandler(paper_->input_custom_width);
@@ -241,10 +242,10 @@ void FormDocument::build()
        language_.reset(build_document_language(this));
 
        // disable for read-only documents
-       bc().addReadOnly(language_->choice_inputenc);
-       bc().addReadOnly(language_->choice_quotes_language);
-       bc().addReadOnly(language_->radio_single);
-       bc().addReadOnly(language_->radio_double);
+       bcview().addReadOnly(language_->choice_inputenc);
+       bcview().addReadOnly(language_->choice_quotes_language);
+       bcview().addReadOnly(language_->radio_single);
+       bcview().addReadOnly(language_->radio_double);
 
        fl_addto_choice(language_->choice_inputenc,
                        "default|auto|latin1|latin2|latin3|latin4|latin5|latin9"
@@ -279,13 +280,13 @@ void FormDocument::build()
        options_.reset(build_document_options(this));
 
        // disable for read-only documents
-       bc().addReadOnly(options_->counter_secnumdepth);
-       bc().addReadOnly(options_->counter_tocdepth);
-       bc().addReadOnly(options_->choice_ams_math);
-       bc().addReadOnly(options_->check_use_natbib);
-       bc().addReadOnly(options_->choice_citation_format);
-       bc().addReadOnly(options_->input_float_placement);
-       bc().addReadOnly(options_->choice_postscript_driver);
+       bcview().addReadOnly(options_->counter_secnumdepth);
+       bcview().addReadOnly(options_->counter_tocdepth);
+       bcview().addReadOnly(options_->choice_ams_math);
+       bcview().addReadOnly(options_->check_use_natbib);
+       bcview().addReadOnly(options_->choice_citation_format);
+       bcview().addReadOnly(options_->input_float_placement);
+       bcview().addReadOnly(options_->choice_postscript_driver);
 
        // trigger an input event for cut&paste with middle mouse button.
        setPrehandler(options_->input_float_placement);
@@ -306,19 +307,19 @@ void FormDocument::build()
        bullets_.reset(build_document_bullet(this));
 
        // disable for read-only documents
-       bc().addReadOnly(bullets_->radio_bullet_depth_1);
-       bc().addReadOnly(bullets_->radio_bullet_depth_2);
-       bc().addReadOnly(bullets_->radio_bullet_depth_3);
-       bc().addReadOnly(bullets_->radio_bullet_depth_4);
-       bc().addReadOnly(bullets_->radio_bullet_panel_standard);
-       bc().addReadOnly(bullets_->radio_bullet_panel_maths);
-       bc().addReadOnly(bullets_->radio_bullet_panel_ding1);
-       bc().addReadOnly(bullets_->radio_bullet_panel_ding2);
-       bc().addReadOnly(bullets_->radio_bullet_panel_ding3);
-       bc().addReadOnly(bullets_->radio_bullet_panel_ding4);
-       bc().addReadOnly(bullets_->bmtable_bullet_panel);
-       bc().addReadOnly(bullets_->choice_bullet_size);
-       bc().addReadOnly(bullets_->input_bullet_latex);
+       bcview().addReadOnly(bullets_->radio_bullet_depth_1);
+       bcview().addReadOnly(bullets_->radio_bullet_depth_2);
+       bcview().addReadOnly(bullets_->radio_bullet_depth_3);
+       bcview().addReadOnly(bullets_->radio_bullet_depth_4);
+       bcview().addReadOnly(bullets_->radio_bullet_panel_standard);
+       bcview().addReadOnly(bullets_->radio_bullet_panel_maths);
+       bcview().addReadOnly(bullets_->radio_bullet_panel_ding1);
+       bcview().addReadOnly(bullets_->radio_bullet_panel_ding2);
+       bcview().addReadOnly(bullets_->radio_bullet_panel_ding3);
+       bcview().addReadOnly(bullets_->radio_bullet_panel_ding4);
+       bcview().addReadOnly(bullets_->bmtable_bullet_panel);
+       bcview().addReadOnly(bullets_->choice_bullet_size);
+       bcview().addReadOnly(bullets_->input_bullet_latex);
 
        // trigger an input event for cut&paste with middle mouse button.
        setPrehandler(bullets_->input_bullet_latex);
index 3dd4c53097dcf6c1c8233a484a6001326cfb1e34..d91e530c158d4041f16fb82c97a1c160170be5e1 100644 (file)
@@ -32,13 +32,13 @@ void FormERT::build()
        dialog_.reset(build_ert(this));
 
        // Manage the ok, apply and cancel/close buttons
-       bc().setOK(dialog_->button_ok);
-       bc().setApply(dialog_->button_apply);
-       bc().setCancel(dialog_->button_close);
+       bcview().setOK(dialog_->button_ok);
+       bcview().setApply(dialog_->button_apply);
+       bcview().setCancel(dialog_->button_close);
 
-       bc().addReadOnly(dialog_->radio_open);
-       bc().addReadOnly(dialog_->radio_collapsed);
-       bc().addReadOnly(dialog_->radio_inlined);
+       bcview().addReadOnly(dialog_->radio_open);
+       bcview().addReadOnly(dialog_->radio_collapsed);
+       bcview().addReadOnly(dialog_->radio_inlined);
 }
 
 
index 300f285a8cf4be2d6380b45f40a20d02ca6d274d..a99f7cc9488f499bbb588d2802e737650c1f6d8a 100644 (file)
@@ -30,7 +30,7 @@ void FormError::build()
        dialog_.reset(build_error(this));
 
        // Manage the cancel/close button
-       bc().setCancel(dialog_->button_close);
+       bcview().setCancel(dialog_->button_close);
 }
 
 
index 0b8d63735fddccf53f6e11f83deac97f6774f2ba..a74505b0bf6afc7558ce70ab23efdafc285d1961 100644 (file)
@@ -59,13 +59,13 @@ void FormExternal::build()
        setPrehandler(dialog_->input_filename);
        setPrehandler(dialog_->input_parameters);
 
-       bc().setOK(dialog_->button_ok);
-       bc().setApply(dialog_->button_apply);
-       bc().setCancel(dialog_->button_close);
+       bcview().setOK(dialog_->button_ok);
+       bcview().setApply(dialog_->button_apply);
+       bcview().setCancel(dialog_->button_close);
 
-       bc().addReadOnly(dialog_->input_filename);
-       bc().addReadOnly(dialog_->button_filenamebrowse);
-       bc().addReadOnly(dialog_->input_parameters);
+       bcview().addReadOnly(dialog_->input_filename);
+       bcview().addReadOnly(dialog_->button_filenamebrowse);
+       bcview().addReadOnly(dialog_->input_parameters);
 }
 
 
index 8507c1d28b9c72a2ec1e75407686591c7d341f14..ef05398c05379fd149af631deb5546ded588fb0d 100644 (file)
@@ -46,21 +46,21 @@ void FormFloat::build()
        dialog_.reset(build_float(this));
 
        // Manage the ok, apply and cancel/close buttons
-       bc().setOK(dialog_->button_ok);
-       bc().setApply(dialog_->button_apply);
-       bc().setCancel(dialog_->button_close);
-       bc().setRestore(dialog_->button_restore);
+       bcview().setOK(dialog_->button_ok);
+       bcview().setApply(dialog_->button_apply);
+       bcview().setCancel(dialog_->button_close);
+       bcview().setRestore(dialog_->button_restore);
 
        // disable for read-only documents
-       bc().addReadOnly(dialog_->radio_default);
-       bc().addReadOnly(dialog_->radio_here_definitely);
-       bc().addReadOnly(dialog_->radio_alternatives);
-       bc().addReadOnly(dialog_->check_top);
-       bc().addReadOnly(dialog_->check_bottom);
-       bc().addReadOnly(dialog_->check_page);
-       bc().addReadOnly(dialog_->check_here);
-       bc().addReadOnly(dialog_->check_force);
-       bc().addReadOnly(dialog_->check_wide);
+       bcview().addReadOnly(dialog_->radio_default);
+       bcview().addReadOnly(dialog_->radio_here_definitely);
+       bcview().addReadOnly(dialog_->radio_alternatives);
+       bcview().addReadOnly(dialog_->check_top);
+       bcview().addReadOnly(dialog_->check_bottom);
+       bcview().addReadOnly(dialog_->check_page);
+       bcview().addReadOnly(dialog_->check_here);
+       bcview().addReadOnly(dialog_->check_force);
+       bcview().addReadOnly(dialog_->check_wide);
 
        placement_.init(dialog_->radio_default,         DOCUMENT_DEFAULTS);
        placement_.init(dialog_->radio_here_definitely, HERE_DEFINITELY);
index de0e1942096eb0005ffc6432910515e5ead09ebc..960dc31a9f980d79397b38664a2ae85e331d9fb1 100644 (file)
@@ -13,6 +13,7 @@
 
 
 #include "xformsBC.h"
+#include "ButtonController.h"
 #include "FormForks.h"
 #include "ControlForks.h"
 #include "forms/form_forks.h"
@@ -45,9 +46,9 @@ void FormForks::build() {
        fl_clear_browser(dialog_->browser_kill);
 
        // Manage the ok, apply, restore and cancel/close buttons
-       bc().setOK(dialog_->button_ok);
-       bc().setApply(dialog_->button_apply);
-       bc().setCancel(dialog_->button_close);
+       bcview().setOK(dialog_->button_ok);
+       bcview().setApply(dialog_->button_apply);
+       bcview().setCancel(dialog_->button_close);
        bc().invalid();
 
        // Set up the tooltip mechanism
index f5a29a1c8904502a063dcec2fb88b75e79d857a7..6c4ba4b1e6268136fa2fd7ff224e6b0d8ec3e489 100644 (file)
@@ -79,23 +79,23 @@ void FormGraphics::build()
        dialog_.reset(build_graphics(this));
 
        // Manage the ok, apply, restore and cancel/close buttons
-       bc().setOK(dialog_->button_ok);
-       bc().setApply(dialog_->button_apply);
-       bc().setCancel(dialog_->button_close);
-       bc().setRestore(dialog_->button_restore);
+       bcview().setOK(dialog_->button_ok);
+       bcview().setApply(dialog_->button_apply);
+       bcview().setCancel(dialog_->button_close);
+       bcview().setRestore(dialog_->button_restore);
 
        // the file section
        file_.reset(build_graphics_file(this));
 
        // disable for read-only documents
-       bc().addReadOnly(file_->button_browse);
-       bc().addReadOnly(file_->check_aspectratio);
-       bc().addReadOnly(file_->check_draft);
-       bc().addReadOnly(file_->check_nounzip);
+       bcview().addReadOnly(file_->button_browse);
+       bcview().addReadOnly(file_->check_aspectratio);
+       bcview().addReadOnly(file_->check_draft);
+       bcview().addReadOnly(file_->check_nounzip);
 
        // check validity of "length + unit" input
-       addCheckedGlueLength(bc(), file_->input_width);
-       addCheckedGlueLength(bc(), file_->input_height);
+       addCheckedGlueLength(bcview(), file_->input_width);
+       addCheckedGlueLength(bcview(), file_->input_height);
 
        // trigger an input event for cut&paste with middle mouse button.
        setPrehandler(file_->input_filename);
@@ -166,11 +166,11 @@ void FormGraphics::build()
        bbox_.reset(build_graphics_bbox(this));
 
        // disable for read-only documents
-       bc().addReadOnly(bbox_->button_getBB);
-       bc().addReadOnly(bbox_->check_clip);
+       bcview().addReadOnly(bbox_->button_getBB);
+       bcview().addReadOnly(bbox_->check_clip);
 
        // check validity of "length + unit" input
-       addCheckedLyXLength(bc(), bbox_->input_bb_x1, bbox_->text_X);
+       addCheckedLyXLength(bcview(), bbox_->input_bb_x1, bbox_->text_X);
 
        // trigger an input event for cut&paste with middle mouse button.
        setPrehandler(bbox_->input_bb_x0);
@@ -217,10 +217,10 @@ void FormGraphics::build()
        extra_.reset(build_graphics_extra(this));
 
        // disable for read-only documents
-       bc().addReadOnly(extra_->input_rotate_angle);
-       bc().addReadOnly(extra_->choice_origin);
-       bc().addReadOnly(extra_->check_subcaption);
-       bc().addReadOnly(extra_->input_special);
+       bcview().addReadOnly(extra_->input_rotate_angle);
+       bcview().addReadOnly(extra_->choice_origin);
+       bcview().addReadOnly(extra_->check_subcaption);
+       bcview().addReadOnly(extra_->input_special);
 
        // trigger an input event for cut&paste with middle mouse button.
        setPrehandler(extra_->input_rotate_angle);
index 0ff8250415d4eaea911da98444bcce4126e3fb74..ba443738a50968040cc4185dc939baf95843a845 100644 (file)
@@ -38,8 +38,8 @@ void FormInclude::build()
        dialog_.reset(build_include(this));
 
        // Manage the ok and cancel buttons
-       bc().setOK(dialog_->button_ok);
-       bc().setCancel(dialog_->button_close);
+       bcview().setOK(dialog_->button_ok);
+       bcview().setCancel(dialog_->button_close);
 
        // trigger an input event for cut&paste with middle mouse button.
        setPrehandler(dialog_->input_filename);
@@ -47,10 +47,10 @@ void FormInclude::build()
        fl_set_input_return(dialog_->input_filename, FL_RETURN_CHANGED);
 
        // disable for read-only documents
-       bc().addReadOnly(dialog_->button_browse);
-       bc().addReadOnly(dialog_->radio_useinput);
-       bc().addReadOnly(dialog_->radio_useinclude);
-       bc().addReadOnly(dialog_->radio_verbatim);
+       bcview().addReadOnly(dialog_->button_browse);
+       bcview().addReadOnly(dialog_->radio_useinput);
+       bcview().addReadOnly(dialog_->radio_useinclude);
+       bcview().addReadOnly(dialog_->radio_verbatim);
 
        type_.init(dialog_->radio_useinput,   ControlInclude::INPUT);
        type_.init(dialog_->radio_useinclude, ControlInclude::INCLUDE);
index 798b6ba9b364dd818d9d9fe8fb2652f6d7196c4a..707dfb013fc312539223e0aabca6caffdc4bda33 100644 (file)
@@ -96,7 +96,7 @@ void FormMathsBitmap::build()
             it < bitmaps_.end(); ++it) {
                FL_OBJECT * obj = buildBitmap(*it);
 
-               bc().addReadOnly(obj);
+               bcview().addReadOnly(obj);
                y_close = max(y_close, obj->y + obj->h);
        }
        bitmaps_.clear();
@@ -116,7 +116,7 @@ void FormMathsBitmap::build()
        fdui->form->fdui = fdui;
 
        dialog_.reset(fdui);
-       bc().setCancel(dialog_->button_close);
+       bcview().setCancel(dialog_->button_close);
 }
 
 
index 347d456cd2a2829c1f503a4ecfc116e803f5447f..442711a3e7661cb5813b3abecb55d7e53998379c 100644 (file)
@@ -18,6 +18,7 @@
 #include "forms/form_maths_delim.h"
 #include "ControlMath.h"
 #include "xformsBC.h"
+#include "ButtonController.h"
 
 #include "bmtable.h"
 
@@ -70,15 +71,15 @@ void FormMathsDelim::build()
                            delim_width, delim_height, delim_bits);
        fl_set_bmtable_maxitems(dialog_->bmtable, 23);
 
-       bc().setOK(dialog_->button_ok);
-       bc().setApply(dialog_->button_apply);
-       bc().setCancel(dialog_->button_close);
+       bcview().setOK(dialog_->button_ok);
+       bcview().setApply(dialog_->button_apply);
+       bcview().setCancel(dialog_->button_close);
 
-       bc().addReadOnly(dialog_->bmtable);
-       bc().addReadOnly(dialog_->radio_right);
-       bc().addReadOnly(dialog_->radio_left);
-       bc().addReadOnly(dialog_->radio_both);
-       bc().addReadOnly(dialog_->button_pix);
+       bcview().addReadOnly(dialog_->bmtable);
+       bcview().addReadOnly(dialog_->radio_right);
+       bcview().addReadOnly(dialog_->radio_left);
+       bcview().addReadOnly(dialog_->radio_both);
+       bcview().addReadOnly(dialog_->button_pix);
 }
 
 
index 36d2feab5cb1ba2e8a841d3588ff546030112ab8..10541873a85b3e4564bc923c386e16a856f29412 100644 (file)
@@ -18,6 +18,7 @@
 #include "forms/form_maths_matrix.h"
 #include "ControlMath.h"
 #include "xformsBC.h"
+#include "ButtonController.h"
 
 #include "support/LAssert.h"
 #include "support/lyxalgo.h" // lyx::count
@@ -72,14 +73,14 @@ void FormMathsMatrix::build()
                            C_FormMathsMatrixAlignFilter);
        setPrehandler(dialog_->input_halign);
 
-       bc().setOK(dialog_->button_ok);
-       bc().setApply(dialog_->button_apply);
-       bc().setCancel(dialog_->button_close);
+       bcview().setOK(dialog_->button_ok);
+       bcview().setApply(dialog_->button_apply);
+       bcview().setCancel(dialog_->button_close);
 
-       bc().addReadOnly(dialog_->slider_rows);
-       bc().addReadOnly(dialog_->slider_columns);
-       bc().addReadOnly(dialog_->choice_valign);
-       bc().addReadOnly(dialog_->input_halign);
+       bcview().addReadOnly(dialog_->slider_rows);
+       bcview().addReadOnly(dialog_->slider_columns);
+       bcview().addReadOnly(dialog_->choice_valign);
+       bcview().addReadOnly(dialog_->input_halign);
 }
 
 
index 563ec3d98b5d997392b8d32d0ab816ce59e3998e..edc0f2d5554602d53319351493c076b4f8299de9 100644 (file)
@@ -75,10 +75,9 @@ FormMathsBitmap * FormMathsPanel::addDaughter(void * key,
        FormMathsBitmap * const view =
                new FormMathsBitmap(title, std::vector<string>(data, end));
 
-       typedef ButtonController<IgnorantPolicy, xformsBC> BC;
-       BC * const bc = new BC;
-
-       controller().addDaughter(key, view, bc);
+       controller().addDaughter(key, view,
+                                new xformsBC(controller().bc()),
+                                new IgnorantPolicy);
        return view;
 }
 
@@ -112,17 +111,22 @@ void FormMathsPanel::build()
        fl_set_pixmap_data(dialog_->button_equation,
                           const_cast<char**>(equation));
 
-       typedef ButtonController<IgnorantPolicy, xformsBC> BC_ignorant;
-       typedef ButtonController<OkApplyCancelReadOnlyPolicy, xformsBC> BC_ok;
-
        controller().addDaughter(dialog_->button_delim,
-                                new FormMathsDelim, new BC_ok);
+                                new FormMathsDelim,
+                                new xformsBC(controller().bc()),
+                                new OkApplyCancelReadOnlyPolicy);
        controller().addDaughter(dialog_->button_matrix,
-                                new FormMathsMatrix, new BC_ok);
+                                new FormMathsMatrix,
+                                new xformsBC(controller().bc()),
+                                new OkApplyCancelReadOnlyPolicy);
        controller().addDaughter(dialog_->button_space,
-                                new FormMathsSpace, new BC_ignorant);
+                                new FormMathsSpace,
+                                new xformsBC(controller().bc()),
+                                new IgnorantPolicy);
        controller().addDaughter(dialog_->button_style,
-                                new FormMathsStyle,  new BC_ignorant);
+                                new FormMathsStyle,
+                                new xformsBC(controller().bc()),
+                                new IgnorantPolicy);
 
        FormMathsBitmap * bitmap;
        bitmap = addDaughter(dialog_->button_deco,
index 4ccff26b4221fd744dda6d0b355cd0ddd5fc1d80..71b942bc72612cb7dab20829b5c9235173f565a4 100644 (file)
@@ -37,16 +37,16 @@ void FormMathsSpace::build()
 
        space_ = -1;
 
-       bc().setCancel(dialog_->button_close);
-
-       bc().addReadOnly(dialog_->button_negative);
-       bc().addReadOnly(dialog_->button_negmedspace);
-       bc().addReadOnly(dialog_->button_negthickspace);
-       bc().addReadOnly(dialog_->button_thin);
-       bc().addReadOnly(dialog_->button_medium);
-       bc().addReadOnly(dialog_->button_thick);
-       bc().addReadOnly(dialog_->button_quadratin);
-       bc().addReadOnly(dialog_->button_twoquadratin);
+       bcview().setCancel(dialog_->button_close);
+
+       bcview().addReadOnly(dialog_->button_negative);
+       bcview().addReadOnly(dialog_->button_negmedspace);
+       bcview().addReadOnly(dialog_->button_negthickspace);
+       bcview().addReadOnly(dialog_->button_thin);
+       bcview().addReadOnly(dialog_->button_medium);
+       bcview().addReadOnly(dialog_->button_thick);
+       bcview().addReadOnly(dialog_->button_quadratin);
+       bcview().addReadOnly(dialog_->button_twoquadratin);
 }
 
 
index 1a6ca1b828a97be65b69b70c9b0151d7815ef347..5d880213296cfada159762bf5b4c4bb52836508c 100644 (file)
@@ -52,24 +52,24 @@ void FormMathsStyle::build()
        fl_set_bmtable_data(dialog_->bmtable_style1, 1, 1,
                            style1_width, style1_height, style1_bits);
        fl_set_bmtable_maxitems(dialog_->bmtable_style1, 1);
-       bc().addReadOnly(dialog_->bmtable_style1);
+       bcview().addReadOnly(dialog_->bmtable_style1);
 
        fl_set_bmtable_data(dialog_->bmtable_style2, 1, 3,
                            style2_width, style2_height, style2_bits);
        fl_set_bmtable_maxitems(dialog_->bmtable_style2, 3);
-       bc().addReadOnly(dialog_->bmtable_style2);
+       bcview().addReadOnly(dialog_->bmtable_style2);
 
        fl_set_bmtable_data(dialog_->bmtable_font1, 1, 5,
                            font1_width, font1_height, font1_bits);
        fl_set_bmtable_maxitems(dialog_->bmtable_font1, 5);
-       bc().addReadOnly(dialog_->bmtable_font1);
+       bcview().addReadOnly(dialog_->bmtable_font1);
 
        fl_set_bmtable_data(dialog_->bmtable_font2, 1, 3,
                            font2_width, font2_height, font2_bits);
        fl_set_bmtable_maxitems(dialog_->bmtable_font2, 3);
-       bc().addReadOnly(dialog_->bmtable_font2);
+       bcview().addReadOnly(dialog_->bmtable_font2);
 
-       bc().setCancel(dialog_->button_close);
+       bcview().setCancel(dialog_->button_close);
 }
 
 
index a9716d091ddcd49a6d57986193f3ab58dff1fad8..10d12e1204371b6b26b36ee7125240bdee029445 100644 (file)
@@ -42,16 +42,16 @@ void FormMinipage::build()
        fl_addto_choice(dialog_->choice_width_units, subst(choice, "%", "%%").c_str());
 
        // Manage the ok, apply and cancel/close buttons
-       bc().setOK(dialog_->button_ok);
-       bc().setApply(dialog_->button_apply);
-       bc().setCancel(dialog_->button_close);
-       bc().setRestore(dialog_->button_restore);
-
-       bc().addReadOnly(dialog_->input_width);
-       bc().addReadOnly(dialog_->choice_width_units);
-       bc().addReadOnly(dialog_->radio_top);
-       bc().addReadOnly(dialog_->radio_middle);
-       bc().addReadOnly(dialog_->radio_bottom);
+       bcview().setOK(dialog_->button_ok);
+       bcview().setApply(dialog_->button_apply);
+       bcview().setCancel(dialog_->button_close);
+       bcview().setRestore(dialog_->button_restore);
+
+       bcview().addReadOnly(dialog_->input_width);
+       bcview().addReadOnly(dialog_->choice_width_units);
+       bcview().addReadOnly(dialog_->radio_top);
+       bcview().addReadOnly(dialog_->radio_middle);
+       bcview().addReadOnly(dialog_->radio_bottom);
 }
 
 
index 4601b368541170f8ec8b70f44ed7e90a9f9eb28e..30530f7a1afa042ac108cf4d5c8f33231f0b7f0e 100644 (file)
@@ -74,35 +74,35 @@ void FormParagraph::build()
        dialog_.reset(build_paragraph(this));
 
        // Manage the ok, apply, restore and cancel/close buttons
-       bc().setOK(dialog_->button_ok);
-       bc().setApply(dialog_->button_apply);
-       bc().setCancel(dialog_->button_close);
-       bc().setRestore(dialog_->button_restore);
+       bcview().setOK(dialog_->button_ok);
+       bcview().setApply(dialog_->button_apply);
+       bcview().setCancel(dialog_->button_close);
+       bcview().setRestore(dialog_->button_restore);
 
        // disable for read-only documents
-       bc().addReadOnly(dialog_->check_line_above);
-       bc().addReadOnly(dialog_->check_pagebreak_above);
-       bc().addReadOnly(dialog_->choice_space_above);
-       bc().addReadOnly(dialog_->input_space_above);
-       bc().addReadOnly(dialog_->check_space_above);
+       bcview().addReadOnly(dialog_->check_line_above);
+       bcview().addReadOnly(dialog_->check_pagebreak_above);
+       bcview().addReadOnly(dialog_->choice_space_above);
+       bcview().addReadOnly(dialog_->input_space_above);
+       bcview().addReadOnly(dialog_->check_space_above);
 
-       bc().addReadOnly(dialog_->check_noindent);
-       bc().addReadOnly(dialog_->choice_linespacing);
-       bc().addReadOnly(dialog_->input_linespacing);
+       bcview().addReadOnly(dialog_->check_noindent);
+       bcview().addReadOnly(dialog_->choice_linespacing);
+       bcview().addReadOnly(dialog_->input_linespacing);
 
-       bc().addReadOnly(dialog_->check_line_below);
-       bc().addReadOnly(dialog_->check_pagebreak_below);
-       bc().addReadOnly(dialog_->choice_space_below);
-       bc().addReadOnly(dialog_->input_space_below);
-       bc().addReadOnly(dialog_->check_space_below);
+       bcview().addReadOnly(dialog_->check_line_below);
+       bcview().addReadOnly(dialog_->check_pagebreak_below);
+       bcview().addReadOnly(dialog_->choice_space_below);
+       bcview().addReadOnly(dialog_->input_space_below);
+       bcview().addReadOnly(dialog_->check_space_below);
 
-       bc().addReadOnly(dialog_->input_labelwidth);
+       bcview().addReadOnly(dialog_->input_labelwidth);
 
        // check validity of "length + unit" input
-       addCheckedGlueLength(bc(),
+       addCheckedGlueLength(bcview(),
                             dialog_->input_space_above,
                             dialog_->choice_space_above);
-       addCheckedGlueLength(bc(),
+       addCheckedGlueLength(bcview(),
                             dialog_->input_space_below,
                             dialog_->choice_space_below);
 
index 04e5b352b39da704f33b317f52b16ae6b8953f6b..a793b9eb700d14629721cdd926a490225d6c0521 100644 (file)
@@ -31,9 +31,9 @@ void FormPreamble::build()
        dialog_.reset(build_preamble(this));
 
        // Manage the ok, apply and cancel/close buttons
-       bc().setOK(dialog_->button_ok);
-       bc().setApply(dialog_->button_apply);
-       bc().setCancel(dialog_->button_close);
+       bcview().setOK(dialog_->button_ok);
+       bcview().setApply(dialog_->button_apply);
+       bcview().setCancel(dialog_->button_close);
 
        // trigger an input event for cut&paste with middle mouse button.
        setPrehandler(dialog_->input_preamble);
index 97f8e3da1d72b5e1b95949e8a90e64a4ba060efa..493ecace5eb84a9ae265dd364d1fd9202134cc8b 100644 (file)
@@ -15,6 +15,7 @@
 #include "FormPreferences.h"
 #include "forms/form_preferences.h"
 #include "xformsBC.h"
+#include "ButtonController.h"
 
 #include "combox.h"
 #include "Color.h"
@@ -163,10 +164,10 @@ void FormPreferences::build()
        dialog_.reset(build_preferences(this));
 
        // Manage the restore, save, apply and cancel/close buttons
-       bc().setOK(dialog_->button_ok);
-       bc().setApply(dialog_->button_apply);
-       bc().setCancel(dialog_->button_close);
-       bc().setRestore(dialog_->button_restore);
+       bcview().setOK(dialog_->button_ok);
+       bcview().setApply(dialog_->button_apply);
+       bcview().setCancel(dialog_->button_close);
+       bcview().setRestore(dialog_->button_restore);
 
        // Allow the base class to control messages
        setMessageWidget(dialog_->text_warning);
index 3e4b78b2f2c1b08b94dc0ed7811cebabbab77a81..a83db97f5a8a4da212a9f9cf55b567b6c013d8fc 100644 (file)
@@ -39,9 +39,9 @@ void FormPrint::build()
        dialog_.reset(build_print(this));
 
        // Manage the ok, apply and cancel/close buttons
-       bc().setOK(dialog_->button_ok);
-       bc().setApply(dialog_->button_apply);
-       bc().setCancel(dialog_->button_close);
+       bcview().setOK(dialog_->button_ok);
+       bcview().setApply(dialog_->button_apply);
+       bcview().setCancel(dialog_->button_close);
 
        // trigger an input event for cut&paste with middle mouse button.
        setPrehandler(dialog_->input_printer);
index 0e0180401a9d60f2e8269947fe453a89c7f64243..6cd04355a86e837f3d2fef9f048ba825e1ee9a37 100644 (file)
@@ -54,14 +54,14 @@ void FormRef::build()
        setPrehandler(dialog_->input_ref);
 
        // Manage the ok and cancel/close buttons
-       bc().setOK(dialog_->button_ok);
-       bc().setApply(dialog_->button_apply);
-       bc().setCancel(dialog_->button_close);
-       bc().setRestore(dialog_->button_restore);
-
-       bc().addReadOnly(dialog_->button_update);
-       bc().addReadOnly(dialog_->input_name);
-       bc().addReadOnly(dialog_->input_ref);
+       bcview().setOK(dialog_->button_ok);
+       bcview().setApply(dialog_->button_apply);
+       bcview().setCancel(dialog_->button_close);
+       bcview().setRestore(dialog_->button_restore);
+
+       bcview().addReadOnly(dialog_->button_update);
+       bcview().addReadOnly(dialog_->input_name);
+       bcview().addReadOnly(dialog_->input_ref);
 
        // set up the tooltips
        string str = _("Select a document for references.");
index 58323eb0fbaa3e7ba97ba9a29028cfb462ac5b50..cf4ebf303dab646cb57ba632485c339c17ac3d8f 100644 (file)
@@ -32,12 +32,12 @@ void FormSearch::build()
        dialog_.reset(build_search(this));
 
        // Manage the ok, apply and cancel/close buttons
-       bc().setCancel(dialog_->button_close);
+       bcview().setCancel(dialog_->button_close);
 
        // disable for read-only documents
-       bc().addReadOnly(dialog_->input_replace);
-       bc().addReadOnly(dialog_->button_replace);
-       bc().addReadOnly(dialog_->button_replaceall);
+       bcview().addReadOnly(dialog_->input_replace);
+       bcview().addReadOnly(dialog_->button_replace);
+       bcview().addReadOnly(dialog_->button_replaceall);
 
        // set up the tooltips
        string str = _("Enter the string you want to find.");
index 5316c9bcb786788b7d320808df532a3a31197e52..d2527031f02b2764b071c4767bf2f4f04f530a6c 100644 (file)
@@ -38,9 +38,9 @@ void FormSendto::build()
        setPrehandler(dialog_->input_command);
 
        // Manage the ok, apply, restore and cancel/close buttons
-       bc().setOK(dialog_->button_ok);
-       bc().setApply(dialog_->button_apply);
-       bc().setCancel(dialog_->button_close);
+       bcview().setOK(dialog_->button_ok);
+       bcview().setApply(dialog_->button_apply);
+       bcview().setCancel(dialog_->button_close);
 
        // Set up the tooltip mechanism
        string str = _("Export the buffer to this format before running the command below on it.");
index a9dcff8b4d7d5b66a36dae9fb2fec0717af6eea8..74924ce7cb1a7c4063e198fdcbf9a38986d92d4c 100644 (file)
@@ -37,10 +37,10 @@ void FormSpellchecker::build()
        dialog_.reset(build_spellchecker(this));
 
        // Manage the buttons
-       bc().setCancel(dialog_->button_close);
+       bcview().setCancel(dialog_->button_close);
 
        // disable for read-only documents
-       bc().addReadOnly(dialog_->button_replace);
+       bcview().addReadOnly(dialog_->button_replace);
 
        // trigger an input event for cut&paste with middle mouse button.
        setPrehandler(dialog_->input_replacement);
index 0cc61409c144ab87bf278e32f950832b5698572b..f241089ca378060797a11911c93cf53da377c6dd 100644 (file)
@@ -16,6 +16,7 @@
 
 #include "ControlTabular.h"
 #include "xformsBC.h"
+#include "ButtonController.h"
 #include "insets/insettabular.h"
 
 #include "FormTabular.h"
index 2607244e55fe0003eebf7e90ba91542b2fca2dfe..384aefd1f61d63f41b297c37bf97b61d32b0fcb3 100644 (file)
@@ -36,9 +36,9 @@ void FormTabularCreate::build()
        dialog_.reset(build_tabular_create(this));
 
        // Manage the ok, apply and cancel/close buttons
-       bc().setOK(dialog_->button_ok);
-       bc().setApply(dialog_->button_apply);
-       bc().setCancel(dialog_->button_close);
+       bcview().setOK(dialog_->button_ok);
+       bcview().setApply(dialog_->button_apply);
+       bcview().setCancel(dialog_->button_close);
 
        // set up the tooltips
        string str = _("Number of columns in the tabular.");
index 868b9e7611560d2cc3d55b96cacd3aa8d1ca741a..7b5f73671d497c8fbab8160b3ebe4477c5b3a3de 100644 (file)
@@ -11,6 +11,7 @@
 #include <config.h>
 
 #include "xformsBC.h"
+#include "ButtonController.h"
 #include "ControlCommand.h"
 #include "FormText.h"
 #include "forms/form_text.h"
@@ -38,12 +39,12 @@ void FormText::build()
        fl_set_button_shortcut(dialog_->input_text, scex(label_).c_str(), 1);
 
        // Manage the ok, apply, restore and cancel/close buttons
-       bc().setOK(dialog_->button_ok);
-       bc().setApply(dialog_->button_apply);
-       bc().setCancel(dialog_->button_close);
-       bc().setRestore(dialog_->button_restore);
+       bcview().setOK(dialog_->button_ok);
+       bcview().setApply(dialog_->button_apply);
+       bcview().setCancel(dialog_->button_close);
+       bcview().setRestore(dialog_->button_restore);
 
-       bc().addReadOnly(dialog_->input_text);
+       bcview().addReadOnly(dialog_->input_text);
 }
 
 
index 50d7aef75031f8f78112cc2414818523fc09d692..b7ec39b0763d0636470b087e6a1a0a5f6755b7fd 100644 (file)
@@ -50,8 +50,8 @@ void FormThesaurus::build()
        setPrehandler(dialog_->input_replace);
 
        // Manage the ok, apply and cancel/close buttons
-       bc().setCancel(dialog_->button_close);
-       bc().addReadOnly(dialog_->input_replace);
+       bcview().setCancel(dialog_->button_close);
+       bcview().addReadOnly(dialog_->input_replace);
 
        fl_set_input_return(dialog_->input_entry, FL_RETURN_END_CHANGED);
 }
index 75d9d0ed47884a6f1f095f00f9bc3cd111281a83..72059af8229ae55d56288f651a6a8a73109f20f8 100644 (file)
@@ -46,7 +46,7 @@ void FormToc::build()
        fl_addto_choice(dialog_->choice_toc_type, choice.c_str());
 
        // Manage the cancel/close button
-       bc().setCancel(dialog_->button_close);
+       bcview().setCancel(dialog_->button_close);
 }
 
 
index 49c098ab0da688d790e9af4371c83cc9277303e6..a58dbbf64278f77a3eb0f72177951c0f17c5e64f 100644 (file)
@@ -36,14 +36,14 @@ void FormUrl::build()
        setPrehandler(dialog_->input_url);
 
        // Manage the ok, apply, restore and cancel/close buttons
-       bc().setOK(dialog_->button_ok);
-       bc().setApply(dialog_->button_apply);
-       bc().setCancel(dialog_->button_close);
-       bc().setRestore(dialog_->button_restore);
-
-       bc().addReadOnly(dialog_->input_name);
-       bc().addReadOnly(dialog_->input_url);
-       bc().addReadOnly(dialog_->check_html);
+       bcview().setOK(dialog_->button_ok);
+       bcview().setApply(dialog_->button_apply);
+       bcview().setCancel(dialog_->button_close);
+       bcview().setRestore(dialog_->button_restore);
+
+       bcview().addReadOnly(dialog_->input_name);
+       bcview().addReadOnly(dialog_->input_url);
+       bcview().addReadOnly(dialog_->check_html);
 }
 
 
index 815e609940b380fb97c3948b69594c9e74c4b2b7..9368d132e343742aa5e1798c6bb07b7b28ca6997 100644 (file)
@@ -36,17 +36,17 @@ void FormWrap::build()
        dialog_.reset(build_wrap(this));
 
        // Manage the ok, apply and cancel/close buttons
-       bc().setOK(dialog_->button_ok);
-       bc().setApply(dialog_->button_apply);
-       bc().setCancel(dialog_->button_close);
-       bc().setRestore(dialog_->button_restore);
+       bcview().setOK(dialog_->button_ok);
+       bcview().setApply(dialog_->button_apply);
+       bcview().setCancel(dialog_->button_close);
+       bcview().setRestore(dialog_->button_restore);
 
        // disable for read-only documents
-       bc().addReadOnly(dialog_->input_width);
-       bc().addReadOnly(dialog_->choice_width_units);
+       bcview().addReadOnly(dialog_->input_width);
+       bcview().addReadOnly(dialog_->choice_width_units);
 
        // check validity of "length + unit" input
-       addCheckedGlueLength(bc(), dialog_->input_width);
+       addCheckedGlueLength(bcview(), dialog_->input_width);
 
        // trigger an input event for cut&paste with middle mouse button.
        setPrehandler(dialog_->input_width);
index 3e11352595debce05a7ed0f8e81696998101c800..a826c74f03d37c7f3f613164ee74803b1f374e4f 100644 (file)
 #include FORMS_H_LOCATION
 
 
-void addCheckedLyXLength(ButtonControllerBase & bc,
+void addCheckedLyXLength(BCView & bcview,
                         FL_OBJECT * input, FL_OBJECT * label)
 {
-       bc.addCheckedWidget(new CheckedLyXLength(input, label));
+       bcview.addCheckedWidget(new CheckedLyXLength(input, label));
 }
 
 
-void addCheckedGlueLength(ButtonControllerBase & bc,
+void addCheckedGlueLength(BCView & bcview,
                          FL_OBJECT * input, FL_OBJECT * label)
 {
-       bc.addCheckedWidget(new CheckedGlueLength(input, label));
+       bcview.addCheckedWidget(new CheckedGlueLength(input, label));
 }
 
 
index caacab0f79c89e7978ccfdd6f79cded301c9cda7..c3515c2c5bb69dbb24b1932aa09ef3c2b9ff3b3c 100644 (file)
 #define CHECKEDWIDGETS_H
 
 
-#include "ButtonControllerBase.h"
+#include "BCView.h"
 #include "forms_fwd.h"
 
-void addCheckedLyXLength(ButtonControllerBase & bc,
+void addCheckedLyXLength(BCView & bcview,
                         FL_OBJECT * input, FL_OBJECT * label = 0);
 
-void addCheckedGlueLength(ButtonControllerBase & bc,
+void addCheckedGlueLength(BCView & bcview,
                          FL_OBJECT * input, FL_OBJECT * label = 0);
 
 class CheckedLyXLength : public CheckedWidget {
index d2592de9e11bfe36ade8802bfb70592ef69c5f6f..cb27c64c23c67596a44e0f815f8b70f9c01f22ba 100644 (file)
@@ -18,8 +18,9 @@
 #include FORMS_H_LOCATION
 
 
-xformsBC::xformsBC(string const & cancel, string const & close)
-       : GuiBC<FL_OBJECT, FL_OBJECT>(cancel, close)
+xformsBC::xformsBC(ButtonController const & parent,
+                  string const & cancel, string const & close)
+       : GuiBC<FL_OBJECT, FL_OBJECT>(parent, cancel, close)
 {}
 
 
index b129bb53fcb93a7e6477dead10e820dd60866479..22a4d39157170b502a2985978fa4571e8bee0251 100644 (file)
 
 #include "forms_fwd.h"
 
-
-#include "ButtonController.h"
+#include "BCView.h"
+#include "gettext.h"
 
 class xformsBC : public GuiBC<FL_OBJECT, FL_OBJECT> {
 public:
        ///
-       xformsBC(string const &, string const &);
+       xformsBC(ButtonController const &,
+                string const & = _("Cancel"), string const & = _("Close"));
 
 private:
        /// Updates the button sensitivity (enabled/disabled)