]> git.lyx.org Git - lyx.git/blobdiff - src/graphics/GraphicsCacheItem.h
small fix with footnote, use stringstream some more
[lyx.git] / src / graphics / GraphicsCacheItem.h
index 8f597dfffb413c8698120809f7d9681a251c45b1..5f22d950c5e7269b10c7ab6c1c9c4abe439087f8 100644 (file)
 
 #include XPM_H_LOCATION
 #include "LString.h"
-#include "graphics/Renderer.h"
-#include "support/syscall.h"
 
-#include "sigc++/signal_system.h"
-#ifdef SIGC_CXX_NAMESPACES
-using SigC::Signal0;
-#endif
+#include <boost/utility.hpp>
+#include <boost/smart_ptr.hpp>
 
-/* (Baruch Even 2000-08-05)
- * This has a major drawback: it is only designed for X servers, no easy
- * porting to non X-server based platform is offered right now, this is done
- * in order to get a first version out of the door.
- *
- * Later versions should consider how to do this with more platform 
- * independence, this will probably involve changing the Painter class too.
- */
+#include <sigc++/signal_system.h>
 
-/* (Baruch Even 2000-08-05)
- * This should be made reference counted, but for the sake of initial design
- * I'll forego that and just make a first version that actually works, though
- * it may fail or leak in real document, this is an initial design to try
- * ideas on and be a testbed.
- * It may just as well be scraped later on to create a better design based on
- * the results of working with the current design.
- */
+class LyXImage;
 
 /// A GraphicsCache item holder.
-class GraphicsCacheItem {
+class GraphicsCacheItem : boost::noncopyable {
 public:
+       /// c-tor
+       GraphicsCacheItem(string const & filename);
        /// d-tor, frees the image structures.
        ~GraphicsCacheItem();
        
-       /// Get the height of the image. Returns -1 on error.
-       int getHeight() const { return height_; }       
-       
-       /// Get the width of the image. Returns -1 on error.
-       int getWidth() const { return width_; }
-
        /// Return a pixmap that can be displayed on X server.
-       Pixmap getImage() const { return pixmap_; }
-
+       LyXImage * getImage() const; 
+       ///
        enum ImageStatus {
+               ///
                Loading = 1,
+               ///
                ErrorConverting,
+               ///
                ErrorReading,
+               ///
+               UnknownError,
+               ///
                Loaded
        };
        
        /// Is the pixmap ready for display?
-       ImageStatus getImageStatus() const { return imageStatus_; }
+       ImageStatus getImageStatus() const
 
-       /// Get a notification when the image conversion is done.
-       /// used by an internal callback mechanism.
+       /** Get a notification when the image conversion is done.
+           used by an internal callback mechanism.
+       */
        void imageConverted(int retval);
 
-       /// A signal objects can connect to in order to know when the image
-       /// has arrived.
-       Signal0<void> imageDone;
 private:
-    /// Private c-tor so that only GraphicsCache can create an instance.
-    GraphicsCacheItem();
-
-       /// Set the filename this item will be pointing too.
-       bool setFilename(string const & filename);
-
-       /// Create an XPM file version of the image.
-       bool renderXPM(string const & filename);
-
-       /// Load the image from XPM to memory Pixmap
-       void loadXPMImage();
-       
-    ///
-    friend class GraphicsCache;
-
-       /// The file name of the XPM file.
-       string xpmfile;
-       /// The image height
-       int height_;
-       /// The image width
-       int width_;
-       /// Is the pixmap loaded?
+       bool convertImage(string const & filename);
+       void loadImage();
+
+       /** The filename we refer too.
+           This is used when removing ourselves from the cache.
+       */
+       string filename_;
+       /// The temporary file that we use
+       string tempfile;
+       /// The image status
        ImageStatus imageStatus_;
-       /// The image pixmap
-       Pixmap pixmap_;
-       /// The rendering object.
-       Renderer * renderer;
-
-       /// The system caller, runs the convertor.
-       Systemcalls syscall;
+       /// The image (if it got loaded)
+       boost::scoped_ptr<LyXImage> image_;
 };
 
 #endif