]> git.lyx.org Git - lyx.git/blobdiff - src/insets/InsetGraphics.h
Internal buffers are valid
[lyx.git] / src / insets / InsetGraphics.h
index d2ab83f32b11985457aa28415617c4eab2fbeb75..28ea3372464862c851fb2d849fff9c8d8c0cfda4 100644 (file)
@@ -5,7 +5,7 @@
  * Licence details can be found in the file COPYING.
  *
  * \author Baruch Even
- * \author Herbert Voß
+ * \author Herbert Voß
  *
  * Full author contact details are available in file CREDITS.
  */
 #ifndef INSET_GRAPHICS_H
 #define INSET_GRAPHICS_H
 
-#include <set>
 #include "Inset.h"
 #include "InsetGraphicsParams.h"
 
-#include <boost/scoped_ptr.hpp>
-#include <boost/signals/trackable.hpp>
-
+#include <set>
 
 namespace lyx {
 
@@ -33,11 +30,11 @@ class LaTeXFeatures;
 /////////////////////////////////////////////////////////////////////////
 
 /// Used for images etc.
-class InsetGraphics : public Inset, public boost::signals::trackable
+class InsetGraphics : public Inset
 {
 public:
        ///
-       InsetGraphics(Buffer & buf);
+       InsetGraphics(Buffer * buf);
        ///
        ~InsetGraphics();
 
@@ -55,6 +52,10 @@ public:
        bool setParams(InsetGraphicsParams const & params);
 
        InsetGraphicsParams getParams() const { return params_;}
+       ///
+       bool clickable(BufferView const &, int, int) const { return true; }
+       ///
+       bool canPaintChange(BufferView const &) const { return true; };
 
 private:
        ///
@@ -64,7 +65,7 @@ private:
        bool isLabeled() const { return true; }
        void metrics(MetricsInfo &, Dimension &) const;
        ///
-       EDITABLE editable() const;
+       bool hasSettings() const { return true; }
        ///
        void write(std::ostream &) const;
        ///
@@ -73,54 +74,70 @@ private:
         #fragile == true# means, that the inset should take care about
         fragile commands by adding a #\protect# before.
         */
-       int latex(odocstream &, OutputParams const &) const;
+       void latex(otexstream &, OutputParams const &) const;
        ///
-       int plaintext(odocstream &, OutputParams const &) const;
+       int plaintext(odocstringstream & ods, OutputParams const & op,
+                     size_t max_length = INT_MAX) const;
        ///
        int docbook(odocstream &, OutputParams const &) const;
+       ///
+       docstring xhtml(XHTMLStream & os, OutputParams const &) const;
        /** Tell LyX what the latex features you need i.e. what latex packages
            you need to be included.
         */
        void validate(LaTeXFeatures & features) const;
        /// returns LyX code associated with the inset. Used for TOC, ...)
        InsetCode lyxCode() const { return GRAPHICS_CODE; }
+       ///
+       docstring layoutName() const { return from_ascii("Graphics"); }
        /// Get the inset parameters, used by the GUIndependent dialog.
        InsetGraphicsParams const & params() const;
        ///
        void draw(PainterInfo & pi, int x, int y) const;
        ///
-       void edit(Cursor & cur, bool front, EntryDirection entry_from);
+       bool showInsetDialog(BufferView * bv) const;
        ///
-       void editGraphics(InsetGraphicsParams const &, Buffer const &) const;
+       void editGraphics(InsetGraphicsParams const &) const;
        ///
        bool getStatus(Cursor &, FuncRequest const &, FuncStatus &) const;
        ///
-       void addToToc(DocIterator const &);
+       void addToToc(DocIterator const & di, bool output_active,
+                                 UpdateType utype, TocBackend & backend) const;
        ///
-       docstring contextMenu(BufferView const & bv, int x, int y) const;
-       /// Force inset into LTR environment if surroundings are RTL?
-       bool forceLTR() const { return true; }
+       std::string contextMenuName() const;
+       /// Force inset into LTR environment if surroundings are RTL
+       bool forceLTR(OutputParams const &) const { return true; }
        ///
        void doDispatch(Cursor & cur, FuncRequest & cmd);
        ///
        Inset * clone() const;
        /// Get the status message, depends on the image loading status.
        std::string statusMessage() const;
+       /// Get the output bounding box accounting for raster formats.
+       void outBoundingBox(graphics::BoundingBox &) const;
        /// Create the options for the latex command.
-       std::string createLatexOptions() const;
+       std::string createLatexOptions(bool const ps) const;
        /// Create length values for docbook export.
        docstring toDocbookLength(Length const & len) const;
        /// Create the atributes for docbook export.
        docstring createDocBookAttributes() const;
        /// Convert the file if needed, and return the location of the file.
+       /// This version is for use with LaTeX-style output.
        std::string prepareFile(OutputParams const &) const;
+       /// Convert the file if needed, and return the location of the file.
+       /// This version is for use with HTML-style output.
+       /// \return the new filename, relative to the location of the HTML file,
+       /// or an empty string on error.
+       std::string prepareHTMLFile(OutputParams const & runparams) const;
 
        ///
        InsetGraphicsParams params_;
        /// holds the entity name that defines the graphics location (SGML).
        docstring const graphic_label;
+       ///
+       docstring toolTip(BufferView const & bv, int x, int y) const;
        /// The thing that actually draws the image on LyX's screen.
-       boost::scoped_ptr<RenderGraphic> const graphic_;
+       RenderGraphic * graphic_;
 };
 
 namespace graphics {
@@ -128,16 +145,19 @@ namespace graphics {
        /// Saves the list of currently used groups in the document.
        void getGraphicsGroups(Buffer const &, std::set<std::string> &);
 
+       /// how many members has the current group?
+       int countGroupMembers(Buffer const &, std::string const &);
+
        /// Returns parameters of a given graphics group (except filename).
        std::string getGroupParams(Buffer const &, std::string const &);
 
        /** Synchronize all Graphics insets of the group.
            Both groupId and params are taken from argument.
        */
-       void unifyGraphicsGroups(Buffer const &,        std::string const &);
+       void unifyGraphicsGroups(Buffer &, std::string const &);
        InsetGraphics * getCurrentGraphicsInset(Cursor const &);
 
-}
+} // namespace graphics
 
 } // namespace lyx