mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-14 06:57:01 +00:00
1e39473100
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@4281 a592a061-630c-0410-9148-cb99ea01b6c8
96 lines
1.6 KiB
C
96 lines
1.6 KiB
C
/**
|
|
* \file FormInset.C
|
|
* Copyright 2000-2001 The LyX Team.
|
|
* See the file COPYING.
|
|
*
|
|
* \author Angus Leeming, a.leeming@ic.ac.uk
|
|
*/
|
|
|
|
#include <config.h>
|
|
|
|
#include FORMS_H_LOCATION
|
|
|
|
#ifdef __GNUG__
|
|
#pragma implementation
|
|
#endif
|
|
|
|
#include "Dialogs.h"
|
|
#include "frontends/LyXView.h"
|
|
#include "FormInset.h"
|
|
#include "xformsBC.h"
|
|
|
|
#include <boost/bind.hpp>
|
|
|
|
FormInset::FormInset(LyXView * lv, Dialogs * d, string const & t)
|
|
: FormBaseBD(lv, d, t)
|
|
{}
|
|
|
|
|
|
void FormInset::connect()
|
|
{
|
|
u_ = d_->updateBufferDependent.
|
|
connect(boost::bind(&FormInset::updateSlot, this, _1));
|
|
h_ = d_->hideBufferDependent.
|
|
connect(boost::bind(&FormInset::hide, this));
|
|
FormBaseDeprecated::connect();
|
|
}
|
|
|
|
|
|
void FormInset::disconnect()
|
|
{
|
|
ih_.disconnect();
|
|
FormBaseBD::disconnect();
|
|
}
|
|
|
|
|
|
void FormInset::updateSlot(bool switched)
|
|
{
|
|
if (switched)
|
|
hide();
|
|
else
|
|
update();
|
|
}
|
|
|
|
|
|
FormCommand::FormCommand(LyXView * lv, Dialogs * d, string const & t)
|
|
: FormInset(lv, d, t),
|
|
inset_(0)
|
|
{}
|
|
|
|
|
|
void FormCommand::disconnect()
|
|
{
|
|
inset_ = 0;
|
|
params = InsetCommandParams(string());
|
|
FormInset::disconnect();
|
|
}
|
|
|
|
|
|
void FormCommand::showInset(InsetCommand * inset)
|
|
{
|
|
if (inset == 0) return; // maybe we should Assert this?
|
|
|
|
// If connected to another inset, disconnect from it.
|
|
if (inset_)
|
|
ih_.disconnect();
|
|
|
|
inset_ = inset;
|
|
params = inset->params();
|
|
ih_ = inset->hideDialog.connect(boost::bind(&FormCommand::hide, this));
|
|
show();
|
|
}
|
|
|
|
|
|
void FormCommand::createInset(string const & arg)
|
|
{
|
|
if (inset_) {
|
|
ih_.disconnect();
|
|
inset_ = 0;
|
|
}
|
|
|
|
params.setFromString(arg);
|
|
if ( !arg.empty())
|
|
bc().valid(); // so that the user can press Ok
|
|
show();
|
|
}
|