X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2FInsetExternal.h;h=497f1c653a7fa71846f95ee86c7d69124d0dadad;hb=e4c46abeb7385960c9dd42494e3c7c1f3e699b56;hp=8956c7c38d40d4d682b78740f7fa55bfb3c692c7;hpb=f9b81e51e943bcaac885d74edbce41a9d74ad3dd;p=lyx.git diff --git a/src/insets/InsetExternal.h b/src/insets/InsetExternal.h index 8956c7c38d..497f1c653a 100644 --- a/src/insets/InsetExternal.h +++ b/src/insets/InsetExternal.h @@ -13,15 +13,18 @@ #define INSET_EXTERNAL_H #include "Inset.h" -#include "ExternalTransforms.h" -#include "EmbeddedFiles.h" + +#include "ExternalTemplate.h" #include "support/FileName.h" -#include "support/Translator.h" +#include "support/unique_ptr.h" + +#include -#include -#include +namespace lyx { + +namespace external { /** No two InsetExternalParams variables can have the same temporary file. * This class has copy-semantics but the copy constructor @@ -30,35 +33,17 @@ * copy constructor and assignment operator for the * InsetExternalParams class. */ -namespace lyx { - -namespace external { - class TempName { public: TempName(); TempName(TempName const &); ~TempName(); TempName & operator=(TempName const &); - support::FileName const & operator()() const { return tempname_; } + support::FileName operator()() const; private: support::FileName tempname_; }; -/// How is the image to be displayed on the LyX screen? -enum DisplayType { - DefaultDisplay, - MonochromeDisplay, - GrayscaleDisplay, - ColorDisplay, - PreviewDisplay, - NoDisplay -}; - - -/// The translator between the Display enum and corresponding lyx string. -Translator const & displayTranslator(); - } // namespace external @@ -71,16 +56,18 @@ public: bool read(Buffer const &, Lexer &); /// The name of the tempfile used for manipulations. - support::FileName const & tempname() const { return tempname_(); } + support::FileName tempname() const { return tempname_(); } /// The template currently in use. void settemplate(std::string const &); std::string const & templatename() const { return templatename_; } /// The external file. - EmbeddedFile filename; - /// How the inset is to be displayed by LyX. - external::DisplayType display; + support::DocFileName filename; + /// If the inset is to be displayed by LyX. + bool display; + /// If the inset is to use the preview mechanism. + PreviewMode preview_mode; /// The scale of the displayed graphic (if shown). unsigned int lyxscale; @@ -103,10 +90,13 @@ private: class RenderBase; /// -class InsetExternal : public Inset, public boost::signals::trackable +class InsetExternal : public Inset, public boost::signals2::trackable { + // Disable assignment operator, since it is not used, and it is too + // complicated to implement it consistently with the copy constructor + InsetExternal & operator=(InsetExternal const &); public: - InsetExternal(Buffer &); + InsetExternal(Buffer *); /// ~InsetExternal(); /// @@ -119,18 +109,26 @@ public: InsetExternalParams const & params() const; /// void setParams(InsetExternalParams const &); - /// - void setBuffer(Buffer & buffer); + /// Update not loaded previews + void updatePreview(); /// \returns the number of rows (\n's) of generated code. - int latex(odocstream &, OutputParams const &) const; - + void latex(otexstream &, OutputParams const &) const; + /// + std::string contextMenuName() const; + /// + bool setMouseHover(BufferView const * bv, bool mouse_hover) const; + /// + bool clickable(BufferView const &, int, int) const { return true; } + /// + void addToToc(DocIterator const & di, bool output_active, + UpdateType utype) const; private: /// InsetExternal(InsetExternal const &); /// InsetCode lyxCode() const { return EXTERNAL_CODE; } /// - EDITABLE editable() const { return IS_EDITABLE; } + bool hasSettings() const { return true; } /// void metrics(MetricsInfo &, Dimension &) const; /// @@ -140,21 +138,21 @@ private: /// void read(Lexer & lex); /// - 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; + /// For now, this does nothing. Someone who knows about this + /// should see what needs doing for XHTML output. + docstring xhtml(XHTMLStream &, OutputParams const &) const; /// Update needed features for this inset. void validate(LaTeXFeatures & features) const; /// - void addPreview(graphics::PreviewLoader &) const; + void addPreview(DocIterator const &, graphics::PreviewLoader &) const; /// - void edit(Cursor & cur, bool front, EntryDirection entry_from); + bool showInsetDialog(BufferView * bv) const; /// bool getStatus(Cursor &, FuncRequest const &, FuncStatus &) const; - /// external file can be embedded - void registerEmbeddedFiles(EmbeddedFileList &) const; - /// - void updateEmbeddedFile(EmbeddedFile const &); /// void doDispatch(Cursor & cur, FuncRequest & cmd); /// @@ -171,7 +169,9 @@ private: /// The current params InsetExternalParams params_; /// The thing that actually draws the image on LyX's screen. - boost::scoped_ptr renderer_; + unique_ptr renderer_; + /// changes color of the button when mouse enters/leaves this inset + mutable std::map mouse_hover_; }; } // namespace lyx