]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/controllers/ControlButtons.h
port the graphics dialog to the new scheme and get rid of the ControlInset
[lyx.git] / src / frontends / controllers / ControlButtons.h
index 53264ee2c06c42fbae705d8890928ab959d46893..f9ebcff63dd7f401e404f4aa52c8e65c7e86c5bc 100644 (file)
@@ -1,15 +1,12 @@
 // -*- C++ -*-
-/* This file is part of
- * ======================================================
+/**
+ * \file ControlButtons.h
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
  *
- *           LyX, The Document Processor
+ * \author Angus Leeming
  *
- *           Copyright 2001 The LyX Team.
- *
- * ======================================================
- *
- * \file ControlButtonss.h
- * \author Angus Leeming <a.leeming@ic.ac.uk>
+ * Full author contact details are available in file CREDITS
  *
  * ControlButtons serves only to control the activation of the Ok, Apply, Cancel
  * and Restore buttons on the View dialog.
 #ifndef CONTROLBUTTONS_H
 #define CONTROLBUTTONS_H
 
-#ifdef __GNUG__
-#pragma interface
-#endif
 
-#include "DialogBase.h" // This can go eventually
+#include <boost/utility.hpp>
 
 class ViewBase;
 class ButtonControllerBase;
 
 /** Abstract base class for Controllers with a ButtonController.
  */
-class ControlButtons : public DialogBase
-{
+class ControlButtons : boost::noncopyable {
 public:
        ///
        ControlButtons();
        ///
        virtual ~ControlButtons() {}
 
-       /// These functions are called when the controlling buttons are pressed.
+       /** These functions are called by the view when the appropriate buttons
+        *  are pressed.
+        */
        ///
        void ApplyButton();
        ///
@@ -57,19 +52,25 @@ public:
        void CancelButton();
        ///
        void RestoreButton();
-       ///
+
+       /// Returns the user-specified iconification policy.
        bool IconifyWithMain() const;
 
-       /** Allow the view to access the ButtonController. This method must be
-           instantiated in a daughter class that creates the actual instance
-           of the ButtonController. */
-       virtual ButtonControllerBase & bc() = 0;
+       ///
+       ButtonControllerBase & bc();
 
-protected:
+       ///
+       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_; }
 
+protected:
+       ///
+       ViewBase & view();
+
        /// Get changed parameters and Dispatch them to the kernel.
        virtual void apply() = 0;
        /// Disconnect signals and hide View.
@@ -77,19 +78,16 @@ protected:
        /// Update dialog before showing it.
        virtual void update() = 0;
 
-       /** Allow the Controller to access the View. This method must be
-           instantiated in a daughter class that creates the actual instance
-           of the View. */
-       virtual ViewBase & view() = 0;
-
        /** This flag can be set by one of the miriad the controller methods
            to ensure that the dialog is shut down. */
        bool emergency_exit_;
-
 private:
        ///
        bool is_closing_;
-
+       /// We own neither of these pointers.
+       ButtonControllerBase * bc_ptr_;
+       ///
+       ViewBase * view_ptr_;
 };
 
 #endif // CONTROLBUTTONS_H