-// -*- C++ -*-
-/* This file is part of
- * ======================================================
- *
- * LyX, The Document Processor
- *
- * Copyright 2000-2001 The LyX Team.
- *
- * ======================================================
- *
+/**
* \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.
*/
-#ifdef __GNUG__
-#pragma implementation
-#endif
-
#include <config.h>
+
#include "ButtonController.h"
-#include "support/LAssert.h"
+#include "BCView.h"
+
+namespace lyx {
+namespace frontend {
+
+BCView & ButtonController::view() const
+{
+ BOOST_ASSERT(view_.get());
+ return *view_.get();
+}
+
+void ButtonController::view(BCView * view)
+{
+ view_.reset(view);
+}
+
+
+ButtonPolicy & ButtonController::bp() const
+{
+ BOOST_ASSERT(bp_.get());
+ return *bp_.get();
+}
+void ButtonController::bp(ButtonPolicy * bp)
+{
+ bp_.reset(bp);
+}
-ButtonControllerBase::ButtonControllerBase(string const & cancel,
- string const & close)
- : cancel_label(cancel), close_label(close)
-{}
+
+void ButtonController::refresh() const
+{
+ view().refresh();
+}
-void ButtonControllerBase::ok()
+void ButtonController::refreshReadOnly() const
+{
+ view().refreshReadOnly();
+}
+
+
+void ButtonController::ok() const
{
input(ButtonPolicy::SMI_OKAY);
}
-void ButtonControllerBase::input(ButtonPolicy::SMInput in)
+void ButtonController::input(ButtonPolicy::SMInput in) const
{
- if (ButtonPolicy::SMI_NOOP == in) return;
+ if (ButtonPolicy::SMI_NOOP == in)
+ return;
bp().input(in);
- refresh();
+ view().refresh();
}
-void ButtonControllerBase::apply()
+void ButtonController::apply() const
{
input(ButtonPolicy::SMI_APPLY);
}
-void ButtonControllerBase::cancel()
+void ButtonController::cancel() const
{
input(ButtonPolicy::SMI_CANCEL);
}
-void ButtonControllerBase::undoAll()
+void ButtonController::restore() const
{
- input(ButtonPolicy::SMI_UNDO_ALL);
+ input(ButtonPolicy::SMI_RESTORE);
}
-void ButtonControllerBase::hide()
+void ButtonController::hide() const
{
input(ButtonPolicy::SMI_HIDE);
}
-void ButtonControllerBase::valid(bool v)
+void ButtonController::valid(bool v) const
{
if (v) {
input(ButtonPolicy::SMI_VALID);
}
-void ButtonControllerBase::invalid()
+bool ButtonController::readOnly(bool ro) const
{
- input(ButtonPolicy::SMI_INVALID);
-}
-
+ lyxerr[Debug::GUI] << "Setting controller ro: " << ro << std::endl;
-bool ButtonControllerBase::readOnly(bool ro)
-{
if (ro) {
- input(ButtonPolicy::SMI_READ_ONLY);
+ bp().input(ButtonPolicy::SMI_READ_ONLY);
} else {
- input(ButtonPolicy::SMI_READ_WRITE);
+ bp().input(ButtonPolicy::SMI_READ_WRITE);
}
+ view().refreshReadOnly();
+ view().refresh();
return ro;
}
-
-void ButtonControllerBase::readWrite()
-{
- readOnly(false);
-}
+} // namespace frontend
+} // namespace lyx