]> git.lyx.org Git - lyx.git/blobdiff - src/insets/InsetInclude.h
Fix text frame drawing.
[lyx.git] / src / insets / InsetInclude.h
index f260f0dcbb4497ef147b180f95df95f537a3307a..41d11ab12663a616ed7c4cd8951e6b0a947818b4 100644 (file)
 #ifndef INSET_INCLUDE_H
 #define INSET_INCLUDE_H
 
+#include "BiblioInfo.h"
 #include "Inset.h"
 #include "InsetCommandParams.h"
 #include "RenderButton.h"
 #include "MailInset.h"
+#include "Counters.h"
+#include "EmbeddedFiles.h"
 
-#include "support/filename.h"
+#include "support/FileName.h"
 
 #include <boost/scoped_ptr.hpp>
 
@@ -30,7 +33,7 @@ class RenderMonitoredPreview;
 
 
 /// for including tex/lyx files
-class InsetInclude : public InsetOld {
+class InsetInclude : public Inset {
 public:
        ///
        InsetInclude(InsetCommandParams const &);
@@ -41,13 +44,13 @@ public:
        ///
        void draw(PainterInfo & pi, int x, int y) const;
        ///
-       virtual bool display() const;
+       virtual DisplayType display() const;
 
        /// get the parameters
        InsetCommandParams const & params() const;
 
        ///
-       InsetBase::Code lyxCode() const { return InsetBase::INCLUDE_CODE; }
+       Inset::Code lyxCode() const { return Inset::INCLUDE_CODE; }
        /** Fills \c list
         *  \param buffer the Buffer containing this inset.
         *  \param list the list of labels in the child buffer.
@@ -57,9 +60,11 @@ public:
        /** Fills \c keys
         *  \param buffer the Buffer containing this inset.
         *  \param keys the list of bibkeys in the child buffer.
+        *  \param it not used here
         */
-       void fillWithBibKeys(Buffer const & buffer,
-               std::vector<std::pair<std::string, docstring> > & keys) const;
+       virtual void fillWithBibKeys(Buffer const & buffer,
+               BiblioInfo & keys, InsetIterator const & it) const;
+       
        /** Update the cache with all bibfiles in use of the child buffer
         *  (including bibfiles of grandchild documents).
         *  Does nothing if the child document is not loaded to prevent
@@ -79,32 +84,35 @@ public:
        ///
        void write(Buffer const &, std::ostream &) const;
        ///
-       void read(Buffer const &, LyXLex &);
+       void read(Buffer const &, Lexer &);
        ///
        int latex(Buffer const &, odocstream &,
-                 OutputParams const &) const;
+                 OutputParams const &) const;
        ///
        int plaintext(Buffer const &, odocstream &,
-                     OutputParams const &) const;
+                     OutputParams const &) const;
        ///
        int docbook(Buffer const &, odocstream &,
-                   OutputParams const &) const;
+                   OutputParams const &) const;
        ///
        void validate(LaTeXFeatures &) const;
        ///
        void addPreview(graphics::PreviewLoader &) const;
        ///
-       void addToToc(TocList &, Buffer const &) const;
+       void addToToc(TocList &, Buffer const &, ParConstIterator const &) const;
        ///
-       void updateLabels(Buffer const & buffer) const;
+       bool getStatus(Cursor &, FuncRequest const &, FuncStatus &) const;
        ///
-       bool getStatus(LCursor &, FuncRequest const &, FuncStatus &) const;
+       void updateLabels(Buffer const & buffer, ParIterator const &);
+       /// child document can be embedded
+       void registerEmbeddedFiles(Buffer const &, EmbeddedFiles &,
+                       ParConstIterator const &) const;
 protected:
        InsetInclude(InsetInclude const &);
        ///
-       virtual void doDispatch(LCursor & cur, FuncRequest & cmd);
+       virtual void doDispatch(Cursor & cur, FuncRequest & cmd);
 private:
-       virtual std::auto_ptr<InsetBase> doClone() const;
+       virtual Inset * clone() const;
 
        /** Slot receiving a signal that the external file has changed
         *  and the preview should be regenerated.
@@ -120,7 +128,7 @@ private:
        ///
        void write(std::ostream &) const;
        ///
-       void read(LyXLex &);
+       void read(Lexer &);
 
        /// the parameters
        InsetCommandParams params_;
@@ -133,6 +141,7 @@ private:
        /// cache
        mutable bool set_label_;
        mutable RenderButton button_;
+       mutable docstring listings_label_;
 };
 
 
@@ -141,7 +150,7 @@ public:
        ///
        InsetIncludeMailer(InsetInclude & inset);
        ///
-       virtual InsetBase & inset() const { return inset_; }
+       virtual Inset & inset() const { return inset_; }
        ///
        virtual std::string const & name() const { return name_; }
        ///
@@ -157,6 +166,8 @@ private:
        InsetInclude & inset_;
 };
 
+/// return loaded Buffer or zero if the file loading did not proceed.
+Buffer * loadIfNeeded(Buffer const & parent, InsetCommandParams const & params);
 
 } // namespace lyx