]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/controllers/ButtonController.h
The reference dialog now disconnects from the inset on Apply. Its behaviour
[lyx.git] / src / frontends / controllers / ButtonController.h
index d79733183c38c9f45aef241ecd62a0542dcfa4aa..dee049628c35f12d72b50ccac17e33e7978d8fd4 100644 (file)
@@ -1,3 +1,4 @@
+// -*- C++ -*-
 /* This file is part of
  * ====================================================== 
  *
 
 #include <list>
 
+#include "gettext.h"
+#include "ButtonControllerBase.h"
+#include "debug.h" 
+
 template <class Button, class Widget>
 class GuiBC : public ButtonControllerBase
 {
@@ -38,8 +43,10 @@ public:
        ///
        void eraseReadOnly() { read_only_.clear(); }
 
-       /// Refresh the widgets status.
+       /// 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
@@ -61,14 +68,16 @@ private:
 
 template <class Button, class Widget>
 GuiBC<Button, Widget>::GuiBC(string const & cancel, string const & close)
-       : ButtonControllerBase(cancel, close)
-       , okay_(0), apply_(0), restore_(0), cancel_(0)
+       : 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; 
        if (okay_) {
                bool const enabled = bp().buttonStatus(ButtonPolicy::OKAY);
                setButtonEnabled(okay_, enabled);
@@ -88,18 +97,21 @@ void GuiBC<Button, Widget>::refresh()
                else
                        setButtonLabel(cancel_, close_label_);
        }
+}
 
-       // Enable/Disable read-only handled widgets.
-       if (!read_only_.empty()) {
-               bool const enable = !bp().isReadOnly();
 
-               Widgets::const_iterator end = read_only_.end();
-               Widgets::const_iterator iter = read_only_.begin();
-               for (; iter != end; ++iter) {
-                       setWidgetEnabled(*iter, enable);
-               }
-       }
+template <class Button, class Widget>
+void GuiBC<Button, Widget>::refreshReadOnly()
+{
+       if (read_only_.empty()) return;
+
+       bool const enable = !bp().isReadOnly();
 
+       Widgets::const_iterator end = read_only_.end();
+       Widgets::const_iterator iter = read_only_.begin();
+       for (; iter != end; ++iter) {
+               setWidgetEnabled(*iter, enable);
+       }
 }