]> git.lyx.org Git - lyx.git/blobdiff - src/insets/insetgraphics.h
prepare for 1.1.6pre2
[lyx.git] / src / insets / insetgraphics.h
index 4452599a8ca2f63b874e395254d67af49d146f12..8e17277614f475544dbd345955ec29f8767d1a18 100644 (file)
 #ifndef INSET_GRAPHICS_H
 #define INSET_GRAPHICS_H
 
+
 #ifdef __GNUG__
 #pragma interface
-#endif
+#endif 
 
 #include "insets/lyxinset.h"
 #include "insets/insetgraphicsParams.h"
+#include "graphics/GraphicsCacheItem.h"
 
 #include "LaTeXFeatures.h"
 
 #include "sigc++/signal_system.h"
 #ifdef SIGC_CXX_NAMESPACES
 using SigC::Signal0;
-#endif
+using SigC::slot;
+using SigC::Object;
+#endif 
 
 class Dialogs;
-class GraphicsCacheItem;
+class LyXImage;
 
 ///
-class InsetGraphics : public Inset {
+#ifdef SIGC_CXX_NAMESPACES
+class InsetGraphics : public Inset, public SigC::Object
+#else
+class InsetGraphics : public Inset, public Object
+#endif
+{
 public:
        ///
        InsetGraphics();
-    ///
-    ~InsetGraphics();
+       ///
+       ~InsetGraphics();
        ///
        int ascent(BufferView *, LyXFont const &) const;
        ///
@@ -57,52 +66,60 @@ public:
        void Read(Buffer const *, LyXLex & lex);
 
        /** returns the number of rows (\n's) of generated tex code.
-        fragile == true means, that the inset should take care about
-        fragile commands by adding a \protect before.
+        #fragile == true# means, that the inset should take care about
+        fragile commands by adding a #\protect# before.
         */
        int Latex(Buffer const *, std::ostream &,
-                 bool fragile, bool free_spc) const;
+                 bool fragile, bool free_spc) const;
        ///
-       int Ascii(Buffer const *, std::ostream &) const;
+       int Ascii(Buffer const *, std::ostream &, int linelen) const;
        ///
        int Linuxdoc(Buffer const *, std::ostream &) const;
        ///
        int DocBook(Buffer const *, std::ostream &) const;
 
        /** Tell LyX what the latex features you need i.e. what latex packages
-     * you need to be included.
-     */
+           you need to be included.
+        */
        void Validate(LaTeXFeatures & features) const;
 
        /// returns LyX code associated with the inset. Used for TOC, ...)
        Inset::Code LyxCode() const { return Inset::GRAPHICS_CODE; }
-  
+
        ///
-       Inset * Clone() const;
+       Inset * Clone(Buffer const &) const;
 
-    /// Set the inset parameters, used by the GUIndependent dialog.
-    /// Return true of new params are different from what was so far.
-    bool setParams(InsetGraphicsParams const & params);
+       /** Set the inset parameters, used by the GUIndependent dialog.
+           Return true of new params are different from what was so far.
+       */
+       bool setParams(InsetGraphicsParams const & params);
 
-    /// Get the inset parameters, used by the GUIndependent dialog.
-    InsetGraphicsParams getParams() const;
+       /// Get the inset parameters, used by the GUIndependent dialog.
+       InsetGraphicsParams getParams() const;
 
-    /// This signal is connected by our dialog and called when the inset
-    /// is deleted.
-    Signal0<void> hide;
+       /** This signal is connected by our dialog and called when the inset
+           is deleted.
+       */
+       Signal0 <void> hide;
 private:
-    /// Update the inset after parameter change.
-    void updateInset();
+       /// Update the inset after parameter change.
+       void updateInset() const;
+       /// Get the status message, depends on the image loading status.
+       char const * statusMessage() const;
 
-    /// The graphics cache handle.
-    GraphicsCacheItem * cachehandle;
+       /// The graphics cache handle.
+       mutable GraphicsCacheItem * cacheHandle;
 
+       /// The pixmap
+       mutable LyXImage * pixmap;
+       /// is the pixmap initialized?
+       mutable bool pixmapInitialized;
 
-    InsetGraphicsParams params;
+       InsetGraphicsParams params;
 
-    // Baruch Even (baruch.even@writeme.com) 2000-07-17
-    // This was the intended way however it is not flexible enough and
-    // only provides for LaTeX output.
+       // Baruch Even (baruch.even@writeme.com) 2000-07-17
+       // This was the intended way however it is not flexible enough and
+       // only provides for LaTeX output.
 #ifdef IG_OLDPARAMS
        // We need variables to store the size of the boundingbox and
        // to store a pointer to the pixmap in.. The question is if
@@ -119,7 +136,7 @@ private:
            bounding box in the LaTex command or not. (i.e. if the user
            has manually set the bb.) */
        bool use_bb;
-       
+
        /** When a graphics file is parsed we first check for BoundingBox
            and then for HiResBoundingBox, and set hiresbb depending on this.
            This key makes LaTeX search for %%HiResBoundingBox comments
@@ -128,73 +145,73 @@ private:
            can normally only have integer values. It is a Boolean, either
            "true" or "false". */
        bool hiresbb;
-    
+
        /** This key takes four arguments (like bb), but in this case the
            origin is taken with respect to the bounding box specified in
            the file. So to view a 20 bp square at the lower left-hand corner
            of the picture, specify viewport=0 0 20 20. */
        BoundingBox viewport;
-    
+
        /** Similar to the viewport key, but the four dimensions correspond
            to the amount of space to be trimmed (cut off) at the left-hand
            side, bottom, right-hand side and top of the included graphics. */
        BoundingBox trim;
-    
+
        /// Natural height of figure
        LyXLength natheight;
-    
+
        /// Natural width of figure.
        LyXLength natwidth;
-   
+
        /// Rotation angle (in degrees, counterclockwise).
        float angle;
 
        /** Origin for rotation, similar to the origin parameter of
            the \rotatebox command described on p.46 and Fig. 2.2 on p.46. */
        Origin origin;
-    
+
        /// Required width (the width of the image is scaled to that value).
        LyXLength g_width;
-    
+
        /// Required height (the height of the image is scaled to that value).
        LyXLength g_height;
-    
+
        /** Required total height (the total height of the image is scaled
            to that value). This key should be used instead of height if
            images are rotated over 90 degrees, since the height can
            disappear (and become the depth) and LaTeX will have difficulties
            satisfying the user's request. */
        LyXLength totalheight;
-    
+
        /** Boolean variable that can have the values "true" and "false"
            (se above for defaults). When true, specifying both width and
            height parameters does not distort the picture, but the image
            is scaled so that neither of the width of height exceeds the
            given dimensions. */
        bool keepaspectratio;
-    
+
        /// Scale factor
        float scale;
-    
+
        /** Clip the graphic to the bounding box. It is a Boolean, either
            "true" or "false". */
        bool clip;
-    
+
        /// Locally switch to draft mode. A Boolean valued key, like clip.
        bool draft;
-    
+
        /// The graphics type.
        string type;
-    
+
        /// The file extension of the file containing the image data.
        string ext;
-    
+
        /// The file extension of the file "read" by LaTeX.
        string read;
-    
+
        /// Any command to be applied to the file.
        string command;
-#endif    
+#endif 
 };
 
-#endif
+#endif