]> git.lyx.org Git - lyx.git/blobdiff - src/insets/InsetGraphics.h
Fix text direction of references with XeTeX/bidi
[lyx.git] / src / insets / InsetGraphics.h
index cca885784f2814d76c9d779a6b88824466dea220..2cba4f05fa3f47a13e80c170733a39ef0b4832a8 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();
 
@@ -48,16 +45,6 @@ public:
        ///
        static std::string params2string(InsetGraphicsParams const &,
                                          Buffer const &);
-       /// Saves the list of currently used groups in the document.
-       static void getGraphicsGroups(Buffer const &, std::set<std::string> &);
-       /// Returns parameters of a given graphics group (except filename).
-       static std::string getGroupParams(Buffer const &,
-                                               std::string const &);
-       /** Synchronize all Graphics insets of the group.
-           Both groupId and params are taken from argument.
-       */
-       static void unifyGraphicsGroups(Buffer const &, std::string const &);
-       static InsetGraphics * getCurrentGraphicsInset(Cursor const &);
 
        /** Set the inset parameters, used by the GUIndependent dialog.
            Return true of new params are different from what was so far.
@@ -65,6 +52,14 @@ 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; }
+       ///
+       InsetGraphics * asInsetGraphics() { return this; }
+       /// 
+       InsetGraphics const * asInsetGraphics() const { return this; }
 
 private:
        ///
@@ -74,7 +69,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;
        ///
@@ -83,56 +78,91 @@ 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(ParConstIterator const &) 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 {
+
+       /// 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 &, std::string const &);
+       InsetGraphics * getCurrentGraphicsInset(Cursor const &);
+
+} // namespace graphics
+
 } // namespace lyx
 
 #endif // INSET_GRAPHICS_H