]> git.lyx.org Git - lyx.git/blobdiff - src/insets/InsetGraphics.h
Move Lexer to support/ directory (and lyx::support namespace)
[lyx.git] / src / insets / InsetGraphics.h
index b65f53c9952515b60f1d053972cc007e7422c5c0..73b5625b11f647e7bc375baeda86e0f82a785219 100644 (file)
 #ifndef INSET_GRAPHICS_H
 #define INSET_GRAPHICS_H
 
-#include <set>
 #include "Inset.h"
 #include "InsetGraphicsParams.h"
 
+#include <set>
+
 namespace lyx {
 
 class RenderGraphic;
@@ -33,7 +34,7 @@ class InsetGraphics : public Inset
 {
 public:
        ///
-       InsetGraphics(Buffer * buf);
+       explicit InsetGraphics(Buffer * buf);
        ///
        ~InsetGraphics();
 
@@ -51,64 +52,85 @@ public:
        bool setParams(InsetGraphicsParams const & params);
 
        InsetGraphicsParams getParams() const { return params_;}
-
-private:
        ///
-       InsetGraphics(InsetGraphics const &);
+       bool clickable(BufferView const &, int, int) const override { return true; }
+       ///
+       bool canPaintChange(BufferView const &) const override { return true; }
+       ///
+       InsetGraphics * asInsetGraphics() override { return this; }
+       /// 
+       InsetGraphics const * asInsetGraphics() const override { return this; }
 
        ///
-       bool isLabeled() const { return true; }
-       void metrics(MetricsInfo &, Dimension &) const;
+       bool isLabeled() const override { return true; }
        ///
-       bool hasSettings() const { return true; }
+       bool hasSettings() const override { return true; }
        ///
-       void write(std::ostream &) const;
+       void write(std::ostream &) const override;
        ///
-       void read(Lexer & lex);
+       void read(support::Lexer & lex) override;
        /** 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.
         */
-       int latex(odocstream &, OutputParams const &) const;
+       void latex(otexstream &, OutputParams const &) const override;
        ///
-       int plaintext(odocstream &, OutputParams const &) const;
+       int plaintext(odocstringstream & ods, OutputParams const & op,
+                     size_t max_length = INT_MAX) const override;
        ///
-       int docbook(odocstream &, OutputParams const &) const;
+       void docbook(XMLStream &, OutputParams const &) const override;
        ///
-       docstring xhtml(XHTMLStream & os, OutputParams const &) const;
+       docstring xhtml(XMLStream & os, OutputParams const &) const override;
        /** Tell LyX what the latex features you need i.e. what latex packages
            you need to be included.
         */
-       void validate(LaTeXFeatures & features) const;
+       void validate(LaTeXFeatures & features) const override;
        /// returns LyX code associated with the inset. Used for TOC, ...)
-       InsetCode lyxCode() const { return GRAPHICS_CODE; }
+       InsetCode lyxCode() const override { return GRAPHICS_CODE; }
+       ///
+       docstring layoutName() const override { return from_ascii("Graphics"); }
        /// Get the inset parameters, used by the GUIndependent dialog.
        InsetGraphicsParams const & params() const;
+
+       ///
+       int topOffset(BufferView const *) const override { return 0; }
        ///
-       void draw(PainterInfo & pi, int x, int y) const;
+       int bottomOffset(BufferView const *) const override { return 0; }
        ///
-       bool showInsetDialog(BufferView * bv) const;
+       int leftOffset(BufferView const *) const override { return 3; }
+       ///
+       int rightOffset(BufferView const *) const override { return 2; }
+
+       ///
+       void metrics(MetricsInfo &, Dimension &) const override;
+       ///
+       void draw(PainterInfo & pi, int x, int y) const override;
+       ///
+       bool showInsetDialog(BufferView * bv) const override;
        ///
        void editGraphics(InsetGraphicsParams const &) const;
        ///
-       bool getStatus(Cursor &, FuncRequest const &, FuncStatus &) const;
+       bool getStatus(Cursor &, FuncRequest const &, FuncStatus &) const override;
        ///
-       void addToToc(DocIterator const &);
+       void addToToc(DocIterator const & di, bool output_active,
+                                 UpdateType utype, TocBackend & backend) const override;
        ///
-       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 override;
+       /// Force inset into LTR environment if surroundings are RTL (only needed in pdfTeX)
+       bool forceLTR(OutputParams const & runparams) const override { return !runparams.isFullUnicode(); }
        ///
-       void doDispatch(Cursor & cur, FuncRequest & cmd);
+       void doDispatch(Cursor & cur, FuncRequest & cmd) override;
        ///
-       Inset * clone() const;
+       Inset * clone() const override;
        /// 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.
+       /// Create the attributes 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.
@@ -118,11 +140,19 @@ private:
        /// \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;
+       ///
+       CtObject getCtObject(OutputParams const &) const override;
+
+private:
+       ///
+       InsetGraphics(InsetGraphics 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 override;
        /// The thing that actually draws the image on LyX's screen.
        RenderGraphic * graphic_;
 };
@@ -144,7 +174,7 @@ namespace graphics {
        void unifyGraphicsGroups(Buffer &, std::string const &);
        InsetGraphics * getCurrentGraphicsInset(Cursor const &);
 
-}
+} // namespace graphics
 
 } // namespace lyx