lyx_mirror/src/frontends/Dialogs.C
Angus Leeming 1eb8155fa0 This file is part of LyX, the document processor.
Licence details can be found in the file COPYING.

and thank God for sed.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@5211 a592a061-630c-0410-9148-cb99ea01b6c8
2002-09-05 15:14:23 +00:00

45 lines
1.0 KiB
C

/**
* \file 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();
}