X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2Frender_preview.h;h=52bb7ffe0489234ceb62e5024824fcc91665360e;hb=e28331ed63062dea10d0a21b9ec12034b4b17b9a;hp=88f87acdaf6af42f9c2226757ce62f3a5b4cb377;hpb=afc9aaf6eb68127aecbbade60bcf101d502285df;p=lyx.git diff --git a/src/insets/render_preview.h b/src/insets/render_preview.h index 88f87acdaf..52bb7ffe04 100644 --- a/src/insets/render_preview.h +++ b/src/insets/render_preview.h @@ -8,7 +8,7 @@ * * Full author contact details are available in file CREDITS. * - * lyx::graphics::RenderPreview is an abstract base class that can help + * graphics::RenderPreview is an abstract base class that can help * insets to generate previews. The daughter class must instantiate two small * methods. The Inset would own an instance of this daughter class. */ @@ -19,50 +19,53 @@ #include "render_base.h" #include "support/FileMonitor.h" +#include "support/docstring.h" -#include +#include #include #include +namespace lyx { + class Buffer; -class BufferView; +class LyXRC_PreviewStatus; class MetricsInfo; class PainterInfo; -namespace lyx { +namespace support { class FileName; } + namespace graphics { class PreviewImage; class PreviewLoader; } // namespace graphics -} // namespace lyx class RenderPreview : public RenderBase, public boost::signals::trackable { public: - /// a wrapper for Previews::activated() - static bool activated(); + /// a wrapper for Previews::status() + static LyXRC_PreviewStatus status(); - RenderPreview(); - RenderPreview(RenderPreview const &); - RenderBase * clone() const; + RenderPreview(InsetBase const *); + RenderPreview(RenderPreview const &, InsetBase const *); + std::auto_ptr clone(InsetBase const *) const; /// Compute the size of the object, returned in dim - void metrics(MetricsInfo &, Dimension & dim) const; + bool metrics(MetricsInfo &, Dimension & dim) const; /// void draw(PainterInfo & pi, int x, int y) const; /** Find the PreviewLoader and add a LaTeX snippet to it. * Do not start the loading process. */ - void addPreview(std::string const & latex_snippet, Buffer const &); + void addPreview(docstring const & latex_snippet, Buffer const &); /** Add a LaTeX snippet to the PreviewLoader. * Do not start the loading process. */ - void addPreview(std::string const & latex_snippet, - lyx::graphics::PreviewLoader & ploader); + void addPreview(docstring const & latex_snippet, + graphics::PreviewLoader & ploader); /// Begin the loading process. void startLoading(Buffer const & buffer) const; @@ -72,52 +75,49 @@ public: */ void removePreview(Buffer const &); - /// The preview has been generated and is ready to use. - bool previewReady() const; - - /// Connect and you'll be informed when the preview is ready. - typedef boost::signal0::slot_type slot_type; - boost::signals::connection connect(slot_type const &); + /** \returns a pointer to the PreviewImage associated with this snippet + * of latex. + */ + graphics::PreviewImage const * + getPreviewImage(Buffer const & buffer) const; /// equivalent to dynamic_cast virtual RenderPreview * asPreview() { return this; } private: /// Not implemented. - void operator=(RenderPreview const &); + RenderPreview & operator=(RenderPreview const &); /// This method is connected to the PreviewLoader::imageReady signal. - void imageReady(lyx::graphics::PreviewImage const &); + void imageReady(graphics::PreviewImage const &); /// The thing that we're trying to generate a preview of. std::string snippet_; - /// We don't own this. Cached for efficiency reasons. - lyx::graphics::PreviewImage const * pimage_; - /** Store the connection to the preview loader so that we connect * only once. */ boost::signals::connection ploader_connection_; - /// This signal is emitted when the preview is ready for display. - boost::signal0 preview_ready_signal_; + /// Inform the core that the inset has changed. + InsetBase const * parent_; }; class RenderMonitoredPreview : public RenderPreview { public: - RenderMonitoredPreview() : monitor_(std::string(), 2000) {} + RenderMonitoredPreview(InsetBase const *); /// void draw(PainterInfo & pi, int x, int y) const; /// - void setAbsFile(std::string const & file); + void setAbsFile(support::FileName const & file); /// bool monitoring() const { return monitor_.monitoring(); } void startMonitoring() const { monitor_.start(); } void stopMonitoring() const { monitor_.stop(); } /// Connect and you'll be informed when the file changes. + typedef support::FileMonitor::slot_type slot_type; boost::signals::connection fileChanged(slot_type const &); /// equivalent to dynamic_cast @@ -125,7 +125,9 @@ public: private: /// - mutable lyx::support::FileMonitor monitor_; + mutable support::FileMonitor monitor_; }; +} // namespace lyx + #endif // RENDERPREVIEW_H