// -*- C++ -*- /* This file is part of * ====================================================== * * LyX, The Document Processor * * Copyright 2000 The LyX Team. * * ====================================================== */ #include #include FORMS_H_LOCATION #ifdef __GNUG__ #pragma implementation #endif #include "Dialogs.h" #include "LyXView.h" #include "FormInset.h" FormInset::FormInset(LyXView * lv, Dialogs * d, string const & t, ButtonPolicy * bp, char const * close, char const * cancel) : FormBaseBD( lv, d, t, bp, close, cancel ), ih_(0) {} void FormInset::connect() { u_ = d_->updateBufferDependent. connect(slot(this, &FormInset::updateSlot)); h_ = d_->hideBufferDependent. connect(slot(this, &FormInset::hide)); FormBase::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, ButtonPolicy * bp, char const * close, char const * cancel) : FormInset( lv, d, t, bp, close, cancel ), 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->hide.connect(slot(this, &FormCommand::hide)); show(); } void FormCommand::createInset( string const & arg ) { if (inset_) { ih_.disconnect(); inset_ = 0; } params.setFromString( arg ); show(); }