X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fgraphics%2FGraphicsLoader.h;h=415dd3142163ff7360c331b8e7b1da9566a7556c;hb=fe390e9da1538e20eabbc98977d845295f8e563d;hp=569e3298647e879a6978bd0e0130a6f4400cb32d;hpb=16b928088fe3f9673df0b67a82aabd12f5de4582;p=lyx.git diff --git a/src/graphics/GraphicsLoader.h b/src/graphics/GraphicsLoader.h index 569e329864..415dd31421 100644 --- a/src/graphics/GraphicsLoader.h +++ b/src/graphics/GraphicsLoader.h @@ -1,19 +1,22 @@ // -*- C++ -*- /** * \file GraphicsLoader.h - * Copyright 2002 the LyX Team - * Read the file COPYING + * This file is part of LyX, the document processor. + * Licence details can be found in the file COPYING. * - * \author Angus Leeming + * \author Angus Leeming + * + * Full author contact details are available in file CREDITS * * The public face of the graphics cache. * * * The user supplies an image file and the display parameters. * * He can change the file or the display parameters through a reset() method. * * He must start the loading process explicitly with startLoading(). - * * He receives a statusChanged signal when the loading status changes. - * * When (status() == Ready), he uses image() to access the loaded image - * and passes it to the Painter. + * * If he is connected through the connect() method, then he'll be informed + * when the loading status changes. + * * When (status() == Ready), he can use image() to access the loaded image + * and pass it to the Painter. * * What could be simpler? */ @@ -21,10 +24,6 @@ #ifndef GRAPHICSLOADER_H #define GRAPHICSLOADER_H -#ifdef __GNUG__ -#pragma interface -#endif - #include "GraphicsTypes.h" #include "LString.h" @@ -32,9 +31,9 @@ #include class Inset; -class BufferView; -namespace grfx { +namespace lyx { +namespace graphics { class Image; class Params; @@ -47,35 +46,54 @@ public: Loader(string const & file_with_path, DisplayType = ColorDisplay); /// The image is transformed before display. Loader(string const & file_with_path, Params const &); + /// + Loader(Loader const &); /// Define an empty d-tor out-of-line to keep boost::scoped_ptr happy. ~Loader(); + Loader & operator=(Loader const &); + /// The file can be changed, or the display params, or both. - void reset(string const & file_with_path, DisplayType = ColorDisplay); + void reset(string const & file_with_path, + DisplayType = ColorDisplay) const; /// - void reset(string const & file_with_path, Params const &); + void reset(string const & file_with_path, Params const &) const; /// - void reset(Params const &); + void reset(Params const &) const; /// Returns the absolute path of the loaded (loading?) file. string const & filename() const; /// bool empty() const { return filename().empty(); } - /// We are explicit about when we begin the loading process. - void startLoading(); + /** starting loading of the image is done by a urgency-based + * decision. Here we only call LoaderQueue::touch to request it. + */ + void startLoading() const; - /** starting loading of the image is conditional upon the - * inset being visible or not. + /** Monitor any changes to the file. + * There is no point monitoring the file before startLoading() is + * invoked. */ - void startLoading(Inset const &, BufferView const &); + void startMonitoring() const; + /// + bool monitoring() const; + /** Returns the check sum of filename() so that, for example, you can + * ascertain whether to output a new PostScript version of the file + * for a LaTeX run. + */ + unsigned long checksum() const; /// How far have we got in loading the image? ImageStatus status() const; - /// This signal is emitted when the image loading status changes. - boost::signal0 statusChanged; + /** Connect and you'll be informed when the loading status of the image + * changes. + */ + typedef boost::signal0::slot_type slot_type; + /// + boost::signals::connection connect(slot_type const &) const; /** The loaded image with Pixmap set. * If the Pixmap is not yet set (see status() for why...), returns 0. @@ -89,6 +107,7 @@ private: boost::scoped_ptr const pimpl_; }; -} // namespace grfx +} // namespace graphics +} // namespace lyx #endif // GRAPHICSLOADER_H