X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2Fcontrollers%2FButtonControllerBase.C;h=d35c4d6954bff5f4259becd32000f9ee6019548c;hb=b7c9ae49318e0167a46e7213c967280205db4cf6;hp=3529710ef6b334a6a2f225a71577e42871c52410;hpb=9b7b1a17fc8ae34e68f1ba5fc855f366c6725c32;p=lyx.git diff --git a/src/frontends/controllers/ButtonControllerBase.C b/src/frontends/controllers/ButtonControllerBase.C index 3529710ef6..d35c4d6954 100644 --- a/src/frontends/controllers/ButtonControllerBase.C +++ b/src/frontends/controllers/ButtonControllerBase.C @@ -1,24 +1,22 @@ -// -*- C++ -*- -/* This file is part of - * ====================================================== - * - * LyX, The Document Processor - * - * Copyright 2000-2001 The LyX Team. - * - * ====================================================== - * +/** * \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 */ -#ifdef __GNUG__ -#pragma implementation -#endif #include #include "ButtonControllerBase.h" #include "support/LAssert.h" +#include "debug.h" + + +CheckedWidget::~CheckedWidget() +{} ButtonControllerBase::ButtonControllerBase(string const & cancel, @@ -35,7 +33,8 @@ void ButtonControllerBase::ok() void ButtonControllerBase::input(ButtonPolicy::SMInput in) { - if (ButtonPolicy::SMI_NOOP == in) return; + if (ButtonPolicy::SMI_NOOP == in) + return; bp().input(in); refresh(); } @@ -83,12 +82,15 @@ void ButtonControllerBase::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; } @@ -97,3 +99,26 @@ 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; +}