]> git.lyx.org Git - lyx.git/blobdiff - src/insets/InsetExternal.h
Prettify the tooltip for footnotes.
[lyx.git] / src / insets / InsetExternal.h
index 22a9318a47b1e12a606df811d2ae09235af891f1..a875d379956aad2cb5081f3d37cd511838fb7669 100644 (file)
 #define INSET_EXTERNAL_H
 
 #include "Inset.h"
-#include "ExternalTransforms.h"
+
+#include "ExternalTemplate.h"
 
 #include "support/FileName.h"
-#include "support/Translator.h"
 
 #include <boost/scoped_ptr.hpp>
 #include <boost/signals/trackable.hpp>
@@ -44,20 +44,6 @@ 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<DisplayType, std::string> const & displayTranslator();
-
 } // namespace external
 
 
@@ -78,8 +64,10 @@ public:
 
        /// The external file.
        support::DocFileName filename;
-       /// How the inset is to be displayed by LyX.
-       external::DisplayType display;
+       /// 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;
 
@@ -105,7 +93,7 @@ class RenderBase;
 class InsetExternal : public Inset, public boost::signals::trackable
 {
 public:
-       InsetExternal(Buffer &);
+       InsetExternal(Buffer *);
        ///
        ~InsetExternal();
        ///
@@ -118,18 +106,23 @@ public:
        InsetExternalParams const & params() const;
        ///
        void setParams(InsetExternalParams const &);
+       /// 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;
        ///
-       docstring contextMenu(BufferView const & bv, int x, int y) const;
-
+       std::string contextMenuName() const;
+       ///
+       bool setMouseHover(BufferView const * bv, bool mouse_hover) const;
+       ///
+       bool clickable(int, int) const { return true; }
 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;
        ///
@@ -139,15 +132,19 @@ 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;
        ///
@@ -167,6 +164,8 @@ private:
        InsetExternalParams params_;
        /// The thing that actually draws the image on LyX's screen.
        boost::scoped_ptr<RenderBase> renderer_;
+       /// changes color of the button when mouse enters/leaves this inset
+       mutable std::map<BufferView const *, bool> mouse_hover_;
 };
 
 } // namespace lyx