// -*- C++ -*- /** * \file ControlDialog.tmpl * 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 * * ControlDialog is a base class and so these templatised methods will be * instantiated if this file is #included in the derived classes' .C file. */ #include "ControlDialog.h" #include "ButtonController.h" #include "ViewBase.h" template ControlDialog::ControlDialog(LyXView & lv, Dialogs & d) : Base(lv, d), dialog_built_(false) {} template void ControlDialog::show() { if (this->isBufferDependent() && !this->bufferIsAvailable()) return; this->connect(); if (!dialog_built_) { this->view().build(); dialog_built_ = true; } setParams(); if (this->emergency_exit_) { hide(); return; } this->bc().readOnly(this->bufferIsReadonly()); this->view().show(); // The widgets may not be valid, so refresh the button controller this->bc().refresh(); } template void ControlDialog::update() { if (this->isBufferDependent() && !this->bufferIsAvailable()) return; setParams(); if (this->emergency_exit_) { hide(); return; } this->bc().readOnly(this->bufferIsReadonly()); this->view().update(); // The widgets may not be valid, so refresh the button controller this->bc().refresh(); } template void ControlDialog::hide() { this->emergency_exit_ = false; clearParams(); this->disconnect(); this->view().hide(); }