lyx_mirror/src/frontends/Dialogs.C
Lars Gullik Bjønnes 13349032cb ws changes
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@5758 a592a061-630c-0410-9148-cb99ea01b6c8
2002-12-01 22:59:25 +00:00

45 lines
948 B
C

/**
* \file frontends/Dialogs.C
* 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
*
* Common to all frontends' Dialogs
*/
#include <config.h>
#ifdef __GNUG__
#pragma implementation
#endif
#include "Dialogs.h"
// Note that static boost signals break some compilers, so this wrapper
// initialises the signal dynamically when it is first invoked.
template<typename Signal>
class BugfixSignal {
public:
Signal & operator()() { return thesignal(); }
Signal const & operator()() const { return thesignal(); }
private:
Signal & thesignal() const
{
if (!signal_.get())
signal_.reset(new Signal);
return *signal_;
}
mutable boost::scoped_ptr<Signal> signal_;
};
boost::signal0<void> & Dialogs::redrawGUI()
{
static BugfixSignal<boost::signal0<void> > thesignal;
return thesignal();
}