]> git.lyx.org Git - lyx.git/blobdiff - src/graphics/GraphicsCacheItem.h
remove more forms.h cruft
[lyx.git] / src / graphics / GraphicsCacheItem.h
index e139fbffc46a4d24387dbfc728878aab066efc9b..6fc9ee4f1c6f1b56ad82090ac2f5e5d18bb8717b 100644 (file)
@@ -4,7 +4,7 @@
  * 
  *          LyX, The Document Processor
  *          Copyright 1995 Matthias Ettrich.
- *          Copyright 1995-2000 The LyX Team.
+ *          Copyright 1995-2001 The LyX Team.
  *
  *          This file Copyright 2000 Baruch Even
  * ================================================= */
 #ifndef GRAPHICSCACHEITEM_H
 #define GRAPHICSCACHEITEM_H
 
+#include <config.h>
+
 #ifdef __GNUG__
 #pragma interface
 #endif
 
-///
-class GraphicsCacheItem {
+#include XPM_H_LOCATION
+#include "LString.h"
+
+#include <boost/utility.hpp>
+#include <boost/smart_ptr.hpp>
+
+#include <sigc++/signal_system.h>
+
+class LyXImage;
+
+/// A GraphicsCache item holder.
+class GraphicsCacheItem : boost::noncopyable {
 public:
+       /// c-tor
+       GraphicsCacheItem(string const & filename);
+       /// d-tor, frees the image structures.
+       ~GraphicsCacheItem();
+       
+       /// Return a pixmap that can be displayed on X server.
+       LyXImage * getImage() const; 
+       ///
+       enum ImageStatus {
+               ///
+               Loading = 1,
+               ///
+               ErrorConverting,
+               ///
+               ErrorReading,
+               ///
+               UnknownError,
+               ///
+               Loaded
+       };
+       
+       /// Is the pixmap ready for display?
+       ImageStatus getImageStatus() const; 
+
+       /** Get a notification when the image conversion is done.
+           used by an internal callback mechanism.
+       */
+       void imageConverted(int retval);
+
 private:
-    ///
-    GraphicsCacheItem() {}
-    //
-    friend class GraphicsCache;
+       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 (if it got loaded)
+       boost::scoped_ptr<LyXImage> image_;
 };
 
 #endif