4 * This file is part of LyX, the document processor.
5 * Licence details can be found in the file COPYING.
7 * \author Angus Leeming
9 * Full author contact details are available in file CREDITS.
11 * lyx::graphics::Previews is a singleton class that stores the
12 * lyx::graphics::PreviewLoader for each buffer requiring one.
18 #include <boost/utility.hpp>
19 #include <boost/scoped_ptr.hpp>
22 class LyXRC_PreviewStatus;
29 class Previews : boost::noncopyable {
31 /// a wrapper for lyxrc.preview
32 static LyXRC_PreviewStatus status();
34 /// This is a singleton class. Get the instance.
35 static Previews & get();
37 /** Returns the PreviewLoader for this buffer.
38 * Used by individual insets to update their own preview.
40 PreviewLoader & loader(Buffer const & buffer) const;
42 /// Called from the Buffer d-tor.
43 void removeLoader(Buffer const & buffer) const;
45 /** For a particular buffer, initiate the generation of previews
46 * for each and every snippet of LaTeX that's of interest with
47 * a single forked process.
49 void generateBufferPreviews(Buffer const & buffer) const;
52 /** Make the c-tor, d-tor private so we can control how many objects
58 /// Use the Pimpl idiom to hide the internals.
60 /// The pointer never changes although *pimpl_'s contents may.
61 boost::scoped_ptr<Impl> const pimpl_;
64 } // namespace graphics