X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2FInsetGraphics.h;h=2f0156dfc9adfb0944db8a8027a0c2a29ea23bd2;hb=eb294eadb5e7f22880da399ae082f74567bbfc4e;hp=bfb4784aed5325a282bbffe1702f82a55a38e5c8;hpb=1e51e87f680a7a903d1c24bccf26598459efec47;p=lyx.git diff --git a/src/insets/InsetGraphics.h b/src/insets/InsetGraphics.h index bfb4784aed..2f0156dfc9 100644 --- a/src/insets/InsetGraphics.h +++ b/src/insets/InsetGraphics.h @@ -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. */ @@ -13,13 +13,10 @@ #ifndef INSET_GRAPHICS_H #define INSET_GRAPHICS_H -#include #include "Inset.h" #include "InsetGraphicsParams.h" -#include -#include - +#include 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); + explicit 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 &); - /// 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,74 +52,130 @@ 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; } /// - EDITABLE editable() const; + bool hasSettings() const override { return true; } /// - void write(std::ostream &) const; + void write(std::ostream &) const override; /// - void read(Lexer & lex); + void read(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(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; } + /// + int bottomOffset(BufferView const *) const override { return 0; } + /// + int leftOffset(BufferView const *) const override { return 0; } + /// + int rightOffset(BufferView const *) const override { return 0; } + + /// + void metrics(MetricsInfo &, Dimension &) const override; /// - void draw(PainterInfo & pi, int x, int y) const; + void draw(PainterInfo & pi, int x, int y) const override; /// - void edit(Cursor & cur, bool front, EntryDirection entry_from); + bool showInsetDialog(BufferView * bv) const override; /// - void editGraphics(InsetGraphicsParams const &, Buffer const &) const; + 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 + bool forceLTR(OutputParams const &) const override { return true; } /// - 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. 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; + /// + 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. - boost::scoped_ptr const graphic_; + RenderGraphic * graphic_; }; +namespace graphics { + + /// Saves the list of currently used groups in the document. + void getGraphicsGroups(Buffer const &, std::set &); + + /// 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